Commit graph

200 commits

Author SHA1 Message Date
Alex Leach
4ad934719b
chore: Replace bleach HTML sanitiser for nh3 2026-01-04 00:52:07 +00:00
Akhil Narang
8cb7e4b0b7
build(deps): bump freezegun
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-12-30 18:36:58 +05:30
Akhil Narang
e859b1d312
fix: disable UP040, revert some instances to TypeAlias
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-12-23 13:12:04 +05:30
Akhil Narang
e0cad22cdd
chore(ruff): ignore UP037
We do rely heavily on quoted types for deferred evaluation of type annotations.
We can slowly migrate to `from __future__ import annotations`, don't want to enforce it here right now.

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-12-22 21:06:48 +05:30
Akhil Narang
4c871f1c09
build(deps): bump
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-12-22 21:06:48 +05:30
Akhil Narang
345f17558a
build(deps): bump to python>=3.14, nodejs>=24
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-12-22 20:33:11 +05:30
Akhil Narang
44e47918b6
build(deps): bump filelock
Resolves CVE-2025-68146

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-12-17 12:39:01 +05:30
dependabot[bot]
ccb4afaa11
chore(deps): bump werkzeug from 3.1.3 to 3.1.4 (#35010)
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/3.1.3...3.1.4)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-version: 3.1.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 11:01:37 +05:30
sokumon
8c69f3e542 fix(ci): update pypdf 2025-11-26 12:40:27 +05:30
Akhil Narang
b83ae4d793
build(deps): bump cryptography and openssl
This allows us to use 3.14 freethreaded

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-11-14 17:42:47 +05:30
Akhil Narang
0c3be512db
build(deps): bump RestrictedPython version [change to non-alpha before merging]
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-11-14 17:42:47 +05:30
Akhil Narang
c00a06445f
build(deps): bump pydantic version
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-11-14 17:42:47 +05:30
Akhil Narang
9d45a931d1
build(deps): bump orjson
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-11-14 17:42:47 +05:30
Akhil Narang
4ff5297d9e
build(deps): bump pypika
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-11-14 17:42:47 +05:30
Akhil Narang
336e1ea3a5
build: update python version range
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-11-14 17:42:47 +05:30
Akhil Narang
e11785199a
build(deps): bump pypdf (#34485)
Resolves GHSA-vr63-x8vc-m265 and GHSA-jfx9-29x2-rv3j
2025-10-24 07:50:04 +00:00
Ejaaz Khan
f74671267d Merge branch 'develop' into chrome-pdf 2025-10-08 15:43:38 +05:30
Akhil Narang
835fcbd849
chore: use our copy of protected_inplacevar
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-10-03 00:13:55 +05:30
Ejaaz Khan
964dd6c034 feat: Chrome PDF generator
Co-authored-by: maharshivpatel <maharshivpatel@users.noreply.github.com>
2025-09-29 12:15:51 +05:30
Akhil Narang
def0746806
build(deps): bump weasyprint
Fixes an error with pydyf

```
  File "env/lib/python3.11/site-packages/weasyprint/document.py", line 399, in write_pdf
    pdf = generate_pdf(self, target, zoom, **options)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "env/lib/python3.11/site-packages/weasyprint/pdf/__init__.py", line 120, in generate_pdf
    pdf = pydyf.PDF((version or '1.7'), identifier)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: PDF.__init__() takes 1 positional argument but 3 were given
```

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-09-01 15:11:45 +05:30
Ayush Chaudhari
437483f612 chore(deps): bump coverage 2025-08-14 16:26:16 +05:30
Akhil Narang
c8418e174e
chore(deps): bump pypdf (#33643)
Resolves GHSA-7hfw-26vp-jp8m

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-08-14 09:46:03 +00:00
Akhil Narang
9a94e73489
feat: add in support for _inplacevar_ (#31921)
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-08-01 13:50:43 +05:30
Akhil Narang
b607500daf
build(deps): bump pillow (#33193)
Resolves PYSEC-2025-61
2025-07-02 17:31:30 +05:30
Sagar Vora
b857a4099a perf: use orjson for faster request processing 2025-06-26 17:37:51 +05:30
Ankush Menat
8fbe452b4d
chore: Drop pdbpp (#32992)
Breaks console sometimes, don't see as much value TBH

```
Traceback (most recent call last):
  File "/Users/mihirkandoi/Developer/frappe-develop/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/click/core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/click/core.py", line 788, in invoke
    return __callback(*args, **kwargs)
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/Users/mihirkandoi/Developer/frappe-develop/apps/frappe/frappe/commands/__init__.py", line 28, in _func
    ret = f(ctx.obj, *args, **kwargs)
  File "/Users/mihirkandoi/Developer/frappe-develop/apps/frappe/frappe/commands/utils.py", line 646, in console
    from IPython.terminal.embed import InteractiveShellEmbed
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/IPython/__init__.py", line 53, in <module>
    from .core.application import Application
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/IPython/core/application.py", line 26, in <module>
    from IPython.core import release, crashhandler
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/IPython/core/crashhandler.py", line 27, in <module>
    from IPython.core import ultratb
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/IPython/core/ultratb.py", line 111, in <module>
    from IPython.core import debugger
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/IPython/core/debugger.py", line 122, in <module>
    from pdb import Pdb as OldPdb
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/_pdbpp_path_hack/pdb.py", line 5, in <module>
    exec(compile(f.read(), pdb_path, 'exec'))
    ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mihirkandoi/Developer/frappe-develop/env/lib/python3.13/site-packages/pdb.py", line 28, in <module>
    __version__ = fancycompleter.LazyVersion('pdbpp')
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'fancycompleter' has no attribute 'LazyVersion'

module 'fancycompleter' has no attribute 'LazyVersion'
```
2025-06-18 07:19:35 +00:00
Akhil Narang
865e086bd4
build: bump dependencies (#32975)
* build(deps): bump babel

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump filelock

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump GitPython

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump Jinja2

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump Pillow

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump PyJWT

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump pypdf

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump pydyf

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump werkzeug

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump bs4

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump bleach

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump chardet

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump croniter

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump cryptography

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump pyopenssl

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump cssutils

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump markdown2

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump markupsafe

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump num2words

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump openpyxl

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump phonenumbers

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump psutil

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump pydantic

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump pyotp

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump dateutil

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump ipython

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump pytz

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump hiredis

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump requests-oauthlib

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump requests

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump rsa

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump sql_metadata

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump tenacity

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump traceback-with-variables

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump tomli

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump uuid-utils

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump xlrd

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump zxcvbn

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump markdownify

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump google libraries

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump posthog

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* build(deps): bump vobject

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

* fix(zxcvbn): set max password length as 128

We allow checking till 128 characters, v4.5.0 has a default max of 72

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

---------

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-06-18 12:33:36 +05:30
Soham Kulkarni
77eda41443
Merge pull request #32351 from sokumon/offsite-backups-removal
refactor: separating backup integrations into an app
2025-06-17 23:30:51 +05:30
Ankush Menat
764410761f
build: Bump RQ (#32969)
https://github.com/rq/rq/compare/v2.3.2...v2.4
2025-06-17 18:48:29 +05:30
sokumon
422995cd45 fix: seperate backup options into app 2025-06-14 23:59:22 +05:30
Ankush Menat
e4bc7f361b
Revert: DocRef (#32866)
- Hardly used anywhere
- Too many hardcoded `__value__` calls without which it's not usable.
- Another type to worry about
2025-06-10 05:20:56 +00:00
Soham Kulkarni
eb7d597e34
chore: bump sentry-sdk (#32856) 2025-06-09 20:15:21 +05:30
sokumon
c645b2dd5e chore: bump redis 2025-05-30 12:40:58 +05:30
sokumon
22e00c46c9 chore: pin click version 2025-05-12 01:34:39 +05:30
Ankush Menat
af6b896ba1
build: bump gunicorn (#32453)
* build: bump gunicorn

* build: bump gunicorn again

minor cleanups and sync upstream
2025-05-07 16:36:50 +00:00
Soham Kulkarni
1dba06e834
chore: bump markdownify to 0.14.1 (#32348) 2025-04-29 15:31:35 +05:30
Ankush Menat
9356f5d2e8
build: Bump RQ (#32169) 2025-04-16 17:31:26 +05:30
Akhil Narang
ab4c2826a9
chore(deps): track fork of pypika
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:17 +05:30
Akhil Narang
78640cb205
fix: only exclude RUF001 where we're using some ambiguous characters
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-10 12:57:18 +05:30
jll-02
3da1b13b3e
fix: make app installation possible again
version bump for pyYAML to make the installation possible again. before cython threw an error on the installation
2025-04-09 15:45:19 +02:00
Ankush Menat
0f7099c527
build: bump RQ to latest (#31952)
perf fix for busy pubsub thread
2025-03-29 06:39:24 +00:00
Ankush Menat
5a5ad3032c
fix: procline crash (#31845)
* fix: Skip rollback if no DB

* fix: drop proctitle from dependency

- While it improves our own processes, it makes gunicorn process titles worse
- It also crashes on mac because of some unknown reason related to fork-safety.

Best to not use this.
2025-03-21 12:30:19 +05:30
Ankush Menat
4fac934cec
perf: long-lived posthog threads (#31821)
* build: bump posthog to latest

* perf: Use long living posthog client
2025-03-20 12:36:17 +05:30
Ankush Menat
950073a27e
build: pin exact version of mysqlclient (#31730) 2025-03-15 06:20:23 +00:00
Sagar Vora
b2cab51849
feat: re-introduce mysqlclient 🚀 (#31719)
* feat: mysqlclient

* fix: update error attrs

* fix: decode mogrified query to unicode

* fix: do some cleanup

* chore: disable cleanup for now

* fix: remove unnecessary call to as_unicode

* test: skip perf test for now

* fix: fallback to empty str

* fix: unbuffered cursor support

* fix: update converters and other changes

* fix: add cleanup back

* perf: improve timedelta converter

* fix: dont attempt to run query when explain flag is set

* test: cleanup tests

* chore: remove commented code

* perf: store conf as local var

* chore: ensure sequence

---------

Co-authored-by: Ankush Menat <ankush@frappe.io>
2025-03-15 09:48:21 +05:30
Sagar Vora
29c318964b
Revert "perf!: faster frappedict getattr" 2025-03-12 18:35:33 +05:30
Sagar Vora
04eee35b40 perf: faster frappedict getattr 2025-03-12 12:43:01 +05:30
Christopher McKay
4e39f2f108 fix: Update phonenumber library to handle new GY phone number format
The phonenumber library was updated from version 8.13.13 to 8.13.55 to address an issue where new Guyanese (GY) phone numbers starting with +592 7 were being incorrectly marked as invalid.  Previously, only numbers starting with +592 6 were recognized. This change ensures that users can now correctly submit phone numbers with the updated format in forms.
2025-02-20 07:36:29 +00:00
Akhil Narang
68d52f6da7
chore(deps): bump pyopenssl to match cryptography
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-02-12 18:52:08 +05:30
Akhil Narang
9743f11ce5
chore(deps): bump cryptography to 44.0.1
This resolves GHSA-79v4-65xg-pq4g

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-02-12 18:37:41 +05:30