From 27ae142e77861cc48ca22eb5337e6d248b68847f Mon Sep 17 00:00:00 2001 From: Miguel Sanda Date: Tue, 10 Sep 2024 10:25:10 -0400 Subject: [PATCH] v0.6.4 (#223) * Relaxing Dependency Constraints * Issue 208 ofx files (#209) * fix: initial attempt * Allow .qfx files in data_import form. The accept attribute in the file-input field now includes .qfx files. This permits users to import data from files in .qfx format in addition to the previously supported .ofx format. * remove debugging lines, remove debug code, add sample ofx for tests --------- Co-authored-by: Miguel Sanda * v0.6.3 (#214) * Add proxy functions to JournalEntry model The commit introduces proxy functions to the JournalEntry model in the Django Ledger code. Specifically, it adds 'post', 'unpost', 'lock', and 'unlock' methods, each serving as a proxy to their counterpart methods 'mark_as_posted', 'mark_as_unposted', 'mark_as_locked', and 'mark_as_unlocked'. This simplifies the interface for interacting with JournalEntry objects. * Minor code optimization & Django Ledger admin fields. * access the queryset instance using .all() which returns a queryset. (#213) * Correct urls for going back in entity and ledger balance sheet view (#215) * Add signal handling for various models' statuses Added signals for different status changes of Django Ledger models to enable real-time, event-driven system behavior. Signals are now sent each time an action is performed in the Ledger, Invoice, Bill, Journal Entry, Purchase Order, and Estimate. These changes will allow us to trigger specific actions depending on these changes. * Update Python version and package versions in Pipfile Updated the Python version from 3.11 to 3.12 in Pipfile and Pipfile.lock. Also, updated the package versions of 'django', 'faker' and 'pillow' in Pipfile.lock for improved functionality and security. * Update Django Ledger version to 0.6.3 This commit updates the version number of the Django Ledger project in both __init__.py and pyproject.toml files. The version has been incremented from 0.6.2 to 0.6.3. * Update signal comments in models Updated the comments in the signals.py file to clearly specify that the signals correspond to Journal Entry Models. Additional context was also included for the signals module to enhance clarity for developers in understanding the importance of events or states in the models. * Update documentation structure Rearrange sections in documentation, focusing on IO and models. For docs/source/models.rst, the automodule section for django_ledger.models.signals was added. Meanwhile, in docs/source/io.rst, sections were reshuffled and terms updated for better clarity. These steps aim to enhance documentation readability and accuracy. --------- Co-authored-by: Eric paul <65466957+25-do@users.noreply.github.com> Co-authored-by: Ubaid ur Rehman * Update dependencies versions in Pipfile.lock Upgraded several packages to their latest versions, including Faker, Alabaster, and SQLParse, among others. Added new dependencies appnope and backports.tarfile, and adjusted Python version markers for some packages. Removed cryptography and jeepney from the list of dependencies. * Updated Logos * comment out attribute that doesn't exist (#220) * Docker Fix (#218) * Update version to 0.6.4 Bump the version number in `__init__.py` and `pyproject.toml`. This update ensures consistency and readiness for the next release cycle. * API authentication (#217) * access the queryset instance using .all() which returns a queryset. * fixed invalid client * changes in API authentication usage * API Authentication usage * Add DjangoCon2024 Jupyter notebook example Introduced a detailed Jupyter notebook for DjangoCon 2024. This notebook demonstrates various functionalities including setting up Django, creating a UserModel, defining an EntityModel, and creating and populating a Chart of Accounts. * Update entity model CoA handling and streamline notebook Enhanced the entity model to handle various types for CoA (Chart of Accounts) input. Cleared execution counts and outputs from DjangoCon2024 notebook for better clarity. * Add support for validating parent roles in accounts Implemented `VALID_PARENTS` to allow filtering accounts based on hierarchical roles. This ensures that parent-child relationships between account roles are correctly validated and managed. * Pipfile Update * Refactor and improve docs for AccountModel and QuerySets Refactored and enhanced documentation for AccountModel and its related query sets to ensure clarity and consistency. Introduced detailed attribute descriptions and method explanations while maintaining code functionality. --------- Co-authored-by: Tom Hodder Co-authored-by: Eric paul <65466957+25-do@users.noreply.github.com> Co-authored-by: Ubaid ur Rehman Co-authored-by: Krzysztof Czapla <107809367+KrzysztofCzapla@users.noreply.github.com> --- Dockerfile | 4 - Pipfile | 8 +- Pipfile.lock | 1328 +++++++++-------- dev_env/settings.py | 4 + django_ledger/__init__.py | 2 +- django_ledger/admin/coa.py | 3 +- .../contrib/django_ledger_graphene/README.md | 147 +- django_ledger/forms/account.py | 33 +- django_ledger/io/roles.py | 6 + django_ledger/models/accounts.py | 719 ++++++--- django_ledger/models/entity.py | 17 +- django_ledger/report/cash_flow_statement.py | 2 +- .../logo_2/django_ledger_logo_dark.png | Bin 0 -> 12705 bytes .../logo_2/django_ledger_logo_dark@0.5x.png | Bin 0 -> 5873 bytes .../logo_2/django_ledger_logo_dark@2x.png | Bin 0 -> 27393 bytes .../logo_2/django_ledger_logo_dark@3x.png | Bin 0 -> 44334 bytes .../django_ledger/logo_2/djl-full-vert.png | Bin 0 -> 12705 bytes .../logo_2/djl-full-vert@0.5x.png | Bin 0 -> 5873 bytes .../django_ledger/logo_2/djl-full-vert@2x.png | Bin 0 -> 27393 bytes .../django_ledger/logo_2/djl-full-vert@3x.png | Bin 0 -> 44334 bytes .../logo_2/djl-logo-full-horiz.png | Bin 0 -> 23504 bytes .../logo_2/djl-logo-full-horiz@0.5x.png | Bin 0 -> 10542 bytes .../logo_2/djl-logo-full-horiz@2x.png | Bin 0 -> 53806 bytes .../logo_2/djl-logo-full-horiz@3x.png | Bin 0 -> 89048 bytes .../logo_2/djl-logo-full-vert.png | Bin 0 -> 12705 bytes .../logo_2/djl-logo-full-vert@0.5x.png | Bin 0 -> 5873 bytes .../logo_2/djl-logo-full-vert@2x.png | Bin 0 -> 27393 bytes .../logo_2/djl-logo-full-vert@3x.png | Bin 0 -> 44334 bytes .../static/django_ledger/logo_2/djl-logo.png | Bin 0 -> 2679 bytes .../django_ledger/logo_2/djl-logo@0.5x.png | Bin 0 -> 1397 bytes .../django_ledger/logo_2/djl-logo@2x.png | Bin 0 -> 5269 bytes .../django_ledger/logo_2/djl-logo@3x.png | Bin 0 -> 9615 bytes .../logo_2/djl-txt-full-horiz.png | Bin 0 -> 19242 bytes .../logo_2/djl-txt-full-horiz@0.5x.png | Bin 0 -> 8400 bytes .../logo_2/djl-txt-full-horiz@2x.png | Bin 0 -> 43276 bytes .../logo_2/djl-txt-full-horiz@3x.png | Bin 0 -> 70908 bytes .../logo_2/djl-txt-full-vert.png | Bin 0 -> 9723 bytes .../logo_2/djl-txt-full-vert@0.5x.png | Bin 0 -> 4065 bytes .../logo_2/djl-txt-full-vert@2x.png | Bin 0 -> 21114 bytes .../logo_2/djl-txt-full-vert@3x.png | Bin 0 -> 33477 bytes .../django_ledger/logo_2/djl-txt-horiz.png | Bin 0 -> 12613 bytes .../logo_2/djl-txt-horiz@0.5x.png | Bin 0 -> 5473 bytes .../django_ledger/logo_2/djl-txt-horiz@2x.png | Bin 0 -> 28644 bytes .../django_ledger/logo_2/djl-txt-horiz@3x.png | Bin 0 -> 47304 bytes docker-compose.yml | 1 - notebooks/DjangoCon2024.ipynb | 1081 ++++++++++++++ notebooks/QuickStart Notebook.ipynb | 53 +- pyproject.toml | 2 +- 48 files changed, 2391 insertions(+), 1019 deletions(-) create mode 100644 django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark.png create mode 100644 django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-full-vert.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-full-vert@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-full-vert@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-full-vert@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-vert.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-logo@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-vert.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@3x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-horiz.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-horiz@0.5x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-horiz@2x.png create mode 100644 django_ledger/static/django_ledger/logo_2/djl-txt-horiz@3x.png create mode 100644 notebooks/DjangoCon2024.ipynb diff --git a/Dockerfile b/Dockerfile index bb1d9fa8..5f3270d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,12 +11,8 @@ RUN pip3 install --upgrade pip RUN pip3 install -U pipenv -COPY Pipfile Pipfile.lock /app/ - COPY . /app/ -COPY entrypoint.sh /app/ - RUN pipenv install EXPOSE 8000 diff --git a/Pipfile b/Pipfile index f3fd0e29..752c3c3a 100644 --- a/Pipfile +++ b/Pipfile @@ -4,7 +4,7 @@ verify_ssl = true name = "pypi" [packages] -django = ">=4.2" +django = ">=2.2" django-treebeard = ">=4.5.1" ofxtools = ">=0.9.5" markdown = ">=3.4.1" @@ -26,12 +26,6 @@ behave = "*" twine = "*" jupyterlab = "*" pandas = "*" -#pipenv-setup = "*" -#pylint = "*" -#furo = "*" -#python-dotenv = "*" -#tabulate = "*" -#myst_parser = "*" [requires] python_version = "3.12" diff --git a/Pipfile.lock b/Pipfile.lock index f7ac7f83..80723104 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "448a581717791a32df9cbc7a1ffcd57d48070cbe10b5cd7289bb78b9489d1f78" + "sha256": "144d422614b7c1e67533f6fa7a01767a4f90bab17ecde1600f255c901d34664e" }, "pipfile-spec": 6, "requires": { @@ -26,12 +26,12 @@ }, "django": { "hashes": [ - "sha256:bd4505cae0b9bd642313e8fb71810893df5dc2ffcacaa67a33af2d5cd61888f2", - "sha256:f216510ace3de5de01329463a315a629f33480e893a9024fc93d8c32c22913da" + "sha256:021ffb7fdab3d2d388bc8c7c2434eb9c1f6f4d09e6119010bbb1694dda286bc2", + "sha256:71603f27dac22a6533fb38d83072eea9ddb4017fead6f67f2562a40402d61c3f" ], "index": "pypi", "markers": "python_version >= '3.10'", - "version": "==5.0.7" + "version": "==5.1.1" }, "django-treebeard": { "hashes": [ @@ -44,21 +44,21 @@ }, "faker": { "hashes": [ - "sha256:0f60978314973de02c00474c2ae899785a42b2cf4f41b7987e93c132a2b8a4a9", - "sha256:886ee28219be96949cd21ecc96c4c742ee1680e77f687b095202c8def1a08f06" + "sha256:4294d169255a045990720d6f3fa4134b764a4cdf46ef0d3c7553d2506f1adaa1", + "sha256:e59c01d1e8b8e20a83255ab8232c143cb2af3b4f5ab6a3f5ce495f385ad8ab4c" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==26.0.0" + "version": "==28.4.1" }, "markdown": { "hashes": [ - "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f", - "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224" + "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", + "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==3.6" + "version": "==3.7" }, "ofxtools": { "hashes": [ @@ -173,21 +173,21 @@ }, "sqlparse": { "hashes": [ - "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93", - "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663" + "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4", + "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e" ], "markers": "python_version >= '3.8'", - "version": "==0.5.0" + "version": "==0.5.1" } }, "develop": { "alabaster": { "hashes": [ - "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65", - "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92" + "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", + "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b" ], - "markers": "python_version >= '3.9'", - "version": "==0.7.16" + "markers": "python_version >= '3.10'", + "version": "==1.0.0" }, "anyio": { "hashes": [ @@ -197,6 +197,14 @@ "markers": "python_version >= '3.8'", "version": "==4.4.0" }, + "appnope": { + "hashes": [ + "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", + "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c" + ], + "markers": "platform_system == 'Darwin'", + "version": "==0.1.4" + }, "argon2-cffi": { "hashes": [ "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08", @@ -257,19 +265,27 @@ }, "attrs": { "hashes": [ - "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1" + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" ], "markers": "python_version >= '3.7'", - "version": "==23.2.0" + "version": "==24.2.0" }, "babel": { "hashes": [ - "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb", - "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413" + "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", + "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316" ], "markers": "python_version >= '3.8'", - "version": "==2.15.0" + "version": "==2.16.0" + }, + "backports.tarfile": { + "hashes": [ + "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", + "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991" + ], + "markers": "python_version < '3.12'", + "version": "==1.2.0" }, "beautifulsoup4": { "hashes": [ @@ -298,69 +314,84 @@ }, "certifi": { "hashes": [ - "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b", - "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90" + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" ], "markers": "python_version >= '3.6'", - "version": "==2024.7.4" + "version": "==2024.8.30" }, "cffi": { "hashes": [ - "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", - "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", - "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", - "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", - "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", - "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", - "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", - "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", - "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", - "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", - "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", - "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", - "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", - "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", - "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", - "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", - "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", - "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", - "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", - "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", - "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", - "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", - "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", - "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", - "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", - "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", - "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", - "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", - "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", - "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", - "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", - "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", - "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", - "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", - "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", - "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", - "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", - "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", - "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", - "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", - "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", - "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", - "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", - "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", - "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", - "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", - "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", - "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", - "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", - "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", - "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", - "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" - ], - "markers": "platform_python_implementation != 'PyPy'", - "version": "==1.16.0" + "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", + "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", + "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", + "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", + "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", + "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", + "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", + "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", + "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", + "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", + "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", + "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", + "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", + "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", + "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", + "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", + "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", + "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", + "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", + "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", + "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", + "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", + "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", + "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", + "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", + "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", + "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", + "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", + "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", + "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", + "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", + "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", + "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", + "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", + "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", + "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", + "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", + "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", + "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", + "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", + "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", + "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", + "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", + "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", + "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", + "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", + "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", + "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" + ], + "markers": "python_version >= '3.8'", + "version": "==1.17.1" }, "charset-normalizer": { "hashes": [ @@ -466,71 +497,33 @@ "markers": "python_version >= '3.8'", "version": "==0.2.2" }, - "cryptography": { - "hashes": [ - "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad", - "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583", - "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b", - "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c", - "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1", - "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648", - "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949", - "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba", - "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c", - "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9", - "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d", - "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c", - "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e", - "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2", - "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d", - "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7", - "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70", - "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2", - "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7", - "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14", - "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe", - "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e", - "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71", - "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961", - "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7", - "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c", - "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28", - "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842", - "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902", - "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801", - "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a", - "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e" - ], - "markers": "python_version >= '3.7'", - "version": "==42.0.8" - }, "debugpy": { "hashes": [ - "sha256:0600faef1d0b8d0e85c816b8bb0cb90ed94fc611f308d5fde28cb8b3d2ff0fe3", - "sha256:1523bc551e28e15147815d1397afc150ac99dbd3a8e64641d53425dba57b0ff9", - "sha256:15bc2f4b0f5e99bf86c162c91a74c0631dbd9cef3c6a1d1329c946586255e859", - "sha256:16c8dcab02617b75697a0a925a62943e26a0330da076e2a10437edd9f0bf3755", - "sha256:16e16df3a98a35c63c3ab1e4d19be4cbc7fdda92d9ddc059294f18910928e0ca", - "sha256:2cbd4d9a2fc5e7f583ff9bf11f3b7d78dfda8401e8bb6856ad1ed190be4281ad", - "sha256:3f8c3f7c53130a070f0fc845a0f2cee8ed88d220d6b04595897b66605df1edd6", - "sha256:40f062d6877d2e45b112c0bbade9a17aac507445fd638922b1a5434df34aed02", - "sha256:5a019d4574afedc6ead1daa22736c530712465c0c4cd44f820d803d937531b2d", - "sha256:5d3ccd39e4021f2eb86b8d748a96c766058b39443c1f18b2dc52c10ac2757835", - "sha256:62658aefe289598680193ff655ff3940e2a601765259b123dc7f89c0239b8cd3", - "sha256:7ee2e1afbf44b138c005e4380097d92532e1001580853a7cb40ed84e0ef1c3d2", - "sha256:7f8d57a98c5a486c5c7824bc0b9f2f11189d08d73635c326abef268f83950326", - "sha256:8a13417ccd5978a642e91fb79b871baded925d4fadd4dfafec1928196292aa0a", - "sha256:95378ed08ed2089221896b9b3a8d021e642c24edc8fef20e5d4342ca8be65c00", - "sha256:acdf39855f65c48ac9667b2801234fc64d46778021efac2de7e50907ab90c634", - "sha256:bd11fe35d6fd3431f1546d94121322c0ac572e1bfb1f6be0e9b8655fb4ea941e", - "sha256:c78ba1680f1015c0ca7115671fe347b28b446081dada3fedf54138f44e4ba031", - "sha256:cf327316ae0c0e7dd81eb92d24ba8b5e88bb4d1b585b5c0d32929274a66a5210", - "sha256:d3408fddd76414034c02880e891ea434e9a9cf3a69842098ef92f6e809d09afa", - "sha256:e24ccb0cd6f8bfaec68d577cb49e9c680621c336f347479b3fce060ba7c09ec1", - "sha256:f179af1e1bd4c88b0b9f0fa153569b24f6b6f3de33f94703336363ae62f4bf47" - ], - "markers": "python_version >= '3.8'", - "version": "==1.8.2" + "sha256:0a1029a2869d01cb777216af8c53cda0476875ef02a2b6ff8b2f2c9a4b04176c", + "sha256:1cd04a73eb2769eb0bfe43f5bfde1215c5923d6924b9b90f94d15f207a402226", + "sha256:28ced650c974aaf179231668a293ecd5c63c0a671ae6d56b8795ecc5d2f48d3c", + "sha256:345d6a0206e81eb68b1493ce2fbffd57c3088e2ce4b46592077a943d2b968ca3", + "sha256:3df6692351172a42af7558daa5019651f898fc67450bf091335aa8a18fbf6f3a", + "sha256:4413b7a3ede757dc33a273a17d685ea2b0c09dbd312cc03f5534a0fd4d40750a", + "sha256:4fbb3b39ae1aa3e5ad578f37a48a7a303dad9a3d018d369bc9ec629c1cfa7408", + "sha256:55919dce65b471eff25901acf82d328bbd5b833526b6c1364bd5133754777a44", + "sha256:5b5c770977c8ec6c40c60d6f58cacc7f7fe5a45960363d6974ddb9b62dbee156", + "sha256:606bccba19f7188b6ea9579c8a4f5a5364ecd0bf5a0659c8a5d0e10dcee3032a", + "sha256:7b0fe36ed9d26cb6836b0a51453653f8f2e347ba7348f2bbfe76bfeb670bfb1c", + "sha256:7e4d594367d6407a120b76bdaa03886e9eb652c05ba7f87e37418426ad2079f7", + "sha256:8f913ee8e9fcf9d38a751f56e6de12a297ae7832749d35de26d960f14280750a", + "sha256:a697beca97dad3780b89a7fb525d5e79f33821a8bc0c06faf1f1289e549743cf", + "sha256:ad84b7cde7fd96cf6eea34ff6c4a1b7887e0fe2ea46e099e53234856f9d99a34", + "sha256:b2112cfeb34b4507399d298fe7023a16656fc553ed5246536060ca7bd0e668d0", + "sha256:b78c1250441ce893cb5035dd6f5fc12db968cc07f91cc06996b2087f7cefdd8e", + "sha256:c0a65b00b7cdd2ee0c2cf4c7335fef31e15f1b7056c7fdbce9e90193e1a8c8cb", + "sha256:c9f7c15ea1da18d2fcc2709e9f3d6de98b69a5b0fff1807fb80bc55f906691f7", + "sha256:db9fb642938a7a609a6c865c32ecd0d795d56c1aaa7a7a5722d77855d5e77f2b", + "sha256:dd3811bd63632bb25eda6bd73bea8e0521794cda02be41fa3160eb26fc29e7ed", + "sha256:e84c276489e141ed0b93b0af648eef891546143d6a48f610945416453a8ad406" + ], + "markers": "python_version >= '3.8'", + "version": "==1.8.5" }, "decorator": { "hashes": [ @@ -558,11 +551,11 @@ }, "executing": { "hashes": [ - "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147", - "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc" + "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", + "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab" ], - "markers": "python_version >= '3.5'", - "version": "==2.0.1" + "markers": "python_version >= '3.8'", + "version": "==2.1.0" }, "fastjsonschema": { "hashes": [ @@ -596,19 +589,19 @@ }, "httpx": { "hashes": [ - "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5", - "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5" + "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0", + "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2" ], "markers": "python_version >= '3.8'", - "version": "==0.27.0" + "version": "==0.27.2" }, "idna": { "hashes": [ - "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", - "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0" + "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac", + "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603" ], - "markers": "python_version >= '3.5'", - "version": "==3.7" + "markers": "python_version >= '3.6'", + "version": "==3.8" }, "imagesize": { "hashes": [ @@ -620,11 +613,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f", - "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812" + "sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1", + "sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5" ], "markers": "python_version >= '3.8'", - "version": "==8.0.0" + "version": "==8.4.0" }, "ipykernel": { "hashes": [ @@ -636,11 +629,11 @@ }, "ipython": { "hashes": [ - "sha256:1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c", - "sha256:e6b347c27bdf9c32ee9d31ae85defc525755a1869f14057e900675b9e8d6e6ff" + "sha256:0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e", + "sha256:f68b3cb8bde357a5d7adc9598d57e22a45dfbea19eb6b98286fa3b288c9cd55c" ], "markers": "python_version >= '3.10'", - "version": "==8.26.0" + "version": "==8.27.0" }, "isoduration": { "hashes": [ @@ -659,19 +652,19 @@ }, "jaraco.context": { "hashes": [ - "sha256:3e16388f7da43d384a1a7cd3452e72e14732ac9fe459678773a3608a812bf266", - "sha256:c2f67165ce1f9be20f32f650f25d8edfc1646a8aeee48ae06fb35f90763576d2" + "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", + "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4" ], "markers": "python_version >= '3.8'", - "version": "==5.3.0" + "version": "==6.0.1" }, "jaraco.functools": { "hashes": [ - "sha256:3b24ccb921d6b593bdceb56ce14799204f473976e2a9d4b15b04d0f2c2326664", - "sha256:d33fa765374c0611b52f8b3a795f8900869aa88c84769d4d1746cd68fb28c3e8" + "sha256:3460c74cd0d32bf82b9576bbb3527c4364d5b27a21f5158a62aed6c4b42e23f5", + "sha256:c9d16a3ed4ccb5a889ad8e0b7a343401ee5b2a71cee6ed192d3f68bc351e94e3" ], "markers": "python_version >= '3.8'", - "version": "==4.0.1" + "version": "==4.0.2" }, "jedi": { "hashes": [ @@ -681,14 +674,6 @@ "markers": "python_version >= '3.6'", "version": "==0.19.1" }, - "jeepney": { - "hashes": [ - "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806", - "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755" - ], - "markers": "sys_platform == 'linux'", - "version": "==0.8.0" - }, "jinja2": { "hashes": [ "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", @@ -765,11 +750,11 @@ }, "jupyter-server": { "hashes": [ - "sha256:12558d158ec7a0653bf96cc272bc7ad79e0127d503b982ed144399346694f726", - "sha256:16f7177c3a4ea8fe37784e2d31271981a812f0b2874af17339031dc3510cc2a5" + "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd", + "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b" ], "markers": "python_version >= '3.8'", - "version": "==2.14.1" + "version": "==2.14.2" }, "jupyter-server-terminals": { "hashes": [ @@ -781,12 +766,12 @@ }, "jupyterlab": { "hashes": [ - "sha256:0b59d11808e84bb84105c73364edfa867dd475492429ab34ea388a52f2e2e596", - "sha256:df6e46969ea51d66815167f23d92f105423b7f1f06fa604d4f44aeb018c82c7b" + "sha256:73b6e0775d41a9fee7ee756c80f58a6bed4040869ccc21411dc559818874d321", + "sha256:ae7f3a1b8cb88b4f55009ce79fa7c06f99d70cd63601ee4aa91815d054f46f75" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==4.2.3" + "version": "==4.2.5" }, "jupyterlab-pygments": { "hashes": [ @@ -798,19 +783,19 @@ }, "jupyterlab-server": { "hashes": [ - "sha256:15cbb349dc45e954e09bacf81b9f9bcb10815ff660fb2034ecd7417db3a7ea27", - "sha256:54aa2d64fd86383b5438d9f0c032f043c4d8c0264b8af9f60bd061157466ea43" + "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4", + "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4" ], "markers": "python_version >= '3.8'", - "version": "==2.27.2" + "version": "==2.27.3" }, "keyring": { "hashes": [ - "sha256:2458681cdefc0dbc0b7eb6cf75d0b98e59f9ad9b2d4edd319d18f68bdca95e50", - "sha256:daaffd42dbda25ddafb1ad5fec4024e5bbcfe424597ca1ca452b299861e49f1b" + "sha256:8d85a1ea5d6db8515b59e1c5d1d1678b03cf7fc8b8dcfb1651e8c4a524eb42ef", + "sha256:8d963da00ccdf06e356acd9bf3b743208878751032d8599c6cc89eb51310ffae" ], "markers": "python_version >= '3.8'", - "version": "==25.2.1" + "version": "==25.3.0" }, "markdown-it-py": { "hashes": [ @@ -912,11 +897,11 @@ }, "more-itertools": { "hashes": [ - "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463", - "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320" + "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", + "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6" ], "markers": "python_version >= '3.8'", - "version": "==10.3.0" + "version": "==10.5.0" }, "nbclient": { "hashes": [ @@ -981,54 +966,62 @@ }, "numpy": { "hashes": [ - "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f", - "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238", - "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f", - "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95", - "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a", - "sha256:1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a", - "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2", - "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2", - "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f", - "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609", - "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f", - "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad", - "sha256:3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86", - "sha256:3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65", - "sha256:4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb", - "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995", - "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a", - "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85", - "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4", - "sha256:63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275", - "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1", - "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196", - "sha256:821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d", - "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e", - "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514", - "sha256:903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f", - "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6", - "sha256:9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4", - "sha256:9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44", - "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df", - "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581", - "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787", - "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5", - "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc", - "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871", - "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54", - "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2", - "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98", - "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9", - "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864", - "sha256:e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de", - "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289", - "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b", - "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c", - "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9" - ], - "markers": "python_version >= '3.12'", - "version": "==2.0.0" + "sha256:046356b19d7ad1890c751b99acad5e82dc4a02232013bd9a9a712fddf8eb60f5", + "sha256:0b8cc2715a84b7c3b161f9ebbd942740aaed913584cae9cdc7f8ad5ad41943d0", + "sha256:0d07841fd284718feffe7dd17a63a2e6c78679b2d386d3e82f44f0108c905550", + "sha256:13cc11c00000848702322af4de0147ced365c81d66053a67c2e962a485b3717c", + "sha256:13ce49a34c44b6de5241f0b38b07e44c1b2dcacd9e36c30f9c2fcb1bb5135db7", + "sha256:24c2ad697bd8593887b019817ddd9974a7f429c14a5469d7fad413f28340a6d2", + "sha256:251105b7c42abe40e3a689881e1793370cc9724ad50d64b30b358bbb3a97553b", + "sha256:2ca4b53e1e0b279142113b8c5eb7d7a877e967c306edc34f3b58e9be12fda8df", + "sha256:3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f", + "sha256:397bc5ce62d3fb73f304bec332171535c187e0643e176a6e9421a6e3eacef06d", + "sha256:3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270", + "sha256:50a95ca3560a6058d6ea91d4629a83a897ee27c00630aed9d933dff191f170cd", + "sha256:52ac2e48f5ad847cd43c4755520a2317f3380213493b9d8a4c5e37f3b87df504", + "sha256:53e27293b3a2b661c03f79aa51c3987492bd4641ef933e366e0f9f6c9bf257ec", + "sha256:57eb525e7c2a8fdee02d731f647146ff54ea8c973364f3b850069ffb42799647", + "sha256:5889dd24f03ca5a5b1e8a90a33b5a0846d8977565e4ae003a63d22ecddf6782f", + "sha256:59ca673ad11d4b84ceb385290ed0ebe60266e356641428c845b39cd9df6713ab", + "sha256:6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe", + "sha256:6e5a9cb2be39350ae6c8f79410744e80154df658d5bea06e06e0ac5bb75480d5", + "sha256:7be6a07520b88214ea85d8ac8b7d6d8a1839b0b5cb87412ac9f49fa934eb15d5", + "sha256:7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e", + "sha256:7dd86dfaf7c900c0bbdcb8b16e2f6ddf1eb1fe39c6c8cca6e94844ed3152a8fd", + "sha256:8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313", + "sha256:8ae0fd135e0b157365ac7cc31fff27f07a5572bdfc38f9c2d43b2aff416cc8b0", + "sha256:910b47a6d0635ec1bd53b88f86120a52bf56dcc27b51f18c7b4a2e2224c29f0f", + "sha256:913cc1d311060b1d409e609947fa1b9753701dac96e6581b58afc36b7ee35af6", + "sha256:920b0911bb2e4414c50e55bd658baeb78281a47feeb064ab40c2b66ecba85553", + "sha256:950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed", + "sha256:981707f6b31b59c0c24bcda52e5605f9701cb46da4b86c2e8023656ad3e833cb", + "sha256:98ce7fb5b8063cfdd86596b9c762bf2b5e35a2cdd7e967494ab78a1fa7f8b86e", + "sha256:99f4a9ee60eed1385a86e82288971a51e71df052ed0b2900ed30bc840c0f2e39", + "sha256:9a8e06c7a980869ea67bbf551283bbed2856915f0a792dc32dd0f9dd2fb56728", + "sha256:ae8ce252404cdd4de56dcfce8b11eac3c594a9c16c231d081fb705cf23bd4d9e", + "sha256:afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a", + "sha256:b49742cdb85f1f81e4dc1b39dcf328244f4d8d1ded95dea725b316bd2cf18c95", + "sha256:b5613cfeb1adfe791e8e681128f5f49f22f3fcaa942255a6124d58ca59d9528f", + "sha256:bab7c09454460a487e631ffc0c42057e3d8f2a9ddccd1e60c7bb8ed774992480", + "sha256:c8a0e34993b510fc19b9a2ce7f31cb8e94ecf6e924a40c0c9dd4f62d0aac47d9", + "sha256:caf5d284ddea7462c32b8d4a6b8af030b6c9fd5332afb70e7414d7fdded4bfd0", + "sha256:cea427d1350f3fd0d2818ce7350095c1a2ee33e30961d2f0fef48576ddbbe90f", + "sha256:d0cf7d55b1051387807405b3898efafa862997b4cba8aa5dbe657be794afeafd", + "sha256:d10c39947a2d351d6d466b4ae83dad4c37cd6c3cdd6d5d0fa797da56f710a6ae", + "sha256:d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201", + "sha256:d4c57b68c8ef5e1ebf47238e99bf27657511ec3f071c465f6b1bccbef12d4136", + "sha256:d51fc141ddbe3f919e91a096ec739f49d686df8af254b2053ba21a910ae518bf", + "sha256:e097507396c0be4e547ff15b13dc3866f45f3680f789c1a1301b07dadd3fbc78", + "sha256:e30356d530528a42eeba51420ae8bf6c6c09559051887196599d96ee5f536468", + "sha256:e8d5f8a8e3bc87334f025194c6193e408903d21ebaeb10952264943a985066ca", + "sha256:e8dfa9e94fc127c40979c3eacbae1e61fda4fe71d84869cc129e2721973231ef", + "sha256:f212d4f46b67ff604d11fff7cc62d36b3e8714edf68e44e9760e19be38c03eb0", + "sha256:f7506387e191fe8cdb267f912469a3cccc538ab108471291636a96a54e599556", + "sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521", + "sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b" + ], + "markers": "python_version == '3.11'", + "version": "==2.1.1" }, "overrides": { "hashes": [ @@ -1099,11 +1092,11 @@ }, "parse-type": { "hashes": [ - "sha256:06d39a8b70fde873eb2a131141a0e79bb34a432941fb3d66fad247abafc9766c", - "sha256:79b1f2497060d0928bc46016793f1fca1057c4aacdf15ef876aa48d75a73a355" + "sha256:8d94a52e0197fbad63fee8f70df16e6ed689e5e4f105b705c9afa7a30397a5aa", + "sha256:8e99d2f52fab2f0f1f3d68ba9d026060140bf0e53680aada0111fb27b2f0e93a" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==0.6.2" + "version": "==0.6.3" }, "parso": { "hashes": [ @@ -1131,11 +1124,11 @@ }, "platformdirs": { "hashes": [ - "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", - "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3" + "sha256:9e5e27a08aa095dd127b9f2e764d74254f482fef22b0970773bfba79d091ab8c", + "sha256:eb1c8582560b34ed4ba105009a4badf7f6f85768b30126f351328507b2beb617" ], "markers": "python_version >= '3.8'", - "version": "==4.2.2" + "version": "==4.3.2" }, "prometheus-client": { "hashes": [ @@ -1186,10 +1179,10 @@ }, "pure-eval": { "hashes": [ - "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", - "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" + "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", + "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42" ], - "version": "==0.2.2" + "version": "==0.2.3" }, "pycparser": { "hashes": [ @@ -1232,154 +1225,177 @@ }, "pyyaml": { "hashes": [ - "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", - "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", - "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", - "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", - "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", - "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", - "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", - "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", - "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", - "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", - "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", - "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", - "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", - "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", - "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", - "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", - "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", - "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", - "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", - "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", - "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", - "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", - "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", - "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", - "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", - "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", - "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", - "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", - "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", - "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef", - "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", - "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", - "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", - "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", - "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", - "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", - "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", - "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", - "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", - "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", - "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", - "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", - "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", - "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", - "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", - "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", - "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", - "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", - "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", - "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", - "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" - ], - "markers": "python_version >= '3.6'", - "version": "==6.0.1" + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" + ], + "markers": "python_version >= '3.8'", + "version": "==6.0.2" }, "pyzmq": { "hashes": [ - "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa", - "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4", - "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09", - "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753", - "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c", - "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537", - "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5", - "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620", - "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920", - "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77", - "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450", - "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a", - "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc", - "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0", - "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de", - "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18", - "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606", - "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500", - "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972", - "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6", - "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad", - "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee", - "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a", - "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59", - "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7", - "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709", - "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625", - "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d", - "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527", - "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5", - "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987", - "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d", - "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b", - "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de", - "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12", - "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798", - "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be", - "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2", - "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20", - "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67", - "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4", - "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd", - "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a", - "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1", - "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4", - "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381", - "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd", - "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02", - "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35", - "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7", - "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce", - "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5", - "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf", - "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf", - "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84", - "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c", - "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5", - "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32", - "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a", - "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90", - "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97", - "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8", - "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5", - "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94", - "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf", - "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f", - "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2", - "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17", - "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879", - "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81", - "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223", - "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a", - "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b", - "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab", - "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7", - "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6", - "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2", - "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480", - "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8", - "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67", - "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad", - "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b", - "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3", - "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9", - "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47", - "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83", - "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad", - "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc" + "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6", + "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a", + "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9", + "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f", + "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37", + "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc", + "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed", + "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097", + "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d", + "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52", + "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6", + "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6", + "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2", + "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282", + "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3", + "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732", + "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5", + "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18", + "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306", + "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f", + "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3", + "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b", + "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277", + "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a", + "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797", + "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca", + "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c", + "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f", + "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5", + "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a", + "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44", + "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20", + "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4", + "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8", + "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780", + "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386", + "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5", + "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2", + "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0", + "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971", + "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b", + "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50", + "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c", + "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f", + "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231", + "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c", + "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08", + "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5", + "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6", + "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073", + "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e", + "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4", + "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317", + "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3", + "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072", + "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad", + "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a", + "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb", + "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd", + "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f", + "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef", + "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5", + "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187", + "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711", + "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988", + "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640", + "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c", + "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764", + "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1", + "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1", + "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289", + "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb", + "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a", + "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218", + "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c", + "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf", + "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7", + "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8", + "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726", + "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9", + "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93", + "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88", + "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115", + "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6", + "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672", + "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2", + "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea", + "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc", + "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b", + "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa", + "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003", + "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797", + "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940", + "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db", + "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc", + "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27", + "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3", + "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e", + "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98", + "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b", + "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629", + "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9", + "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6", + "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec", + "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951", + "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae", + "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4", + "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6", + "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919" ], "markers": "python_version >= '3.7'", - "version": "==26.0.3" + "version": "==26.2.0" }, "readme-renderer": { "hashes": [ @@ -1439,124 +1455,120 @@ }, "rich": { "hashes": [ - "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222", - "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432" + "sha256:2e85306a063b9492dffc86278197a60cbece75bcb766022f3436f567cae11bdc", + "sha256:a5ac1f1cd448ade0d59cc3356f7db7a7ccda2c8cbae9c7a90c28ff463d3e91f4" ], "markers": "python_full_version >= '3.7.0'", - "version": "==13.7.1" + "version": "==13.8.0" }, "rpds-py": { "hashes": [ - "sha256:0121803b0f424ee2109d6e1f27db45b166ebaa4b32ff47d6aa225642636cd834", - "sha256:06925c50f86da0596b9c3c64c3837b2481337b83ef3519e5db2701df695453a4", - "sha256:071d4adc734de562bd11d43bd134330fb6249769b2f66b9310dab7460f4bf714", - "sha256:1540d807364c84516417115c38f0119dfec5ea5c0dd9a25332dea60b1d26fc4d", - "sha256:15e65395a59d2e0e96caf8ee5389ffb4604e980479c32742936ddd7ade914b22", - "sha256:19d02c45f2507b489fd4df7b827940f1420480b3e2e471e952af4d44a1ea8e34", - "sha256:1c26da90b8d06227d7769f34915913911222d24ce08c0ab2d60b354e2d9c7aff", - "sha256:1d16089dfa58719c98a1c06f2daceba6d8e3fb9b5d7931af4a990a3c486241cb", - "sha256:1dd46f309e953927dd018567d6a9e2fb84783963650171f6c5fe7e5c41fd5666", - "sha256:2575efaa5d949c9f4e2cdbe7d805d02122c16065bfb8d95c129372d65a291a0b", - "sha256:3208f9aea18991ac7f2b39721e947bbd752a1abbe79ad90d9b6a84a74d44409b", - "sha256:329c719d31362355a96b435f4653e3b4b061fcc9eba9f91dd40804ca637d914e", - "sha256:3384d278df99ec2c6acf701d067147320b864ef6727405d6470838476e44d9e8", - "sha256:34a01a4490e170376cd79258b7f755fa13b1a6c3667e872c8e35051ae857a92b", - "sha256:354f3a91718489912f2e0fc331c24eaaf6a4565c080e00fbedb6015857c00582", - "sha256:37f46bb11858717e0efa7893c0f7055c43b44c103e40e69442db5061cb26ed34", - "sha256:3b4cf5a9497874822341c2ebe0d5850fed392034caadc0bad134ab6822c0925b", - "sha256:3f148c3f47f7f29a79c38cc5d020edcb5ca780020fab94dbc21f9af95c463581", - "sha256:443cec402ddd650bb2b885113e1dcedb22b1175c6be223b14246a714b61cd521", - "sha256:462b0c18fbb48fdbf980914a02ee38c423a25fcc4cf40f66bacc95a2d2d73bc8", - "sha256:474bc83233abdcf2124ed3f66230a1c8435896046caa4b0b5ab6013c640803cc", - "sha256:4d438e4c020d8c39961deaf58f6913b1bf8832d9b6f62ec35bd93e97807e9cbc", - "sha256:4fdc9afadbeb393b4bbbad75481e0ea78e4469f2e1d713a90811700830b553a9", - "sha256:5039e3cef7b3e7a060de468a4a60a60a1f31786da94c6cb054e7a3c75906111c", - "sha256:5095a7c838a8647c32aa37c3a460d2c48debff7fc26e1136aee60100a8cd8f68", - "sha256:52e466bea6f8f3a44b1234570244b1cff45150f59a4acae3fcc5fd700c2993ca", - "sha256:535d4b52524a961d220875688159277f0e9eeeda0ac45e766092bfb54437543f", - "sha256:57dbc9167d48e355e2569346b5aa4077f29bf86389c924df25c0a8b9124461fb", - "sha256:5a4b07cdf3f84310c08c1de2c12ddadbb7a77568bcb16e95489f9c81074322ed", - "sha256:5c872814b77a4e84afa293a1bee08c14daed1068b2bb1cc312edbf020bbbca2b", - "sha256:5f83689a38e76969327e9b682be5521d87a0c9e5a2e187d2bc6be4765f0d4600", - "sha256:688aa6b8aa724db1596514751ffb767766e02e5c4a87486ab36b8e1ebc1aedac", - "sha256:6b130bd4163c93798a6b9bb96be64a7c43e1cec81126ffa7ffaa106e1fc5cef5", - "sha256:6b31f059878eb1f5da8b2fd82480cc18bed8dcd7fb8fe68370e2e6285fa86da6", - "sha256:6d45080095e585f8c5097897313def60caa2046da202cdb17a01f147fb263b81", - "sha256:6f2f78ef14077e08856e788fa482107aa602636c16c25bdf59c22ea525a785e9", - "sha256:6fe87efd7f47266dfc42fe76dae89060038f1d9cb911f89ae7e5084148d1cc08", - "sha256:75969cf900d7be665ccb1622a9aba225cf386bbc9c3bcfeeab9f62b5048f4a07", - "sha256:75a6076289b2df6c8ecb9d13ff79ae0cad1d5fb40af377a5021016d58cd691ec", - "sha256:78d57546bad81e0da13263e4c9ce30e96dcbe720dbff5ada08d2600a3502e526", - "sha256:79e205c70afddd41f6ee79a8656aec738492a550247a7af697d5bd1aee14f766", - "sha256:7c98298a15d6b90c8f6e3caa6457f4f022423caa5fa1a1ca7a5e9e512bdb77a4", - "sha256:7ec72df7354e6b7f6eb2a17fa6901350018c3a9ad78e48d7b2b54d0412539a67", - "sha256:81ea573aa46d3b6b3d890cd3c0ad82105985e6058a4baed03cf92518081eec8c", - "sha256:8344127403dea42f5970adccf6c5957a71a47f522171fafaf4c6ddb41b61703a", - "sha256:8445f23f13339da640d1be8e44e5baf4af97e396882ebbf1692aecd67f67c479", - "sha256:850720e1b383df199b8433a20e02b25b72f0fded28bc03c5bd79e2ce7ef050be", - "sha256:88cb4bac7185a9f0168d38c01d7a00addece9822a52870eee26b8d5b61409213", - "sha256:8a790d235b9d39c70a466200d506bb33a98e2ee374a9b4eec7a8ac64c2c261fa", - "sha256:8b1a94b8afc154fbe36978a511a1f155f9bd97664e4f1f7a374d72e180ceb0ae", - "sha256:8d6ad132b1bc13d05ffe5b85e7a01a3998bf3a6302ba594b28d61b8c2cf13aaf", - "sha256:8eb488ef928cdbc05a27245e52de73c0d7c72a34240ef4d9893fdf65a8c1a955", - "sha256:90bf55d9d139e5d127193170f38c584ed3c79e16638890d2e36f23aa1630b952", - "sha256:9133d75dc119a61d1a0ded38fb9ba40a00ef41697cc07adb6ae098c875195a3f", - "sha256:93a91c2640645303e874eada51f4f33351b84b351a689d470f8108d0e0694210", - "sha256:959179efb3e4a27610e8d54d667c02a9feaa86bbabaf63efa7faa4dfa780d4f1", - "sha256:9625367c8955e4319049113ea4f8fee0c6c1145192d57946c6ffcd8fe8bf48dd", - "sha256:9da6f400eeb8c36f72ef6646ea530d6d175a4f77ff2ed8dfd6352842274c1d8b", - "sha256:9e65489222b410f79711dc3d2d5003d2757e30874096b2008d50329ea4d0f88c", - "sha256:a3e2fd14c5d49ee1da322672375963f19f32b3d5953f0615b175ff7b9d38daed", - "sha256:a5a7c1062ef8aea3eda149f08120f10795835fc1c8bc6ad948fb9652a113ca55", - "sha256:a5da93debdfe27b2bfc69eefb592e1831d957b9535e0943a0ee8b97996de21b5", - "sha256:a6e605bb9edcf010f54f8b6a590dd23a4b40a8cb141255eec2a03db249bc915b", - "sha256:a707b158b4410aefb6b054715545bbb21aaa5d5d0080217290131c49c2124a6e", - "sha256:a8b6683a37338818646af718c9ca2a07f89787551057fae57c4ec0446dc6224b", - "sha256:aa5476c3e3a402c37779e95f7b4048db2cb5b0ed0b9d006983965e93f40fe05a", - "sha256:ab1932ca6cb8c7499a4d87cb21ccc0d3326f172cfb6a64021a889b591bb3045c", - "sha256:ae8b6068ee374fdfab63689be0963333aa83b0815ead5d8648389a8ded593378", - "sha256:b0906357f90784a66e89ae3eadc2654f36c580a7d65cf63e6a616e4aec3a81be", - "sha256:b0da31853ab6e58a11db3205729133ce0df26e6804e93079dee095be3d681dc1", - "sha256:b1c30841f5040de47a0046c243fc1b44ddc87d1b12435a43b8edff7e7cb1e0d0", - "sha256:b228e693a2559888790936e20f5f88b6e9f8162c681830eda303bad7517b4d5a", - "sha256:b7cc6cb44f8636fbf4a934ca72f3e786ba3c9f9ba4f4d74611e7da80684e48d2", - "sha256:ba0ed0dc6763d8bd6e5de5cf0d746d28e706a10b615ea382ac0ab17bb7388633", - "sha256:bc9128e74fe94650367fe23f37074f121b9f796cabbd2f928f13e9661837296d", - "sha256:bcf426a8c38eb57f7bf28932e68425ba86def6e756a5b8cb4731d8e62e4e0223", - "sha256:bec35eb20792ea64c3c57891bc3ca0bedb2884fbac2c8249d9b731447ecde4fa", - "sha256:c3444fe52b82f122d8a99bf66777aed6b858d392b12f4c317da19f8234db4533", - "sha256:c5c9581019c96f865483d031691a5ff1cc455feb4d84fc6920a5ffc48a794d8a", - "sha256:c6feacd1d178c30e5bc37184526e56740342fd2aa6371a28367bad7908d454fc", - "sha256:c8f77e661ffd96ff104bebf7d0f3255b02aa5d5b28326f5408d6284c4a8b3248", - "sha256:cb0f6eb3a320f24b94d177e62f4074ff438f2ad9d27e75a46221904ef21a7b05", - "sha256:ce84a7efa5af9f54c0aa7692c45861c1667080814286cacb9958c07fc50294fb", - "sha256:cf902878b4af334a09de7a45badbff0389e7cf8dc2e4dcf5f07125d0b7c2656d", - "sha256:dab8d921b55a28287733263c0e4c7db11b3ee22aee158a4de09f13c93283c62d", - "sha256:dc9ac4659456bde7c567107556ab065801622396b435a3ff213daef27b495388", - "sha256:dd36b712d35e757e28bf2f40a71e8f8a2d43c8b026d881aa0c617b450d6865c9", - "sha256:e19509145275d46bc4d1e16af0b57a12d227c8253655a46bbd5ec317e941279d", - "sha256:e21cc693045fda7f745c790cb687958161ce172ffe3c5719ca1764e752237d16", - "sha256:e54548e0be3ac117595408fd4ca0ac9278fde89829b0b518be92863b17ff67a2", - "sha256:e5b9fc03bf76a94065299d4a2ecd8dfbae4ae8e2e8098bbfa6ab6413ca267709", - "sha256:e8481b946792415adc07410420d6fc65a352b45d347b78fec45d8f8f0d7496f0", - "sha256:ebcbf356bf5c51afc3290e491d3722b26aaf5b6af3c1c7f6a1b757828a46e336", - "sha256:ef9101f3f7b59043a34f1dccbb385ca760467590951952d6701df0da9893ca0c", - "sha256:f2afd2164a1e85226fcb6a1da77a5c8896c18bfe08e82e8ceced5181c42d2179", - "sha256:f629ecc2db6a4736b5ba95a8347b0089240d69ad14ac364f557d52ad68cf94b0", - "sha256:f68eea5df6347d3f1378ce992d86b2af16ad7ff4dcb4a19ccdc23dea901b87fb", - "sha256:f757f359f30ec7dcebca662a6bd46d1098f8b9fb1fcd661a9e13f2e8ce343ba1", - "sha256:fb37bd599f031f1a6fb9e58ec62864ccf3ad549cf14bac527dbfa97123edcca4" - ], - "markers": "python_version >= '3.8'", - "version": "==0.19.0" - }, - "secretstorage": { - "hashes": [ - "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", - "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99" - ], - "markers": "sys_platform == 'linux'", - "version": "==3.3.3" + "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c", + "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585", + "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5", + "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6", + "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef", + "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2", + "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29", + "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318", + "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b", + "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399", + "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739", + "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee", + "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174", + "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a", + "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344", + "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2", + "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03", + "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5", + "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22", + "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e", + "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96", + "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91", + "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752", + "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075", + "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253", + "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee", + "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad", + "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5", + "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce", + "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7", + "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b", + "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8", + "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57", + "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3", + "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec", + "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209", + "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921", + "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045", + "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074", + "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580", + "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7", + "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5", + "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3", + "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0", + "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24", + "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139", + "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db", + "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc", + "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789", + "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f", + "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2", + "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c", + "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232", + "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6", + "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c", + "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29", + "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489", + "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94", + "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751", + "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2", + "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda", + "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9", + "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51", + "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c", + "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8", + "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989", + "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511", + "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1", + "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2", + "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150", + "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c", + "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965", + "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f", + "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58", + "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b", + "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f", + "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d", + "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821", + "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de", + "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121", + "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855", + "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272", + "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60", + "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02", + "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1", + "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140", + "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879", + "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940", + "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364", + "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4", + "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e", + "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420", + "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5", + "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24", + "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c", + "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf", + "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f", + "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e", + "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab", + "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08", + "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92", + "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a", + "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8" + ], + "markers": "python_version >= '3.8'", + "version": "==0.20.0" }, "send2trash": { "hashes": [ @@ -1568,11 +1580,11 @@ }, "setuptools": { "hashes": [ - "sha256:f171bab1dfbc86b132997f26a119f6056a57950d058587841a0082e8830f9dc5", - "sha256:fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc" + "sha256:5f4c08aa4d3ebcb57a50c33b1b07e94315d7fc7230f7115e47fc99776c8ce308", + "sha256:95b40ed940a1c67eb70fc099094bd6e99c6ee7c23aa2306f4d2697ba7916f9c6" ], "markers": "python_version >= '3.8'", - "version": "==70.3.0" + "version": "==74.1.2" }, "six": { "hashes": [ @@ -1599,44 +1611,44 @@ }, "soupsieve": { "hashes": [ - "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690", - "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7" + "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", + "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9" ], "markers": "python_version >= '3.8'", - "version": "==2.5" + "version": "==2.6" }, "sphinx": { "hashes": [ - "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3", - "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc" + "sha256:0cce1ddcc4fd3532cf1dd283bc7d886758362c5c1de6598696579ce96d8ffa5b", + "sha256:56173572ae6c1b9a38911786e206a110c9749116745873feae4f9ce88e59391d" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==7.3.7" + "markers": "python_version >= '3.10'", + "version": "==8.0.2" }, "sphinxcontrib-applehelp": { "hashes": [ - "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619", - "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4" + "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", + "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5" ], "markers": "python_version >= '3.9'", - "version": "==1.0.8" + "version": "==2.0.0" }, "sphinxcontrib-devhelp": { "hashes": [ - "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f", - "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3" + "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", + "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2" ], "markers": "python_version >= '3.9'", - "version": "==1.0.6" + "version": "==2.0.0" }, "sphinxcontrib-htmlhelp": { "hashes": [ - "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015", - "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04" + "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", + "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9" ], "markers": "python_version >= '3.9'", - "version": "==2.0.5" + "version": "==2.1.0" }, "sphinxcontrib-jsmath": { "hashes": [ @@ -1648,19 +1660,19 @@ }, "sphinxcontrib-qthelp": { "hashes": [ - "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6", - "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182" + "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", + "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb" ], "markers": "python_version >= '3.9'", - "version": "==1.0.7" + "version": "==2.0.0" }, "sphinxcontrib-serializinghtml": { "hashes": [ - "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7", - "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f" + "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", + "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d" ], "markers": "python_version >= '3.9'", - "version": "==1.1.10" + "version": "==2.0.0" }, "stack-data": { "hashes": [ @@ -1721,11 +1733,19 @@ }, "types-python-dateutil": { "hashes": [ - "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202", - "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b" + "sha256:27c8cc2d058ccb14946eebcaaa503088f4f6dbc4fb6093d3d456a49aef2753f6", + "sha256:9706c3b68284c25adffc47319ecc7947e5bb86b3773f843c73906fd598bc176e" ], "markers": "python_version >= '3.8'", - "version": "==2.9.0.20240316" + "version": "==2.9.0.20240906" + }, + "typing-extensions": { + "hashes": [ + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" + ], + "markers": "python_version < '3.12'", + "version": "==4.12.2" }, "tzdata": { "hashes": [ @@ -1759,10 +1779,10 @@ }, "webcolors": { "hashes": [ - "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b", - "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1" + "sha256:08b07af286a01bcd30d583a7acadf629583d1f79bfef27dd2c2c5c263817277d", + "sha256:fc4c3b59358ada164552084a8ebee637c221e4059267d0f8325b3b560f6c7f0a" ], - "version": "==24.6.0" + "version": "==24.8.0" }, "webencodings": { "hashes": [ @@ -1781,11 +1801,11 @@ }, "zipp": { "hashes": [ - "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19", - "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c" + "sha256:9960cd8967c8f85a56f920d5d507274e74f9ff813a0ab8889a5b5be2daf44064", + "sha256:c22b14cc4763c5a5b04134207736c107db42e9d3ef2d9779d465f5f1bcba572b" ], "markers": "python_version >= '3.8'", - "version": "==3.19.2" + "version": "==3.20.1" } }, "graphql": { @@ -1806,69 +1826,84 @@ }, "certifi": { "hashes": [ - "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b", - "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90" + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" ], "markers": "python_version >= '3.6'", - "version": "==2024.7.4" + "version": "==2024.8.30" }, "cffi": { "hashes": [ - "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", - "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", - "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", - "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", - "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", - "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", - "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", - "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", - "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", - "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", - "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", - "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", - "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", - "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", - "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", - "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", - "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", - "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", - "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", - "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", - "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", - "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", - "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", - "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", - "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", - "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", - "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", - "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", - "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", - "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", - "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", - "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", - "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", - "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", - "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", - "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", - "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", - "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", - "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", - "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", - "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", - "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", - "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", - "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", - "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", - "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", - "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", - "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", - "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", - "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", - "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", - "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" + "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", + "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", + "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", + "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", + "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", + "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", + "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", + "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", + "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", + "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", + "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", + "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", + "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", + "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", + "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", + "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", + "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", + "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", + "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", + "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", + "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", + "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", + "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", + "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", + "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", + "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", + "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", + "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", + "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", + "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", + "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", + "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", + "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", + "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", + "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", + "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", + "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", + "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", + "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", + "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", + "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", + "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", + "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", + "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", + "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", + "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", + "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", + "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" ], "markers": "platform_python_implementation != 'PyPy'", - "version": "==1.16.0" + "version": "==1.17.1" }, "charset-normalizer": { "hashes": [ @@ -1968,68 +2003,63 @@ }, "cryptography": { "hashes": [ - "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad", - "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583", - "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b", - "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c", - "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1", - "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648", - "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949", - "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba", - "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c", - "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9", - "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d", - "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c", - "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e", - "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2", - "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d", - "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7", - "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70", - "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2", - "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7", - "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14", - "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe", - "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e", - "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71", - "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961", - "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7", - "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c", - "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28", - "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842", - "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902", - "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801", - "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a", - "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e" + "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494", + "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806", + "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d", + "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062", + "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2", + "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4", + "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1", + "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85", + "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84", + "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042", + "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d", + "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962", + "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2", + "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa", + "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d", + "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365", + "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96", + "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47", + "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d", + "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d", + "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c", + "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb", + "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277", + "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172", + "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034", + "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a", + "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289" ], "markers": "python_version >= '3.7'", - "version": "==42.0.8" + "version": "==43.0.1" }, "django": { "hashes": [ - "sha256:bd4505cae0b9bd642313e8fb71810893df5dc2ffcacaa67a33af2d5cd61888f2", - "sha256:f216510ace3de5de01329463a315a629f33480e893a9024fc93d8c32c22913da" + "sha256:021ffb7fdab3d2d388bc8c7c2434eb9c1f6f4d09e6119010bbb1694dda286bc2", + "sha256:71603f27dac22a6533fb38d83072eea9ddb4017fead6f67f2562a40402d61c3f" ], "index": "pypi", "markers": "python_version >= '3.10'", - "version": "==5.0.7" + "version": "==5.1.1" }, "django-filter": { "hashes": [ - "sha256:48e5fc1da3ccd6ca0d5f9bb550973518ce977a4edde9d2a8a154a7f4f0b9f96e", - "sha256:df2ee9857e18d38bed203c8745f62a803fa0f31688c9fe6f8e868120b1848e48" + "sha256:c4852822928ce17fb699bcfccd644b3574f1a2d80aeb2b4ff4f16b02dd49dc64", + "sha256:d8ccaf6732afd21ca0542f6733b11591030fa98669f8d15599b358e24a2cd9c3" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==24.2" + "version": "==24.3" }, "django-oauth-toolkit": { "hashes": [ - "sha256:4931d6bf64b6aee32a42f989f218769d1876f3daa53c6bf883d8ab793fb302ee", - "sha256:8975eaf697413a8d54208ee068bc5ad6d1ed76f1df84e4882fbb25e7e6966e1b" + "sha256:3ef00b062a284f2031b0732b32dc899e3bbf0eac221bbb1cffcb50b8932e55ed", + "sha256:7200e4a9fb229b145a6d808cbf0423b6d69a87f68557437733eec3c0cf71db02" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==2.4.0" + "version": "==3.0.1" }, "graphene": { "hashes": [ @@ -2044,15 +2074,16 @@ "sha256:059ccf25d9a5159f28d7ebf1a648c993ab34deb064e80b70ca096aa22a609556", "sha256:0fd95c8c1cbe77ae2a5940045ce276803c3acbf200a156731e0c730f2776ae2c" ], + "index": "pypi", "version": "==3.2.2" }, "graphql-core": { "hashes": [ - "sha256:06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676", - "sha256:5766780452bd5ec8ba133f8bf287dc92713e3868ddd83aee4faab9fc3e303dc3" + "sha256:1604f2042edc5f3114f49cac9d77e25863be51b23a54a61a23245cf32f6476f0", + "sha256:acbe2e800980d0e39b4685dd058c2f4042660b89ebca38af83020fd872ff1264" ], "markers": "python_version >= '3.6' and python_version < '4'", - "version": "==3.2.3" + "version": "==3.2.4" }, "graphql-relay": { "hashes": [ @@ -2064,11 +2095,11 @@ }, "idna": { "hashes": [ - "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", - "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0" + "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac", + "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603" ], - "markers": "python_version >= '3.5'", - "version": "==3.7" + "markers": "python_version >= '3.6'", + "version": "==3.8" }, "jwcrypto": { "hashes": [ @@ -2100,13 +2131,6 @@ "markers": "python_version >= '3.8'", "version": "==2.22" }, - "pytz": { - "hashes": [ - "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", - "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" - ], - "version": "==2024.1" - }, "requests": { "hashes": [ "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", @@ -2125,11 +2149,11 @@ }, "sqlparse": { "hashes": [ - "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93", - "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663" + "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4", + "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e" ], "markers": "python_version >= '3.8'", - "version": "==0.5.0" + "version": "==0.5.1" }, "text-unidecode": { "hashes": [ diff --git a/dev_env/settings.py b/dev_env/settings.py index d4bf8f5a..6ae47ee9 100644 --- a/dev_env/settings.py +++ b/dev_env/settings.py @@ -118,6 +118,10 @@ # ], } + OAUTH2_PROVIDER = { + 'OAUTH2_BACKEND_CLASS': 'oauth2_provider.oauth2_backends.JSONOAuthLibCore', + } + EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/django_ledger/__init__.py b/django_ledger/__init__.py index d249f592..a9e80dda 100644 --- a/django_ledger/__init__.py +++ b/django_ledger/__init__.py @@ -9,7 +9,7 @@ default_app_config = 'django_ledger.apps.DjangoLedgerConfig' """Django Ledger""" -__version__ = '0.6.3' +__version__ = '0.6.4' __license__ = 'GPLv3 License' __author__ = 'Miguel Sanda' diff --git a/django_ledger/admin/coa.py b/django_ledger/admin/coa.py index 03cb5255..50d2108b 100644 --- a/django_ledger/admin/coa.py +++ b/django_ledger/admin/coa.py @@ -108,7 +108,6 @@ class ChartOfAccountsModelAdmin(ModelAdmin): list_display_links = ['name'] fields = [ 'name', - 'locked', 'description', ] inlines = [ @@ -132,4 +131,4 @@ def get_queryset(self, request): def account_model_count(self, obj): return obj.accountmodel__count - account_model_count.short_description = 'Accounts' \ No newline at end of file + account_model_count.short_description = 'Accounts' diff --git a/django_ledger/contrib/django_ledger_graphene/README.md b/django_ledger/contrib/django_ledger_graphene/README.md index 9e8f3c1f..488ce9a0 100644 --- a/django_ledger/contrib/django_ledger_graphene/README.md +++ b/django_ledger/contrib/django_ledger_graphene/README.md @@ -2,146 +2,59 @@ # Django ledger Graphql Api ## Usage and installation +Install Required Packages - - - - +First, install the necessary packages: ``` pip install graphene-django ``` ``` -pip install django-graphql-auth +pip install django-oauth-toolkit +``` +Enable Graphql by navigating to ./django_ledger/settings.py +``` + DJANGO_LEDGER_GRAPHQL_SUPPORT_ENABLED = True ``` Makemigrations ``` python manage.py makemigrations python manage.py migrate -``` -Runserver +``` +Start the Django development server: ``` python manage.py runserver -``` -make sure you are loged in the main application go to the admin -site http://127.0.0.1:8000/admin/django_ledger/entitymodel/ choose your -entity and get your slug name from the entity choosen or - -Open new tab and navigate to -``` -http://127.0.0.1:8000/graphql/ -``` -paste this to the console and run the query - ``` -{ - allEntityList{ - slug - name - } -``` -this will return the current user logged in slug and name, use the slug for other queries (Slugname:String!) -## sample graphql Query -paste this at the graphql console and run the query +on the admin site ensure to add an Application with the fields ``` -{ - allEntityList{ - edges{ - node{ - slug - name - } - } -} -``` -this will return the current user logged in slug and name, use the slug for other queries (Slugname:String!) -## sample graphql Query -paste this at the graphql console and run the query -``` -allCustomers(slugName:"jusper-onderi-ondieki-db23x1y8"){ - edges { - node { - customerName - city - state - active - - } - } -} +client type: confidential +Authorization grant type: Resource owner password-based ``` -# Query results -``` -"allCustomers": { - "edges": [ - { - "node": { - "customerName": "booka", - "city": "kenya", - "state": "huj", - "active": true - } - }, - { - "node": { - "customerName": "stats", - "city": "kenya", - "state": "huj", - "active": true - } - }, - { - "node": { - "customerName": "Brooke Weaver", - "city": "South Michelleborough", - "state": "WA", - "active": true - } - }, - { - "node": { - "customerName": "Tamara Wilson", - "city": "Castilloport", - "state": "WV", - "active": true - } - }, +Use Postman or Thunder Client to make a POST request to obtain an access token. Send a request to the following URL: - } - ] - } - } -} +``` +http://127.0.0.1:8000/api/v1/o/token/ ``` -## Using graphql-auth -Register user +Include the following JSON body in your request: ``` -mutation { - register( - email: "new_user@email.com", - username: "new_user", - password1: "dave123456", - password2: "dave123456", - ) { - success, - errors, - token, - - } +{ + "username": "eric", + "password": "eric", + "client_id": "cXFFgnvWhWiZDofGkwiwUBdfuxfNnLsmBtAVsVXv", + "client_secret": "dave101", + "grant_type": "password" } ``` -Returns a token and a succes message +If the request is successful, you will receive a response like this: ``` { - "data": { - "register": { - "success": true, - "errors": null, - "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6Im5ld191c2VyIiwiZXhwIjoxNjQ5NzY2Nzc4LCJvcmlnSWF0IjoxNjQ5NzY2NDc4fQ.cHaPq8CjQy60ifUawR4Pnyyu_E_SCU2J6CapBK0P8P4" - } - } + "access_token": "YPMh29n648qpahgtOjrDHMDy5bt81e", + "expires_in": 36000, + "token_type": "Bearer", + "scope": "read write", + "refresh_token": "huBiNKw9IhtuYPKVNR9i4WnQesMqEl" } ``` -for more detail usage visit the documentation -https://django-graphql-auth.readthedocs.io/en/latest/quickstart/ \ No newline at end of file +Now you can use the access token to authenticate your GraphQL requests. + diff --git a/django_ledger/forms/account.py b/django_ledger/forms/account.py index 05333d71..35e5e71e 100644 --- a/django_ledger/forms/account.py +++ b/django_ledger/forms/account.py @@ -19,16 +19,20 @@ class AccountModelCreateForm(ModelForm): """ - Create Form: - This Form is used for creation of a new account that does not exist in the default Chart of Accounts. It has some external as well as some internal field. - The entity slug and the user model are the field which are internal and are predetermined in the lass itself + AccountModelCreateForm + ====================== - Remaining fields which needs to be defined by user are : + A form for creating and managing account models within the system. + + Attributes + ---------- + ENTITY : Model + The entity model being used in the form. + COA_MODEL : Model + The Chart of Account Model being used in the form. + USER_MODEL : Model + The user model being used in the form. - code: The code will be used to uniquely identify the particular account - name: The name of the account. The name of the account should be resemblance of the nature of the transactions that will be in the account - role: The role needs to be selected rom list of the options available. Choices are given under ACCOUNT ROLES. Refer the account model documentation for more info - balance_type: Need to be selected from drop down as "Debit" or Credit" """ def __init__(self, entity_model, coa_model, user_model, *args, **kwargs): @@ -84,9 +88,16 @@ class Meta: class AccountModelUpdateForm(MoveNodeForm): """ - Update Account Form: - This form is for updating the account. This works for both the parent or the child Account . - We can update the Parent , or The Code or even the Name of the Account. + AccountModelUpdateForm + + A form for updating account model, inheriting from MoveNodeForm. + + Attributes + ---------- + _position : ChoiceField + A choice field for selecting the position. + _ref_node_id : ChoiceField + An optional choice field for selecting the relative node. """ _position = ChoiceField(required=True, diff --git a/django_ledger/io/roles.py b/django_ledger/io/roles.py index 43a7ad82..86909d35 100644 --- a/django_ledger/io/roles.py +++ b/django_ledger/io/roles.py @@ -660,3 +660,9 @@ def validate_roles(roles: Union[str, List[str]], raise_exception: bool = True) - if raise_exception: raise InvalidRoleError('{rls}) is invalid. Choices are {ch}'.format(ch=', '.join(VALID_ROLES), rls=r)) return set(roles) + +VALID_PARENTS = { + ASSET_PPE_BUILDINGS_ACCUM_DEPRECIATION: [ASSET_PPE_BUILDINGS], + ASSET_PPE_EQUIPMENT_ACCUM_DEPRECIATION: [ASSET_PPE_EQUIPMENT], + ASSET_PPE_PLANT_ACCUM_DEPRECIATION: [ASSET_PPE_PLANT], +} \ No newline at end of file diff --git a/django_ledger/models/accounts.py b/django_ledger/models/accounts.py index fa0b865d..3d681fa3 100644 --- a/django_ledger/models/accounts.py +++ b/django_ledger/models/accounts.py @@ -6,24 +6,52 @@ * Miguel Sanda * Pranav P Tulshyan -The AccountModel groups and sorts transactions involving the company's assets, liabilities and equities. -Per accounting principles, an Account must be either a DEBIT-type balance account or a CREDIT-type balance account, -depending on its purpose. -The AccountModel plays a major role when creating Journal Entries in a double entry accounting systems where -a DEBIT to a DEBIT-type AccountModel will increase its balance, and a CREDIT to a DEBIT-type AccountModel will -reduce its balance. Conversely, a CREDIT to a CREDIT-type AccountModel will increase its balance, and a -DEBIT to a CREDIT-type AccountModel will reduce its balance. +AccountModel +------------ -It is entirely up to the user to adopt the chart of accounts that best suits the EntityModel. -The user may choose to use the default Chart of Accounts provided by Django Ledger when creating a new EntityModel. +The AccountModel is a fundamental component of the Django Ledger system, responsible for categorizing and organizing +financial transactions related to an entity's assets, liabilities, and equity. -In Django Ledger, all account models must be assigned a role from -:func:`ACCOUNT_ROLES `. Roles are a way to group accounts to a common namespace, -regardless of its user-defined fields. Roles are an integral part to Django Ledger since they are critical when -requesting and producing financial statements and financial ratio calculations. +Account Types +------------- -AccountModels may also contain parent/child relationships as implemented by the Django Treebeard functionality. +In accordance with accounting principles, each AccountModel must be classified as either: + +1. **DEBIT-type balance account** +2. **CREDIT-type balance account** + +The account type determines how transactions affect the account's balance. + +Double Entry Accounting +----------------------- + +The AccountModel is crucial in implementing double entry accounting systems: + +* For DEBIT-type accounts: + - A DEBIT increases the balance + - A CREDIT decreases the balance + +* For CREDIT-type accounts: + - A CREDIT increases the balance + - A DEBIT decreases the balance + +Chart of Accounts +----------------- + +Users have the flexibility to adopt a chart of accounts that best suits their EntityModel. Django Ledger provides a +default Chart of Accounts when creating a new EntityModel, which can be customized as needed. + +Account Roles +------------- + +All AccountModels must be assigned a role from the `ACCOUNT_ROLES` function in `django_ledger.io.roles`. +Roles serve several purposes: + +1. Group accounts into common namespaces +2. Provide consistency across user-defined fields +3. Enable accurate generation of financial statements +4. Facilitate financial ratio calculations """ from itertools import groupby from random import randint @@ -43,7 +71,7 @@ GROUP_ASSETS, GROUP_LIABILITIES, GROUP_CAPITAL, GROUP_INCOME, GROUP_EXPENSES, GROUP_COGS, ROOT_GROUP, BS_BUCKETS, ROOT_ASSETS, ROOT_LIABILITIES, - ROOT_CAPITAL, ROOT_INCOME, ROOT_EXPENSES, ROOT_COA) + ROOT_CAPITAL, ROOT_INCOME, ROOT_EXPENSES, ROOT_COA, VALID_PARENTS) from django_ledger.models.mixins import CreateUpdateMixIn from django_ledger.models.utils import lazy_loader from django_ledger.settings import DJANGO_LEDGER_ACCOUNT_CODE_GENERATE, DJANGO_LEDGER_ACCOUNT_CODE_USE_PREFIX @@ -61,68 +89,71 @@ class AccountModelValidationError(ValidationError): class AccountModelQuerySet(MP_NodeQuerySet): """ - A custom defined QuerySet, which inherits from the Materialized Path Tree implementation - of Django Treebeard for tree-like model implementation. + Custom QuerySet for AccountModel inheriting from MP_NodeQuerySet. """ def active(self): """ - Active accounts which can be used to create new transactions that show on drop-down menus and forms. + Filters the queryset to include only active items. Returns - _______ + ------- AccountModelQuerySet - A filtered AccountModelQuerySet of active accounts. + A filtered queryset containing only the items marked as active. """ return self.filter(active=True) def inactive(self): """ - Inactive accounts cannot be used to create new transactions and don't show on drop-down menus and forms. + Filters and returns queryset entries where the active field is set to False. Returns - _______ + ------- AccountModelQuerySet - A filtered AccountModelQuerySet of inactive accounts. + A queryset containing entries with active=False. """ return self.filter(active=False) def locked(self): """ - Filter locked elements. - - This method filters the elements based on the `locked` attribute and returns a filtered queryset. + Filters the queryset to include only locked AccountModels. - Returns: - A filtered queryset containing the locked elements. + Returns + ------- + AccountModelQuerySet + A queryset containing only the objects with locked set to True. """ return self.filter(locked=True) def unlocked(self): """ - Returns a filtered version of an object, excluding any locked items. + Returns a filtered list of items where the 'locked' attribute is set to False. - Returns: - A filtered version of the object, excluding any locked items. + Returns + ------- + AccountModelQuerySet + A queryset of items with 'locked' attribute set to False """ return self.filter(locked=False) def with_roles(self, roles: Union[List, str]): """ - This method is used to make query of accounts with a certain role. For instance, the fixed assets like - Buildings have all been assigned the role of "asset_ppe_build" role is basically an aggregation of the - accounts under a similar category. So, to query the list of all accounts under the role "asset_ppe_build", - we can use this function. + Filter the accounts based on the specified roles. This method helps to retrieve accounts associated + with a particular role or a list of roles. + + For example, to get all accounts categorized under the role "asset_ppe_build" (which might include + fixed assets like Buildings), you can utilize this method. Parameters - __________ - roles: list or str - Function accepts a single str instance of a role or a list of roles. For a list of roles , refer io.roles.py + ---------- + roles : Union[List[str], str] + The role or a list of roles to filter the accounts by. If a single string is provided, it is converted + into a list containing that role. Returns - _______ + ------- AccountModelQuerySet - Returns a QuerySet filtered by user-provided list of Roles. + A QuerySet of accounts filtered by the provided roles. """ if isinstance(roles, str): roles = [roles] @@ -131,27 +162,58 @@ def with_roles(self, roles: Union[List, str]): def expenses(self): """ - Return the expenses filtered by the roles specified in GROUP_EXPENSES. + Retrieve a queryset containing expenses filtered by specified roles. - Returns: - QuerySet: A queryset containing the expenses filtered by the GROUP_EXPENSES roles.. + This method filters the expenses based on roles defined in the + `GROUP_EXPENSES` constant. It ensures that only the relevant expenses + associated with the specified roles are included in the queryset. + + Returns + ------- + AccountModelQuerySet + A queryset consisting of expenses filtered according to the roles in `GROUP_EXPENSES`. """ return self.filter(role__in=GROUP_EXPENSES) def is_coa_root(self): """ - Check if the account model instance is the Chart of Account Root. + Retrieves the Chart of Accounts (CoA) root node queryset. + + A Chart of Accounts Root is a foundational element indicating the primary node in the + account hierarchy. This method filters the queryset to include only the Chart of Accounts (CoA) + root node. - Returns: - bool: True if the Account is the CoA Root, False otherwise. + Returns + ------- + AccountModelQuerySet """ return self.filter(role__in=ROOT_GROUP) def not_coa_root(self): + """ + Exclude AccountModels with ROOT_GROUP role from the QuerySet. + Returns + ------- + AccountModelQuerySet + A QuerySet excluding users with role in ROOT_GROUP. + """ return self.exclude(role__in=ROOT_GROUP) def for_entity(self, entity_slug, user_model): + """ + Parameters + ---------- + entity_slug : str + The slug identifier for the entity. + user_model : UserModel + The user model instance to use for filtering. + + Returns + ------- + AccountModelQuerySet + A Django QuerySet filtered by the specified entity and user permissions, ordered by 'code'. + """ if isinstance(self, lazy_loader.get_entity_model()): return self.filter( Q(coa_model__entity=entity_slug) & @@ -169,6 +231,16 @@ def for_entity(self, entity_slug, user_model): ).order_by('code') def gb_bs_role(self): + """ + Groups accounts by Balance Sheet Bucket and then further groups them by role. + + Returns + ------- + List[Tuple] + A list where each element is a tuple. The first element of the tuple is the BS bucket, + and the second element is a list of tuples where each sub-tuple contains a role display + and a list of accounts that fall into that role within the BS bucket. + """ accounts_gb = list((r, list(gb)) for r, gb in groupby(self, key=lambda acc: acc.get_bs_bucket())) return [ (bsr, [ @@ -177,9 +249,26 @@ def gb_bs_role(self): ] def is_role_default(self): + """ + Filter the queryset to include only entries where `role_default` + is set to True, excluding entries marked as 'coa_root'. + + Returns + ------- + AccountModelQuerySet + Filtered queryset with `role_default` set to True and excluding 'coa_root' entries. + """ return self.not_coa_root().filter(role_default=True) def can_transact(self): + """ + Filter the queryset to include only accounts that can accept new transactions. + + Returns + ------- + QuerySet + A QuerySet containing the filtered results. + """ return self.filter( Q(locked=False) & Q(active=True) ) @@ -193,14 +282,34 @@ class AccountModelManager(MP_NodeManager): def get_queryset(self) -> AccountModelQuerySet: """ - Sets the custom queryset as the default. + Retrieve and return athe default AccountModel QuerySet. + + The query set is ordered by the 'path' field and uses 'select_related' to reduce the number of database queries + by retrieving the related 'coa_model'. + + Returns + ------- + AccountModelQuerySet + An instance of AccountModelQuerySet ordered by 'path' and prefetching related 'coa_model'. """ return AccountModelQuerySet( self.model, using=self._db ).order_by('path').select_related('coa_model') - def for_user(self, user_model): + def for_user(self, user_model) -> AccountModelQuerySet: + """ + Parameters + ---------- + user_model : UserModel + The user model instance to use for filtering. + + Returns + ------- + AccountModelQuerySet + The filtered queryset based on the user's permissions. Superusers get the complete queryset whereas other + users get a filtered queryset based on their role as admin or manager in the entity. + """ qs = self.get_queryset() if user_model.is_superuser: return qs @@ -210,32 +319,33 @@ def for_user(self, user_model): ) # todo: search for uses and pass EntityModel whenever possible. - def for_entity(self, - user_model, - entity_slug, - coa_slug: Optional[str] = None, - select_coa_model: bool = True) -> AccountModelQuerySet: + def for_entity( + self, + user_model, + entity_slug, + coa_slug: Optional[str] = None, + select_coa_model: bool = True + ) -> AccountModelQuerySet: """ - Ensures that only accounts associated with the given EntityModel are returned. + Retrieves accounts associated with the specified EntityModel. Parameters ---------- - entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. - coa_slug: str - Explicitly specify which chart of accounts to use. If None, will pull default Chart of Accounts. - Discussed in detail in the CoA Model CoA slug, basically helps in identifying the complete Chart of - Accounts for a particular EntityModel. - user_model: + user_model: User The Django User Model making the request to check for permissions. - select_coa_model: bool - Pre fetches the CoA Model information in the QuerySet. Defaults to True. + entity_slug: Union[EntityModel, str] + The EntityModel instance or its slug to filter accounts by. If a slug is provided and `coa_slug` is None, + an additional + database query will be executed to determine the default Chart of Accounts. + coa_slug: Optional[str], default=None + The slug of the specific Chart of Accounts to use. If None, the default Chart of Accounts is selected. + select_coa_model: bool, default=True + If True, prefetches the CoA Model information in the QuerySet. Returns ------- AccountModelQuerySet - A QuerySet of all requested EntityModel Chart of Accounts. + A QuerySet containing accounts associated with the specified EntityModel and Chart of Accounts. """ qs = self.for_user(user_model) if select_coa_model: @@ -256,26 +366,28 @@ def for_entity(self, def for_entity_available(self, user_model, entity_slug, coa_slug: Optional[str] = None) -> AccountModelQuerySet: """ - Convenience method to pull only available and unlocked AccountModels for a specific EntityModel. + Retrieve available and unlocked AccountModels for a specific EntityModel. + + This method filters AccountModels associated with the specified EntityModel + that are active, not locked, and have an active Chart of Accounts. Parameters ---------- - entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. + user_model: User + The Django User Model instance making the request, used to validate permissions. - coa_slug: str - Explicitly specify which chart of accounts to use. If None, will pull default Chart of Accounts. - Discussed in detail in the CoA Model CoA slug, basically helps in identifying the complete Chart of - Accounts for a particular EntityModel. + entity_slug: EntityModel or str + The EntityModel instance or its slug to pull accounts from. If entity_slug is passed + and coa_slug is None, an additional database query will be performed to determine + the default Chart of Accounts. - user_model: - The Django User Model making the request to check for permissions. + coa_slug: str, optional + The specific Chart of Accounts to use. If None, the default Chart of Accounts will be pulled. Returns ------- AccountModelQuerySet - A QuerySet of all requested EntityModel Chart of Accounts. + A QuerySet containing available and unlocked AccountModels for the specified EntityModel and Chart of Accounts. """ qs = self.for_entity( user_model=user_model, @@ -289,24 +401,27 @@ def for_entity_available(self, user_model, entity_slug, coa_slug: Optional[str] def with_roles(self, roles: Union[list, str], entity_slug, user_model) -> AccountModelQuerySet: """ - This method is used to make query of accounts with a certain role. For instance, the fixed assets like - Buildings have all been assigned the role of "asset_ppe_build" role is basically an aggregation of the - accounts under a similar category. So, to query the list of all accounts under the role "asset_ppe_build", - we can use this function. + Retrieve accounts based on specific roles. + + This method filters accounts associated with a given role or a list of roles. For example, if you need to + find all accounts under the "asset_ppe_build" role, which includes all buildings fixed assets, this method + can be used. Parameters ---------- entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. - user_model - The Django User Model making the request to check for permissions. + The EntityModel instance or its slug to fetch accounts from. If only the slug is provided and coa_slug is + not specified, an additional database query will be performed to determine the default chart of accounts. + user_model: User + The Django User model instance making the request to ensure appropriate permissions are checked. roles: list or str - Function accepts a single str instance of a role or a list of roles. For a list of roles , refer io.roles.py + Accepts either a single role as a string or a list of roles. Refer to io.roles.py for a comprehensive + list of roles. + Returns ------- AccountModelQuerySet - Returns a QuerySet filtered by user-provided list of Roles. + A QuerySet of accounts filtered by the specified roles. """ roles = validate_roles(roles) if isinstance(roles, str): @@ -319,27 +434,26 @@ def with_roles_available(self, roles: Union[list, str], user_model, coa_slug: Optional[str]) -> AccountModelQuerySet: """ - Convenience method to pull only available and unlocked AccountModels for a specific EntityModel and for a - specific list of roles. + Retrieve available and unlocked AccountModels for a specified EntityModel and list of roles. Parameters ---------- - entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. - coa_slug: str - Explicitly specify which chart of accounts to use. If None, will pull default Chart of Accounts. - Discussed in detail in the CoA Model CoA slug, basically helps in identifying the complete Chart of - Accounts for a particular EntityModel. - user_model: - The Django User Model making the request to check for permissions. - roles: list or str - Function accepts a single str instance of a role or a list of roles. For a list of roles , refer io.roles.py + roles : Union[list, str] + A single role as a string or a list of roles. + entity_slug : Union[str, 'EntityModel'] + The EntityModel object or its slug. If a slug is provided and `coa_slug` is None, an additional + database query will be executed to fetch the default Chart of Accounts. + user_model : 'UserModel' + The Django UserModel instance making the request, used to check permissions. + coa_slug : Optional[str], default None + The specific Chart of Accounts slug. If None, the default Chart of Accounts will be used. + This parameter assists in identifying the complete Chart of Accounts for the EntityModel. Returns ------- AccountModelQuerySet - A QuerySet of all requested EntityModel Chart of Accounts. + A QuerySet containing available and unlocked AccountModel instances for the specified + EntityModel and roles. """ if isinstance(roles, str): @@ -350,53 +464,53 @@ def with_roles_available(self, roles: Union[list, str], def coa_roots(self, user_model, entity_slug, coa_slug) -> AccountModelQuerySet: """ - Fetches the Code of Account Root Accounts. + Retrieves the root accounts of a specified Code of Accounts (CoA). Parameters ---------- - entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. - coa_slug: str - Explicitly specify which chart of accounts to use. If None, will pull default Chart of Accounts. - Discussed in detail in the CoA Model CoA slug, basically helps in identifying the complete Chart of - Accounts for a particular EntityModel. - user_model: - The Django User Model making the request to check for permissions. + user_model: object + The Django User model instance requesting the data, used for permission checking. + entity_slug: Union[EntityModel, str] + The entity or its slug from which to fetch accounts. If a slug is provided and `coa_slug` is None, + an additional database query is performed to determine the default Code of Accounts. + coa_slug: Optional[str] + The specific chart of accounts to retrieve. If None, the default chart of accounts for the entity + will be used. This is crucial for identifying the complete set of accounts for a given entity. Returns ------- - + AccountModelQuerySet + A queryset of root accounts for the specified Code of Accounts. """ qs = self.for_entity(user_model=user_model, entity_slug=entity_slug, coa_slug=coa_slug) return qs.is_coa_root() def for_invoice(self, user_model, entity_slug: str, coa_slug: Optional[str] = None) -> AccountModelQuerySet: """ - Convenience method to pull only available and unlocked AccountModels for a specific EntityModel relevant only - for creating and management of Invoices. See :func:`GROUP_INVOICE `. + Retrieves available and unlocked AccountModels for a specific EntityModel, specifically for the creation + and management of Invoices. - Roles in GROUP_INVOICE: ASSET_CA_CASH, ASSET_CA_RECEIVABLES, LIABILITY_CL_DEFERRED_REVENUE. + This method ensures that only relevant accounts are pulled, as defined under the roles in `GROUP_INVOICE`. + These roles include: ASSET_CA_CASH, ASSET_CA_RECEIVABLES, and LIABILITY_CL_DEFERRED_REVENUE. Parameters - __________ - - entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. + ---------- + user_model: User + The Django User Model instance requesting access. It is used to check the necessary permissions. - coa_slug: str - Explicitly specify which chart of accounts to use. If None, will pull default Chart of Accounts. - Discussed in detail in the CoA Model CoA slug, basically helps in identifying the complete Chart of - Accounts for a particular EntityModel. + entity_slug: Union[EntityModel, str] + Specifies the EntityModel or its slug to pull accounts from. If a slug is provided and `coa_slug` is `None`, + the method will perform an additional database query to determine the default chart of accounts. - user_model: - The Django User Model making the request to check for permissions. + coa_slug: Optional[str], default=None + Explicitly specifies which chart of accounts to use. If `None`, the method will default to using + the EntityModel's default chart of accounts. Returns - _______ + ------- AccountModelQuerySet - A QuerySet of all requested EntityModel Chart of Accounts. + A QuerySet containing the AccountModels relevant for the specified EntityModel and the roles defined + in `GROUP_INVOICE`. """ qs = self.for_entity_available( user_model=user_model, @@ -406,30 +520,26 @@ def for_invoice(self, user_model, entity_slug: str, coa_slug: Optional[str] = No def for_bill(self, user_model, entity_slug, coa_slug: Optional[str] = None) -> AccountModelQuerySet: """ - Convenience method to pull only available and unlocked AccountModels for a specific EntityModel relevant only - for creating and management of Bills. See :func:`GROUP_BILL `. - - Roles in GROUP_BILL: ASSET_CA_CASH, ASSET_CA_PREPAID, LIABILITY_CL_ACC_PAYABLE. + Retrieves only available and unlocked AccountModels for a specific EntityModel, + specifically for the creation and management of Bills. Roles within the 'GROUP_BILL' + context include: ASSET_CA_CASH, ASSET_CA_PREPAID, and LIABILITY_CL_ACC_PAYABLE. Parameters - __________ - - entity_slug: EntityModel or str - The EntityModel or EntityModel slug to pull accounts from. If slug is passed and coa_slug is None will - result in an additional Database query to determine the default code of accounts. + ---------- + user_model : Django User Model + The Django User Model that is making the request, used to check for permissions. - coa_slug: str - Explicitly specify which chart of accounts to use. If None, will pull default Chart of Accounts. - Discussed in detail in the CoA Model CoA slug, basically helps in identifying the complete Chart of - Accounts for a particular EntityModel. + entity_slug : Union[EntityModel, str] + The EntityModel or EntityModel slug from which to pull accounts. If given a slug and coa_slug + is None, an additional database query will be made to determine the default chart of accounts. - user_model: - The Django User Model making the request to check for permissions. + coa_slug : Optional[str] + The specific chart of accounts to use. If None, it will default to the EntityModel's default chart of accounts. Returns - _______ + ------- AccountModelQuerySet - A QuerySet of all requested EntityModel Chart of Accounts. + A QuerySet of the requested EntityModel's chart of accounts. """ qs = self.for_entity_available( user_model=user_model, @@ -444,42 +554,33 @@ def account_code_validator(value: str): class AccountModelAbstract(MP_Node, CreateUpdateMixIn): - """ AccountModelAbstract - + """ Abstract class representing an Account Model. Attributes ---------- BALANCE_TYPE : list - List of choices for the balance type of the account. - + List of choices for the balance type of the account. Options include 'Credit' and 'Debit'. uuid : UUIDField - UUID field representing the primary key of the account. - + Unique identifier for each account instance. code : CharField - CharField representing the account code. - + Code representing the account, constrained by length and specific validation rules. name : CharField - CharField representing the account name. - + Name of the account, constrained by length. role : CharField - CharField representing the account role. - + Role associated with the account, with specific predefined choices. role_default : BooleanField - BooleanField representing whether the account is a default account for the role. - + Flag indicating if this account is the default for its role. balance_type : CharField - CharField representing the balance type of the account. Must be 'debit' or 'credit'. - + Type of balance the account holds, must be either 'debit' or 'credit'. locked : BooleanField - BooleanField representing whether the account is locked. - + Indicates whether the account is locked. active : BooleanField - BooleanField representing whether the account is active. - + Indicates whether the account is active. coa_model : ForeignKey - ForeignKey representing the associated ChartOfAccountModel. + Reference to the associated ChartOfAccountModel. """ + BALANCE_TYPE = [ (CREDIT, _('Credit')), (DEBIT, _('Debit')) @@ -537,30 +638,33 @@ def create_account(cls, active: bool = False, **kwargs): """ - Convenience Method to Create a new Account Model. This is the preferred method to create new Accounts in order - to properly handle parent/child relationships between models. + Create a new AccountModel instance, managing parent/child relationships properly. + + This convenience method ensures correct creation of new accounts, handling the intricate logic needed for + maintaining hierarchical relationships between accounts. Parameters ---------- - name: str - The name of the new Entity. - role: str - Account role. - balance_type: str - Account Balance Type. Must be 'debit' or 'credit'. - is_role_default: bool - If True, assigns account as default for role. Only once default account per role is permitted. - locked: bool - Marks account as Locked. Defaults to False. - active: bool - Marks account as Active. Defaults to True. - + name : str + Name of the new account entity. + role : str + Role assigned to the account. + balance_type : str + Type of balance associated with the account. Must be either 'debit' or 'credit'. + is_role_default : bool, optional + Indicates if the account should be the default for its role. Only one default account per role is allowed. + Defaults to False. + locked : bool, optional + Flags the account as locked. Defaults to False. + active : bool, optional + Flags the account as active. Defaults to True. + **kwargs : dict, optional + Additional attributes for account creation. Returns ------- AccountModel - The newly created AccountModel instance. - + The newly created `AccountModel` instance. """ account_model = cls( name=name, @@ -578,25 +682,35 @@ def create_account(cls, @property def role_bs(self) -> str: """ - The principal role of the account on the balance sheet. - Options are: - * asset - * liability - * equity + Returns the principal role of the account on the balance sheet. + + The principal role can be one of the following: + - 'asset' + - 'liability' + - 'equity' Returns ------- str - A String representing the principal role of the account on the balance sheet. + A string representing the principal role of the account on the balance sheet. """ return BS_ROLES.get(self.role) def is_root_account(self): + """ + Checks if the current user's role belongs to the ROOT_GROUP. + + Returns + ------- + bool + True if the role is in the ROOT_GROUP, False otherwise + """ return self.role in ROOT_GROUP def is_debit(self) -> bool: """ - Checks if the account has a DEBIT balance. + Checks if the account has a DEBIT balance type. + Returns ------- bool @@ -606,7 +720,8 @@ def is_debit(self) -> bool: def is_credit(self): """ - Checks if the account has a CREDIT balance. + Checks if the Account Model has a CREDIT balance type. + Returns ------- bool @@ -615,43 +730,156 @@ def is_credit(self): return self.balance_type == CREDIT def is_coa_root(self): + """ + Check if the current Account Model role is 'ROOT_COA'. + + Returns + ------- + bool + True if the role is 'ROOT_COA', False otherwise. + """ return self.role == ROOT_COA def is_asset(self) -> bool: + """ + Determines if the current Account Model role of the instance is considered an asset. + + Returns + ------- + bool + True if the role is part of the GROUP_ASSETS, False otherwise. + """ return self.role in GROUP_ASSETS def is_liability(self) -> bool: + """ + Determines if the current Account Model role is considered a liability. + + Returns + ------- + bool + True if the role is part of GROUP_LIABILITIES, otherwise False. + """ return self.role in GROUP_LIABILITIES def is_capital(self) -> bool: + """ + Checks if the current Account Model role is in the capital group. + + Returns + ------- + bool + True if the role is in GROUP_CAPITAL, otherwise False. + """ return self.role in GROUP_CAPITAL def is_income(self) -> bool: + """ + Determines whether the current Account Model role belongs to the income group. + + Parameters + ---------- + self : object + The instance of the class containing attribute 'role'. + + Returns + ------- + bool + True if the role is in the GROUP_INCOME list, False otherwise. + """ return self.role in GROUP_INCOME def is_cogs(self) -> bool: + """ + Determines if the role of the object is part of the GROUP_COGS. + + Returns + ------- + bool + True if the object's role is part of the GROUP_COGS, False otherwise. + """ return self.role in GROUP_COGS def is_expense(self) -> bool: + """ + Checks if the current Account Model `role` is categorized under `GROUP_EXPENSES`. + + Parameters + ---------- + None + + Returns + ------- + bool + True if `role` is in `GROUP_EXPENSES`, otherwise False. + """ return self.role in GROUP_EXPENSES def is_active(self) -> bool: + """ + Determines if the current instance is active. + + Returns + ------- + bool + True if the instance is active, otherwise False + """ return self.active is True def is_locked(self) -> bool: + """ + Determines if the current object is locked. + + Returns + ------- + bool + True if the object is locked, False otherwise. + + """ return self.locked is True def can_activate(self): + """ + Determines if the object can be activated. + + Returns + ------- + bool + True if the object is inactive, otherwise False. + """ return all([ self.active is False ]) def can_deactivate(self): + """ + Determine if the object can be deactivated. + + Checks if the `active` attribute is set to `True`. + + Returns + ------- + bool + True if the object is currently active and can be deactivated, otherwise False. + """ return all([ self.active is True ]) def activate(self, commit: bool = True, raise_exception: bool = True, **kwargs): + """ + Checks if the Account Model instance can be activated, then Activates the AccountModel instance. + Raises exception if AccountModel cannot be activated. + + Parameters + ---------- + commit : bool, optional + If True, commit the changes to the database by calling the save method. + raise_exception : bool, optional + If True, raises an AccountModelValidationError if the account cannot be activated. + kwargs : dict + Additional parameters that can be passed for further customization. + """ if not self.can_activate(): if raise_exception: raise AccountModelValidationError( @@ -666,6 +894,19 @@ def activate(self, commit: bool = True, raise_exception: bool = True, **kwargs): ]) def deactivate(self, commit: bool = True, raise_exception: bool = True, **kwargs): + """ + Checks if the Account Model instance can be de-activated, then De-activates the AccountModel instance. + Raises exception if AccountModel cannot be de-activated. + + Parameters + ---------- + commit : bool, optional + If True, commit the changes to the database by calling the save method. + raise_exception : bool, optional + If True, raises an AccountModelValidationError if the account cannot be activated. + kwargs : dict + Additional parameters that can be passed for further customization. + """ if not self.can_deactivate(): if raise_exception: raise AccountModelValidationError( @@ -674,12 +915,26 @@ def deactivate(self, commit: bool = True, raise_exception: bool = True, **kwargs return self.active = False if commit: - self.save(update_fields=[ - 'active', - 'updated' - ]) + self.save( + update_fields=[ + 'active', + 'updated' + ]) def can_transact(self) -> bool: + """ + Determines if a transaction can be performed based on multiple conditions. + + Returns + ------- + bool + True if all conditions are met, enabling a transaction; False otherwise. + + Conditions: + 1. The chart of accounts (coa_model) must be active. + 2. The entity must not be locked. + 3. The entity itself must be active. + """ return all([ self.coa_model.is_active(), not self.is_locked(), @@ -687,7 +942,25 @@ def can_transact(self) -> bool: ]) def get_code_prefix(self) -> str: + """ + Returns the code prefix based on the account type. + This method determines the account type by calling the respective + account type methods and returns the corresponding code prefix based on Accounting best practices.. + + Returns + ------- + str + The code prefix for the account type. The possible values are: + '1' for assets, '2' for liabilities, '3' for capital, + '4' for income, '5' for cost of goods sold (COGS), + '6' for expenses. + + Raises + ------ + AccountModelValidationError + If the account role does not match any of the predefined categories. + """ if self.is_asset(): return '1' elif self.is_liability(): @@ -703,6 +976,19 @@ def get_code_prefix(self) -> str: raise AccountModelValidationError(f'Invalid role match for role {self.role}...') def get_root_role(self) -> str: + """ + Returns the root role corresponding to the account type. + + Returns + ------- + str + The root role corresponding to the account type. + + Raises + ------ + AccountModelValidationError + If no valid role match is found for the account's role. + """ if self.is_asset(): return ROOT_ASSETS elif self.is_liability(): @@ -720,10 +1006,23 @@ def get_root_role(self) -> str: raise AccountModelValidationError(f'Invalid role match for role {self.role}...') def get_account_move_choice_queryset(self): + """ + Retrieves a filtered queryset of account models that the current Account Model instance + can be a child of. + + The queryset is filtered based on the specified role and its hierarchical parent roles. + Account models with a UUID matching the current instance's UUID are excluded from the results. + + Returns + ------- + QuerySet + A filtered set of account models suitable for moving the current instance under. + """ return self.coa_model.accountmodel_set.filter( role__in=[ self.role, - self.get_root_role() + self.get_root_role(), + *VALID_PARENTS.get(self.role, []) ], ).exclude(uuid__exact=self.uuid) @@ -731,12 +1030,41 @@ def get_bs_bucket(self) -> str: return BS_BUCKETS[self.get_code_prefix()] def is_indented(self): + """ + Check if the current depth level is greater than 2. + + Returns + ------- + bool + True if the depth is greater than 2, False otherwise. + """ return self.depth > 2 def get_html_pixel_indent(self): + """ + Calculates the pixel indentation for HTML elements based on the depth attribute for UI purposes + + Returns + ------- + str + The calculated pixel indentation as a string with 'px' suffix. + """ return f'{(self.depth - 2) * 40}px' def generate_random_code(self): + """ + Generates a random code for the account adding a prefix 1-6 depending on account role. + + Raises + ------ + AccountModelValidationError + If the account role is not assigned before code generation. + + Returns + ------- + str + A randomly generated code prefixed with a role-based prefix. + """ if not self.role: raise AccountModelValidationError('Must assign account role before generate random code') @@ -755,7 +1083,6 @@ def get_absolute_url(self): ) def clean(self): - if not self.code and DJANGO_LEDGER_ACCOUNT_CODE_GENERATE: self.code = self.generate_random_code() diff --git a/django_ledger/models/entity.py b/django_ledger/models/entity.py index d4691904..32c3b092 100644 --- a/django_ledger/models/entity.py +++ b/django_ledger/models/entity.py @@ -1292,12 +1292,19 @@ def get_coa_accounts(self, """ if not coa_model: - account_model_qs = self.default_coa.accountmodel_set.all().select_related( - 'coa_model', 'coa_model__entity').not_coa_root() - else: + coa_model = self.default_coa + elif isinstance(coa_model, UUID): + coa_model = self.chartofaccountmodel_set.get(uuid__exact=coa_model) + elif isinstance(coa_model, str): + coa_model = self.chartofaccountmodel_set.get(slug__exact=coa_model) + elif isinstance(coa_model, ChartOfAccountModel): self.validate_chart_of_accounts_for_entity(coa_model=coa_model) - account_model_qs = coa_model.accountmodel_set.select_related( - 'coa_model', 'coa_model__entity').not_coa_root() + else: + raise EntityModelValidationError( + f'CoA Model {coa_model} must be an instance of ChartOfAccountModel, UUID, str or None.' + ) + + account_model_qs = coa_model.accountmodel_set.select_related('coa_model', 'coa_model__entity').not_coa_root() if active: account_model_qs = account_model_qs.active() diff --git a/django_ledger/report/cash_flow_statement.py b/django_ledger/report/cash_flow_statement.py index 90c47ede..702f63f1 100644 --- a/django_ledger/report/cash_flow_statement.py +++ b/django_ledger/report/cash_flow_statement.py @@ -1,7 +1,7 @@ from datetime import datetime, date from typing import Optional, Dict, Union -from django_ledger.io.io_digest import IODigestContextManager +from django_ledger.io.io_context import IODigestContextManager from django_ledger.report.core import BaseReportSupport, PDFReportValidationError from django_ledger.settings import DJANGO_LEDGER_CURRENCY_SYMBOL from django_ledger.templatetags.django_ledger import currency_format diff --git a/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark.png b/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a6bddaa56603aae78f05faf457596a6dcc38e0 GIT binary patch literal 12705 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 z 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 literal 0 HcmV?d00001 diff --git a/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@3x.png b/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5780cb9aa17af982d500da56eb2b20c4c30799ff GIT binary patch literal 44334 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 z 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 literal 0 HcmV?d00001 diff --git a/django_ledger/static/django_ledger/logo_2/djl-full-vert@3x.png b/django_ledger/static/django_ledger/logo_2/djl-full-vert@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5780cb9aa17af982d500da56eb2b20c4c30799ff GIT binary patch literal 44334 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 literal 0 HcmV?d00001 diff --git a/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@0.5x.png b/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@0.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d63152df9ff45d2ff1b594c77b9aad4e54c835f GIT binary patch literal 10542 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 G!v7C-C&EMk literal 0 HcmV?d00001 diff --git a/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@2x.png b/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddae1d33c0381706529006253230f2dc08b400a GIT binary patch literal 53806 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