From fa682b5c288df8eb7d8ce006f2f996203db688f5 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 17 Mar 2025 15:22:57 +0100 Subject: [PATCH 01/15] [ADD] oca_all: module with all OCA instance dependencies --- oca_all/README.rst | 87 ++++++ oca_all/__init__.py | 0 oca_all/__manifest__.py | 181 +++++++++++ oca_all/readme/DESCRIPTION.rst | 4 + oca_all/static/description/index.html | 426 ++++++++++++++++++++++++++ setup/oca_all/odoo/addons/oca_all | 1 + setup/oca_all/setup.py | 6 + test-requirements.txt | 1 + 8 files changed, 706 insertions(+) create mode 100644 oca_all/README.rst create mode 100644 oca_all/__init__.py create mode 100644 oca_all/__manifest__.py create mode 100644 oca_all/readme/DESCRIPTION.rst create mode 100644 oca_all/static/description/index.html create mode 120000 setup/oca_all/odoo/addons/oca_all create mode 100644 setup/oca_all/setup.py create mode 100644 test-requirements.txt diff --git a/oca_all/README.rst b/oca_all/README.rst new file mode 100644 index 0000000..2881acf --- /dev/null +++ b/oca_all/README.rst @@ -0,0 +1,87 @@ +======= +OCA All +======= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:89df52f29d0848cc5d8403803673fed7a371affbea15df49c4ea141b29b35da5 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github + :target: https://github.com/OCA/oca-custom/tree/14.0/oca_all + :alt: OCA/oca-custom +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/oca-custom-14-0/oca-custom-14-0-oca_all + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/oca-custom&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +OCA's Odoo instance's dependencies. + +Installing this module will create an instance likes +the one used to manage the OCA association. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Pierre Verkest + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-petrus-v| image:: https://github.com/petrus-v.png?size=40px + :target: https://github.com/petrus-v + :alt: petrus-v + +Current `maintainer `__: + +|maintainer-petrus-v| + +This module is part of the `OCA/oca-custom `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/oca_all/__init__.py b/oca_all/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py new file mode 100644 index 0000000..37249c5 --- /dev/null +++ b/oca_all/__manifest__.py @@ -0,0 +1,181 @@ +# Copyright 2024-2025 Foodles (https://www.foodles.co/). +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "OCA All", + "summary": "All oca modules dependencies", + "version": "14.0.0.0.1", + "development_status": "Alpha", + "website": "https://github.com/OCA/oca-custom", + "author": "Pierre Verkest , Odoo Community Association (OCA)", + "maintainers": [ + "petrus-v", + ], + "license": "AGPL-3", + "depends": [ + # Odoo + "account", + "account_payment", + "analytic", + "association", + "attachment_indexation", + "auth_oauth", + "auth_signup", + "barcodes", + "base", + "base_automation", + "base_geolocalize", + "base_iban", + "base_import", + "base_setup", + "base_vat", + "board", + "bus", + "calendar", + "contacts", + "crm", + "digest", + "event", + "event_sale", + "fetchmail", + "gamification", + "google_recaptcha", + "hr", + "hr_timesheet", + "http_routing", + "l10n_ch", + "l10n_multilang", + "l10n_generic_coa", + "link_tracker", + "mail", + "mail_bot", + "mass_mailing", + "mass_mailing_crm", + "mass_mailing_event", + "mass_mailing_event_track", + "mass_mailing_sale", + "membership", + "pad", + "pad_project", + "payment", + "payment_paypal", + "payment_stripe", + "payment_transfer", + "phone_validation", + "point_of_sale", + "portal", + "portal_rating", + "pos_sale", + "procurement_jit", + "product", + "project", + "purchase", + "purchase_stock", + "rating", + "resource", + "sale", + "sale_crm", + "sale_management", + "sale_project", + "sale_purchase", + "sale_stock", + "sale_timesheet", + "sales_team", + "social_media", + "stock", + "stock_account", + "survey", + "uom", + "utm", + "web", + "web_editor", + "web_kanban_gauge", + "web_tour", + "web_unsplash", + "website", + "website_blog", + "website_crm", + "website_crm_partner_assign", + "website_customer", + "website_event", + "website_event_questions", + "website_event_sale", + "website_event_track", + "website_form", + "website_form_project", + "website_google_map", + "website_links", + "website_mail", + "website_mail_channel", + "website_mass_mailing", + "website_membership", + "website_partner", + "website_payment", + "website_profile", + "website_sale", + "website_sale_digital", + "website_sale_management", + "website_slides", + # OCA + "date_range", + "mis_builder", + "mis_builder_budget", + "mis_builder_demo", + "account_payment_order", + "report_xlsx", + "mis_builder_cash_flow", + "account_statement_import_paypal", + "account_banking_pain_base", + "account_statement_import_base", + "account_banking_sepa_credit_transfer", + "account_payment_partner", + "account_payment_sale", + "account_payment_mode", + "account_payment_unece", + "account_tax_unece", + "base_ubl_payment", + "base_unece", + "uom_unece", + "base_ubl", + "project_members", + "apps_download", + "account_financial_report", + "currency_rate_update", + "l10n_ch_base_bank", + "multi_step_wizard", + "account_credit_control", + "web_widget_dropdown_dynamic", + "account_statement_import_txt_xlsx", + "account_lock_to_date", + "partner_statement", + "membership_delegated_partner_line", + # "membership_delegated_partner", + "account_menu", + "oca_custom", + "mass_operation_abstract", + "sql_request_abstract", + "bi_sql_editor", + "event_badge_design", + "web_responsive", + "sentry", + "report_xlsx_helper", + "apps_product_creator", + "website_apps_store", + "github_connector", + "github_connector_oca", + "oca_psc_team", + "website_oca_integrator", + "website_oca_psc_team", + "github_connector_odoo", + "account_statement_import", + "account_reconciliation_widget", + "base_technical_features", + "document_page", + "knowledge", + "mass_editing", + "partner_contact_access_link", + "membership_extension", + "web_advanced_search", + "disable_odoo_online", + ], + "installable": True, +} diff --git a/oca_all/readme/DESCRIPTION.rst b/oca_all/readme/DESCRIPTION.rst new file mode 100644 index 0000000..a537aba --- /dev/null +++ b/oca_all/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +OCA's Odoo instance's dependencies. + +Installing this module will create an instance likes +the one used to manage the OCA association. diff --git a/oca_all/static/description/index.html b/oca_all/static/description/index.html new file mode 100644 index 0000000..8932608 --- /dev/null +++ b/oca_all/static/description/index.html @@ -0,0 +1,426 @@ + + + + + +OCA All + + + +
+

OCA All

+ + +

Alpha License: AGPL-3 OCA/oca-custom Translate me on Weblate Try me on Runboat

+

OCA’s Odoo instance’s dependencies.

+

Installing this module will create an instance likes +the one used to manage the OCA association.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

petrus-v

+

This module is part of the OCA/oca-custom project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/setup/oca_all/odoo/addons/oca_all b/setup/oca_all/odoo/addons/oca_all new file mode 120000 index 0000000..33b113a --- /dev/null +++ b/setup/oca_all/odoo/addons/oca_all @@ -0,0 +1 @@ +../../../../oca_all \ No newline at end of file diff --git a/setup/oca_all/setup.py b/setup/oca_all/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/oca_all/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..30b71ec --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1 @@ +odoo14-addon-membership-delegated-partner-line @ git+https://github.com/OCA/vertical-association@refs/pull/151/head#subdirectory=setup/membership_delegated_partner_line From 7e6469b71ae14cd321a904282b423c2535f6ed3b Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 24 Mar 2025 11:27:49 +0100 Subject: [PATCH 02/15] [FIX] website_oca_psc_team: fix tour --- website_oca_psc_team/static/src/js/psc_team_tour.js | 4 ++-- website_oca_psc_team/tests/test_psc_team.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/website_oca_psc_team/static/src/js/psc_team_tour.js b/website_oca_psc_team/static/src/js/psc_team_tour.js index a99a685..88ff398 100644 --- a/website_oca_psc_team/static/src/js/psc_team_tour.js +++ b/website_oca_psc_team/static/src/js/psc_team_tour.js @@ -28,10 +28,10 @@ odoo.define("website_oca_psc_team.psc_team_project_tour", function (require) { { content: "Click here to edit project description.", extra_trigger: "#snippet_structure:visible", - trigger: ".o_web_psc_team_project_description p", + trigger: ".o_web_psc_team_project_description", run: function () { $(".o_web_psc_team_project_description").addClass("o_dirty"); - $(".o_web_psc_team_project_description p").text( + $(".o_web_psc_team_project_description").text( "Updated Apps store project description." ); }, diff --git a/website_oca_psc_team/tests/test_psc_team.py b/website_oca_psc_team/tests/test_psc_team.py index a524fa8..71bbd02 100644 --- a/website_oca_psc_team/tests/test_psc_team.py +++ b/website_oca_psc_team/tests/test_psc_team.py @@ -1,11 +1,12 @@ # Copyright 2019 Surekha Technologies (https://www.surekhatech.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -from odoo.tests import HttpCase +from odoo.tests import HttpCase, tagged from odoo.addons.http_routing.models.ir_http import slug +@tagged("post_install", "-at_install") class TestPSCTeamsController(HttpCase): def setUp(self): super(TestPSCTeamsController, self).setUp() From ca585644ad2f7fb95dc88f9dc9c7105b8d0104ae Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 17 Mar 2025 16:46:01 +0100 Subject: [PATCH 03/15] [IMP] OCA's Odoo: odoo-community.org development/release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add contribute tools in order to develop and release docker images for https://odoo-community.org using Acsonne toolsets likes hatch-odoo, odoo-bedrock... This helps to quickly create a locale environement close to what is installed on our production instance. Use following unreleased code: * odoo14-addon-membership-delegated-partner-line from OCA/vertical-association/pull/151 * odoo from OCA/OCB/pull/1299 Co-authored-by: Stéphane Bidoul Co-authored-by: Holger Brunn --- .dockerignore | 161 ++ .github/workflows/build-oca-image.yml | 77 + .gitignore | 2 + CONTRIBUTE.md | 111 + Dockerfile | 65 + docker-compose.yml | 70 + entrypoints/000_05_wait-postgres | 26 + entrypoints/000_10_odoo-neutralize | 42 + entrypoints/000_15_odoo-update | 19 + entrypoints/030_wait-wkhtmltopdf | 25 + entrypoints/neutralize/010_cron.sql | 10 + entrypoints/neutralize/020_mail.sql | 7 + entrypoints/neutralize/900_neutralized.sql | 6 + pyproject.toml | 110 + test-requirements.txt | 2 + uv.lock | 2119 ++++++++++++++++++++ 16 files changed, 2852 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/build-oca-image.yml create mode 100644 CONTRIBUTE.md create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100755 entrypoints/000_05_wait-postgres create mode 100755 entrypoints/000_10_odoo-neutralize create mode 100755 entrypoints/000_15_odoo-update create mode 100755 entrypoints/030_wait-wkhtmltopdf create mode 100644 entrypoints/neutralize/010_cron.sql create mode 100644 entrypoints/neutralize/020_mail.sql create mode 100644 entrypoints/neutralize/900_neutralized.sql create mode 100644 pyproject.toml create mode 100644 uv.lock diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1fabe17 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,161 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +**.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ +*.ps +*.xlsx + +.filestore/ +src/ +setup/ +Dockerfile +.copier-answers.yml +.dockerignore +.filestore/ +.editorconfig +.eslintrc.yml +.git +.github +.gitignore +.oca_hooks.cfg +.pre-commit-config.yaml +.prettierrc.yml +.pylintrc +.pylintrc-mandatory +.ruff.toml +.CONTRIBUTE.md +.pytest_cache/ +.ruff_cache/ +README.md +repos.yaml +requirements.txt +test-requirements.txt +oca_dependencies.txt +setup.cfg +tasks.py +.vscode +nohup.out diff --git a/.github/workflows/build-oca-image.yml b/.github/workflows/build-oca-image.yml new file mode 100644 index 0000000..d25ab08 --- /dev/null +++ b/.github/workflows/build-oca-image.yml @@ -0,0 +1,77 @@ +name: Build Docker Image + +on: + pull_request: + branches: + - "14.0*" + push: + branches: + - "14.0" + tags: + - 'v14.0.*' + +env: + OWNER: "oca" + + +jobs: + build_docker_image: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Login to ghcr.io + if: ${{ github.repository_owner == env.OWNER && github.ref == 'refs/heads/14.0' || startsWith(github.ref, 'refs/tags/') }} + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - + name: Build + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile + tags: | + ghcr.io/${{ env.OWNER }}/oca-custom:14.0-oca-latest + cache-from: type=registry,ref=ghcr.io/oca/oca-custom:14.0-oca-latest + cache-to: type=local,dest=/tmp/.buildx-cache + pull: true + load: true + - + name: Test install oca_all in docker image + run: | + docker compose up --wait db kwkhtmltopdf + docker compose run --rm odoo odoo -c /etc/odoo.cfg -i oca_all --without-demo= --stop-after-init + # purpose it to test update entrypoints + docker compose up --wait odoo + - + name: Push latests cache image + if: ${{ github.repository_owner == env.OWNER && github.ref == 'refs/heads/14.0' }} + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile + tags: | + ghcr.io/${{ env.OWNER }}/oca-custom:14.0-oca-latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=inline + push: true + - + name: Push image with tag if tagged + if: ${{ github.repository_owner == env.OWNER && startsWith(github.ref, 'refs/tags/') }} + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile + tags: | + ghcr.io/${{ env.OWNER }}/oca-custom:${{ github.ref_name }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=inline + push: true diff --git a/.gitignore b/.gitignore index 6ec07a0..835f20d 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,5 @@ docs/_build/ # OCA rules !static/lib/ +src/ +.env diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md new file mode 100644 index 0000000..0603170 --- /dev/null +++ b/CONTRIBUTE.md @@ -0,0 +1,111 @@ +# Contribute to the OCA's Odoo instance + +This guide aims to help happy volunteers to contribute to the OCA's Odoo instance. I +suppose mainly the OCA's Internal Tools team. + +It's split into 3 sections: + +- [Concepts](#concepts): Main concepts to understand and general organization +- [Processes](#processes): Helping doing the work without missing crucial steps +- [HowTos](#howto): How to do specific tasks + +## Concepts + +This repository is setup as other OCA's repositories to launch CI as usual and as an +extra configuration in order to build the OCA' Docker image used by our Odoo instance, +as well as facilitate the bootstrapping of a development environment. + +Managing and freezing modules versions rely on python tools: + +- [uv](https://docs.astral.sh/uv/) +- [hatch-odoo](https://pypi.org/project/hatch-odoo/) + +## Processes + +Here we focus on what to do without explaining how to do it. + +### Release + +- Add a tag to any git commit (prefer a commit in the 14.0 branch even this is not + required which could helps if needs to quickly deliver a bug fix) and push it to the + repo (ie: + `git tag -am "New release 2025-05-24" v14.0-20250524 && git push oca v14.0-20250524`). + +- This will will trigger other flow to create the docker image. Tag must matched + following pattern to trigner the CI `v14.0.*`. + +- A new docker image should be available in the + [github docker registry](https://github.com/oca/oca-custom/pkgs/container/oca-custom) + +### deployment + +Ask administrator to deploy the given version. + +## HowTos + +Here we focus on how to do it, it's a suggest way to works but feel free to use your own +way. + +### Setup developer environment + +Requirements: + +- Postgresql +- [uv](https://docs.astral.sh/uv/) +- Some dependencies to be able to build some python packages: `libpq-dev`, + `build-essential`, TODO +- wkhtmltopdf + +Prepare a python virtual environment with the correct python version (which uv will +download for you if necessary) and install the required dependencies: + +```bash +uv sync +``` + +### Development + +For addons living in this repository, you can just change code and restart Odoo with the +`uv run` command. + +For addons in other repositories, the procedure is as follows: + +- check out the repository somewhere, ie /src/\$repo +- add the following line to `pyproject.toml` in the `[tool.uv.sources]` section: + + odoo14-addon-$youraddon = { path = "/srv/$repo/setup/$youraddon", editable = true } + +- run `uv sync` +- restart Odoo + +### Setup database and launch tests + +- setup database with demo data and all oca modules installed + +```bash +uv run odoo -d oca-custom -i oca_all --stop-after-init --without-de +``` + +- run tests using pytest launcher + +````bash +uv run pytest --odoo-database oca-custom --cov ./oca_psc_team/ oca_psc_team/ +`` + +### Update OCB Branch + +```bash +uv sync -P odoo +```` + +### Update a specific OCA module dependency using the latest pypi release + +```bash +uv sync -P odoo14-addon- +``` + +### Bump all dependencies to the latest version + +```bash +uv sync -U +``` diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0ac15a8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,65 @@ +# syntax=docker/dockerfile:1.4 + +############################################################### +# Base stage, with the non-python runtime dependencies, and uv. +# + +FROM ghcr.io/acsone/odoo-bedrock:14.0-py39-focal-latest AS base + +# Install apt runtime dependencies. +RUN set -e \ + && apt update \ + && apt -y install --no-install-recommends \ + postgresql-client \ + && apt -y clean \ + && rm -rf /var/lib/apt/lists/* + +# Install uv, and configure it for optimal usage in Dockerfile. +COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv +ENV UV_PROJECT_ENVIRONMENT=$VIRTUAL_ENV +ENV UV_LINK_MODE=copy +ENV UV_COMPILE_BYTECODE=1 + +############################################################### +# Dependencies stage, where we install tools necessary to build +# source distributions, and install all the locked dependencies +# in the virtual environment. +# + +FROM base AS dependencies + +# Install git and other build tools. +RUN set -e \ + && apt update \ + && apt -y install --no-install-recommends \ + git \ + python3.9-dev \ + build-essential \ + libpq-dev \ + && apt -y clean \ + && rm -rf /var/lib/apt/lists/* + +# Install the locked dependencies in the virtual environment, +# but not the project +RUN --mount=type=cache,target=/root/.cache/uv \ + --mount=type=bind,source=uv.lock,target=uv.lock \ + --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ + uv sync --frozen --no-install-project + +############################################################### +# In this runtime stage, we install the app in editable mode, +# on top of dependencies. +# + +FROM base AS runtime + +COPY --from=dependencies $VIRTUAL_ENV $VIRTUAL_ENV + +# Install the app +COPY . /app +WORKDIR /app +RUN python -m compileall . +RUN --mount=type=cache,target=/root/.cache/uv \ + uv sync --locked --no-dev + +COPY entrypoints/* /odoo/start-entrypoint.d/ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e0ef208 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,70 @@ +services: + odoo: + image: ghcr.io/${OWNER:-oca}/oca-custom:${IMAGE_VERSION:-14.0-oca-latest} + build: + context: ./ + networks: + - internal + - kwkhtmltopdf + volumes: + - oca_filestore:/data/odoo/filestore + command: ["odoo", "-c", "/etc/odoo.cfg"] + ports: + - 8069:8069 + environment: + - DB_HOST=db + - DB_PASSWORD=${POSTGRES_PASSWORD:-ocapwd} + - DB_USER=${POSTGRES_USER:-oca} + - DB_NAME=${POSTGRES_DB:-oca} + - UNACCENT=True + - WORKERS=0 + - LIST_DB=False + - WITHOUT_DEMO=False + - KWKHTMLTOPDF_SERVER_URL=http://kwkhtmltopdf:8080 + - ODOO_REPORT_URL=http://odoo:8069 + - RUNNING_ENV=dev + healthcheck: + test: ["CMD", "bash", "-c", "echo > /dev/tcp/0.0.0.0/8069"] + # test: ["CMD-SHELL", "sh -c '(echo > /dev/tcp/0.0.0.0/8069) >/dev/null 2>&1'"] + # install is done without checksum so start in CI will be quite long + interval: 2s + timeout: 200ms + retries: 150 + depends_on: + - db + - kwkhtmltopdf + + db: + image: postgres + volumes: + - oca_pgdata:/var/lib/postgresql/data + environment: + POSTGRES_DB: ${POSTGRES_DB:-oca} + POSTGRES_USER: ${POSTGRES_USER:-oca} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ocapwd} + networks: + - internal + healthcheck: + test: + [ + "CMD-SHELL", + "sh -c 'pg_isready -U ${POSTGRES_USER:-oca} -d ${POSTGRES_DB:-oca}'", + ] + interval: 3s + timeout: 2s + retries: 3 + + kwkhtmltopdf: + image: ghcr.io/acsone/kwkhtmltopdf:0.12.5-latest + networks: + - kwkhtmltopdf + +networks: + internal: + kwkhtmltopdf: + +volumes: + oca_pgdata: + driver: local + oca_filestore: + driver: local diff --git a/entrypoints/000_05_wait-postgres b/entrypoints/000_05_wait-postgres new file mode 100755 index 0000000..ade0b2b --- /dev/null +++ b/entrypoints/000_05_wait-postgres @@ -0,0 +1,26 @@ +#!/bin/bash + +set -e +set -x + +# Configuration +MAX_RETRIES=30 # Maximum number of attempts +SLEEP_TIME=2 # Wait time between attempts (in seconds) + +# Attempt counter +attempt=1 +pg_isready --version + +# Wait for PostgreSQL to be available +until [ "$attempt" -ge "$MAX_RETRIES" ]; do + if pg_isready > /dev/null 2>&1; then + echo "PostgreSQL is available!" + exit 0 + fi + echo "Attempt $attempt/$MAX_RETRIES: PostgreSQL is not ready yet..." + sleep "$SLEEP_TIME" + ((attempt++)) +done + +echo "Failure: PostgreSQL is not available after $MAX_RETRIES attempts." +exit 1 diff --git a/entrypoints/000_10_odoo-neutralize b/entrypoints/000_10_odoo-neutralize new file mode 100755 index 0000000..9ff7b88 --- /dev/null +++ b/entrypoints/000_10_odoo-neutralize @@ -0,0 +1,42 @@ +#!/bin/bash +set -e +set -x + +if [[ -z "${RUNNING_ENV}" ]] +then + echo "RUNNING_ENV is not defined, please set a RUNNING_ENV and try again" + exit 1 +else + + if [ "$RUNNING_ENV" != 'prod' ] + then + echo "Neutralizing $RUNNING_ENV database..." + else + echo "$RUNNING_ENV database, no needs to neutralize..." + exit 0 + fi +fi + +if [ "$( psql -tAc "SELECT 1 FROM pg_database WHERE datname='$DB_NAME'" )" != '1' ] +then + echo "Database $DB_NAME does not exist, skipping $0" + exit 0 +fi + +if [ "$( psql $DB_NAME -tAc "SELECT 1 FROM pg_tables WHERE tablename='ir_config_parameter'" )" != '1' ] +then + echo "Database $DB_NAME not initialized, skipping $0" + exit 0 +fi + +if [ "$( psql $DB_NAME -tAc "SELECT count(*) FROM ir_config_parameter WHERE key='database.is_neutralized' AND value='true'" )" != '0' ] +then + echo "No OP: Database $DB_NAME already neutralized." + exit 0 +fi + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +shopt -s nullglob +for file in "$SCRIPT_DIR"/*.sql; do + psql $DB_NAME -tAf "${file}" +done diff --git a/entrypoints/000_15_odoo-update b/entrypoints/000_15_odoo-update new file mode 100755 index 0000000..d50e8fc --- /dev/null +++ b/entrypoints/000_15_odoo-update @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e +set -x + +if [ "$( psql -tAc "SELECT 1 FROM pg_database WHERE datname='$DB_NAME'" )" != '1' ] +then + echo "Database $DB_NAME does not exist, skipping $0" + exit 0 +fi + +if [ "$( psql $DB_NAME -tAc "SELECT 1 FROM pg_tables WHERE tablename='ir_config_parameter'" )" != '1' ] +then + echo "Database $DB_NAME not initialized, skipping $0" + exit 0 +fi + + +click-odoo-update --if-exists -d "$DB_NAME" --i18n-overwrite diff --git a/entrypoints/030_wait-wkhtmltopdf b/entrypoints/030_wait-wkhtmltopdf new file mode 100755 index 0000000..8cbb841 --- /dev/null +++ b/entrypoints/030_wait-wkhtmltopdf @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e +set -x + +# Configuration +MAX_RETRIES=30 # Maximum number of attempts +SLEEP_TIME=2 # Wait time between attempts (in seconds) + +# Attempt counter +attempt=1 + +# Wait for PostgreSQL to be available +until [ "$attempt" -ge "$MAX_RETRIES" ]; do + if wkhtmltopdf --version > /dev/null 2>&1; then + echo "wkhtmltopdf is available!" + exit 0 + fi + echo "Attempt $attempt/$MAX_RETRIES: wkhtmltopdf is not ready yet..." + sleep "$SLEEP_TIME" + ((attempt++)) +done + +echo "Failure: wkhtmltopdf is not available after $MAX_RETRIES attempts." +exit 1 diff --git a/entrypoints/neutralize/010_cron.sql b/entrypoints/neutralize/010_cron.sql new file mode 100644 index 0000000..d270c0c --- /dev/null +++ b/entrypoints/neutralize/010_cron.sql @@ -0,0 +1,10 @@ +-- deactivate crons +UPDATE ir_cron + SET active = false + WHERE id NOT IN ( + SELECT res_id + FROM ir_model_data + WHERE model = 'ir.cron' + AND name = 'autovacuum_job' + AND module = 'base' +); diff --git a/entrypoints/neutralize/020_mail.sql b/entrypoints/neutralize/020_mail.sql new file mode 100644 index 0000000..e54fb6a --- /dev/null +++ b/entrypoints/neutralize/020_mail.sql @@ -0,0 +1,7 @@ +-- deactivate mail servers +UPDATE ir_mail_server + SET active = false; + +-- insert dummy mail server to prevent using fallback servers specified using command line +INSERT INTO ir_mail_server(name, smtp_port, smtp_host, smtp_encryption, active, smtp_user) +VALUES ('neutralization - disable emails', 1025, 'invalid', 'none', true, 'login'); diff --git a/entrypoints/neutralize/900_neutralized.sql b/entrypoints/neutralize/900_neutralized.sql new file mode 100644 index 0000000..edba256 --- /dev/null +++ b/entrypoints/neutralize/900_neutralized.sql @@ -0,0 +1,6 @@ + +-- neutralization flag for the database +INSERT INTO ir_config_parameter (key, value) +VALUES ('database.is_neutralized', 'true') + ON CONFLICT (key) DO + UPDATE SET value = 'true'; diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..fef2051 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,110 @@ +[build-system] +requires = ["hatchling", "hatch-odoo"] +build-backend = "hatchling.build" + + +[project] +name = "oca-custom" +version = "14.0" +description = "Odoo by OCA" +# readme = "README.md" +requires-python = "==3.9.*" +dynamic = ["dependencies"] + +[tool.hatch.build] +packages = ["./"] + +# Enable the hatch-odoo metadata hook to generate dependencies from addons manifests. +[tool.hatch.metadata.hooks.odoo-addons-dependencies] +# Enable the hatch-odoo build hook to locate the Odoo addons and package them in odoo/addons. +# if not provided, "locals" modules (those in './') are not found and cannot be installed... +[tool.hatch.build.hooks.odoo-addons-dirs] + +[tool.hatch-odoo] +# dependencies that are not in the addons manifest +dependencies = [ + "odoo==14.0.*", + # indirect unrealeased dependencies + "odoo-addons-design-themes==14.0.*", + # Add some constraints to Odoo deps that should be in their setup.py + "Babel==2.9.1", + "chardet==3.0.4", + "decorator==4.3.0", + "docutils==0.14", + "ebaysdk==2.1.5", + "freezegun==0.3.15", + "gevent==20.9.0 ", + # gevent==21.8.0 ", + "greenlet==1.1.2", + "idna==2.6", + "Jinja2==2.11.2", + "libsass>=0.18.0", + "lxml==4.6.5", + "Mako==1.0.7", + "MarkupSafe==1.1.0", + "num2words==0.5.6", + "ofxparse==0.19", + # ofxparse==0.21", + "passlib==1.7.1", + "Pillow==8.1.1", + "polib==1.1.0", + "psutil==5.6.6", + "psycopg2==2.9.10", + "pydot==1.4.1", + "PyPDF2==1.26.0", + "pyserial==3.4", + "python-dateutil==2.7.3", + "pytz", + "qrcode==6.1", + "reportlab==3.5.55", + "requests==2.21.0", + # requests==2.25.1; python_version > '3.9' # (Jammy) versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)", + # urllib3==1.26.5; python_version > '3.9' # (Jammy) indirect / min version = 1.25.8 (Focal with security backports)", + "zeep==3.2.0", + "python-stdnum==1.8", + "vobject==0.9.6.1", + "Werkzeug==0.16.1 ", + # Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy)", + "XlsxWriter==1.1.2", + "xlwt==1.3.*", + "xlrd==1.2.0", + # TODO: add constraints in github connector module + "PyGithub<2.0.0", + "click-odoo-contrib", +] +addons_dirs = ["./"] + +[tool.uv] +# On OCA 14.0 series translations commits are realeased +# in pre-release state +prerelease = "allow" +# tell uv when dependencies may change +cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] + +dev-dependencies = [ + "parameterized>=0.9.0", + "pytest>8", + "pytest-odoo>=2", + "pytest-cov>=5.0.0", + "pytest-xdist>=3.6.1", + "manifestoo>=1.0", + "odoo-test-helper", + "websocket-client", +] + + +[tool.uv.sources] +# Use fix updating account move line update membership line +odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } + +# unreleased dependency, add it to test-requirements.txt to let the +# test pipeline to use it as well +odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } +odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } + +# Example to develop module from an other repository +# installing in editable mode +# odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } + +[tool.pytest] +addopts = "-v -s --cov-report term-missing" diff --git a/test-requirements.txt b/test-requirements.txt index 30b71ec..2e4eb51 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1 +1,3 @@ +# While running tests, coverage is trying to read configuration in pyproject.toml +coverage[toml] odoo14-addon-membership-delegated-partner-line @ git+https://github.com/OCA/vertical-association@refs/pull/151/head#subdirectory=setup/membership_delegated_partner_line diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..821a9ad --- /dev/null +++ b/uv.lock @@ -0,0 +1,2119 @@ +version = 1 +revision = 2 +requires-python = "==3.9.*" + +[options] +prerelease-mode = "allow" + +[[package]] +name = "appdirs" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/d8/05696357e0311f5b5c316d7b95f46c669dd9c15aaeecbb48c7d0aeb88c40/appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", size = 13470, upload-time = "2020-05-11T07:59:51.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128", size = 9566, upload-time = "2020-05-11T07:59:49.499Z" }, +] + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload-time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "babel" +version = "2.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/17/e6/ec9aa6ac3d00c383a5731cc97ed7c619d3996232c977bb8326bcbb6c687e/Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0", size = 8683505, upload-time = "2021-04-28T19:31:41.723Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/96/4ba93c5f40459dc850d25f9ba93f869a623e77aaecc7a9344e19c01942cf/Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9", size = 8832555, upload-time = "2021-04-28T19:31:38.181Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.13.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516, upload-time = "2025-02-04T20:05:01.681Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015, upload-time = "2025-02-04T20:05:03.729Z" }, +] + +[[package]] +name = "cached-property" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/4b/3d870836119dbe9a5e3c9a61af8cc1a8b69d75aea564572e385882d5aefb/cached_property-2.0.1.tar.gz", hash = "sha256:484d617105e3ee0e4f1f58725e72a8ef9e93deee462222dbd51cd91230897641", size = 10574, upload-time = "2024-10-25T15:43:55.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/0e/7d8225aab3bc1a0f5811f8e1b557aa034ac04bdf641925b30d3caf586b28/cached_property-2.0.1-py3-none-any.whl", hash = "sha256:f617d70ab1100b7bcf6e42228f9ddcb78c676ffa167278d9f730d1c2fba69ccb", size = 7428, upload-time = "2024-10-25T15:43:54.711Z" }, +] + +[[package]] +name = "certifi" +version = "2025.1.31" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577, upload-time = "2025-01-31T02:16:47.166Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393, upload-time = "2025-01-31T02:16:45.015Z" }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload-time = "2024-09-04T20:45:21.852Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/ea/8bb50596b8ffbc49ddd7a1ad305035daa770202a6b782fc164647c2673ad/cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", size = 182220, upload-time = "2024-09-04T20:45:01.577Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/e77c8cd24f58285a82c23af484cf5b124a376b32644e445960d1a4654c3a/cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", size = 178605, upload-time = "2024-09-04T20:45:03.837Z" }, + { url = "https://files.pythonhosted.org/packages/ed/65/25a8dc32c53bf5b7b6c2686b42ae2ad58743f7ff644844af7cdb29b49361/cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", size = 424910, upload-time = "2024-09-04T20:45:05.315Z" }, + { url = "https://files.pythonhosted.org/packages/42/7a/9d086fab7c66bd7c4d0f27c57a1b6b068ced810afc498cc8c49e0088661c/cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", size = 447200, upload-time = "2024-09-04T20:45:06.903Z" }, + { url = "https://files.pythonhosted.org/packages/da/63/1785ced118ce92a993b0ec9e0d0ac8dc3e5dbfbcaa81135be56c69cabbb6/cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", size = 454565, upload-time = "2024-09-04T20:45:08.975Z" }, + { url = "https://files.pythonhosted.org/packages/74/06/90b8a44abf3556599cdec107f7290277ae8901a58f75e6fe8f970cd72418/cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", size = 435635, upload-time = "2024-09-04T20:45:10.64Z" }, + { url = "https://files.pythonhosted.org/packages/bd/62/a1f468e5708a70b1d86ead5bab5520861d9c7eacce4a885ded9faa7729c3/cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", size = 445218, upload-time = "2024-09-04T20:45:12.366Z" }, + { url = "https://files.pythonhosted.org/packages/5b/95/b34462f3ccb09c2594aa782d90a90b045de4ff1f70148ee79c69d37a0a5a/cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", size = 460486, upload-time = "2024-09-04T20:45:13.935Z" }, + { url = "https://files.pythonhosted.org/packages/fc/fc/a1e4bebd8d680febd29cf6c8a40067182b64f00c7d105f8f26b5bc54317b/cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", size = 437911, upload-time = "2024-09-04T20:45:15.696Z" }, + { url = "https://files.pythonhosted.org/packages/e6/c3/21cab7a6154b6a5ea330ae80de386e7665254835b9e98ecc1340b3a7de9a/cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", size = 460632, upload-time = "2024-09-04T20:45:17.284Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b5/fd9f8b5a84010ca169ee49f4e4ad6f8c05f4e3545b72ee041dbbcb159882/cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", size = 171820, upload-time = "2024-09-04T20:45:18.762Z" }, + { url = "https://files.pythonhosted.org/packages/8c/52/b08750ce0bce45c143e1b5d7357ee8c55341b52bdef4b0f081af1eb248c2/cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", size = 181290, upload-time = "2024-09-04T20:45:20.226Z" }, +] + +[[package]] +name = "chardet" +version = "3.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d/chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", size = 1868453, upload-time = "2017-06-08T14:34:35.581Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691", size = 133356, upload-time = "2017-06-08T14:34:33.552Z" }, +] + +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" }, +] + +[[package]] +name = "click-odoo" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/56/93bba1998f8023fcd3393b3948363f7e01eb68a63080811f608ef1c29243/click_odoo-1.7.0.tar.gz", hash = "sha256:a8f16e5523e78b481fd6e5f6f4a0a056791e86e7d73cd239cee0657506c7db6d", size = 28517, upload-time = "2024-10-23T09:16:23.785Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/71/af36a694aee1b4bcad440bf9d7bc6ac69b9aeab5b25db34182ee955c575d/click_odoo-1.7.0-py3-none-any.whl", hash = "sha256:b5fc7a1d185e9f9e7e233b4ea60b4193bd9553241a4cf96a776387a29ffc43ee", size = 16559, upload-time = "2024-10-23T09:16:20.026Z" }, +] + +[[package]] +name = "click-odoo-contrib" +version = "1.20" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click-odoo" }, + { name = "manifestoo-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/57/294b3e76cdb979e14c279738627b1eb1d92036466293d5e2f5ac50b80945/click_odoo_contrib-1.20.tar.gz", hash = "sha256:4d187b7df756ed9043963ed13e011bb7312e1e44def7d2fa198b8e2e0784ba68", size = 54806, upload-time = "2024-10-23T10:07:41.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/9e/826ea21243dfd458de0e7c088b06aa605af771702990577813024d371acf/click_odoo_contrib-1.20-py3-none-any.whl", hash = "sha256:8faafc32c3f1179d49d7b06540b5c3b969e7316281d779ce73f18a2a691752c7", size = 34641, upload-time = "2024-10-23T10:07:40.023Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/36/465f5492443265e1278f9a82ffe6aeed3f1db779da0d6e7d4611a5cfb6af/coverage-7.7.0.tar.gz", hash = "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166", size = 809969, upload-time = "2025-03-16T18:00:21.805Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/42/0e77be6f2fafe7f3de88ddf9f8d9a0d8e9a75f9517081d261d31439908c7/coverage-7.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5", size = 210604, upload-time = "2025-03-16T18:00:02.122Z" }, + { url = "https://files.pythonhosted.org/packages/0e/62/a82adc7818545fca3987367c6b20f239645678438f7da5827a4960bcbe7f/coverage-7.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261", size = 211031, upload-time = "2025-03-16T18:00:03.533Z" }, + { url = "https://files.pythonhosted.org/packages/a6/50/a98b418fcaf531b2829b2a06f47f8c5cbc0dcce4a9aa63c5f30bf47d1a92/coverage-7.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253", size = 239791, upload-time = "2025-03-16T18:00:05.481Z" }, + { url = "https://files.pythonhosted.org/packages/58/f7/0a8f891fce6f389b1062a520aff130fa6974433efeb549dd19cbdccc76b3/coverage-7.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf", size = 237718, upload-time = "2025-03-16T18:00:07.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/8f/362c91661e6c43ff86b65b15bbb60ad1ad4924e9d1e35a0d5f08eb3337c4/coverage-7.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e", size = 238820, upload-time = "2025-03-16T18:00:09.084Z" }, + { url = "https://files.pythonhosted.org/packages/dd/4b/56520dba6f38ad59e96cdeb8c7eafa47781576d2baabdfa10f8c1813b37b/coverage-7.7.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b", size = 238595, upload-time = "2025-03-16T18:00:10.573Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e6/acfae468bd1f9b691b29d42f93bfd7080c05021103f03580934c066a3844/coverage-7.7.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e", size = 236820, upload-time = "2025-03-16T18:00:12.124Z" }, + { url = "https://files.pythonhosted.org/packages/22/4f/9b65332326b0c5b7de197a52e766e2bd547beec6948e1d5c4063289e3281/coverage-7.7.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d", size = 237800, upload-time = "2025-03-16T18:00:13.582Z" }, + { url = "https://files.pythonhosted.org/packages/bb/99/1c2214678731517d91774b75ed5c0f72feefee3270c232c286b314518d7d/coverage-7.7.0-cp39-cp39-win32.whl", hash = "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c", size = 213341, upload-time = "2025-03-16T18:00:15.129Z" }, + { url = "https://files.pythonhosted.org/packages/21/30/4d9ae5544f839da30e42e03850d1dfe4ab184d6307ed971e70178760a68d/coverage-7.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59", size = 214227, upload-time = "2025-03-16T18:00:17.054Z" }, + { url = "https://files.pythonhosted.org/packages/cb/69/6a5eac32d2e8721274ef75df1b9fd6a8f7e8231e41ff7bc5501f19835f25/coverage-7.7.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c", size = 202813, upload-time = "2025-03-16T18:00:18.857Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ac/60f409a448e5b0e9b8539716f683568aa5848c1be903cdbbc805a552cdf8/coverage-7.7.0-py3-none-any.whl", hash = "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a", size = 202803, upload-time = "2025-03-16T18:00:20.282Z" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli" }, +] + +[[package]] +name = "cryptography" +version = "44.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/25/4ce80c78963834b8a9fd1cc1266be5ed8d1840785c0f2e1b73b8d128d505/cryptography-44.0.2.tar.gz", hash = "sha256:c63454aa261a0cf0c5b4718349629793e9e634993538db841165b3df74f37ec0", size = 710807, upload-time = "2025-03-02T00:01:37.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/ef/83e632cfa801b221570c5f58c0369db6fa6cef7d9ff859feab1aae1a8a0f/cryptography-44.0.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:efcfe97d1b3c79e486554efddeb8f6f53a4cdd4cf6086642784fa31fc384e1d7", size = 6676361, upload-time = "2025-03-02T00:00:06.528Z" }, + { url = "https://files.pythonhosted.org/packages/30/ec/7ea7c1e4c8fc8329506b46c6c4a52e2f20318425d48e0fe597977c71dbce/cryptography-44.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29ecec49f3ba3f3849362854b7253a9f59799e3763b0c9d0826259a88efa02f1", size = 3952350, upload-time = "2025-03-02T00:00:09.537Z" }, + { url = "https://files.pythonhosted.org/packages/27/61/72e3afdb3c5ac510330feba4fc1faa0fe62e070592d6ad00c40bb69165e5/cryptography-44.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc821e161ae88bfe8088d11bb39caf2916562e0a2dc7b6d56714a48b784ef0bb", size = 4166572, upload-time = "2025-03-02T00:00:12.03Z" }, + { url = "https://files.pythonhosted.org/packages/26/e4/ba680f0b35ed4a07d87f9e98f3ebccb05091f3bf6b5a478b943253b3bbd5/cryptography-44.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3c00b6b757b32ce0f62c574b78b939afab9eecaf597c4d624caca4f9e71e7843", size = 3958124, upload-time = "2025-03-02T00:00:14.518Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e8/44ae3e68c8b6d1cbc59040288056df2ad7f7f03bbcaca6b503c737ab8e73/cryptography-44.0.2-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7bdcd82189759aba3816d1f729ce42ffded1ac304c151d0a8e89b9996ab863d5", size = 3678122, upload-time = "2025-03-02T00:00:17.212Z" }, + { url = "https://files.pythonhosted.org/packages/27/7b/664ea5e0d1eab511a10e480baf1c5d3e681c7d91718f60e149cec09edf01/cryptography-44.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:4973da6ca3db4405c54cd0b26d328be54c7747e89e284fcff166132eb7bccc9c", size = 4191831, upload-time = "2025-03-02T00:00:19.696Z" }, + { url = "https://files.pythonhosted.org/packages/2a/07/79554a9c40eb11345e1861f46f845fa71c9e25bf66d132e123d9feb8e7f9/cryptography-44.0.2-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4e389622b6927d8133f314949a9812972711a111d577a5d1f4bee5e58736b80a", size = 3960583, upload-time = "2025-03-02T00:00:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/bb/6d/858e356a49a4f0b591bd6789d821427de18432212e137290b6d8a817e9bf/cryptography-44.0.2-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f514ef4cd14bb6fb484b4a60203e912cfcb64f2ab139e88c2274511514bf7308", size = 4191753, upload-time = "2025-03-02T00:00:25.038Z" }, + { url = "https://files.pythonhosted.org/packages/b2/80/62df41ba4916067fa6b125aa8c14d7e9181773f0d5d0bd4dcef580d8b7c6/cryptography-44.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1bc312dfb7a6e5d66082c87c34c8a62176e684b6fe3d90fcfe1568de675e6688", size = 4079550, upload-time = "2025-03-02T00:00:26.929Z" }, + { url = "https://files.pythonhosted.org/packages/f3/cd/2558cc08f7b1bb40683f99ff4327f8dcfc7de3affc669e9065e14824511b/cryptography-44.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b721b8b4d948b218c88cb8c45a01793483821e709afe5f622861fc6182b20a7", size = 4298367, upload-time = "2025-03-02T00:00:28.735Z" }, + { url = "https://files.pythonhosted.org/packages/71/59/94ccc74788945bc3bd4cf355d19867e8057ff5fdbcac781b1ff95b700fb1/cryptography-44.0.2-cp37-abi3-win32.whl", hash = "sha256:51e4de3af4ec3899d6d178a8c005226491c27c4ba84101bfb59c901e10ca9f79", size = 2772843, upload-time = "2025-03-02T00:00:30.592Z" }, + { url = "https://files.pythonhosted.org/packages/ca/2c/0d0bbaf61ba05acb32f0841853cfa33ebb7a9ab3d9ed8bb004bd39f2da6a/cryptography-44.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:c505d61b6176aaf982c5717ce04e87da5abc9a36a5b39ac03905c4aafe8de7aa", size = 3209057, upload-time = "2025-03-02T00:00:33.393Z" }, + { url = "https://files.pythonhosted.org/packages/9e/be/7a26142e6d0f7683d8a382dd963745e65db895a79a280a30525ec92be890/cryptography-44.0.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8e0ddd63e6bf1161800592c71ac794d3fb8001f2caebe0966e77c5234fa9efc3", size = 6677789, upload-time = "2025-03-02T00:00:36.009Z" }, + { url = "https://files.pythonhosted.org/packages/06/88/638865be7198a84a7713950b1db7343391c6066a20e614f8fa286eb178ed/cryptography-44.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81276f0ea79a208d961c433a947029e1a15948966658cf6710bbabb60fcc2639", size = 3951919, upload-time = "2025-03-02T00:00:38.581Z" }, + { url = "https://files.pythonhosted.org/packages/d7/fc/99fe639bcdf58561dfad1faa8a7369d1dc13f20acd78371bb97a01613585/cryptography-44.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a1e657c0f4ea2a23304ee3f964db058c9e9e635cc7019c4aa21c330755ef6fd", size = 4167812, upload-time = "2025-03-02T00:00:42.934Z" }, + { url = "https://files.pythonhosted.org/packages/53/7b/aafe60210ec93d5d7f552592a28192e51d3c6b6be449e7fd0a91399b5d07/cryptography-44.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6210c05941994290f3f7f175a4a57dbbb2afd9273657614c506d5976db061181", size = 3958571, upload-time = "2025-03-02T00:00:46.026Z" }, + { url = "https://files.pythonhosted.org/packages/16/32/051f7ce79ad5a6ef5e26a92b37f172ee2d6e1cce09931646eef8de1e9827/cryptography-44.0.2-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1c3572526997b36f245a96a2b1713bf79ce99b271bbcf084beb6b9b075f29ea", size = 3679832, upload-time = "2025-03-02T00:00:48.647Z" }, + { url = "https://files.pythonhosted.org/packages/78/2b/999b2a1e1ba2206f2d3bca267d68f350beb2b048a41ea827e08ce7260098/cryptography-44.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b042d2a275c8cee83a4b7ae30c45a15e6a4baa65a179a0ec2d78ebb90e4f6699", size = 4193719, upload-time = "2025-03-02T00:00:51.397Z" }, + { url = "https://files.pythonhosted.org/packages/72/97/430e56e39a1356e8e8f10f723211a0e256e11895ef1a135f30d7d40f2540/cryptography-44.0.2-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d03806036b4f89e3b13b6218fefea8d5312e450935b1a2d55f0524e2ed7c59d9", size = 3960852, upload-time = "2025-03-02T00:00:53.317Z" }, + { url = "https://files.pythonhosted.org/packages/89/33/c1cf182c152e1d262cac56850939530c05ca6c8d149aa0dcee490b417e99/cryptography-44.0.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c7362add18b416b69d58c910caa217f980c5ef39b23a38a0880dfd87bdf8cd23", size = 4193906, upload-time = "2025-03-02T00:00:56.49Z" }, + { url = "https://files.pythonhosted.org/packages/e1/99/87cf26d4f125380dc674233971069bc28d19b07f7755b29861570e513650/cryptography-44.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8cadc6e3b5a1f144a039ea08a0bdb03a2a92e19c46be3285123d32029f40a922", size = 4081572, upload-time = "2025-03-02T00:00:59.995Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/6a3e0391957cc0c5f84aef9fbdd763035f2b52e998a53f99345e3ac69312/cryptography-44.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6f101b1f780f7fc613d040ca4bdf835c6ef3b00e9bd7125a4255ec574c7916e4", size = 4298631, upload-time = "2025-03-02T00:01:01.623Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a5/5bc097adb4b6d22a24dea53c51f37e480aaec3465285c253098642696423/cryptography-44.0.2-cp39-abi3-win32.whl", hash = "sha256:3dc62975e31617badc19a906481deacdeb80b4bb454394b4098e3f2525a488c5", size = 2773792, upload-time = "2025-03-02T00:01:04.133Z" }, + { url = "https://files.pythonhosted.org/packages/33/cf/1f7649b8b9a3543e042d3f348e398a061923ac05b507f3f4d95f11938aa9/cryptography-44.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:5f6f90b72d8ccadb9c6e311c775c8305381db88374c65fa1a68250aa8a9cb3a6", size = 3210957, upload-time = "2025-03-02T00:01:06.987Z" }, +] + +[[package]] +name = "decorator" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/24/15a229626c775aae5806312f6bf1e2a73785be3402c0acdec5dbddd8c11e/decorator-4.3.0.tar.gz", hash = "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c", size = 33758, upload-time = "2018-04-15T12:50:29.889Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/bb/a24838832ba35baf52f32ab1a49b906b5f82fb7c76b2f6a7e35e140bac30/decorator-4.3.0-py2.py3-none-any.whl", hash = "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82", size = 9247, upload-time = "2018-04-15T12:50:31.37Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.8.0rc2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/3b/b8849dcc3f96913924137dc4ea041d74aa513a3c5dda83d8366491290c74/defusedxml-0.8.0rc2.tar.gz", hash = "sha256:138c7d540a78775182206c7c97fe65b246a2f40b29471e1a2f1b0da76e7a3942", size = 52575, upload-time = "2023-09-29T08:01:27.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/c7/6b4ad89ca6f7732ff97ce5e9caa6fe739600d26c5d53c20d0bf9abb79ec5/defusedxml-0.8.0rc2-py2.py3-none-any.whl", hash = "sha256:1c812964311154c3bf4aaf3bc1443b31ee13530b7f255eaaa062c0553c76103d", size = 25756, upload-time = "2023-09-29T08:01:25.515Z" }, +] + +[[package]] +name = "deprecated" +version = "1.2.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/97/06afe62762c9a8a86af0cfb7bfdab22a43ad17138b07af5b1a58442690a2/deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d", size = 2928744, upload-time = "2025-01-27T10:46:25.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998, upload-time = "2025-01-27T10:46:09.186Z" }, +] + +[[package]] +name = "docutils" +version = "0.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz", hash = "sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274", size = 1727105, upload-time = "2017-08-03T10:06:29.318Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/fa/08e9e6e0e3cbd1d362c3bbee8d01d0aedb2155c4ac112b19ef3cae8eed8d/docutils-0.14-py3-none-any.whl", hash = "sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6", size = 543213, upload-time = "2017-08-03T10:18:47.603Z" }, +] + +[[package]] +name = "ebaysdk" +version = "2.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/7f/53245710a67cb9de1ad2a0e78c012c6e6e327b05dc8fb4b2e85a7ef0220b/ebaysdk-2.1.5.tar.gz", hash = "sha256:78458e1ea4a0fc7d693c26de363069696393767e4aa9689fd38efbfb08409acd", size = 42971, upload-time = "2017-10-13T21:48:40.071Z" } + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883, upload-time = "2024-07-12T22:26:00.161Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453, upload-time = "2024-07-12T22:25:58.476Z" }, +] + +[[package]] +name = "execnet" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524, upload-time = "2024-04-08T09:04:19.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612, upload-time = "2024-04-08T09:04:17.414Z" }, +] + +[[package]] +name = "freezegun" +version = "0.3.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/eb/6ac50b9faaa5dc2345ed4e905d242b840750d99a15763a880c4d785974e9/freezegun-0.3.15.tar.gz", hash = "sha256:e2062f2c7f95cc276a834c22f1a17179467176b624cc6f936e8bc3be5535ad1b", size = 25530, upload-time = "2020-02-18T00:25:39.418Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/5d/1b9d6d3c7995fff473f35861d674e0113a5f0bd5a72fe0199c3f254665c7/freezegun-0.3.15-py2.py3-none-any.whl", hash = "sha256:82c757a05b7c7ca3e176bfebd7d6779fd9139c7cb4ef969c38a28d74deef89b2", size = 14606, upload-time = "2020-02-18T00:25:37.362Z" }, +] + +[[package]] +name = "gevent" +version = "20.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation == 'CPython' and sys_platform == 'win32'" }, + { name = "greenlet", marker = "platform_python_implementation == 'CPython'" }, + { name = "setuptools" }, + { name = "zope-event" }, + { name = "zope-interface" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/c4/0c59bf329240981fd3a228ac809a82d00d4b147a82555eb4dddba2d041aa/gevent-20.9.0.tar.gz", hash = "sha256:5f6d48051d336561ec08995431ee4d265ac723a64bba99cc58c3eb1a4d4f5c8d", size = 5806581, upload-time = "2020-09-22T22:19:51.661Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/10/5e4325178d7f08957e56f5d704569a532684a3cc144235932dc7c26d7cc0/gevent-20.9.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b07fcbca3e819296979d82fac3d8b44f0d5ced57b9a04dffcfd194da99c8eb2d", size = 1738533, upload-time = "2020-09-22T22:19:46.209Z" }, + { url = "https://files.pythonhosted.org/packages/2f/fe/adf9f2572dab6a94378bb0801f80730379f49edf527d95b0b038ea853ae2/gevent-20.9.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:33a63f230755c6813fca39d9cea2a8894df32df2ee58fd69d8bf8fcc1d8e018e", size = 5844463, upload-time = "2020-09-22T22:51:41.99Z" }, +] + +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.44" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/89/37df0b71473153574a5cdef8f242de422a0f5d26d7a9e231e6f169b4ad14/gitpython-3.1.44.tar.gz", hash = "sha256:c87e30b26253bf5418b01b0660f818967f3c503193838337fe5e573331249269", size = 214196, upload-time = "2025-01-02T07:32:43.59Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/9a/4114a9057db2f1462d5c8f8390ab7383925fe1ac012eaa42402ad65c2963/GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110", size = 207599, upload-time = "2025-01-02T07:32:40.731Z" }, +] + +[[package]] +name = "greenlet" +version = "1.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/10/754e21b5bea89d0e73f99d60c83754df7cc64db74f47d98ab187669ce341/greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a", size = 91224, upload-time = "2021-09-29T10:35:50.922Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/e1/37db23293372c8b077675832b2f6a4ff3168a451c40bd329588825aa02dd/greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67", size = 92793, upload-time = "2021-09-29T10:40:09.509Z" }, + { url = "https://files.pythonhosted.org/packages/08/c6/0bd71c28d7f318ce4a73c6d8d26130233863070f418e5c340ffb7fa609da/greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab", size = 169154, upload-time = "2021-09-29T10:39:02.27Z" }, + { url = "https://files.pythonhosted.org/packages/c5/c8/9f41dabc0542f6d1d9e746bd530666ba44b2609533de22e723dc3c160273/greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5", size = 169156, upload-time = "2021-09-29T10:39:03.79Z" }, + { url = "https://files.pythonhosted.org/packages/4d/70/8bc33ca00820dcae9ad0c7cae19088a45faf386e6d467de015655de395ce/greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88", size = 154772, upload-time = "2021-09-29T10:45:21.968Z" }, + { url = "https://files.pythonhosted.org/packages/2f/5a/28d7f5d3afddf2669f68f9779b71946a6903c89af1dcfd750a14ce3b55c7/greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b", size = 158263, upload-time = "2021-09-29T10:47:03.068Z" }, + { url = "https://files.pythonhosted.org/packages/af/55/e60bc4c2bd7cad081a29f2e046f1e28e45e8529025c07ce725a84d235312/greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3", size = 153625, upload-time = "2021-09-29T10:38:19.496Z" }, + { url = "https://files.pythonhosted.org/packages/61/f1/314caccf5e024d43801d9efff6facef52528bdfe2f3f3ef0883ae53c17cb/greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3", size = 708646, upload-time = "2021-12-17T14:52:02.248Z" }, + { url = "https://files.pythonhosted.org/packages/9c/aa/49ab5629df48b08c9e509b98a7b2b9f67c923ae800c8d09d7af31e49ecb7/greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf", size = 98982, upload-time = "2021-09-29T10:41:17.389Z" }, + { url = "https://files.pythonhosted.org/packages/bb/7b/2ac66aa5f9b7e07d62cd6c2c95d44036b609bda80e8739202e3551ee7bf3/greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd", size = 101904, upload-time = "2021-09-29T10:40:18.139Z" }, +] + +[[package]] +name = "idna" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/bd/0467d62790828c23c47fc1dfa1b1f052b24efdf5290f071c7a91d0d82fd3/idna-2.6.tar.gz", hash = "sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f", size = 135992, upload-time = "2017-08-08T03:44:58.385Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl", hash = "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4", size = 56450, upload-time = "2017-08-08T03:45:11.061Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "jinja2" +version = "2.11.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/a7/45e11eebf2f15bf987c3bc11d37dcc838d9dc81250e67e4c5968f6008b6c/Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", size = 257594, upload-time = "2020-04-13T16:16:46.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/9e/f663a2aa66a09d838042ae1a2c5659828bb9b41ea3a6efa20a20fd92b121/Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035", size = 125774, upload-time = "2020-04-13T16:16:44.917Z" }, +] + +[[package]] +name = "libsass" +version = "0.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b4/ab091585eaa77299558e3289ca206846aefc123fb320b5656ab2542c20ad/libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880", size = 316068, upload-time = "2024-01-06T18:53:05.404Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/13/fc1bea1de880ca935137183727c7d4dd921c4128fc08b8ddc3698ba5a8a3/libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc", size = 1086783, upload-time = "2024-01-06T19:02:38.903Z" }, + { url = "https://files.pythonhosted.org/packages/55/2f/6af938651ff3aec0a0b00742209df1172bc297fa73531f292801693b7315/libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6", size = 982759, upload-time = "2024-01-06T19:02:41.331Z" }, + { url = "https://files.pythonhosted.org/packages/fd/5a/eb5b62641df0459a3291fc206cf5bd669c0feed7814dded8edef4ade8512/libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306", size = 9444543, upload-time = "2024-01-06T19:02:43.191Z" }, + { url = "https://files.pythonhosted.org/packages/e5/fc/275783f5120970d859ae37d04b6a60c13bdec2aa4294b9dfa8a37b5c2513/libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4", size = 775481, upload-time = "2024-01-06T19:02:46.05Z" }, + { url = "https://files.pythonhosted.org/packages/ef/20/caf3c7cf2432d85263119798c45221ddf67bdd7dae8f626d14ff8db04040/libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c", size = 872914, upload-time = "2024-01-06T19:02:47.61Z" }, +] + +[[package]] +name = "linkify-it-py" +version = "2.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "uc-micro-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/ae/bb56c6828e4797ba5a4821eec7c43b8bf40f69cda4d4f5f8c8a2810ec96a/linkify-it-py-2.0.3.tar.gz", hash = "sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048", size = 27946, upload-time = "2024-02-04T14:48:04.179Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/1e/b832de447dee8b582cac175871d2f6c3d5077cc56d5575cadba1fd1cccfa/linkify_it_py-2.0.3-py3-none-any.whl", hash = "sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79", size = 19820, upload-time = "2024-02-04T14:48:02.496Z" }, +] + +[[package]] +name = "lxml" +version = "4.6.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/e1/34b3ab08553fe9a30e15b2bb9d1803a49d7d907dd9f245638839190042f0/lxml-4.6.5.tar.gz", hash = "sha256:6e84edecc3a82f90d44ddee2ee2a2630d4994b8471816e226d2b771cda7ac4ca", size = 3188254, upload-time = "2021-12-12T21:23:51.21Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/e7/139fc9277d805d21f09083e23d6a7c00ffb21e11ed6b8c05722482e49008/lxml-4.6.5-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:7679bb6e4d9a3978a46ab19a3560e8d2b7265ef3c88152e7fdc130d649789887", size = 4537862, upload-time = "2021-12-12T21:22:12.451Z" }, + { url = "https://files.pythonhosted.org/packages/50/d3/a7c0fe1d1339e262f39dc795852bce17b2d66174c0854c3b84e82dd61f1b/lxml-4.6.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c34234a1bc9e466c104372af74d11a9f98338a3f72fae22b80485171a64e0144", size = 6970366, upload-time = "2021-12-12T21:22:20.014Z" }, + { url = "https://files.pythonhosted.org/packages/39/70/3b89e843f06de63265027d458da8e770a56bff37e217f1a2b95e51443bd9/lxml-4.6.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4b9390bf973e3907d967b75be199cf1978ca8443183cf1e78ad80ad8be9cf242", size = 6556283, upload-time = "2021-12-12T21:22:26.802Z" }, + { url = "https://files.pythonhosted.org/packages/29/cc/97e03f2fa414f73e43c36645bf78e9136ae12c89d96b0ab04e5c88b61bac/lxml-4.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fcc849b28f584ed1dbf277291ded5c32bb3476a37032df4a1d523b55faa5f944", size = 6883472, upload-time = "2021-12-12T21:22:36.404Z" }, + { url = "https://files.pythonhosted.org/packages/d4/12/d7893e2c38ac9c48f61732cf0e0c518ed54023b449d2c6f8da1690e36927/lxml-4.6.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:46f21f2600d001af10e847df9eb3b832e8a439f696c04891bcb8a8cedd859af9", size = 5329246, upload-time = "2021-12-12T21:22:43.48Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0a/f3d56d291261c298acd9bc00abefce16663ed840021fd30ed42413411ba2/lxml-4.6.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:99cf827f5a783038eb313beee6533dddb8bdb086d7269c5c144c1c952d142ace", size = 5442993, upload-time = "2021-12-12T21:22:50.436Z" }, + { url = "https://files.pythonhosted.org/packages/62/27/ced5f485c8cf39428585f4324ae9d759492bb72f6585745f589894a36a34/lxml-4.6.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:925174cafb0f1179a7fd38da90302555d7445e34c9ece68019e53c946be7f542", size = 7628319, upload-time = "2021-12-12T21:22:58.414Z" }, + { url = "https://files.pythonhosted.org/packages/6d/e1/b93a7e89a6132d8ba9b030def0754e5be053e86aac3224d160f5a22f3aa9/lxml-4.6.5-cp39-cp39-win32.whl", hash = "sha256:12d8d6fe3ddef629ac1349fa89a638b296a34b6529573f5055d1cb4e5245f73b", size = 3215122, upload-time = "2021-12-12T21:23:02.611Z" }, + { url = "https://files.pythonhosted.org/packages/d8/59/44c1ad99ba734218356566d3be19cdaaa945c89028c79520513e75f8ae25/lxml-4.6.5-cp39-cp39-win_amd64.whl", hash = "sha256:a52e8f317336a44836475e9c802f51c2dc38d612eaa76532cb1d17690338b63b", size = 3545618, upload-time = "2021-12-12T21:23:07.153Z" }, +] + +[[package]] +name = "mako" +version = "1.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz", hash = "sha256:4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae", size = 564418, upload-time = "2017-07-13T16:13:10.868Z" } + +[[package]] +name = "manifestoo" +version = "1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "manifestoo-core" }, + { name = "textual" }, + { name = "typer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/65/4d/970985f2bca9b08757ba947db15bb1a9fdb5477cdbbfde1253c8218219fe/manifestoo-1.0.tar.gz", hash = "sha256:88ff5057202f28c4e8f06b9c7a25d600b996290f722d7daac65d12ec84fe90c0", size = 24832, upload-time = "2024-07-12T14:48:25.635Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/7f/136151c5bca777dd5cd06ed03a3bc0bb89ecabc3491c58758a01b716b554/manifestoo-1.0-py3-none-any.whl", hash = "sha256:8264b9968d1ffd434aa2deb6d427bfa4ffa963a81cde33f2edc32340cc171d2a", size = 19262, upload-time = "2024-07-12T14:48:24.09Z" }, +] + +[[package]] +name = "manifestoo-core" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/86/f3b0b2180ca95e81a005139ab9c75ed4c7aa7934d339a34008fc1dfdfc3e/manifestoo_core-1.8.2.tar.gz", hash = "sha256:7bf92980669a42a3c8fb859e1d762955cd35b79bdec47966b03b80a061528443", size = 37656, upload-time = "2024-12-26T08:29:37.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/66/f805237aa59a59e68a966ded4e1726547fad5a2754cf59a44b4a1c39e02b/manifestoo_core-1.8.2-py3-none-any.whl", hash = "sha256:6bb09313c2e229333333fc2ff79c7f0ae37cee11455d158fa3aec759a26968bc", size = 56202, upload-time = "2024-12-26T08:29:36.306Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, +] + +[package.optional-dependencies] +linkify = [ + { name = "linkify-it-py" }, +] +plugins = [ + { name = "mdit-py-plugins" }, +] + +[[package]] +name = "markupsafe" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/7e/1b4c2e05809a4414ebce0892fe1e32c14ace86ca7d50c70f00979ca9b3a3/MarkupSafe-1.1.0.tar.gz", hash = "sha256:4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3", size = 18938, upload-time = "2018-11-05T17:41:13.466Z" } + +[[package]] +name = "mdit-py-plugins" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/03/a2ecab526543b152300717cf232bb4bb8605b6edb946c845016fa9c9c9fd/mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5", size = 43542, upload-time = "2024-09-09T20:27:49.564Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/f7/7782a043553ee469c1ff49cfa1cdace2d6bf99a1f333cf38676b3ddf30da/mdit_py_plugins-0.4.2-py3-none-any.whl", hash = "sha256:0c673c3f889399a33b95e88d2f0d111b4447bdfea7f237dab2d488f459835636", size = 55316, upload-time = "2024-09-09T20:27:48.397Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mock" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/07/8c/14c2ae915e5f9dca5a22edd68b35be94400719ccfa068a03e0fb63d0f6f6/mock-5.2.0.tar.gz", hash = "sha256:4e460e818629b4b173f32d08bf30d3af8123afbb8e04bb5707a1fd4799e503f0", size = 92796, upload-time = "2025-03-03T12:31:42.911Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/d9/617e6af809bf3a1d468e0d58c3997b1dc219a9a9202e650d30c2fc85d481/mock-5.2.0-py3-none-any.whl", hash = "sha256:7ba87f72ca0e915175596069dbbcc7c75af7b5e9b9bc107ad6349ede0819982f", size = 31617, upload-time = "2025-03-03T12:31:41.518Z" }, +] + +[[package]] +name = "num2words" +version = "0.5.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/e0/4ce77d66ed529a8aa8ea780a43520028f9676064e0efb4e33aa43a0a12b3/num2words-0.5.6.tar.gz", hash = "sha256:aea26c2d11d636f0e9da094f2bf55ac94cb1c380ff1f86e8db22c210e5a6a05f", size = 76351, upload-time = "2017-11-22T19:38:02.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/6e/6d026d15d1b0fd37a9dd42ecf559f36871cee67158aff5ba652d3130e8b9/num2words-0.5.6-py2.py3-none-any.whl", hash = "sha256:529017394eef84daf63bb57e837fe2fb81363d1b06f6114e86608dae7ceb11ee", size = 64814, upload-time = "2017-11-22T19:38:01.106Z" }, +] + +[[package]] +name = "oca-custom" +version = "14.0" +source = { editable = "." } +dependencies = [ + { name = "babel" }, + { name = "chardet" }, + { name = "click-odoo-contrib" }, + { name = "decorator" }, + { name = "docutils" }, + { name = "ebaysdk" }, + { name = "freezegun" }, + { name = "gevent" }, + { name = "greenlet" }, + { name = "idna" }, + { name = "jinja2" }, + { name = "libsass" }, + { name = "lxml" }, + { name = "mako" }, + { name = "markupsafe" }, + { name = "num2words" }, + { name = "odoo" }, + { name = "odoo-addons-design-themes" }, + { name = "odoo14-addon-account-banking-pain-base" }, + { name = "odoo14-addon-account-banking-sepa-credit-transfer" }, + { name = "odoo14-addon-account-credit-control" }, + { name = "odoo14-addon-account-financial-report" }, + { name = "odoo14-addon-account-lock-to-date" }, + { name = "odoo14-addon-account-menu" }, + { name = "odoo14-addon-account-payment-mode" }, + { name = "odoo14-addon-account-payment-order" }, + { name = "odoo14-addon-account-payment-partner" }, + { name = "odoo14-addon-account-payment-sale" }, + { name = "odoo14-addon-account-payment-unece" }, + { name = "odoo14-addon-account-reconciliation-widget" }, + { name = "odoo14-addon-account-statement-import" }, + { name = "odoo14-addon-account-statement-import-base" }, + { name = "odoo14-addon-account-statement-import-paypal" }, + { name = "odoo14-addon-account-statement-import-txt-xlsx" }, + { name = "odoo14-addon-account-tax-unece" }, + { name = "odoo14-addon-apps-download" }, + { name = "odoo14-addon-apps-product-creator" }, + { name = "odoo14-addon-base-technical-features" }, + { name = "odoo14-addon-base-ubl" }, + { name = "odoo14-addon-base-ubl-payment" }, + { name = "odoo14-addon-base-unece" }, + { name = "odoo14-addon-bi-sql-editor" }, + { name = "odoo14-addon-currency-rate-update" }, + { name = "odoo14-addon-date-range" }, + { name = "odoo14-addon-disable-odoo-online" }, + { name = "odoo14-addon-document-page" }, + { name = "odoo14-addon-event-badge-design" }, + { name = "odoo14-addon-github-connector" }, + { name = "odoo14-addon-github-connector-oca" }, + { name = "odoo14-addon-github-connector-odoo" }, + { name = "odoo14-addon-knowledge" }, + { name = "odoo14-addon-l10n-ch-base-bank" }, + { name = "odoo14-addon-mass-editing" }, + { name = "odoo14-addon-mass-operation-abstract" }, + { name = "odoo14-addon-membership-delegated-partner-line" }, + { name = "odoo14-addon-membership-extension" }, + { name = "odoo14-addon-mis-builder" }, + { name = "odoo14-addon-mis-builder-budget" }, + { name = "odoo14-addon-mis-builder-cash-flow" }, + { name = "odoo14-addon-mis-builder-demo" }, + { name = "odoo14-addon-multi-step-wizard" }, + { name = "odoo14-addon-partner-contact-access-link" }, + { name = "odoo14-addon-partner-statement" }, + { name = "odoo14-addon-report-xlsx" }, + { name = "odoo14-addon-report-xlsx-helper" }, + { name = "odoo14-addon-sentry" }, + { name = "odoo14-addon-sql-request-abstract" }, + { name = "odoo14-addon-uom-unece" }, + { name = "odoo14-addon-web-advanced-search" }, + { name = "odoo14-addon-web-responsive" }, + { name = "odoo14-addon-web-widget-dropdown-dynamic" }, + { name = "odoo14-addon-website-apps-store" }, + { name = "ofxparse" }, + { name = "passlib" }, + { name = "pillow" }, + { name = "polib" }, + { name = "psutil" }, + { name = "psycopg2" }, + { name = "pydot" }, + { name = "pygithub" }, + { name = "pypdf2" }, + { name = "pyserial" }, + { name = "python-dateutil" }, + { name = "python-stdnum" }, + { name = "pytz" }, + { name = "qrcode" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "responses" }, + { name = "vobject" }, + { name = "werkzeug" }, + { name = "xlrd" }, + { name = "xlsxwriter" }, + { name = "xlwt" }, + { name = "zeep" }, +] + +[package.dev-dependencies] +dev = [ + { name = "manifestoo" }, + { name = "odoo-test-helper" }, + { name = "parameterized" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "pytest-odoo" }, + { name = "pytest-xdist" }, + { name = "websocket-client" }, +] + +[package.metadata] +requires-dist = [ + { name = "babel", specifier = "==2.9.1" }, + { name = "chardet", specifier = "==3.0.4" }, + { name = "click-odoo-contrib" }, + { name = "decorator", specifier = "==4.3.0" }, + { name = "docutils", specifier = "==0.14" }, + { name = "ebaysdk", specifier = "==2.1.5" }, + { name = "freezegun", specifier = "==0.3.15" }, + { name = "gevent", specifier = "==20.9.0" }, + { name = "greenlet", specifier = "==1.1.2" }, + { name = "idna", specifier = "==2.6" }, + { name = "jinja2", specifier = "==2.11.2" }, + { name = "libsass", specifier = ">=0.18.0" }, + { name = "lxml", specifier = "==4.6.5" }, + { name = "mako", specifier = "==1.0.7" }, + { name = "markupsafe", specifier = "==1.1.0" }, + { name = "num2words", specifier = "==0.5.6" }, + { name = "odoo", git = "https://github.com/OCA/OCB?rev=refs%2Fpull%2F1299%2Fhead" }, + { name = "odoo-addons-design-themes", git = "https://github.com/acsone/design-themes?branch=14.0-with-pyproject" }, + { name = "odoo14-addon-account-banking-pain-base" }, + { name = "odoo14-addon-account-banking-sepa-credit-transfer" }, + { name = "odoo14-addon-account-credit-control" }, + { name = "odoo14-addon-account-financial-report" }, + { name = "odoo14-addon-account-lock-to-date" }, + { name = "odoo14-addon-account-menu" }, + { name = "odoo14-addon-account-payment-mode" }, + { name = "odoo14-addon-account-payment-order" }, + { name = "odoo14-addon-account-payment-partner" }, + { name = "odoo14-addon-account-payment-sale" }, + { name = "odoo14-addon-account-payment-unece" }, + { name = "odoo14-addon-account-reconciliation-widget" }, + { name = "odoo14-addon-account-statement-import" }, + { name = "odoo14-addon-account-statement-import-base" }, + { name = "odoo14-addon-account-statement-import-paypal" }, + { name = "odoo14-addon-account-statement-import-txt-xlsx" }, + { name = "odoo14-addon-account-tax-unece" }, + { name = "odoo14-addon-apps-download" }, + { name = "odoo14-addon-apps-product-creator" }, + { name = "odoo14-addon-base-technical-features" }, + { name = "odoo14-addon-base-ubl" }, + { name = "odoo14-addon-base-ubl-payment" }, + { name = "odoo14-addon-base-unece" }, + { name = "odoo14-addon-bi-sql-editor" }, + { name = "odoo14-addon-currency-rate-update" }, + { name = "odoo14-addon-date-range" }, + { name = "odoo14-addon-disable-odoo-online" }, + { name = "odoo14-addon-document-page" }, + { name = "odoo14-addon-event-badge-design" }, + { name = "odoo14-addon-github-connector" }, + { name = "odoo14-addon-github-connector-oca" }, + { name = "odoo14-addon-github-connector-odoo" }, + { name = "odoo14-addon-knowledge" }, + { name = "odoo14-addon-l10n-ch-base-bank" }, + { name = "odoo14-addon-mass-editing" }, + { name = "odoo14-addon-mass-operation-abstract" }, + { name = "odoo14-addon-membership-delegated-partner-line", git = "https://github.com/OCA/vertical-association?subdirectory=setup%2Fmembership_delegated_partner_line&rev=refs%2Fpull%2F151%2Fhead" }, + { name = "odoo14-addon-membership-extension" }, + { name = "odoo14-addon-mis-builder" }, + { name = "odoo14-addon-mis-builder-budget" }, + { name = "odoo14-addon-mis-builder-cash-flow" }, + { name = "odoo14-addon-mis-builder-demo" }, + { name = "odoo14-addon-multi-step-wizard" }, + { name = "odoo14-addon-partner-contact-access-link" }, + { name = "odoo14-addon-partner-statement" }, + { name = "odoo14-addon-report-xlsx" }, + { name = "odoo14-addon-report-xlsx-helper" }, + { name = "odoo14-addon-sentry" }, + { name = "odoo14-addon-sql-request-abstract" }, + { name = "odoo14-addon-uom-unece" }, + { name = "odoo14-addon-web-advanced-search" }, + { name = "odoo14-addon-web-responsive" }, + { name = "odoo14-addon-web-widget-dropdown-dynamic" }, + { name = "odoo14-addon-website-apps-store" }, + { name = "ofxparse", specifier = "==0.19" }, + { name = "passlib", specifier = "==1.7.1" }, + { name = "pillow", specifier = "==8.1.1" }, + { name = "polib", specifier = "==1.1.0" }, + { name = "psutil", specifier = "==5.6.6" }, + { name = "psycopg2", specifier = "==2.9.10" }, + { name = "pydot", specifier = "==1.4.1" }, + { name = "pygithub", specifier = "<2.0.0" }, + { name = "pypdf2", specifier = "==1.26.0" }, + { name = "pyserial", specifier = "==3.4" }, + { name = "python-dateutil", specifier = "==2.7.3" }, + { name = "python-stdnum", specifier = "==1.8" }, + { name = "pytz" }, + { name = "qrcode", specifier = "==6.1" }, + { name = "reportlab", specifier = "==3.5.55" }, + { name = "requests", specifier = "==2.21.0" }, + { name = "responses" }, + { name = "vobject", specifier = "==0.9.6.1" }, + { name = "werkzeug", specifier = "==0.16.1" }, + { name = "xlrd", specifier = "==1.2.0" }, + { name = "xlsxwriter", specifier = "==1.1.2" }, + { name = "xlwt", specifier = "==1.3.*" }, + { name = "zeep", specifier = "==3.2.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "manifestoo", specifier = ">=1.0" }, + { name = "odoo-test-helper" }, + { name = "parameterized", specifier = ">=0.9.0" }, + { name = "pytest", specifier = ">8" }, + { name = "pytest-cov", specifier = ">=5.0.0" }, + { name = "pytest-odoo", specifier = ">=2" }, + { name = "pytest-xdist", specifier = ">=3.6.1" }, + { name = "websocket-client" }, +] + +[[package]] +name = "odoo" +version = "14.0" +source = { git = "https://github.com/OCA/OCB?rev=refs%2Fpull%2F1299%2Fhead#ef660dfcd719bf8e3c74158c001903fe33411745" } +dependencies = [ + { name = "babel" }, + { name = "decorator" }, + { name = "docutils" }, + { name = "gevent" }, + { name = "idna" }, + { name = "jinja2" }, + { name = "libsass" }, + { name = "lxml" }, + { name = "mako" }, + { name = "mock" }, + { name = "ofxparse" }, + { name = "passlib" }, + { name = "pillow" }, + { name = "polib" }, + { name = "psutil" }, + { name = "psycopg2" }, + { name = "pydot" }, + { name = "pypdf2" }, + { name = "pyserial" }, + { name = "python-dateutil" }, + { name = "python-stdnum" }, + { name = "pytz" }, + { name = "pyusb" }, + { name = "qrcode" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "vobject" }, + { name = "werkzeug" }, + { name = "xlsxwriter" }, + { name = "xlwt" }, + { name = "zeep" }, +] + +[[package]] +name = "odoo-addons-design-themes" +version = "14.0" +source = { git = "https://github.com/acsone/design-themes?branch=14.0-with-pyproject#57d7a43a1e1fab29c56e4a4c8f07f314c6a4aadc" } +dependencies = [ + { name = "odoo" }, +] + +[[package]] +name = "odoo-test-helper" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/bc/fb54851788e4eecce0ad458221f3dfe3711dbeee7fd2b64d7263646238fc/odoo-test-helper-2.1.1.tar.gz", hash = "sha256:d5a511ebdbab2004a7721f4b9bf02ef5c419c178cd85d60feb25440b5adba69a", size = 11182, upload-time = "2023-10-17T08:41:41.175Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/7a/56f7a00207d65ed5e877ecbb254b4656e241abd0688f720827f300092a7f/odoo_test_helper-2.1.1-py2.py3-none-any.whl", hash = "sha256:08c3a2f7a4ba1971eb8dab46c36c0f24f2dca735021c92929f5629adaf23b219", size = 6279, upload-time = "2023-10-17T08:41:39.877Z" }, +] + +[[package]] +name = "odoo14-addon-account-banking-pain-base" +version = "14.0.2.1.3.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "odoo" }, + { name = "odoo14-addon-account-payment-order" }, + { name = "unidecode" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/08/a6dd483def3e5ff56dad744d54e92332dabb060a39af8fcf5ddfdb5b657d/odoo14_addon_account_banking_pain_base-14.0.2.1.3.dev1-py3-none-any.whl", hash = "sha256:263dea310f1236f549a9b5b615c07a5ed553a25096859db9e29ad5649229ae6a", size = 112110, upload-time = "2024-09-14T02:42:48.381Z" }, +] + +[[package]] +name = "odoo14-addon-account-banking-sepa-credit-transfer" +version = "14.0.2.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-banking-pain-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/2d/5a1c4e02119c2c5fd7246c6e830c4ada09d6c42770c018492057a49169c3/odoo14_addon_account_banking_sepa_credit_transfer-14.0.2.0.4-py3-none-any.whl", hash = "sha256:ca6343ab75d441d88cafae4dba3f87b2e516365fe42fb6ca28cbeedb66b1b99d", size = 80076, upload-time = "2024-09-13T08:32:25.965Z" }, +] + +[[package]] +name = "odoo14-addon-account-credit-control" +version = "14.0.1.5.1.dev13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/25/74fe2e5c2d73598860388a2a3eb343dd246ba3db7c8f22988520caeca5e5/odoo14_addon_account_credit_control-14.0.1.5.1.dev13-py3-none-any.whl", hash = "sha256:c1c8f733fd85184ca394002ec2fe9304b8c275227cc1d76214dbc24212282865", size = 743937, upload-time = "2024-01-20T03:27:47.041Z" }, +] + +[[package]] +name = "odoo14-addon-account-financial-report" +version = "14.0.3.14.1.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-date-range" }, + { name = "odoo14-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/b6/f0b354124e7c5c8c9beaed720f2955e0ddcb8af2df709ccad9fd9b505e45/odoo14_addon_account_financial_report-14.0.3.14.1.dev1-py3-none-any.whl", hash = "sha256:254230806c6d3c593b56bbf124e83cf20f109064a0e4f981944cd7899859ff92", size = 312821, upload-time = "2025-03-13T02:32:02.13Z" }, +] + +[[package]] +name = "odoo14-addon-account-lock-to-date" +version = "14.0.1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/88/e6c9e1bbe6e70fde25060ae9f1117550614b4cc89c3152725f74d198670e/odoo14_addon_account_lock_to_date-14.0.1.0.1-py3-none-any.whl", hash = "sha256:4b0b44e734c0fe16440adc0ab1420ac3b2151162dfebdf588cad10387da184fd", size = 36393, upload-time = "2025-03-08T11:55:05.503Z" }, +] + +[[package]] +name = "odoo14-addon-account-menu" +version = "14.0.1.2.3.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/fe/93fc9942e254057af0bd818ceaf7f9df62897ea4574799dc12c757d1e985/odoo14_addon_account_menu-14.0.1.2.3.dev6-py3-none-any.whl", hash = "sha256:1350bc8b0f7d17734bb6bd6bbd22f05406017585071bba96fd9d15ef87c7d90a", size = 51668, upload-time = "2024-12-18T02:33:51.923Z" }, +] + +[[package]] +name = "odoo14-addon-account-payment-mode" +version = "14.0.1.1.1.dev12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/3d/0c67b3ce85ddf91364c3718ae380a73700077a1cedff7c990714c58a9a91/odoo14_addon_account_payment_mode-14.0.1.1.1.dev12-py3-none-any.whl", hash = "sha256:40974b526a53b6235c6c606206a77e93650cc0b61792e4a9cbcd1c32f0d5fe02", size = 107519, upload-time = "2024-02-15T03:05:08.658Z" }, +] + +[[package]] +name = "odoo14-addon-account-payment-order" +version = "14.0.2.5.8.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "odoo" }, + { name = "odoo14-addon-account-payment-partner" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b7/7ff3172d7b7f6b67454afeb72a7e916acbf2e7c2c4c4321f2eaeaec86397/odoo14_addon_account_payment_order-14.0.2.5.8.dev2-py3-none-any.whl", hash = "sha256:0905b3ddf7469c441a90d94609933d6fbbff932408e7fa132f2132c4e31e08ed", size = 330869, upload-time = "2024-10-23T02:43:01.293Z" }, +] + +[[package]] +name = "odoo14-addon-account-payment-partner" +version = "14.0.1.7.3.dev8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-payment-mode" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/6a/b3cf73f7614b123485715d23bff9d74afc8cead5e9260dccab22440308f3/odoo14_addon_account_payment_partner-14.0.1.7.3.dev8-py3-none-any.whl", hash = "sha256:2cd676677bc5eee7a8bf712640a7cce6a038c6b682a67034b47f8e41d698a96a", size = 77708, upload-time = "2024-10-18T02:43:32.876Z" }, +] + +[[package]] +name = "odoo14-addon-account-payment-sale" +version = "14.0.1.1.1.dev9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-payment-partner" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/52/b5302e0e161a6ff9a8ff557a2795844f0652f2c9a21152c154078be78e5a/odoo14_addon_account_payment_sale-14.0.1.1.1.dev9-py3-none-any.whl", hash = "sha256:d913447aad36d9777891e229ea67174a81cc1360149c01b08f36329a27370e9b", size = 40021, upload-time = "2024-03-01T03:04:06.978Z" }, +] + +[[package]] +name = "odoo14-addon-account-payment-unece" +version = "14.0.1.0.1.dev8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-payment-mode" }, + { name = "odoo14-addon-base-unece" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/3f/2f72bd5d88b8f163027c5df71c04701011219a492b19db14793b0a50549c/odoo14_addon_account_payment_unece-14.0.1.0.1.dev8-py3-none-any.whl", hash = "sha256:36b3f998acbd098d0ee764045042dc919544225b8e03711fe3f429242e4593ad", size = 31471, upload-time = "2025-03-15T02:40:47.889Z" }, +] + +[[package]] +name = "odoo14-addon-account-reconciliation-widget" +version = "14.0.2.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/1a/f93497dcc2f6f512763b09b0d418fea2db40611b401708d876c1fd7f5cee/odoo14_addon_account_reconciliation_widget-14.0.2.0.8-py3-none-any.whl", hash = "sha256:01319d07b83a7b345d272d5c2b09a3375b664f4960a6edda8ef4db0b6c2d1e0b", size = 162120, upload-time = "2024-08-19T07:13:05.369Z" }, +] + +[[package]] +name = "odoo14-addon-account-statement-import" +version = "14.0.3.3.4.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-statement-import-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/76/e5155e682de4add9d76c2396ba0b070f8da5f44f141391c3503114e0b32e/odoo14_addon_account_statement_import-14.0.3.3.4.dev1-py3-none-any.whl", hash = "sha256:271ae54bc9ec6db00b977ca9a3f8ecabbab2c305e9b8b638a6208402981d3bba", size = 443813, upload-time = "2025-02-06T02:38:23.674Z" }, +] + +[[package]] +name = "odoo14-addon-account-statement-import-base" +version = "14.0.1.0.1.dev11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/74/2894fd57138bdccdd8dc879a6305bbf218352ff24429f07d4b1515f5a5bb/odoo14_addon_account_statement_import_base-14.0.1.0.1.dev11-py3-none-any.whl", hash = "sha256:773f18ab2c376876bdb1fbb5e72780f586f8607e366dd79eb014ebbd0fcc7d20", size = 26698, upload-time = "2025-02-06T02:38:27.028Z" }, +] + +[[package]] +name = "odoo14-addon-account-statement-import-paypal" +version = "14.0.1.0.2.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-statement-import" }, + { name = "odoo14-addon-multi-step-wizard" }, + { name = "odoo14-addon-web-widget-dropdown-dynamic" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/c8/1a2108ad46b4db22886dfb2d676ce8a438543ab8fac6623b4e03164aaeac/odoo14_addon_account_statement_import_paypal-14.0.1.0.2.dev5-py3-none-any.whl", hash = "sha256:58770692dc7188b73d2d1cf8835c444dd2ca74026d75e338e79d25b65a82a2f2", size = 48742, upload-time = "2025-02-06T02:38:29.344Z" }, +] + +[[package]] +name = "odoo14-addon-account-statement-import-txt-xlsx" +version = "14.0.3.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "chardet" }, + { name = "odoo" }, + { name = "odoo14-addon-account-statement-import" }, + { name = "odoo14-addon-multi-step-wizard" }, + { name = "odoo14-addon-web-widget-dropdown-dynamic" }, + { name = "xlrd" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/ab/33c4e1d9a257b63c54a2efedfb4394be8bf63a77a94cfb8888238584309b/odoo14_addon_account_statement_import_txt_xlsx-14.0.3.2.1-py3-none-any.whl", hash = "sha256:b229abe4630b321017047fb19b5c5a119ea95e86472db7916a99c17ce3829888", size = 92954, upload-time = "2025-02-28T11:22:24.066Z" }, +] + +[[package]] +name = "odoo14-addon-account-tax-unece" +version = "14.0.1.0.1.dev10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-base-unece" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/6e/616708822373133c55086e3636bd5dacaddc7c0bda5d1cf12cd2611acf8f/odoo14_addon_account_tax_unece-14.0.1.0.1.dev10-py3-none-any.whl", hash = "sha256:e1ad485cb2b59bcac173c307c37b7b4657613566c488cc9a0be29102a896ef0f", size = 37626, upload-time = "2025-01-01T02:40:09.526Z" }, +] + +[[package]] +name = "odoo14-addon-apps-download" +version = "14.0.1.0.1.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-apps-product-creator" }, + { name = "odoo14-addon-github-connector-odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/97/43a5d7f38fe2b8a55408d18b449966816915cf71663a4a81953e44b41042/odoo14_addon_apps_download-14.0.1.0.1.dev5-py3-none-any.whl", hash = "sha256:eb4b5770d632a6b54d58398befbdabe2dea8d661f337cdafa4812c1a18f7a320", size = 44080, upload-time = "2025-01-21T02:37:30.115Z" }, +] + +[[package]] +name = "odoo14-addon-apps-product-creator" +version = "14.0.1.0.1.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-github-connector-oca" }, + { name = "odoo14-addon-github-connector-odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/16/25cb54a89a33765324864855590e77ab317335ed99ab353397ae849b82e9/odoo14_addon_apps_product_creator-14.0.1.0.1.dev6-py3-none-any.whl", hash = "sha256:e69341911f47186376de74b1f8a1d2a887d8a46de184fc81dfecf8aee140588b", size = 43840, upload-time = "2025-01-21T02:37:32.802Z" }, +] + +[[package]] +name = "odoo14-addon-base-technical-features" +version = "14.0.1.1.2.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/d4/2fb4abbbc155a21d9ddbe9b6bb2e2c48c85a89e73de119e6b2bae61d26dd/odoo14_addon_base_technical_features-14.0.1.1.2.dev5-py3-none-any.whl", hash = "sha256:117f7057ee44c465dea143e3b4d8717cfa90da38da5d3069662ec902543d6573", size = 87731, upload-time = "2024-01-30T06:15:22.112Z" }, +] + +[[package]] +name = "odoo14-addon-base-ubl" +version = "14.0.1.8.3.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-tax-unece" }, + { name = "odoo14-addon-pdf-helper" }, + { name = "odoo14-addon-uom-unece" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/c9/0fb8d4677f7d307cb82692828e6cd2b8809b898261d5b555ab44a0bb6fe2/odoo14_addon_base_ubl-14.0.1.8.3.dev1-py3-none-any.whl", hash = "sha256:7859326ab739b3bcfe0b99b748dba60b56c22476ef2badc80d874c4fc05b3b9c", size = 1266307, upload-time = "2025-01-07T02:47:38.081Z" }, +] + +[[package]] +name = "odoo14-addon-base-ubl-payment" +version = "14.0.1.0.1.dev12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-payment-unece" }, + { name = "odoo14-addon-base-ubl" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/3d/9f5d3a77f5749a34242b44c62b4900f01c3daf434cf8fd4f1a22ba84bf8c/odoo14_addon_base_ubl_payment-14.0.1.0.1.dev12-py3-none-any.whl", hash = "sha256:e4b72f789e11d0c7f9646195a26d80f083f7f18a639e923a6f753c639c1f0c1e", size = 26321, upload-time = "2025-01-07T02:47:59.473Z" }, +] + +[[package]] +name = "odoo14-addon-base-unece" +version = "14.0.1.1.1.dev13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/76/8b0908506c5034fd0f4fc73c3840e7cabddc77b3ae1661767b0de1759424/odoo14_addon_base_unece-14.0.1.1.1.dev13-py3-none-any.whl", hash = "sha256:52cf358000ee8cb4d872fa01cc0a9bb66a4051ede97026fc7ba970c8bf62e797", size = 29203, upload-time = "2025-01-01T02:40:12.72Z" }, +] + +[[package]] +name = "odoo14-addon-bi-sql-editor" +version = "14.0.1.1.1.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-sql-request-abstract" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/50/f000ba229579551433381148c64644e5cd5fa590be3c95b5c3fcf5810b46/odoo14_addon_bi_sql_editor-14.0.1.1.1.dev2-py3-none-any.whl", hash = "sha256:c96be6ffb09a4ea4de396bf52eaa85d646b917addd15831a2fa2e6947d1c56ea", size = 619782, upload-time = "2024-12-19T03:24:23.04Z" }, +] + +[[package]] +name = "odoo14-addon-currency-rate-update" +version = "14.0.1.3.3.dev7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/c4/9c5f1619203862f2faa6be68fe2325523952d6274bdd7b594913899ff4ec/odoo14_addon_currency_rate_update-14.0.1.3.3.dev7-py3-none-any.whl", hash = "sha256:87644c0c52884e6bb507d1d9a7d37dbfe718f4c9b9d499f28caad7e2fde63593", size = 248976, upload-time = "2024-08-31T02:55:14.389Z" }, +] + +[[package]] +name = "odoo14-addon-date-range" +version = "14.0.2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/8f/e1d198f8c2f0439bc0370702342e4fe1360fb9db09e0d7b4e013b0189d7a/odoo14_addon_date_range-14.0.2.2.0-py3-none-any.whl", hash = "sha256:c2309176c5fb349e593cd0cc9433fb34b37c4d82a0562057e3360e45e2c5e6a4", size = 1147819, upload-time = "2024-05-11T16:52:22.62Z" }, +] + +[[package]] +name = "odoo14-addon-disable-odoo-online" +version = "14.0.1.0.1.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/44/a9a103db372bc0e42d20e1f6e12a54ffbddd8ee0330abb87771d26deb72e/odoo14_addon_disable_odoo_online-14.0.1.0.1.dev6-py3-none-any.whl", hash = "sha256:14a478150aa07c50a9fded1259639d8e80b39929c6141c3e03b38a3c0a3e68d6", size = 25020, upload-time = "2024-01-30T06:07:56.51Z" }, +] + +[[package]] +name = "odoo14-addon-document-page" +version = "14.0.1.3.2.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-knowledge" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/57/b7252a92cb7760835c7cf41bbb662b2121f49f209efb12aadbc26fbab859/odoo14_addon_document_page-14.0.1.3.2.dev2-py3-none-any.whl", hash = "sha256:c3703d415dcf552ce5d7867e8ed3cb63968c53954aeb39099257c57dca33380b", size = 933268, upload-time = "2024-04-30T04:15:36.783Z" }, +] + +[[package]] +name = "odoo14-addon-event-badge-design" +version = "14.0.1.0.2.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/67/ed36ceff8cf235700e796936bb5347ec6497dbd11f8dcef0d1f27ad9d40b/odoo14_addon_event_badge_design-14.0.1.0.2.dev5-py3-none-any.whl", hash = "sha256:708845cd8ef5cd50aa8337f25b63e680b1092cc64f77a68d3a6ab61cb103be65", size = 22033, upload-time = "2024-01-20T03:51:41.991Z" }, +] + +[[package]] +name = "odoo14-addon-github-connector" +version = "14.0.2.3.1.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitpython" }, + { name = "odoo" }, + { name = "pathspec" }, + { name = "pygithub" }, + { name = "pygount" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/4c/9d6666263910e50709f91be8aec79a1a8d1b191190d94cea117b3e9b1483/odoo14_addon_github_connector-14.0.2.3.1.dev1-py3-none-any.whl", hash = "sha256:11b63c7e3975bb35dd03f8a4c4ab9755fb64a8086664b3860ff5e54acead5573", size = 574491, upload-time = "2024-12-11T02:54:14.542Z" }, +] + +[[package]] +name = "odoo14-addon-github-connector-oca" +version = "14.0.1.0.1.dev3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-github-connector-odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/f1/6f423f84cfa63cdff82fbc5bcccfcae29d8bb4f991b55c88d104d0558d20/odoo14_addon_github_connector_oca-14.0.1.0.1.dev3-py3-none-any.whl", hash = "sha256:1445823adfc002f35549ad0d06eae9335bcbc34ce6cd806f7e469e58883e4266", size = 83071, upload-time = "2024-12-11T02:54:10.633Z" }, +] + +[[package]] +name = "odoo14-addon-github-connector-odoo" +version = "14.0.2.1.1.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-github-connector" }, + { name = "pathspec" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/6e/c68cf6c275db93e2a4901d7c79f5a5ded63d49abfd1669a2261ddc8bd965/odoo14_addon_github_connector_odoo-14.0.2.1.1.dev2-py3-none-any.whl", hash = "sha256:e901bf8a7fe2d77e5089b20739f892d22a57fd174a92281f2f734a0fcc49a509", size = 381714, upload-time = "2024-12-11T02:54:19.058Z" }, +] + +[[package]] +name = "odoo14-addon-knowledge" +version = "14.0.1.1.2.dev9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/3f/e38e57fd614a0da6cf0a16fe808ceae46c2ac608d0ff3e07acc4d30c51df/odoo14_addon_knowledge-14.0.1.1.2.dev9-py3-none-any.whl", hash = "sha256:1905e6fb7d92f13e8774cecad9a3ffa638750b0f0ffe24ee0197394e7d1d6419", size = 162095, upload-time = "2024-02-19T04:20:18.987Z" }, +] + +[[package]] +name = "odoo14-addon-l10n-ch-base-bank" +version = "14.0.1.0.4.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/f0/9ce76cca05a1916d3df1ff79b234841b20fd9e240f034093542474bb90a9/odoo14_addon_l10n_ch_base_bank-14.0.1.0.4.dev1-py3-none-any.whl", hash = "sha256:56cb3f62cecc5c08789610804d1ed9dba625cdac2fda5eccc690623917c5970c", size = 39870, upload-time = "2024-05-07T05:10:58.453Z" }, +] + +[[package]] +name = "odoo14-addon-mass-editing" +version = "14.0.1.1.5.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/0c/7e571396ee07d656cdc285b92a33563a11f7e2723f1b1ef3faf6c3fe4c70/odoo14_addon_mass_editing-14.0.1.1.5.dev5-py3-none-any.whl", hash = "sha256:547614d090180d9862952b4b42231d239d05f8cb474e216043059f92ec24be1a", size = 361748, upload-time = "2024-05-08T06:19:14.92Z" }, +] + +[[package]] +name = "odoo14-addon-mass-operation-abstract" +version = "14.0.1.0.3.dev7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/25/74f8e201668a028263607bfdaa036425fa8d704b905fac790303bcbeef20/odoo14_addon_mass_operation_abstract-14.0.1.0.3.dev7-py3-none-any.whl", hash = "sha256:beb645cacc41711e20da2cb666508cbba8f7cb846736354abe928dcc86ea86b9", size = 33751, upload-time = "2024-01-30T06:14:41.718Z" }, +] + +[[package]] +name = "odoo14-addon-membership-delegated-partner-line" +version = "14.0.1.0.1.dev1" +source = { git = "https://github.com/OCA/vertical-association?subdirectory=setup%2Fmembership_delegated_partner_line&rev=refs%2Fpull%2F151%2Fhead#b2b3c7f0cd574d0f0ae0b132d9ae9e0076f50e71" } +dependencies = [ + { name = "odoo" }, +] + +[[package]] +name = "odoo14-addon-membership-extension" +version = "14.0.1.2.1.dev9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/dc/5310aa4445f73ecd9f5c4c6a51b947fe5f68d6e93274121328ca73187032/odoo14_addon_membership_extension-14.0.1.2.1.dev9-py3-none-any.whl", hash = "sha256:b553b555928ea61777f7b91e8fe807c1be523bde552e56140c2f161441cce570", size = 247098, upload-time = "2024-03-05T07:03:37.325Z" }, +] + +[[package]] +name = "odoo14-addon-mis-builder" +version = "14.0.4.2.3.dev8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-date-range" }, + { name = "odoo14-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/be/dc65b03a3c4fb02dc43517ab1354739994ed8396ddf33d830868c938d8ed/odoo14_addon_mis_builder-14.0.4.2.3.dev8-py3-none-any.whl", hash = "sha256:3ea0af03a9e0fbdadd4f765a7fd69e5dde11e2a947c12ded92bd1d83f1d596a6", size = 570527, upload-time = "2025-01-28T03:12:52.849Z" }, +] + +[[package]] +name = "odoo14-addon-mis-builder-budget" +version = "14.0.4.0.4.dev7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-mis-builder" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/0b/d6a6a493ff89c26ba9c9ac5c5b692098d24920b2a2dce90a5867faa9f27f/odoo14_addon_mis_builder_budget-14.0.4.0.4.dev7-py3-none-any.whl", hash = "sha256:1a123c892a6f44c95155346984d37f9fdb6a600dad9b5ce05c6cef2e0d8ec58b", size = 83663, upload-time = "2024-05-18T05:22:07.363Z" }, +] + +[[package]] +name = "odoo14-addon-mis-builder-cash-flow" +version = "14.0.1.0.4.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-mis-builder" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/82/8b99f6484e73d4b0847eefa6e0fe82eb507fc5480669368b095055c68060/odoo14_addon_mis_builder_cash_flow-14.0.1.0.4.dev6-py3-none-any.whl", hash = "sha256:2826ef27a7dced13281398edd179a7512675e4ca9df82323dec8cc1a42eec358", size = 49869, upload-time = "2024-03-23T02:35:47.965Z" }, +] + +[[package]] +name = "odoo14-addon-mis-builder-demo" +version = "14.0.3.1.4.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-mis-builder-budget" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/26/56bf2e1353f5e9175e0545854d95c1ff1a66e73088d5c16800ee0ff50349/odoo14_addon_mis_builder_demo-14.0.3.1.4.dev5-py3-none-any.whl", hash = "sha256:072f9eb9edf19d6ebabec0eb0215c9a46ea8a219238bae70722f2d771e43e8a6", size = 38578, upload-time = "2024-02-22T05:07:41.325Z" }, +] + +[[package]] +name = "odoo14-addon-multi-step-wizard" +version = "14.0.1.0.1.dev9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/5b/b8cc1f55cc26794bee3b9b6ce37417c72a82131c2d257bd32b28eeec7e43/odoo14_addon_multi_step_wizard-14.0.1.0.1.dev9-py3-none-any.whl", hash = "sha256:ca632bbc0236f43464f0dbb134fb60fcde6a3d8a5d42df4b857ff7bdf4230a6f", size = 32463, upload-time = "2024-12-03T03:34:43.582Z" }, +] + +[[package]] +name = "odoo14-addon-partner-contact-access-link" +version = "14.0.1.0.1.dev8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/6e/6827816daf61a7e4558db300ac1513095415d73935751b830ec0bb9d725a/odoo14_addon_partner_contact_access_link-14.0.1.0.1.dev8-py3-none-any.whl", hash = "sha256:445506144baf7e698d1eb1d21b4b1cedd4382e3c7453c4af943cd985654699fc", size = 311979, upload-time = "2024-01-20T05:30:20.812Z" }, +] + +[[package]] +name = "odoo14-addon-partner-statement" +version = "14.0.1.4.8.dev3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-report-xlsx" }, + { name = "odoo14-addon-report-xlsx-helper" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/f5/073f59d282725e8f4adba3cc01acbf7dc82cd9ac85e0589a6d4aa3f93844/odoo14_addon_partner_statement-14.0.1.4.8.dev3-py3-none-any.whl", hash = "sha256:88b0d0f7b449de8e9fc52213b29be790db211b7ae03970b90f23a9bf3152f099", size = 141031, upload-time = "2025-03-04T02:32:04.134Z" }, +] + +[[package]] +name = "odoo14-addon-pdf-helper" +version = "14.0.2.0.2.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "pypdf" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/1d/a881fd4403d8df6e9c38aee8e0c47ee51ee2d8bcbf032eb304cb37026961/odoo14_addon_pdf_helper-14.0.2.0.2.dev1-py3-none-any.whl", hash = "sha256:9767dec1e7c687b5fe28fa72a84994220dabc90e1d73253d4370690a1fca916d", size = 101292, upload-time = "2025-01-08T02:49:59.159Z" }, +] + +[[package]] +name = "odoo14-addon-report-xlsx" +version = "14.0.1.0.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/01/dba92a8a6e9cf50a9498d39505975e02d6b5a579df80ad4e5041c724305b/odoo14_addon_report_xlsx-14.0.1.0.11-py3-none-any.whl", hash = "sha256:d7c3db0213b44724c045c3d8d432c980079d224f12e608402ddadc59bf9646ad", size = 46765, upload-time = "2024-08-19T06:37:45.116Z" }, +] + +[[package]] +name = "odoo14-addon-report-xlsx-helper" +version = "14.0.1.0.3.dev3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/0d/f572caec3b00084e8712091bd6196510e0e2310db255abaf764a7cdecb91/odoo14_addon_report_xlsx_helper-14.0.1.0.3.dev3-py3-none-any.whl", hash = "sha256:f447a4feada9ee9f4690bd7386507e88be19b17a3a950da39c165f2986c48f1f", size = 34899, upload-time = "2024-12-20T03:24:56.106Z" }, +] + +[[package]] +name = "odoo14-addon-sentry" +version = "14.0.3.0.3.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "sentry-sdk" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/35/63dcc8f6fe713e495d5b5b353149b4bedaad520357d3a5720a1d59d25884/odoo14_addon_sentry-14.0.3.0.3.dev1-py3-none-any.whl", hash = "sha256:f8f74f922b632cb3a5cbce42de736c2d79a3f254ae41077add1bc7ec447eeba5", size = 34556, upload-time = "2024-12-04T03:32:59.852Z" }, +] + +[[package]] +name = "odoo14-addon-sql-request-abstract" +version = "14.0.1.3.1.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/f2/b6f10c0fa794e1cb9bc55320e8e3a90215fc27386287a8bc57fcc8e286cb/odoo14_addon_sql_request_abstract-14.0.1.3.1.dev6-py3-none-any.whl", hash = "sha256:aaa4737896eddcbffae879b920d7efcef5218d17d44efc392949db4c823c1642", size = 134199, upload-time = "2024-05-21T06:51:56.215Z" }, +] + +[[package]] +name = "odoo14-addon-uom-unece" +version = "14.0.1.0.1.dev8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/8e/50b35c14c36ab72ad236d7e808d782d52955f82f159f20141e92de056e20/odoo14_addon_uom_unece-14.0.1.0.1.dev8-py3-none-any.whl", hash = "sha256:385d8a103119f049533f4e5bc54d4163cd5a4f3ecbaa1be245a84c1f66c056d5", size = 26485, upload-time = "2025-01-01T02:40:02.496Z" }, +] + +[[package]] +name = "odoo14-addon-web-advanced-search" +version = "14.0.1.0.2.dev7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/98/f09f0b555245138ef9c97390c77cf01124ab8cae40af119170458ca8465c/odoo14_addon_web_advanced_search-14.0.1.0.2.dev7-py3-none-any.whl", hash = "sha256:549f3109f023a56554863f433a86ac0d6c7bab4120358b96186e49b5b4fdfce3", size = 48685, upload-time = "2024-01-20T07:03:54.258Z" }, +] + +[[package]] +name = "odoo14-addon-web-responsive" +version = "14.0.1.2.3.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/fd/b2e7619794829cc171558e79aaf6b9dcc988a5dae3fc317267827e4beffc/odoo14_addon_web_responsive-14.0.1.2.3.dev6-py3-none-any.whl", hash = "sha256:710d1d6aa114c2ecedc521478bd1f3ff3a21f56eb661fe9ea13302ec8fb5f888", size = 24086872, upload-time = "2024-05-21T07:33:43.638Z" }, +] + +[[package]] +name = "odoo14-addon-web-widget-dropdown-dynamic" +version = "14.0.1.0.1.dev5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/44/7ef469b1936e14d806a42c40126badffcc2081ade95f4e2f775cdae64016/odoo14_addon_web_widget_dropdown_dynamic-14.0.1.0.1.dev5-py3-none-any.whl", hash = "sha256:b18ea1ef930a6e2e1d35ca8d16c4380eb10aba548573af997f2740f0ca9a0cc9", size = 27426, upload-time = "2023-09-03T17:58:15.392Z" }, +] + +[[package]] +name = "odoo14-addon-website-apps-store" +version = "14.0.1.3.2.dev1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-apps-download" }, + { name = "odoo14-addon-apps-product-creator" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/3d/956c4b70539a49c8c99b6a7215cca605b3551401a85372e7f9ebc7481873/odoo14_addon_website_apps_store-14.0.1.3.2.dev1-py3-none-any.whl", hash = "sha256:b1879e2303952ee3c4a72cd8192db863f9acb16e20a4c19e13bde84cbe83e8a5", size = 40095, upload-time = "2025-01-21T02:37:27.515Z" }, +] + +[[package]] +name = "ofxparse" +version = "0.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "lxml" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3f/e3/d780743d5037b27276577cdf82a86fe0b5ab81567bcacec33bf92cdca478/ofxparse-0.19.tar.gz", hash = "sha256:d8c81fd5089332106da1a2e8919c412c7c677f08af04d557ca767701a04e0918", size = 54140, upload-time = "2018-08-08T12:59:07.755Z" } + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950, upload-time = "2024-11-08T09:47:47.202Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451, upload-time = "2024-11-08T09:47:44.722Z" }, +] + +[[package]] +name = "parameterized" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/49/00c0c0cc24ff4266025a53e41336b79adaa5a4ebfad214f433d623f9865e/parameterized-0.9.0.tar.gz", hash = "sha256:7fc905272cefa4f364c1a3429cbbe9c0f98b793988efb5bf90aac80f08db09b1", size = 24351, upload-time = "2023-03-27T02:01:11.592Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/2f/804f58f0b856ab3bf21617cccf5b39206e6c4c94c2cd227bde125ea6105f/parameterized-0.9.0-py2.py3-none-any.whl", hash = "sha256:4e0758e3d41bea3bbd05ec14fc2c24736723f243b28d702081aef438c9372b1b", size = 20475, upload-time = "2023-03-27T02:01:09.31Z" }, +] + +[[package]] +name = "passlib" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/25/4b/6fbfc66aabb3017cd8c3bd97b37f769d7503ead2899bf76e570eb91270de/passlib-1.7.1.tar.gz", hash = "sha256:3d948f64138c25633613f303bcc471126eae67c04d5e3f6b7b8ce6242f8653e0", size = 645724, upload-time = "2017-01-31T02:42:42.439Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/a7/d6d238d927df355d4e4e000670342ca4705a72f0bf694027cf67d9bcf5af/passlib-1.7.1-py2.py3-none-any.whl", hash = "sha256:43526aea08fa32c6b6dbbbe9963c4c767285b78147b7437597f992812f69d280", size = 498755, upload-time = "2017-01-31T02:42:45.029Z" }, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, +] + +[[package]] +name = "pillow" +version = "8.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/24/1346f8c70dae5daf58e22435a1f1f4696682b4f85321eb4d18ca1d81c0c2/Pillow-8.1.1.tar.gz", hash = "sha256:f6fc18f9c9c7959bf58e6faf801d14fafb6d4717faaf6f79a68c8bb2a13dcf20", size = 44978772, upload-time = "2021-03-02T00:45:15.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/37/2f9715fcfd3db918ac3c5e4a52c0d608f626f34d13df661ef94d2ba52292/Pillow-8.1.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:69da5b1d7102a61ce9b45deb2920a2012d52fd8f4201495ea9411d0071b0ec22", size = 2202473, upload-time = "2021-03-02T00:43:48.348Z" }, + { url = "https://files.pythonhosted.org/packages/5d/fb/f992af40d170d3a76cecaa432b77b1b659af7ac67bcc36f78c095139d6bb/Pillow-8.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2a40d7d4b17db87f5b9a1efc0aff56000e1d0d5ece415090c102aafa0ccbe858", size = 2029729, upload-time = "2021-03-02T00:43:52.369Z" }, + { url = "https://files.pythonhosted.org/packages/e2/d9/40fa294827ae75bd6cd42fd30d51cd7c997d0ebc9ebef06304e4d3897b91/Pillow-8.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:01bb0a34f1a6689b138c0089d670ae2e8f886d2666a9b2f2019031abdea673c4", size = 2104623, upload-time = "2021-03-02T00:43:55.753Z" }, + { url = "https://files.pythonhosted.org/packages/ff/90/74101f5802ee186e4572be6056c592ca6620b734a3c1f096741a7f5e70a8/Pillow-8.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:43b3c859912e8bf754b3c5142df624794b18eb7ae07cfeddc917e1a9406a3ef2", size = 2227597, upload-time = "2021-03-02T00:44:01.399Z" }, + { url = "https://files.pythonhosted.org/packages/2a/4a/8ff3d8eb2307f89dbdbb7a89d394b8bf087b02427a1ccb2a334943f99774/Pillow-8.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:3b13d89d97b551e02549d1f0edf22bed6acfd6fd2e888cd1e9a953bf215f0e81", size = 2151845, upload-time = "2021-03-02T00:44:04.814Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9c/b4036b4e8a8e9cb9cff53658e64f495df9192122a6b1407c83d534e7272e/Pillow-8.1.1-cp39-cp39-win32.whl", hash = "sha256:c143c409e7bc1db784471fe9d0bf95f37c4458e879ad84cfae640cb74ee11a26", size = 1886359, upload-time = "2021-03-02T00:44:09.507Z" }, + { url = "https://files.pythonhosted.org/packages/52/29/74cb948338609ad74e088c9547e4fbbecc7537ed9114ff9ecba08dbf4540/Pillow-8.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:1c5e3c36f02c815766ae9dd91899b1c5b4652f2a37b7a51609f3bd467c0f11fb", size = 2159711, upload-time = "2021-03-02T00:44:12.888Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302, upload-time = "2024-09-17T19:06:50.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439, upload-time = "2024-09-17T19:06:49.212Z" }, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955, upload-time = "2024-04-20T21:34:42.531Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556, upload-time = "2024-04-20T21:34:40.434Z" }, +] + +[[package]] +name = "polib" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/61/82688564bf24ec4fa349be5ebcb4fbf49551bd1e3203c13d6196ef6b56ff/polib-1.1.0.tar.gz", hash = "sha256:fad87d13696127ffb27ea0882d6182f1a9cf8a5e2b37a587751166c51e5a332a", size = 158484, upload-time = "2017-11-27T17:33:20.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/a2/e407c3b00cace3d7fc8df14d364deeecfeb96044e1a317de583bc26eae58/polib-1.1.0-py2.py3-none-any.whl", hash = "sha256:93b730477c16380c9a96726c54016822ff81acfa553977fdd131f2b90ba858d7", size = 25695, upload-time = "2017-11-27T17:35:03.065Z" }, +] + +[[package]] +name = "psutil" +version = "5.6.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/dc/edf6758183afc7591a16bd4b8a44d8eea80aca1327ea60161dd3bad9ad22/psutil-5.6.6.tar.gz", hash = "sha256:ad21281f7bd6c57578dd53913d2d44218e9e29fd25128d10ff7819ef16fa46e7", size = 447805, upload-time = "2019-11-25T12:31:36.347Z" } + +[[package]] +name = "psycopg2" +version = "2.9.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/62/51/2007ea29e605957a17ac6357115d0c1a1b60c8c984951c19419b3474cdfd/psycopg2-2.9.10.tar.gz", hash = "sha256:12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11", size = 385672, upload-time = "2024-10-16T11:24:54.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/29/bc9639b9c50abd93a8274fd2deffbf70b2a65aa9e7881e63ea6bc4319e84/psycopg2-2.9.10-cp39-cp39-win32.whl", hash = "sha256:9d5b3b94b79a844a986d029eee38998232451119ad653aea42bb9220a8c5066b", size = 1025259, upload-time = "2024-10-16T11:18:48.181Z" }, + { url = "https://files.pythonhosted.org/packages/2c/f8/0be7d99d24656b689d83ac167240c3527efb0b161d814fb1dd58329ddf75/psycopg2-2.9.10-cp39-cp39-win_amd64.whl", hash = "sha256:88138c8dedcbfa96408023ea2b0c369eda40fe5d75002c0964c78f46f11fa442", size = 1163878, upload-time = "2024-10-16T11:18:52.549Z" }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload-time = "2024-03-30T13:22:22.564Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" }, +] + +[[package]] +name = "pydot" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/e2/23e053ccf5648153959ea15d77fb90adb2b1f9c9360f832f39d6d6c024e2/pydot-1.4.1.tar.gz", hash = "sha256:d49c9d4dd1913beec2a997f831543c8cbd53e535b1a739e921642fe416235f01", size = 128236, upload-time = "2018-12-12T21:01:22.341Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/d1/b1479a770f66d962f545c2101630ce1d5592d90cb4f083d38862e93d16d2/pydot-1.4.1-py2.py3-none-any.whl", hash = "sha256:67be714300c78fda5fd52f79ec994039e3f76f074948c67b5ff539b433ad354f", size = 19825, upload-time = "2018-12-12T21:01:12.835Z" }, +] + +[[package]] +name = "pygithub" +version = "1.59.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "pynacl" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/30/203d3420960853e399de3b85d6613cea1cf17c1cf7fc9716f7ee7e17e0fc/PyGithub-1.59.1.tar.gz", hash = "sha256:c44e3a121c15bf9d3a5cc98d94c9a047a5132a9b01d22264627f58ade9ddc217", size = 3295328, upload-time = "2023-08-03T09:43:01.794Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/71/aff5465d9e3d448a5d4beab1dc7c8dec72037e3ae7e0d856ee08538dc934/PyGithub-1.59.1-py3-none-any.whl", hash = "sha256:3d87a822e6c868142f0c2c4bf16cce4696b5a7a4d142a7bd160e1bdf75bc54a9", size = 342171, upload-time = "2023-08-03T09:43:00.046Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload-time = "2025-01-06T17:26:30.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" }, +] + +[[package]] +name = "pygount" +version = "1.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/6f/29fe06d1afd8ca4dd74cfc36411595e2d75e4acdd5f523e92cf72b7bbc3b/pygount-1.2.4-py3-none-any.whl", hash = "sha256:8ec56e58cfcb2be8bb54f32f02e7130d33302e2543c8a37b441e606ea3b8a2c5", size = 25710, upload-time = "2020-08-12T17:01:44.689Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pynacl" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload-time = "2022-01-07T22:05:41.134Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload-time = "2022-01-07T22:05:49.156Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload-time = "2022-01-07T22:05:50.989Z" }, + { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload-time = "2022-01-07T22:05:52.539Z" }, + { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload-time = "2022-01-07T22:05:54.251Z" }, + { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload-time = "2022-01-07T22:05:56.056Z" }, + { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload-time = "2022-01-07T22:05:57.434Z" }, + { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload-time = "2022-01-07T22:05:58.665Z" }, + { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload-time = "2022-01-07T22:06:00.085Z" }, + { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload-time = "2022-01-07T22:06:01.861Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/1a/3544f4f299a47911c2ab3710f534e52fea62a633c96806995da5d25be4b2/pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a", size = 1067694, upload-time = "2024-12-31T20:59:46.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", size = 107716, upload-time = "2024-12-31T20:59:42.738Z" }, +] + +[[package]] +name = "pypdf" +version = "4.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f0/65/2ed7c9e1d31d860f096061b3dd2d665f501e09faaa0409a3f0d719d2a16d/pypdf-4.3.1.tar.gz", hash = "sha256:b2f37fe9a3030aa97ca86067a56ba3f9d3565f9a791b305c7355d8392c30d91b", size = 293266, upload-time = "2024-07-21T19:35:20.207Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/60/eccdd92dd4af3e4bea6d6a342f7588c618a15b9bec4b968af581e498bcc4/pypdf-4.3.1-py3-none-any.whl", hash = "sha256:64b31da97eda0771ef22edb1bfecd5deee4b72c3d1736b7df2689805076d6418", size = 295825, upload-time = "2024-07-21T19:35:18.126Z" }, +] + +[[package]] +name = "pypdf2" +version = "1.26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b4/01/68fcc0d43daf4c6bdbc6b33cc3f77bda531c86b174cac56ef0ffdb96faab/PyPDF2-1.26.0.tar.gz", hash = "sha256:e28f902f2f0a1603ea95ebe21dff311ef09be3d0f0ef29a3e44a932729564385", size = 77556, upload-time = "2016-05-18T17:21:56.537Z" } + +[[package]] +name = "pyserial" +version = "3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/74/11b04703ec416717b247d789103277269d567db575d2fd88f25d9767fe3d/pyserial-3.4.tar.gz", hash = "sha256:6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627", size = 151657, upload-time = "2017-07-23T21:10:04.368Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl", hash = "sha256:e0770fadba80c31013896c7e6ef703f72e7834965954a78e71a3049488d4d7d8", size = 193717, upload-time = "2017-07-23T21:10:01.982Z" }, +] + +[[package]] +name = "pytest" +version = "8.3.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "tomli" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634, upload-time = "2025-03-02T12:54:52.069Z" }, +] + +[[package]] +name = "pytest-cov" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945, upload-time = "2024-10-29T20:13:35.363Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949, upload-time = "2024-10-29T20:13:33.215Z" }, +] + +[[package]] +name = "pytest-odoo" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/cc/fb1bb767db03873dfd1e74956049ac2235291deb37a5190379dc3ec64f19/pytest_odoo-2.1.2.tar.gz", hash = "sha256:f8f542e5e3b17f8150bc32beb36b340e7fb6c59b5a9dedce35c021097ad98456", size = 20040, upload-time = "2025-03-12T14:17:23.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/b11505eb2c2b3d85df86ddf72de8464d721cc6de6b5d06dad1204065e1c7/pytest_odoo-2.1.2-py3-none-any.whl", hash = "sha256:552926e4709835fc5314da21041d97d7ade1f4224cb767e5c3e4db8a272bd83d", size = 17937, upload-time = "2025-03-12T14:17:21.722Z" }, +] + +[[package]] +name = "pytest-xdist" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060, upload-time = "2024-04-28T19:29:54.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108, upload-time = "2024-04-28T19:29:52.813Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a0/b0/a4e3241d2dee665fea11baec21389aec6886655cd4db7647ddf96c3fad15/python-dateutil-2.7.3.tar.gz", hash = "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8", size = 302871, upload-time = "2018-05-10T12:02:18.124Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl", hash = "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0", size = 211414, upload-time = "2018-05-10T12:02:16.089Z" }, +] + +[[package]] +name = "python-stdnum" +version = "1.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/89/ad/9388970542f82857ac2958b3eaddfad16caaf967cf8532e9486dedc69420/python-stdnum-1.8.tar.gz", hash = "sha256:3f42639cae75c0f6ba734eaa7391d411b7fdef868873503f7d2b2962fc3d71bd", size = 421547, upload-time = "2018-01-03T18:50:04.157Z" } + +[[package]] +name = "pytz" +version = "2025.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/57/df1c9157c8d5a05117e455d66fd7cf6dbc46974f832b1058ed4856785d8a/pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e", size = 319617, upload-time = "2025-01-31T01:54:48.615Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/38/ac33370d784287baa1c3d538978b5e2ea064d4c1b93ffbd12826c190dd10/pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", size = 507930, upload-time = "2025-01-31T01:54:45.634Z" }, +] + +[[package]] +name = "pyusb" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/34/2095e821c01225377dda4ebdbd53d8316d6abb243c9bee43d3888fa91dd6/pyusb-1.0.2.tar.gz", hash = "sha256:4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362", size = 54220, upload-time = "2017-10-12T01:19:01.492Z" } + +[[package]] +name = "qrcode" +version = "6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/d5/6c7d4e103d94364d067636417a77a6024219c58cd6e9f428ece9b5061ef9/qrcode-6.1.tar.gz", hash = "sha256:505253854f607f2abf4d16092c61d4e9d511a3b4392e60bff957a68592b04369", size = 29363, upload-time = "2019-01-14T00:21:17.8Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/87/4a3a77e59ab7493d64da1f69bf1c2e899a4cf81e51b2baa855e8cc8115be/qrcode-6.1-py2.py3-none-any.whl", hash = "sha256:3996ee560fc39532910603704c82980ff6d4d5d629f9c3f25f34174ce8606cf5", size = 31073, upload-time = "2019-01-14T00:21:15.271Z" }, +] + +[[package]] +name = "reportlab" +version = "3.5.55" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/2a/c6aa4903a299b8bf1af35e9aca8967615ddc6d8461c2f6b028bf379e0b27/reportlab-3.5.55.tar.gz", hash = "sha256:4f307accda32c9f17015ed77c7424f904514e349dff063f78d2462d715963e53", size = 2899065, upload-time = "2020-10-29T20:02:32.793Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/56/21501baa7e6b9a0791711b89d66c66c70f68837549f6a6ed008e563638ff/reportlab-3.5.55-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:be90599e5e78c1ddfcfee8c752108def58b4c672ebcc4d3d9aa7fe65e7d3f16b", size = 2542797, upload-time = "2020-10-29T19:59:47.295Z" }, + { url = "https://files.pythonhosted.org/packages/0e/90/9ae8e42439e0825925501b7e7223e1e7f90278b57d844feae0078e113e4e/reportlab-3.5.55-cp39-cp39-manylinux1_i686.whl", hash = "sha256:8406e960a974a65b765c9ff74b269aa64718b4af1e8c511ebdbd9a5b44b0c7e6", size = 2606725, upload-time = "2020-10-29T20:00:11.774Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d5/d1707ce32b12e1daf203211bad0519ccdde83e918b0aa7ea6e10f0448538/reportlab-3.5.55-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3e10bd20c8ada9f7e1113157aa73b8e0048f2624e74794b73799c3deb13d7a3f", size = 2624438, upload-time = "2020-10-29T20:00:37.63Z" }, + { url = "https://files.pythonhosted.org/packages/5d/4e/910d14c5e64ade64ad1e4da08fb1b5f76dd5149a1678387776fc5ae7999f/reportlab-3.5.55-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:a2e6c15aecbe631245aab639751a58671312cced7e17de1ed9c45fb37036f6c9", size = 2606727, upload-time = "2020-10-29T20:01:00.825Z" }, + { url = "https://files.pythonhosted.org/packages/c5/45/70aeff10c0f2b401f3f04e4af641470ad55efc4bb4e3640be0b0f85a960c/reportlab-3.5.55-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f2fde5abb6f21c1eff5430f380cdbbee7fdeda6af935a83730ddce9f0c4e504e", size = 2624441, upload-time = "2020-10-29T20:01:24.967Z" }, + { url = "https://files.pythonhosted.org/packages/95/d0/961bbb30669afda546c28bfb1ba850406579bcc65f571274fb527dd1128e/reportlab-3.5.55-cp39-cp39-win32.whl", hash = "sha256:e6fb762e524a4fb118be9f44dbd9456cf80e42253ee8f1bdb0ea5c1f882d4ba8", size = 2222982, upload-time = "2020-10-29T20:01:45.468Z" }, + { url = "https://files.pythonhosted.org/packages/45/ae/13c2d18c5be66fa1867fc09953fca523be68783d6a83c085528a1218f107/reportlab-3.5.55-cp39-cp39-win_amd64.whl", hash = "sha256:0a788a537c48915eda083485b59ac40ac012fa7c43070069bde6eb5ea588313c", size = 2272278, upload-time = "2020-10-29T20:02:06.466Z" }, +] + +[[package]] +name = "requests" +version = "2.21.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "chardet" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/2c/514e4ac25da2b08ca5a464c50463682126385c4272c18193876e91f4bc38/requests-2.21.0.tar.gz", hash = "sha256:502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e", size = 111528, upload-time = "2018-12-10T15:40:11.072Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl", hash = "sha256:7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b", size = 57987, upload-time = "2018-12-10T15:40:08.741Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "responses" +version = "0.10.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/2a/abfa111b0184662ca473507fb24a1ff7e1cf395f774cc6acbd05f3b4dc3f/responses-0.10.15.tar.gz", hash = "sha256:7bb697a5fedeb41d81e8b87f152d453d5cab42dcd1691b6a7d6097e94d33f373", size = 25350, upload-time = "2020-06-12T02:20:35.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/4c/4cc4a9ad8a592692d579660d9040d5693b30cb066e4ba4159aa4a5e5fb65/responses-0.10.15-py2.py3-none-any.whl", hash = "sha256:af94d28cdfb48ded0ad82a5216616631543650f440334a693479b8991a6594a2", size = 15308, upload-time = "2020-06-12T02:20:34.175Z" }, +] + +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149, upload-time = "2024-11-01T16:43:57.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424, upload-time = "2024-11-01T16:43:55.817Z" }, +] + +[[package]] +name = "sentry-sdk" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/24/dc6b31bcdf6fcabe92982078e56396225f561285584eaf3159af5477f6c9/sentry-sdk-1.9.0.tar.gz", hash = "sha256:f185c53496d79b280fe5d9d21e6572aee1ab802d3354eb12314d216cfbaa8d30", size = 121481, upload-time = "2022-07-28T11:28:03.789Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/ee/92a218cc1563eda06bc50117e1b5d004b46d1a7784c387c9bf91685e1311/sentry_sdk-1.9.0-py2.py3-none-any.whl", hash = "sha256:60b13757d6344a94bf0ccb3c0a006c4de77daab09871b30fbbd05d5ec24e54fb", size = 156601, upload-time = "2022-07-28T11:28:03.777Z" }, +] + +[[package]] +name = "setuptools" +version = "76.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/32/d2/7b171caf085ba0d40d8391f54e1c75a1cda9255f542becf84575cfd8a732/setuptools-76.0.0.tar.gz", hash = "sha256:43b4ee60e10b0d0ee98ad11918e114c70701bc6051662a9a675a0496c1a158f4", size = 1349387, upload-time = "2025-03-09T13:59:49.697Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/66/d2d7e6ad554f3a7c7297c3f8ef6e22643ad3d35ef5c63bf488bc89f32f31/setuptools-76.0.0-py3-none-any.whl", hash = "sha256:199466a166ff664970d0ee145839f5582cb9bca7a0a3a2e795b6a9cb2308e9c6", size = 1236106, upload-time = "2025-03-09T13:59:48.208Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569, upload-time = "2024-08-13T13:39:12.166Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186, upload-time = "2024-08-13T13:39:10.986Z" }, +] + +[[package]] +name = "textual" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py", extra = ["linkify", "plugins"] }, + { name = "platformdirs" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/62/4af4689dd971ed4fb3215467624016d53550bff1df9ca02e7625eec07f8b/textual-2.1.2.tar.gz", hash = "sha256:aae3f9fde00c7440be00e3c3ac189e02d014f5298afdc32132f93480f9e09146", size = 1596600, upload-time = "2025-02-26T20:06:36.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/81/9df1988c908cbba77f10fecb8587496b3dff2838d4510457877a521d87fd/textual-2.1.2-py3-none-any.whl", hash = "sha256:95f37f49e930838e721bba8612f62114d410a3019665b6142adabc14c2fb9611", size = 680148, upload-time = "2025-02-26T20:06:34.687Z" }, +] + +[[package]] +name = "tomli" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" }, +] + +[[package]] +name = "typer" +version = "0.15.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/6f/3991f0f1c7fcb2df31aef28e0594d8d54b05393a0e4e34c65e475c2a5d41/typer-0.15.2.tar.gz", hash = "sha256:ab2fab47533a813c49fe1f16b1a370fd5819099c00b119e0633df65f22144ba5", size = 100711, upload-time = "2025-02-27T19:17:34.807Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/fc/5b29fea8cee020515ca82cc68e3b8e1e34bb19a3535ad854cac9257b414c/typer-0.15.2-py3-none-any.whl", hash = "sha256:46a499c6107d645a9c13f7ee46c5d5096cae6f5fc57dd11eccbbb9ae3e44ddfc", size = 45061, upload-time = "2025-02-27T19:17:32.111Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321, upload-time = "2024-06-07T18:52:15.995Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438, upload-time = "2024-06-07T18:52:13.582Z" }, +] + +[[package]] +name = "uc-micro-py" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/7a/146a99696aee0609e3712f2b44c6274566bc368dfe8375191278045186b8/uc-micro-py-1.0.3.tar.gz", hash = "sha256:d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a", size = 6043, upload-time = "2024-02-09T16:52:01.654Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/87/1f677586e8ac487e29672e4b17455758fce261de06a0d086167bb760361a/uc_micro_py-1.0.3-py3-none-any.whl", hash = "sha256:db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5", size = 6229, upload-time = "2024-02-09T16:52:00.371Z" }, +] + +[[package]] +name = "unidecode" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/89/19151076a006b9ac0dd37b1354e031f5297891ee507eb624755e58e10d3e/Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4", size = 192701, upload-time = "2024-01-11T11:58:35.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39", size = 235494, upload-time = "2024-01-11T11:58:33.012Z" }, +] + +[[package]] +name = "urllib3" +version = "1.24.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/3c/1bb7ef6c435dea026f06ed9f3ba16aa93f9f4f5d3857a51a35dfa00882f1/urllib3-1.24.3.tar.gz", hash = "sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4", size = 232237, upload-time = "2019-05-02T15:37:46.73Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/11/525b02e4acc0c747de8b6ccdab376331597c569c42ea66ab0a1dbd36eca2/urllib3-1.24.3-py2.py3-none-any.whl", hash = "sha256:a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb", size = 118799, upload-time = "2019-05-02T15:37:44.733Z" }, +] + +[[package]] +name = "vobject" +version = "0.9.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/ce/27c48c0e39cc69ffe7f6e3751734f6073539bf18a0cfe564e973a3709a52/vobject-0.9.6.1.tar.gz", hash = "sha256:96512aec74b90abb71f6b53898dd7fe47300cc940104c4f79148f0671f790101", size = 58556, upload-time = "2018-07-18T16:03:43.067Z" } + +[[package]] +name = "websocket-client" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648, upload-time = "2024-04-23T22:16:16.976Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826, upload-time = "2024-04-23T22:16:14.422Z" }, +] + +[[package]] +name = "werkzeug" +version = "0.16.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/1d/1c0761d9365d166dc9d882a48c437111d22b0df564d6d5768045d9a51fd0/Werkzeug-0.16.1.tar.gz", hash = "sha256:b353856d37dec59d6511359f97f6a4b2468442e454bd1c98298ddce53cac1f04", size = 935128, upload-time = "2020-01-27T04:13:59.901Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/e4/a859d2fe516f466642fa5c6054fd9646271f9da26b0cac0d2f37fc858c8f/Werkzeug-0.16.1-py2.py3-none-any.whl", hash = "sha256:1e0dedc2acb1f46827daa2e399c1485c8fa17c0d8e70b6b875b4e7f54bf408d2", size = 327363, upload-time = "2020-01-27T04:13:55.856Z" }, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3", size = 55531, upload-time = "2025-01-14T10:35:45.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/f4/6ed2b8f6f1c832933283974839b88ec7c983fd12905e01e97889dadf7559/wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a", size = 53308, upload-time = "2025-01-14T10:35:24.413Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a9/712a53f8f4f4545768ac532619f6e56d5d0364a87b2212531685e89aeef8/wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061", size = 38489, upload-time = "2025-01-14T10:35:26.913Z" }, + { url = "https://files.pythonhosted.org/packages/fa/9b/e172c8f28a489a2888df18f953e2f6cb8d33b1a2e78c9dfc52d8bf6a5ead/wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82", size = 38776, upload-time = "2025-01-14T10:35:28.183Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cb/7a07b51762dcd59bdbe07aa97f87b3169766cadf240f48d1cbe70a1be9db/wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9", size = 83050, upload-time = "2025-01-14T10:35:30.645Z" }, + { url = "https://files.pythonhosted.org/packages/a5/51/a42757dd41032afd6d8037617aa3bc6803ba971850733b24dfb7d5c627c4/wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f", size = 74718, upload-time = "2025-01-14T10:35:32.047Z" }, + { url = "https://files.pythonhosted.org/packages/bf/bb/d552bfe47db02fcfc950fc563073a33500f8108efa5f7b41db2f83a59028/wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b", size = 82590, upload-time = "2025-01-14T10:35:33.329Z" }, + { url = "https://files.pythonhosted.org/packages/77/99/77b06b3c3c410dbae411105bf22496facf03a5496bfaca8fbcf9da381889/wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f", size = 81462, upload-time = "2025-01-14T10:35:34.933Z" }, + { url = "https://files.pythonhosted.org/packages/2d/21/cf0bd85ae66f92600829ea1de8e1da778e5e9f6e574ccbe74b66db0d95db/wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8", size = 74309, upload-time = "2025-01-14T10:35:37.542Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/112d25e9092398a0dd6fec50ab7ac1b775a0c19b428f049785096067ada9/wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9", size = 81081, upload-time = "2025-01-14T10:35:38.9Z" }, + { url = "https://files.pythonhosted.org/packages/2b/49/364a615a0cc0872685646c495c7172e4fc7bf1959e3b12a1807a03014e05/wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb", size = 36423, upload-time = "2025-01-14T10:35:40.177Z" }, + { url = "https://files.pythonhosted.org/packages/00/ad/5d2c1b34ba3202cd833d9221833e74d6500ce66730974993a8dc9a94fb8c/wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb", size = 38772, upload-time = "2025-01-14T10:35:42.763Z" }, + { url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594, upload-time = "2025-01-14T10:35:44.018Z" }, +] + +[[package]] +name = "xlrd" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/05/ec9d4fcbbb74bbf4da9f622b3b61aec541e4eccf31d3c60c5422ec027ce2/xlrd-1.2.0.tar.gz", hash = "sha256:546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2", size = 554079, upload-time = "2018-12-15T17:47:48.133Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/16/63576a1a001752e34bf8ea62e367997530dc553b689356b9879339cf45a4/xlrd-1.2.0-py2.py3-none-any.whl", hash = "sha256:e551fb498759fa3a5384a94ccd4c3c02eb7c00ea424426e212ac0c57be9dfbde", size = 103251, upload-time = "2018-12-15T17:47:45.792Z" }, +] + +[[package]] +name = "xlsxwriter" +version = "1.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/08/69581af3c4807d2b8bac47251c80343161b9f315a7f91fb703aa865302d9/XlsxWriter-1.1.2.tar.gz", hash = "sha256:ae22658a0fc5b9e875fa97c213d1ffd617d86dc49bf08be99ebdac814db7bf36", size = 248469, upload-time = "2018-10-20T13:57:58.818Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/1b/4caecd4efde1d41ba3bef1a81027032a7a6dff7d5112e1731f232c0addb9/XlsxWriter-1.1.2-py2.py3-none-any.whl", hash = "sha256:7cc07619760641b67112dbe0df938399d4d915d9b9924bb58eb5c17384d29cc6", size = 142503, upload-time = "2018-10-20T13:57:56.632Z" }, +] + +[[package]] +name = "xlwt" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/06/97/56a6f56ce44578a69343449aa5a0d98eefe04085d69da539f3034e2cd5c1/xlwt-1.3.0.tar.gz", hash = "sha256:c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88", size = 153929, upload-time = "2017-08-22T06:47:16.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl", hash = "sha256:a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e", size = 99981, upload-time = "2017-08-22T06:47:15.281Z" }, +] + +[[package]] +name = "zeep" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appdirs" }, + { name = "attrs" }, + { name = "cached-property" }, + { name = "defusedxml" }, + { name = "isodate" }, + { name = "lxml" }, + { name = "pytz" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f0/51/d4a45a9863bf4ce587c253d68a2c8a6dfba88a17e55e62b4371ff496dd48/zeep-3.2.0.tar.gz", hash = "sha256:e5feb8b261c7e271e20c191bd346d80705d53b90af3c1e6f214aa108876fd72d", size = 161018, upload-time = "2018-12-17T09:06:00.385Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/86/4250fd0e6a168328064dc1b33d64550db972bb79f1796b436f9df75253ac/zeep-3.2.0-py2.py3-none-any.whl", hash = "sha256:c8a2f12228b18c5db1feec0814907048d3c77eb6bbed419d567fe87fd9f0e530", size = 98452, upload-time = "2018-12-17T09:05:57.732Z" }, +] + +[[package]] +name = "zope-event" +version = "5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/c2/427f1867bb96555d1d34342f1dd97f8c420966ab564d58d18469a1db8736/zope.event-5.0.tar.gz", hash = "sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd", size = 17350, upload-time = "2023-06-23T06:28:35.709Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/42/f8dbc2b9ad59e927940325a22d6d3931d630c3644dae7e2369ef5d9ba230/zope.event-5.0-py3-none-any.whl", hash = "sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26", size = 6824, upload-time = "2023-06-23T06:28:32.652Z" }, +] + +[[package]] +name = "zope-interface" +version = "7.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/93/9210e7606be57a2dfc6277ac97dcc864fd8d39f142ca194fdc186d596fda/zope.interface-7.2.tar.gz", hash = "sha256:8b49f1a3d1ee4cdaf5b32d2e738362c7f5e40ac8b46dd7d1a65e82a4872728fe", size = 252960, upload-time = "2024-11-28T08:45:39.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/2c/1f49dc8b4843c4f0848d8e43191aed312bad946a1563d1bf9e46cf2816ee/zope.interface-7.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7bd449c306ba006c65799ea7912adbbfed071089461a19091a228998b82b1fdb", size = 208349, upload-time = "2024-11-28T08:49:28.872Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7d/83ddbfc8424c69579a90fc8edc2b797223da2a8083a94d8dfa0e374c5ed4/zope.interface-7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a19a6cc9c6ce4b1e7e3d319a473cf0ee989cbbe2b39201d7c19e214d2dfb80c7", size = 208799, upload-time = "2024-11-28T08:49:30.616Z" }, + { url = "https://files.pythonhosted.org/packages/36/22/b1abd91854c1be03f5542fe092e6a745096d2eca7704d69432e119100583/zope.interface-7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cd1790b48c16db85d51fbbd12d20949d7339ad84fd971427cf00d990c1f137", size = 254267, upload-time = "2024-11-28T09:18:21.059Z" }, + { url = "https://files.pythonhosted.org/packages/2a/dd/fcd313ee216ad0739ae00e6126bc22a0af62a74f76a9ca668d16cd276222/zope.interface-7.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52e446f9955195440e787596dccd1411f543743c359eeb26e9b2c02b077b0519", size = 248614, upload-time = "2024-11-28T08:48:41.953Z" }, + { url = "https://files.pythonhosted.org/packages/88/d4/4ba1569b856870527cec4bf22b91fe704b81a3c1a451b2ccf234e9e0666f/zope.interface-7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ad9913fd858274db8dd867012ebe544ef18d218f6f7d1e3c3e6d98000f14b75", size = 253800, upload-time = "2024-11-28T08:48:46.637Z" }, + { url = "https://files.pythonhosted.org/packages/69/da/c9cfb384c18bd3a26d9fc6a9b5f32ccea49ae09444f097eaa5ca9814aff9/zope.interface-7.2-cp39-cp39-win_amd64.whl", hash = "sha256:1090c60116b3da3bfdd0c03406e2f14a1ff53e5771aebe33fec1edc0a350175d", size = 211980, upload-time = "2024-11-28T08:50:35.681Z" }, +] From 0a184cd75fa29be3f4fed437095c20b52e32f32d Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Wed, 4 Jun 2025 11:19:41 +0200 Subject: [PATCH 04/15] [CI] ignore unreleased dependencies --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c556169..f74763a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,8 +22,8 @@ jobs: # reject non-comment lines that contain a / (i.e. URLs, relative paths) grep "^[^#].*/" ${reqfile} || result=$? if [ $result -eq 0 ] ; then - echo "Unreleased dependencies found in ${reqfile}." - exit 1 + echo "Ignore Unreleased dependencies found in ${reqfile}." + exit 0 fi fi done From d3df5a7bde14eb64bdb90752f1d90c6457294e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 9 Jun 2025 17:20:52 +0200 Subject: [PATCH 05/15] Use standard mechanism to declare dev dependencies --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fef2051..f675d55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,7 +81,8 @@ prerelease = "allow" # tell uv when dependencies may change cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] -dev-dependencies = [ +[dependency-groups] +dev = [ "parameterized>=0.9.0", "pytest>8", "pytest-odoo>=2", From e59e4f037c4afcc26446259160fdee6b848b17f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 9 Jun 2025 17:22:23 +0200 Subject: [PATCH 06/15] Use explicit docker cache id Since some python wheels depend on the distro on which they have been build (eg psycopg2), we use an explicit cache id which includes the distro name. --- Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0ac15a8..08e668b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,8 @@ # Base stage, with the non-python runtime dependencies, and uv. # -FROM ghcr.io/acsone/odoo-bedrock:14.0-py39-focal-latest AS base +ARG DISTRO=focal +FROM ghcr.io/acsone/odoo-bedrock:14.0-py39-${DISTRO}-latest AS base # Install apt runtime dependencies. RUN set -e \ @@ -41,7 +42,8 @@ RUN set -e \ # Install the locked dependencies in the virtual environment, # but not the project -RUN --mount=type=cache,target=/root/.cache/uv \ +ARG DISTRO +RUN --mount=type=cache,target=/root/.cache/uv,id=uv-${DISTRO} \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ uv sync --frozen --no-install-project @@ -59,7 +61,8 @@ COPY --from=dependencies $VIRTUAL_ENV $VIRTUAL_ENV COPY . /app WORKDIR /app RUN python -m compileall . -RUN --mount=type=cache,target=/root/.cache/uv \ +ARG DISTRO +RUN --mount=type=cache,target=/root/.cache/uv,id=uv-${DISTRO} \ uv sync --locked --no-dev COPY entrypoints/* /odoo/start-entrypoint.d/ From 4b5a67f5d4709d468b10953900d20684706f4370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 9 Jun 2025 17:52:54 +0200 Subject: [PATCH 07/15] Add openupgradelib It's necessary to run, e.g. github_connector migrations --- pyproject.toml | 1 + uv.lock | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index f675d55..8324807 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,6 +71,7 @@ dependencies = [ # TODO: add constraints in github connector module "PyGithub<2.0.0", "click-odoo-contrib", + "openupgradelib", ] addons_dirs = ["./"] diff --git a/uv.lock b/uv.lock index 821a9ad..2187182 100644 --- a/uv.lock +++ b/uv.lock @@ -204,6 +204,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/33/cf/1f7649b8b9a3543e042d3f348e398a061923ac05b507f3f4d95f11938aa9/cryptography-44.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:5f6f90b72d8ccadb9c6e311c775c8305381db88374c65fa1a68250aa8a9cb3a6", size = 3210957, upload-time = "2025-03-02T00:01:06.987Z" }, ] +[[package]] +name = "cssselect" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/0a/c3ea9573b1dc2e151abfe88c7fe0c26d1892fe6ed02d0cdb30f0d57029d5/cssselect-1.3.0.tar.gz", hash = "sha256:57f8a99424cfab289a1b6a816a43075a4b00948c86b4dcf3ef4ee7e15f7ab0c7", size = 42870, upload-time = "2025-03-10T09:30:29.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/58/257350f7db99b4ae12b614a36256d9cc870d71d9e451e79c2dc3b23d7c3c/cssselect-1.3.0-py3-none-any.whl", hash = "sha256:56d1bf3e198080cc1667e137bc51de9cadfca259f03c2d4e09037b3e01e30f0d", size = 18786, upload-time = "2025-03-10T09:30:28.048Z" }, +] + [[package]] name = "decorator" version = "4.3.0" @@ -601,6 +610,7 @@ dependencies = [ { name = "odoo14-addon-web-widget-dropdown-dynamic" }, { name = "odoo14-addon-website-apps-store" }, { name = "ofxparse" }, + { name = "openupgradelib" }, { name = "passlib" }, { name = "pillow" }, { name = "polib" }, @@ -712,6 +722,7 @@ requires-dist = [ { name = "odoo14-addon-web-widget-dropdown-dynamic" }, { name = "odoo14-addon-website-apps-store" }, { name = "ofxparse", specifier = "==0.19" }, + { name = "openupgradelib" }, { name = "passlib", specifier = "==1.7.1" }, { name = "pillow", specifier = "==8.1.1" }, { name = "polib", specifier = "==1.1.0" }, @@ -1468,6 +1479,19 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/3f/e3/d780743d5037b27276577cdf82a86fe0b5ab81567bcacec33bf92cdca478/ofxparse-0.19.tar.gz", hash = "sha256:d8c81fd5089332106da1a2e8919c412c7c677f08af04d557ca767701a04e0918", size = 54140, upload-time = "2018-08-08T12:59:07.755Z" } +[[package]] +name = "openupgradelib" +version = "3.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cssselect" }, + { name = "lxml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/46/95587d765a363667d9bbcd905ee4eafcaf822b7a2cd8c240a28f6730a4b6/openupgradelib-3.11.1.tar.gz", hash = "sha256:b37adbf37b94e649febb99eaa887ee218c3b372061087e35e3901af585d8cbed", size = 7852021, upload-time = "2025-05-19T16:56:10.223Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/9e/92ea3598d9d4d55eb377eb1e4946ec8ac86b4c6d560907f5e265676cbe26/openupgradelib-3.11.1-py2.py3-none-any.whl", hash = "sha256:e34c57c835e6434171ceebe00d4a6b3245351135c602b39b868d7f82912efc56", size = 84839, upload-time = "2025-05-19T16:56:08.563Z" }, +] + [[package]] name = "packaging" version = "24.2" From 21b163e4ab19c4e3057d7f66d45c07ab673d292d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Mon, 9 Jun 2025 17:57:33 +0200 Subject: [PATCH 08/15] Tweak comment in entrypoint --- entrypoints/030_wait-wkhtmltopdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoints/030_wait-wkhtmltopdf b/entrypoints/030_wait-wkhtmltopdf index 8cbb841..de1ce77 100755 --- a/entrypoints/030_wait-wkhtmltopdf +++ b/entrypoints/030_wait-wkhtmltopdf @@ -10,7 +10,7 @@ SLEEP_TIME=2 # Wait time between attempts (in seconds) # Attempt counter attempt=1 -# Wait for PostgreSQL to be available +# Wait for wkhtmltopdf to be available until [ "$attempt" -ge "$MAX_RETRIES" ]; do if wkhtmltopdf --version > /dev/null 2>&1; then echo "wkhtmltopdf is available!" From 0168affba26a3193120ce63722cd9f8e93c3add3 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 16 Jun 2025 09:42:27 +0200 Subject: [PATCH 09/15] FIX oca_all dependencies * account_statement_import_online_wise were missing on staging only module missing from production 20250617 * l10n_ch_pain_base * l10n_ch_pain_credit_transfer * project_task_add_very_high * web_search_with_and and bumps all module versions --- oca_all/__manifest__.py | 94 +++++----- uv.lock | 384 +++++++++++++++++++++++++--------------- 2 files changed, 291 insertions(+), 187 deletions(-) diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 37249c5..88aca8b 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -15,6 +15,7 @@ # Odoo "account", "account_payment", + "account_statement_import", "analytic", "association", "attachment_indexation", @@ -32,12 +33,16 @@ "bus", "calendar", "contacts", + "coupon", "crm", "digest", "event", "event_sale", "fetchmail", + "fetchmail_gmail", "gamification", + "google_gmail", + "google_account", "google_recaptcha", "hr", "hr_timesheet", @@ -73,6 +78,7 @@ "rating", "resource", "sale", + "sale_coupon", "sale_crm", "sale_management", "sale_project", @@ -112,70 +118,74 @@ "website_payment", "website_profile", "website_sale", + "website_sale_coupon", "website_sale_digital", "website_sale_management", "website_slides", # OCA - "date_range", - "mis_builder", - "mis_builder_budget", - "mis_builder_demo", - "account_payment_order", - "report_xlsx", - "mis_builder_cash_flow", - "account_statement_import_paypal", "account_banking_pain_base", - "account_statement_import_base", "account_banking_sepa_credit_transfer", + "account_credit_control", + "account_financial_report", + "account_lock_to_date", + "account_menu", + "account_payment_mode", + "account_payment_order", "account_payment_partner", "account_payment_sale", - "account_payment_mode", "account_payment_unece", + "account_reconciliation_widget", + "account_statement_import_base", + "account_statement_import_online_wise", + "account_statement_import_paypal", + "account_statement_import_txt_xlsx", "account_tax_unece", + "apps_download", + "apps_product_creator", + "base_technical_features", + "base_ubl", "base_ubl_payment", "base_unece", - "uom_unece", - "base_ubl", - "project_members", - "apps_download", - "account_financial_report", + "bi_sql_editor", "currency_rate_update", + "date_range", + "disable_odoo_online", + "document_page", + "event_badge_design", + "github_connector", + "github_connector_oca", + "github_connector_odoo", + "knowledge", "l10n_ch_base_bank", + "l10n_ch_pain_base", + "l10n_ch_pain_credit_transfer", + "mass_editing", + "mass_operation_abstract", + "membership_delegated_partner_line", + "membership_extension", + "mis_builder", + "mis_builder_budget", + "mis_builder_cash_flow", + "mis_builder_demo", "multi_step_wizard", - "account_credit_control", - "web_widget_dropdown_dynamic", - "account_statement_import_txt_xlsx", - "account_lock_to_date", "partner_statement", - "membership_delegated_partner_line", - # "membership_delegated_partner", - "account_menu", + "project_task_add_very_high", "oca_custom", - "mass_operation_abstract", + "oca_psc_team", + "partner_contact_access_link", + "project_members", + "report_xlsx", + "report_xlsx_helper", + "sentry", "sql_request_abstract", - "bi_sql_editor", - "event_badge_design", + "uom_unece", + "web_advanced_search", "web_responsive", - "sentry", - "report_xlsx_helper", - "apps_product_creator", + "web_search_with_and", + "web_widget_dropdown_dynamic", "website_apps_store", - "github_connector", - "github_connector_oca", - "oca_psc_team", "website_oca_integrator", "website_oca_psc_team", - "github_connector_odoo", - "account_statement_import", - "account_reconciliation_widget", - "base_technical_features", - "document_page", - "knowledge", - "mass_editing", - "partner_contact_access_link", - "membership_extension", - "web_advanced_search", - "disable_odoo_online", ], "installable": True, } diff --git a/uv.lock b/uv.lock index 2187182..b65ea63 100644 --- a/uv.lock +++ b/uv.lock @@ -37,15 +37,15 @@ wheels = [ [[package]] name = "beautifulsoup4" -version = "4.13.3" +version = "4.13.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "soupsieve" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516, upload-time = "2025-02-04T20:05:01.681Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/e4/0c4c39e18fd76d6a628d4dd8da40543d136ce2d1752bd6eeeab0791f4d6b/beautifulsoup4-4.13.4.tar.gz", hash = "sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195", size = 621067, upload-time = "2025-04-15T17:05:13.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015, upload-time = "2025-02-04T20:05:03.729Z" }, + { url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b", size = 187285, upload-time = "2025-04-15T17:05:12.221Z" }, ] [[package]] @@ -59,11 +59,11 @@ wheels = [ [[package]] name = "certifi" -version = "2025.1.31" +version = "2025.6.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577, upload-time = "2025-01-31T02:16:47.166Z" } +sdist = { url = "https://files.pythonhosted.org/packages/73/f7/f14b46d4bcd21092d7d3ccef689615220d8a08fb25e564b65d20738e672e/certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b", size = 158753, upload-time = "2025-06-15T02:45:51.329Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393, upload-time = "2025-01-31T02:16:45.015Z" }, + { url = "https://files.pythonhosted.org/packages/84/ae/320161bd181fc06471eed047ecce67b693fd7515b16d495d8932db763426/certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057", size = 157650, upload-time = "2025-06-15T02:45:49.977Z" }, ] [[package]] @@ -146,22 +146,22 @@ wheels = [ [[package]] name = "coverage" -version = "7.7.0" +version = "7.9.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/36/465f5492443265e1278f9a82ffe6aeed3f1db779da0d6e7d4611a5cfb6af/coverage-7.7.0.tar.gz", hash = "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166", size = 809969, upload-time = "2025-03-16T18:00:21.805Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/e0/98670a80884f64578f0c22cd70c5e81a6e07b08167721c7487b4d70a7ca0/coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec", size = 813650, upload-time = "2025-06-13T13:02:28.627Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/42/0e77be6f2fafe7f3de88ddf9f8d9a0d8e9a75f9517081d261d31439908c7/coverage-7.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5", size = 210604, upload-time = "2025-03-16T18:00:02.122Z" }, - { url = "https://files.pythonhosted.org/packages/0e/62/a82adc7818545fca3987367c6b20f239645678438f7da5827a4960bcbe7f/coverage-7.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261", size = 211031, upload-time = "2025-03-16T18:00:03.533Z" }, - { url = "https://files.pythonhosted.org/packages/a6/50/a98b418fcaf531b2829b2a06f47f8c5cbc0dcce4a9aa63c5f30bf47d1a92/coverage-7.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253", size = 239791, upload-time = "2025-03-16T18:00:05.481Z" }, - { url = "https://files.pythonhosted.org/packages/58/f7/0a8f891fce6f389b1062a520aff130fa6974433efeb549dd19cbdccc76b3/coverage-7.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf", size = 237718, upload-time = "2025-03-16T18:00:07.472Z" }, - { url = "https://files.pythonhosted.org/packages/a9/8f/362c91661e6c43ff86b65b15bbb60ad1ad4924e9d1e35a0d5f08eb3337c4/coverage-7.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e", size = 238820, upload-time = "2025-03-16T18:00:09.084Z" }, - { url = "https://files.pythonhosted.org/packages/dd/4b/56520dba6f38ad59e96cdeb8c7eafa47781576d2baabdfa10f8c1813b37b/coverage-7.7.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b", size = 238595, upload-time = "2025-03-16T18:00:10.573Z" }, - { url = "https://files.pythonhosted.org/packages/4d/e6/acfae468bd1f9b691b29d42f93bfd7080c05021103f03580934c066a3844/coverage-7.7.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e", size = 236820, upload-time = "2025-03-16T18:00:12.124Z" }, - { url = "https://files.pythonhosted.org/packages/22/4f/9b65332326b0c5b7de197a52e766e2bd547beec6948e1d5c4063289e3281/coverage-7.7.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d", size = 237800, upload-time = "2025-03-16T18:00:13.582Z" }, - { url = "https://files.pythonhosted.org/packages/bb/99/1c2214678731517d91774b75ed5c0f72feefee3270c232c286b314518d7d/coverage-7.7.0-cp39-cp39-win32.whl", hash = "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c", size = 213341, upload-time = "2025-03-16T18:00:15.129Z" }, - { url = "https://files.pythonhosted.org/packages/21/30/4d9ae5544f839da30e42e03850d1dfe4ab184d6307ed971e70178760a68d/coverage-7.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59", size = 214227, upload-time = "2025-03-16T18:00:17.054Z" }, - { url = "https://files.pythonhosted.org/packages/cb/69/6a5eac32d2e8721274ef75df1b9fd6a8f7e8231e41ff7bc5501f19835f25/coverage-7.7.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c", size = 202813, upload-time = "2025-03-16T18:00:18.857Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ac/60f409a448e5b0e9b8539716f683568aa5848c1be903cdbbc805a552cdf8/coverage-7.7.0-py3-none-any.whl", hash = "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a", size = 202803, upload-time = "2025-03-16T18:00:20.282Z" }, + { url = "https://files.pythonhosted.org/packages/a5/d6/c41dd9b02bf16ec001aaf1cbef665537606899a3db1094e78f5ae17540ca/coverage-7.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f424507f57878e424d9a95dc4ead3fbdd72fd201e404e861e465f28ea469951", size = 212029, upload-time = "2025-06-13T13:02:09.058Z" }, + { url = "https://files.pythonhosted.org/packages/f8/c0/40420d81d731f84c3916dcdf0506b3e6c6570817bff2576b83f780914ae6/coverage-7.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:535fde4001b2783ac80865d90e7cc7798b6b126f4cd8a8c54acfe76804e54e58", size = 212407, upload-time = "2025-06-13T13:02:11.151Z" }, + { url = "https://files.pythonhosted.org/packages/9b/87/f0db7d62d0e09f14d6d2f6ae8c7274a2f09edf74895a34b412a0601e375a/coverage-7.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02532fd3290bb8fa6bec876520842428e2a6ed6c27014eca81b031c2d30e3f71", size = 241160, upload-time = "2025-06-13T13:02:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/a9/b7/3337c064f058a5d7696c4867159651a5b5fb01a5202bcf37362f0c51400e/coverage-7.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56f5eb308b17bca3bbff810f55ee26d51926d9f89ba92707ee41d3c061257e55", size = 239027, upload-time = "2025-06-13T13:02:14.294Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a9/5898a283f66d1bd413c32c2e0e05408196fd4f37e206e2b06c6e0c626e0e/coverage-7.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfa447506c1a52271f1b0de3f42ea0fa14676052549095e378d5bff1c505ff7b", size = 240145, upload-time = "2025-06-13T13:02:15.745Z" }, + { url = "https://files.pythonhosted.org/packages/e0/33/d96e3350078a3c423c549cb5b2ba970de24c5257954d3e4066e2b2152d30/coverage-7.9.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9ca8e220006966b4a7b68e8984a6aee645a0384b0769e829ba60281fe61ec4f7", size = 239871, upload-time = "2025-06-13T13:02:17.344Z" }, + { url = "https://files.pythonhosted.org/packages/1d/6e/6fb946072455f71a820cac144d49d11747a0f1a21038060a68d2d0200499/coverage-7.9.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:49f1d0788ba5b7ba65933f3a18864117c6506619f5ca80326b478f72acf3f385", size = 238122, upload-time = "2025-06-13T13:02:18.849Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5c/bc43f25c8586840ce25a796a8111acf6a2b5f0909ba89a10d41ccff3920d/coverage-7.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:68cd53aec6f45b8e4724c0950ce86eacb775c6be01ce6e3669fe4f3a21e768ed", size = 239058, upload-time = "2025-06-13T13:02:21.423Z" }, + { url = "https://files.pythonhosted.org/packages/11/d8/ce2007418dd7fd00ff8c8b898bb150bb4bac2d6a86df05d7b88a07ff595f/coverage-7.9.1-cp39-cp39-win32.whl", hash = "sha256:95335095b6c7b1cc14c3f3f17d5452ce677e8490d101698562b2ffcacc304c8d", size = 214532, upload-time = "2025-06-13T13:02:22.857Z" }, + { url = "https://files.pythonhosted.org/packages/20/21/334e76fa246e92e6d69cab217f7c8a70ae0cc8f01438bd0544103f29528e/coverage-7.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:e1b5191d1648acc439b24721caab2fd0c86679d8549ed2c84d5a7ec1bedcc244", size = 215439, upload-time = "2025-06-13T13:02:24.268Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e5/c723545c3fd3204ebde3b4cc4b927dce709d3b6dc577754bb57f63ca4a4a/coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514", size = 204009, upload-time = "2025-06-13T13:02:25.787Z" }, + { url = "https://files.pythonhosted.org/packages/08/b8/7ddd1e8ba9701dea08ce22029917140e6f66a859427406579fd8d0ca7274/coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c", size = 204000, upload-time = "2025-06-13T13:02:27.173Z" }, ] [package.optional-dependencies] @@ -171,37 +171,37 @@ toml = [ [[package]] name = "cryptography" -version = "44.0.2" +version = "45.0.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/25/4ce80c78963834b8a9fd1cc1266be5ed8d1840785c0f2e1b73b8d128d505/cryptography-44.0.2.tar.gz", hash = "sha256:c63454aa261a0cf0c5b4718349629793e9e634993538db841165b3df74f37ec0", size = 710807, upload-time = "2025-03-02T00:01:37.692Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/ef/83e632cfa801b221570c5f58c0369db6fa6cef7d9ff859feab1aae1a8a0f/cryptography-44.0.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:efcfe97d1b3c79e486554efddeb8f6f53a4cdd4cf6086642784fa31fc384e1d7", size = 6676361, upload-time = "2025-03-02T00:00:06.528Z" }, - { url = "https://files.pythonhosted.org/packages/30/ec/7ea7c1e4c8fc8329506b46c6c4a52e2f20318425d48e0fe597977c71dbce/cryptography-44.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29ecec49f3ba3f3849362854b7253a9f59799e3763b0c9d0826259a88efa02f1", size = 3952350, upload-time = "2025-03-02T00:00:09.537Z" }, - { url = "https://files.pythonhosted.org/packages/27/61/72e3afdb3c5ac510330feba4fc1faa0fe62e070592d6ad00c40bb69165e5/cryptography-44.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc821e161ae88bfe8088d11bb39caf2916562e0a2dc7b6d56714a48b784ef0bb", size = 4166572, upload-time = "2025-03-02T00:00:12.03Z" }, - { url = "https://files.pythonhosted.org/packages/26/e4/ba680f0b35ed4a07d87f9e98f3ebccb05091f3bf6b5a478b943253b3bbd5/cryptography-44.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3c00b6b757b32ce0f62c574b78b939afab9eecaf597c4d624caca4f9e71e7843", size = 3958124, upload-time = "2025-03-02T00:00:14.518Z" }, - { url = "https://files.pythonhosted.org/packages/9c/e8/44ae3e68c8b6d1cbc59040288056df2ad7f7f03bbcaca6b503c737ab8e73/cryptography-44.0.2-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7bdcd82189759aba3816d1f729ce42ffded1ac304c151d0a8e89b9996ab863d5", size = 3678122, upload-time = "2025-03-02T00:00:17.212Z" }, - { url = "https://files.pythonhosted.org/packages/27/7b/664ea5e0d1eab511a10e480baf1c5d3e681c7d91718f60e149cec09edf01/cryptography-44.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:4973da6ca3db4405c54cd0b26d328be54c7747e89e284fcff166132eb7bccc9c", size = 4191831, upload-time = "2025-03-02T00:00:19.696Z" }, - { url = "https://files.pythonhosted.org/packages/2a/07/79554a9c40eb11345e1861f46f845fa71c9e25bf66d132e123d9feb8e7f9/cryptography-44.0.2-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4e389622b6927d8133f314949a9812972711a111d577a5d1f4bee5e58736b80a", size = 3960583, upload-time = "2025-03-02T00:00:22.488Z" }, - { url = "https://files.pythonhosted.org/packages/bb/6d/858e356a49a4f0b591bd6789d821427de18432212e137290b6d8a817e9bf/cryptography-44.0.2-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f514ef4cd14bb6fb484b4a60203e912cfcb64f2ab139e88c2274511514bf7308", size = 4191753, upload-time = "2025-03-02T00:00:25.038Z" }, - { url = "https://files.pythonhosted.org/packages/b2/80/62df41ba4916067fa6b125aa8c14d7e9181773f0d5d0bd4dcef580d8b7c6/cryptography-44.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1bc312dfb7a6e5d66082c87c34c8a62176e684b6fe3d90fcfe1568de675e6688", size = 4079550, upload-time = "2025-03-02T00:00:26.929Z" }, - { url = "https://files.pythonhosted.org/packages/f3/cd/2558cc08f7b1bb40683f99ff4327f8dcfc7de3affc669e9065e14824511b/cryptography-44.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b721b8b4d948b218c88cb8c45a01793483821e709afe5f622861fc6182b20a7", size = 4298367, upload-time = "2025-03-02T00:00:28.735Z" }, - { url = "https://files.pythonhosted.org/packages/71/59/94ccc74788945bc3bd4cf355d19867e8057ff5fdbcac781b1ff95b700fb1/cryptography-44.0.2-cp37-abi3-win32.whl", hash = "sha256:51e4de3af4ec3899d6d178a8c005226491c27c4ba84101bfb59c901e10ca9f79", size = 2772843, upload-time = "2025-03-02T00:00:30.592Z" }, - { url = "https://files.pythonhosted.org/packages/ca/2c/0d0bbaf61ba05acb32f0841853cfa33ebb7a9ab3d9ed8bb004bd39f2da6a/cryptography-44.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:c505d61b6176aaf982c5717ce04e87da5abc9a36a5b39ac03905c4aafe8de7aa", size = 3209057, upload-time = "2025-03-02T00:00:33.393Z" }, - { url = "https://files.pythonhosted.org/packages/9e/be/7a26142e6d0f7683d8a382dd963745e65db895a79a280a30525ec92be890/cryptography-44.0.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8e0ddd63e6bf1161800592c71ac794d3fb8001f2caebe0966e77c5234fa9efc3", size = 6677789, upload-time = "2025-03-02T00:00:36.009Z" }, - { url = "https://files.pythonhosted.org/packages/06/88/638865be7198a84a7713950b1db7343391c6066a20e614f8fa286eb178ed/cryptography-44.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81276f0ea79a208d961c433a947029e1a15948966658cf6710bbabb60fcc2639", size = 3951919, upload-time = "2025-03-02T00:00:38.581Z" }, - { url = "https://files.pythonhosted.org/packages/d7/fc/99fe639bcdf58561dfad1faa8a7369d1dc13f20acd78371bb97a01613585/cryptography-44.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a1e657c0f4ea2a23304ee3f964db058c9e9e635cc7019c4aa21c330755ef6fd", size = 4167812, upload-time = "2025-03-02T00:00:42.934Z" }, - { url = "https://files.pythonhosted.org/packages/53/7b/aafe60210ec93d5d7f552592a28192e51d3c6b6be449e7fd0a91399b5d07/cryptography-44.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6210c05941994290f3f7f175a4a57dbbb2afd9273657614c506d5976db061181", size = 3958571, upload-time = "2025-03-02T00:00:46.026Z" }, - { url = "https://files.pythonhosted.org/packages/16/32/051f7ce79ad5a6ef5e26a92b37f172ee2d6e1cce09931646eef8de1e9827/cryptography-44.0.2-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1c3572526997b36f245a96a2b1713bf79ce99b271bbcf084beb6b9b075f29ea", size = 3679832, upload-time = "2025-03-02T00:00:48.647Z" }, - { url = "https://files.pythonhosted.org/packages/78/2b/999b2a1e1ba2206f2d3bca267d68f350beb2b048a41ea827e08ce7260098/cryptography-44.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b042d2a275c8cee83a4b7ae30c45a15e6a4baa65a179a0ec2d78ebb90e4f6699", size = 4193719, upload-time = "2025-03-02T00:00:51.397Z" }, - { url = "https://files.pythonhosted.org/packages/72/97/430e56e39a1356e8e8f10f723211a0e256e11895ef1a135f30d7d40f2540/cryptography-44.0.2-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d03806036b4f89e3b13b6218fefea8d5312e450935b1a2d55f0524e2ed7c59d9", size = 3960852, upload-time = "2025-03-02T00:00:53.317Z" }, - { url = "https://files.pythonhosted.org/packages/89/33/c1cf182c152e1d262cac56850939530c05ca6c8d149aa0dcee490b417e99/cryptography-44.0.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c7362add18b416b69d58c910caa217f980c5ef39b23a38a0880dfd87bdf8cd23", size = 4193906, upload-time = "2025-03-02T00:00:56.49Z" }, - { url = "https://files.pythonhosted.org/packages/e1/99/87cf26d4f125380dc674233971069bc28d19b07f7755b29861570e513650/cryptography-44.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8cadc6e3b5a1f144a039ea08a0bdb03a2a92e19c46be3285123d32029f40a922", size = 4081572, upload-time = "2025-03-02T00:00:59.995Z" }, - { url = "https://files.pythonhosted.org/packages/b3/9f/6a3e0391957cc0c5f84aef9fbdd763035f2b52e998a53f99345e3ac69312/cryptography-44.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6f101b1f780f7fc613d040ca4bdf835c6ef3b00e9bd7125a4255ec574c7916e4", size = 4298631, upload-time = "2025-03-02T00:01:01.623Z" }, - { url = "https://files.pythonhosted.org/packages/e2/a5/5bc097adb4b6d22a24dea53c51f37e480aaec3465285c253098642696423/cryptography-44.0.2-cp39-abi3-win32.whl", hash = "sha256:3dc62975e31617badc19a906481deacdeb80b4bb454394b4098e3f2525a488c5", size = 2773792, upload-time = "2025-03-02T00:01:04.133Z" }, - { url = "https://files.pythonhosted.org/packages/33/cf/1f7649b8b9a3543e042d3f348e398a061923ac05b507f3f4d95f11938aa9/cryptography-44.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:5f6f90b72d8ccadb9c6e311c775c8305381db88374c65fa1a68250aa8a9cb3a6", size = 3210957, upload-time = "2025-03-02T00:01:06.987Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/fe/c8/a2a376a8711c1e11708b9c9972e0c3223f5fc682552c82d8db844393d6ce/cryptography-45.0.4.tar.gz", hash = "sha256:7405ade85c83c37682c8fe65554759800a4a8c54b2d96e0f8ad114d31b808d57", size = 744890, upload-time = "2025-06-10T00:03:51.297Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/1c/92637793de053832523b410dbe016d3f5c11b41d0cf6eef8787aabb51d41/cryptography-45.0.4-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:425a9a6ac2823ee6e46a76a21a4e8342d8fa5c01e08b823c1f19a8b74f096069", size = 7055712, upload-time = "2025-06-10T00:02:38.826Z" }, + { url = "https://files.pythonhosted.org/packages/ba/14/93b69f2af9ba832ad6618a03f8a034a5851dc9a3314336a3d71c252467e1/cryptography-45.0.4-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:680806cf63baa0039b920f4976f5f31b10e772de42f16310a6839d9f21a26b0d", size = 4205335, upload-time = "2025-06-10T00:02:41.64Z" }, + { url = "https://files.pythonhosted.org/packages/67/30/fae1000228634bf0b647fca80403db5ca9e3933b91dd060570689f0bd0f7/cryptography-45.0.4-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ca0f52170e821bc8da6fc0cc565b7bb8ff8d90d36b5e9fdd68e8a86bdf72036", size = 4431487, upload-time = "2025-06-10T00:02:43.696Z" }, + { url = "https://files.pythonhosted.org/packages/6d/5a/7dffcf8cdf0cb3c2430de7404b327e3db64735747d641fc492539978caeb/cryptography-45.0.4-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f3fe7a5ae34d5a414957cc7f457e2b92076e72938423ac64d215722f6cf49a9e", size = 4208922, upload-time = "2025-06-10T00:02:45.334Z" }, + { url = "https://files.pythonhosted.org/packages/c6/f3/528729726eb6c3060fa3637253430547fbaaea95ab0535ea41baa4a6fbd8/cryptography-45.0.4-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:25eb4d4d3e54595dc8adebc6bbd5623588991d86591a78c2548ffb64797341e2", size = 3900433, upload-time = "2025-06-10T00:02:47.359Z" }, + { url = "https://files.pythonhosted.org/packages/d9/4a/67ba2e40f619e04d83c32f7e1d484c1538c0800a17c56a22ff07d092ccc1/cryptography-45.0.4-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ce1678a2ccbe696cf3af15a75bb72ee008d7ff183c9228592ede9db467e64f1b", size = 4464163, upload-time = "2025-06-10T00:02:49.412Z" }, + { url = "https://files.pythonhosted.org/packages/7e/9a/b4d5aa83661483ac372464809c4b49b5022dbfe36b12fe9e323ca8512420/cryptography-45.0.4-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:49fe9155ab32721b9122975e168a6760d8ce4cffe423bcd7ca269ba41b5dfac1", size = 4208687, upload-time = "2025-06-10T00:02:50.976Z" }, + { url = "https://files.pythonhosted.org/packages/db/b7/a84bdcd19d9c02ec5807f2ec2d1456fd8451592c5ee353816c09250e3561/cryptography-45.0.4-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2882338b2a6e0bd337052e8b9007ced85c637da19ef9ecaf437744495c8c2999", size = 4463623, upload-time = "2025-06-10T00:02:52.542Z" }, + { url = "https://files.pythonhosted.org/packages/d8/84/69707d502d4d905021cac3fb59a316344e9f078b1da7fb43ecde5e10840a/cryptography-45.0.4-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:23b9c3ea30c3ed4db59e7b9619272e94891f8a3a5591d0b656a7582631ccf750", size = 4332447, upload-time = "2025-06-10T00:02:54.63Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ee/d4f2ab688e057e90ded24384e34838086a9b09963389a5ba6854b5876598/cryptography-45.0.4-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0a97c927497e3bc36b33987abb99bf17a9a175a19af38a892dc4bbb844d7ee2", size = 4572830, upload-time = "2025-06-10T00:02:56.689Z" }, + { url = "https://files.pythonhosted.org/packages/70/d4/994773a261d7ff98034f72c0e8251fe2755eac45e2265db4c866c1c6829c/cryptography-45.0.4-cp311-abi3-win32.whl", hash = "sha256:e00a6c10a5c53979d6242f123c0a97cff9f3abed7f064fc412c36dc521b5f257", size = 2932769, upload-time = "2025-06-10T00:02:58.467Z" }, + { url = "https://files.pythonhosted.org/packages/5a/42/c80bd0b67e9b769b364963b5252b17778a397cefdd36fa9aa4a5f34c599a/cryptography-45.0.4-cp311-abi3-win_amd64.whl", hash = "sha256:817ee05c6c9f7a69a16200f0c90ab26d23a87701e2a284bd15156783e46dbcc8", size = 3410441, upload-time = "2025-06-10T00:03:00.14Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0b/2488c89f3a30bc821c9d96eeacfcab6ff3accc08a9601ba03339c0fd05e5/cryptography-45.0.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:964bcc28d867e0f5491a564b7debb3ffdd8717928d315d12e0d7defa9e43b723", size = 7031836, upload-time = "2025-06-10T00:03:01.726Z" }, + { url = "https://files.pythonhosted.org/packages/fe/51/8c584ed426093aac257462ae62d26ad61ef1cbf5b58d8b67e6e13c39960e/cryptography-45.0.4-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6a5bf57554e80f75a7db3d4b1dacaa2764611ae166ab42ea9a72bcdb5d577637", size = 4195746, upload-time = "2025-06-10T00:03:03.94Z" }, + { url = "https://files.pythonhosted.org/packages/5c/7d/4b0ca4d7af95a704eef2f8f80a8199ed236aaf185d55385ae1d1610c03c2/cryptography-45.0.4-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:46cf7088bf91bdc9b26f9c55636492c1cce3e7aaf8041bbf0243f5e5325cfb2d", size = 4424456, upload-time = "2025-06-10T00:03:05.589Z" }, + { url = "https://files.pythonhosted.org/packages/1d/45/5fabacbc6e76ff056f84d9f60eeac18819badf0cefc1b6612ee03d4ab678/cryptography-45.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7bedbe4cc930fa4b100fc845ea1ea5788fcd7ae9562e669989c11618ae8d76ee", size = 4198495, upload-time = "2025-06-10T00:03:09.172Z" }, + { url = "https://files.pythonhosted.org/packages/55/b7/ffc9945b290eb0a5d4dab9b7636706e3b5b92f14ee5d9d4449409d010d54/cryptography-45.0.4-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:eaa3e28ea2235b33220b949c5a0d6cf79baa80eab2eb5607ca8ab7525331b9ff", size = 3885540, upload-time = "2025-06-10T00:03:10.835Z" }, + { url = "https://files.pythonhosted.org/packages/7f/e3/57b010282346980475e77d414080acdcb3dab9a0be63071efc2041a2c6bd/cryptography-45.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:7ef2dde4fa9408475038fc9aadfc1fb2676b174e68356359632e980c661ec8f6", size = 4452052, upload-time = "2025-06-10T00:03:12.448Z" }, + { url = "https://files.pythonhosted.org/packages/37/e6/ddc4ac2558bf2ef517a358df26f45bc774a99bf4653e7ee34b5e749c03e3/cryptography-45.0.4-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:6a3511ae33f09094185d111160fd192c67aa0a2a8d19b54d36e4c78f651dc5ad", size = 4198024, upload-time = "2025-06-10T00:03:13.976Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c0/85fa358ddb063ec588aed4a6ea1df57dc3e3bc1712d87c8fa162d02a65fc/cryptography-45.0.4-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:06509dc70dd71fa56eaa138336244e2fbaf2ac164fc9b5e66828fccfd2b680d6", size = 4451442, upload-time = "2025-06-10T00:03:16.248Z" }, + { url = "https://files.pythonhosted.org/packages/33/67/362d6ec1492596e73da24e669a7fbbaeb1c428d6bf49a29f7a12acffd5dc/cryptography-45.0.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5f31e6b0a5a253f6aa49be67279be4a7e5a4ef259a9f33c69f7d1b1191939872", size = 4325038, upload-time = "2025-06-10T00:03:18.4Z" }, + { url = "https://files.pythonhosted.org/packages/53/75/82a14bf047a96a1b13ebb47fb9811c4f73096cfa2e2b17c86879687f9027/cryptography-45.0.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:944e9ccf67a9594137f942d5b52c8d238b1b4e46c7a0c2891b7ae6e01e7c80a4", size = 4560964, upload-time = "2025-06-10T00:03:20.06Z" }, + { url = "https://files.pythonhosted.org/packages/cd/37/1a3cba4c5a468ebf9b95523a5ef5651244693dc712001e276682c278fc00/cryptography-45.0.4-cp37-abi3-win32.whl", hash = "sha256:c22fe01e53dc65edd1945a2e6f0015e887f84ced233acecb64b4daadb32f5c97", size = 2924557, upload-time = "2025-06-10T00:03:22.563Z" }, + { url = "https://files.pythonhosted.org/packages/2a/4b/3256759723b7e66380397d958ca07c59cfc3fb5c794fb5516758afd05d41/cryptography-45.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:627ba1bc94f6adf0b0a2e35d87020285ead22d9f648c7e75bb64f367375f3b22", size = 3395508, upload-time = "2025-06-10T00:03:24.586Z" }, ] [[package]] @@ -264,11 +264,14 @@ sdist = { url = "https://files.pythonhosted.org/packages/db/7f/53245710a67cb9de1 [[package]] name = "exceptiongroup" -version = "1.2.2" +version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883, upload-time = "2024-07-12T22:26:00.161Z" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453, upload-time = "2024-07-12T22:25:58.476Z" }, + { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, ] [[package]] @@ -362,11 +365,11 @@ wheels = [ [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, ] [[package]] @@ -569,6 +572,7 @@ dependencies = [ { name = "odoo14-addon-account-reconciliation-widget" }, { name = "odoo14-addon-account-statement-import" }, { name = "odoo14-addon-account-statement-import-base" }, + { name = "odoo14-addon-account-statement-import-online-wise" }, { name = "odoo14-addon-account-statement-import-paypal" }, { name = "odoo14-addon-account-statement-import-txt-xlsx" }, { name = "odoo14-addon-account-tax-unece" }, @@ -589,6 +593,8 @@ dependencies = [ { name = "odoo14-addon-github-connector-odoo" }, { name = "odoo14-addon-knowledge" }, { name = "odoo14-addon-l10n-ch-base-bank" }, + { name = "odoo14-addon-l10n-ch-pain-base" }, + { name = "odoo14-addon-l10n-ch-pain-credit-transfer" }, { name = "odoo14-addon-mass-editing" }, { name = "odoo14-addon-mass-operation-abstract" }, { name = "odoo14-addon-membership-delegated-partner-line" }, @@ -600,6 +606,7 @@ dependencies = [ { name = "odoo14-addon-multi-step-wizard" }, { name = "odoo14-addon-partner-contact-access-link" }, { name = "odoo14-addon-partner-statement" }, + { name = "odoo14-addon-project-task-add-very-high" }, { name = "odoo14-addon-report-xlsx" }, { name = "odoo14-addon-report-xlsx-helper" }, { name = "odoo14-addon-sentry" }, @@ -607,6 +614,7 @@ dependencies = [ { name = "odoo14-addon-uom-unece" }, { name = "odoo14-addon-web-advanced-search" }, { name = "odoo14-addon-web-responsive" }, + { name = "odoo14-addon-web-search-with-and" }, { name = "odoo14-addon-web-widget-dropdown-dynamic" }, { name = "odoo14-addon-website-apps-store" }, { name = "ofxparse" }, @@ -681,6 +689,7 @@ requires-dist = [ { name = "odoo14-addon-account-reconciliation-widget" }, { name = "odoo14-addon-account-statement-import" }, { name = "odoo14-addon-account-statement-import-base" }, + { name = "odoo14-addon-account-statement-import-online-wise" }, { name = "odoo14-addon-account-statement-import-paypal" }, { name = "odoo14-addon-account-statement-import-txt-xlsx" }, { name = "odoo14-addon-account-tax-unece" }, @@ -701,6 +710,8 @@ requires-dist = [ { name = "odoo14-addon-github-connector-odoo" }, { name = "odoo14-addon-knowledge" }, { name = "odoo14-addon-l10n-ch-base-bank" }, + { name = "odoo14-addon-l10n-ch-pain-base" }, + { name = "odoo14-addon-l10n-ch-pain-credit-transfer" }, { name = "odoo14-addon-mass-editing" }, { name = "odoo14-addon-mass-operation-abstract" }, { name = "odoo14-addon-membership-delegated-partner-line", git = "https://github.com/OCA/vertical-association?subdirectory=setup%2Fmembership_delegated_partner_line&rev=refs%2Fpull%2F151%2Fhead" }, @@ -712,6 +723,7 @@ requires-dist = [ { name = "odoo14-addon-multi-step-wizard" }, { name = "odoo14-addon-partner-contact-access-link" }, { name = "odoo14-addon-partner-statement" }, + { name = "odoo14-addon-project-task-add-very-high" }, { name = "odoo14-addon-report-xlsx" }, { name = "odoo14-addon-report-xlsx-helper" }, { name = "odoo14-addon-sentry" }, @@ -719,6 +731,7 @@ requires-dist = [ { name = "odoo14-addon-uom-unece" }, { name = "odoo14-addon-web-advanced-search" }, { name = "odoo14-addon-web-responsive" }, + { name = "odoo14-addon-web-search-with-and" }, { name = "odoo14-addon-web-widget-dropdown-dynamic" }, { name = "odoo14-addon-website-apps-store" }, { name = "ofxparse", specifier = "==0.19" }, @@ -816,7 +829,7 @@ wheels = [ [[package]] name = "odoo14-addon-account-banking-pain-base" -version = "14.0.2.1.3.dev1" +version = "14.0.2.1.3.dev2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "lxml" }, @@ -825,19 +838,19 @@ dependencies = [ { name = "unidecode" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/08/a6dd483def3e5ff56dad744d54e92332dabb060a39af8fcf5ddfdb5b657d/odoo14_addon_account_banking_pain_base-14.0.2.1.3.dev1-py3-none-any.whl", hash = "sha256:263dea310f1236f549a9b5b615c07a5ed553a25096859db9e29ad5649229ae6a", size = 112110, upload-time = "2024-09-14T02:42:48.381Z" }, + { url = "https://files.pythonhosted.org/packages/7e/13/033bba4d18356cf30972c188af25162082d677f17c58e2d7356f48ac57e9/odoo14_addon_account_banking_pain_base-14.0.2.1.3.dev2-py3-none-any.whl", hash = "sha256:af0acb7a4c1ee3e8e40c779cd724c8ef74fe1341ca3b688ce5d485be84c3dbd2", size = 113605, upload-time = "2025-04-02T02:38:20.788Z" }, ] [[package]] name = "odoo14-addon-account-banking-sepa-credit-transfer" -version = "14.0.2.0.4" +version = "14.0.2.0.5.dev1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "odoo14-addon-account-banking-pain-base" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/2d/5a1c4e02119c2c5fd7246c6e830c4ada09d6c42770c018492057a49169c3/odoo14_addon_account_banking_sepa_credit_transfer-14.0.2.0.4-py3-none-any.whl", hash = "sha256:ca6343ab75d441d88cafae4dba3f87b2e516365fe42fb6ca28cbeedb66b1b99d", size = 80076, upload-time = "2024-09-13T08:32:25.965Z" }, + { url = "https://files.pythonhosted.org/packages/f6/e8/78f240558e74299d39476939daea9fae4ee83ebe0391ae6aa4c6675f1108/odoo14_addon_account_banking_sepa_credit_transfer-14.0.2.0.5.dev1-py3-none-any.whl", hash = "sha256:cb93928dd47d385a7d94930801ad539167cd3788e88637e154ca6cc568a3ee16", size = 80169, upload-time = "2025-04-02T02:38:30.481Z" }, ] [[package]] @@ -888,18 +901,18 @@ wheels = [ [[package]] name = "odoo14-addon-account-payment-mode" -version = "14.0.1.1.1.dev12" +version = "14.0.1.1.1.dev13" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/3d/0c67b3ce85ddf91364c3718ae380a73700077a1cedff7c990714c58a9a91/odoo14_addon_account_payment_mode-14.0.1.1.1.dev12-py3-none-any.whl", hash = "sha256:40974b526a53b6235c6c606206a77e93650cc0b61792e4a9cbcd1c32f0d5fe02", size = 107519, upload-time = "2024-02-15T03:05:08.658Z" }, + { url = "https://files.pythonhosted.org/packages/31/8c/43972d86d4d074236003ee504da03d614ced5253e7df1ab1c1874019afb3/odoo14_addon_account_payment_mode-14.0.1.1.1.dev13-py3-none-any.whl", hash = "sha256:da2654bf49b8a377aee25521295dcd30040d5ee83b2068fbf543a0c1c8f903c6", size = 107497, upload-time = "2025-06-06T02:38:45.829Z" }, ] [[package]] name = "odoo14-addon-account-payment-order" -version = "14.0.2.5.8.dev2" +version = "14.0.2.5.8.dev4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "lxml" }, @@ -907,7 +920,7 @@ dependencies = [ { name = "odoo14-addon-account-payment-partner" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b7/7ff3172d7b7f6b67454afeb72a7e916acbf2e7c2c4c4321f2eaeaec86397/odoo14_addon_account_payment_order-14.0.2.5.8.dev2-py3-none-any.whl", hash = "sha256:0905b3ddf7469c441a90d94609933d6fbbff932408e7fa132f2132c4e31e08ed", size = 330869, upload-time = "2024-10-23T02:43:01.293Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1e/b8dbff76f0a03bed3e90ee1492fa3257b761231c3774bf79bc14d2594291/odoo14_addon_account_payment_order-14.0.2.5.8.dev4-py3-none-any.whl", hash = "sha256:983336c3d0526223e4ebbadacec4dc1410020972a21de350ecc366fef6261906", size = 330865, upload-time = "2025-06-06T02:38:54.275Z" }, ] [[package]] @@ -960,14 +973,14 @@ wheels = [ [[package]] name = "odoo14-addon-account-statement-import" -version = "14.0.3.3.4.dev1" +version = "14.0.3.3.4.dev2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "odoo14-addon-account-statement-import-base" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/12/76/e5155e682de4add9d76c2396ba0b070f8da5f44f141391c3503114e0b32e/odoo14_addon_account_statement_import-14.0.3.3.4.dev1-py3-none-any.whl", hash = "sha256:271ae54bc9ec6db00b977ca9a3f8ecabbab2c305e9b8b638a6208402981d3bba", size = 443813, upload-time = "2025-02-06T02:38:23.674Z" }, + { url = "https://files.pythonhosted.org/packages/09/5a/d9d1f2e50449111c5372f69c84de83dfe47499973d34dcadf80b107aa65b/odoo14_addon_account_statement_import-14.0.3.3.4.dev2-py3-none-any.whl", hash = "sha256:18da7686c20553504b6a854947f4b83c3a7a98e1598cbfa697e269f45496c93c", size = 443811, upload-time = "2025-04-17T02:39:16.851Z" }, ] [[package]] @@ -981,6 +994,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e8/74/2894fd57138bdccdd8dc879a6305bbf218352ff24429f07d4b1515f5a5bb/odoo14_addon_account_statement_import_base-14.0.1.0.1.dev11-py3-none-any.whl", hash = "sha256:773f18ab2c376876bdb1fbb5e72780f586f8607e366dd79eb014ebbd0fcc7d20", size = 26698, upload-time = "2025-02-06T02:38:27.028Z" }, ] +[[package]] +name = "odoo14-addon-account-statement-import-online" +version = "14.0.4.0.1.dev10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-statement-import-base" }, + { name = "odoo14-addon-web-widget-dropdown-dynamic" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/4b/081d8e8e4a67d57dd5a92695d09b11d9c0bc27eb9403ff26b37b0b70a02d/odoo14_addon_account_statement_import_online-14.0.4.0.1.dev10-py3-none-any.whl", hash = "sha256:210b585a04904de4b727d757de4d577b48686b4167afeb99f422127694cbc7cd", size = 60088, upload-time = "2025-06-14T02:39:18.69Z" }, +] + +[[package]] +name = "odoo14-addon-account-statement-import-online-wise" +version = "14.0.1.0.1.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "odoo" }, + { name = "odoo14-addon-account-statement-import-online" }, + { name = "odoo14-addon-web-widget-dropdown-dynamic" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/72/b99d9b3540bf4e55a46c0839784cf4b3f51cc7d4875b55162f824450ff9e/odoo14_addon_account_statement_import_online_wise-14.0.1.0.1.dev6-py3-none-any.whl", hash = "sha256:ded3ea5ccc232fb16b829b81cad0875a8f8a8e922cef159b9068085209ec0024", size = 42632, upload-time = "2025-05-30T02:39:16.112Z" }, +] + [[package]] name = "odoo14-addon-account-statement-import-paypal" version = "14.0.1.0.2.dev5" @@ -997,7 +1037,7 @@ wheels = [ [[package]] name = "odoo14-addon-account-statement-import-txt-xlsx" -version = "14.0.3.2.1" +version = "14.0.3.2.2.dev1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "chardet" }, @@ -1008,19 +1048,19 @@ dependencies = [ { name = "xlrd" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/ab/33c4e1d9a257b63c54a2efedfb4394be8bf63a77a94cfb8888238584309b/odoo14_addon_account_statement_import_txt_xlsx-14.0.3.2.1-py3-none-any.whl", hash = "sha256:b229abe4630b321017047fb19b5c5a119ea95e86472db7916a99c17ce3829888", size = 92954, upload-time = "2025-02-28T11:22:24.066Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a0/bdd8dcc7ab56b2bdc825b8508b0a313c2a28aff211b58122f696d70d4918/odoo14_addon_account_statement_import_txt_xlsx-14.0.3.2.2.dev1-py3-none-any.whl", hash = "sha256:b7cd5c3732949b777583cef353cf4d33b1a8ea28d9998cafc9b038b40b2cc34e", size = 92990, upload-time = "2025-06-14T02:39:24.273Z" }, ] [[package]] name = "odoo14-addon-account-tax-unece" -version = "14.0.1.0.1.dev10" +version = "14.0.1.0.1.dev12" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "odoo14-addon-base-unece" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/6e/616708822373133c55086e3636bd5dacaddc7c0bda5d1cf12cd2611acf8f/odoo14_addon_account_tax_unece-14.0.1.0.1.dev10-py3-none-any.whl", hash = "sha256:e1ad485cb2b59bcac173c307c37b7b4657613566c488cc9a0be29102a896ef0f", size = 37626, upload-time = "2025-01-01T02:40:09.526Z" }, + { url = "https://files.pythonhosted.org/packages/11/f5/b04652d86af79a1c74e4320116676d28fa0afec023964a25667cd0a20c37/odoo14_addon_account_tax_unece-14.0.1.0.1.dev12-py3-none-any.whl", hash = "sha256:c7f76ac6889edc5741aecc9845fb1f78f2029c94b87e3947a2b599fcf4032f38", size = 37709, upload-time = "2025-05-28T02:40:59.342Z" }, ] [[package]] @@ -1038,7 +1078,7 @@ wheels = [ [[package]] name = "odoo14-addon-apps-product-creator" -version = "14.0.1.0.1.dev6" +version = "14.0.1.0.1.dev7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, @@ -1046,7 +1086,7 @@ dependencies = [ { name = "odoo14-addon-github-connector-odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/73/16/25cb54a89a33765324864855590e77ab317335ed99ab353397ae849b82e9/odoo14_addon_apps_product_creator-14.0.1.0.1.dev6-py3-none-any.whl", hash = "sha256:e69341911f47186376de74b1f8a1d2a887d8a46de184fc81dfecf8aee140588b", size = 43840, upload-time = "2025-01-21T02:37:32.802Z" }, + { url = "https://files.pythonhosted.org/packages/65/e7/2c61001da2584be14340dbd310d9c74b69c8fdb4f33176f0379666a2e5f8/odoo14_addon_apps_product_creator-14.0.1.0.1.dev7-py3-none-any.whl", hash = "sha256:0ff310b4e110e9bbf6214bafc0228195784c2d365ba067b2d00d9c9b166ce023", size = 43841, upload-time = "2025-04-03T02:37:51.985Z" }, ] [[package]] @@ -1062,7 +1102,7 @@ wheels = [ [[package]] name = "odoo14-addon-base-ubl" -version = "14.0.1.8.3.dev1" +version = "14.0.1.8.3.dev3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, @@ -1071,12 +1111,12 @@ dependencies = [ { name = "odoo14-addon-uom-unece" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/51/c9/0fb8d4677f7d307cb82692828e6cd2b8809b898261d5b555ab44a0bb6fe2/odoo14_addon_base_ubl-14.0.1.8.3.dev1-py3-none-any.whl", hash = "sha256:7859326ab739b3bcfe0b99b748dba60b56c22476ef2badc80d874c4fc05b3b9c", size = 1266307, upload-time = "2025-01-07T02:47:38.081Z" }, + { url = "https://files.pythonhosted.org/packages/26/10/a7d2c6edd297a10f032b9b15972b556f4368dc2025c6d6490ed14b078638/odoo14_addon_base_ubl-14.0.1.8.3.dev3-py3-none-any.whl", hash = "sha256:35f2f4190e9da5376b468139fcfc3c453f628e0202490c079dfca0eff11c778b", size = 1266385, upload-time = "2025-05-28T02:50:11.415Z" }, ] [[package]] name = "odoo14-addon-base-ubl-payment" -version = "14.0.1.0.1.dev12" +version = "14.0.1.0.1.dev14" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, @@ -1084,18 +1124,18 @@ dependencies = [ { name = "odoo14-addon-base-ubl" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/22/3d/9f5d3a77f5749a34242b44c62b4900f01c3daf434cf8fd4f1a22ba84bf8c/odoo14_addon_base_ubl_payment-14.0.1.0.1.dev12-py3-none-any.whl", hash = "sha256:e4b72f789e11d0c7f9646195a26d80f083f7f18a639e923a6f753c639c1f0c1e", size = 26321, upload-time = "2025-01-07T02:47:59.473Z" }, + { url = "https://files.pythonhosted.org/packages/32/7f/8f25194c5ff177ab479dbf5facc573f10f8402dc7189b27ffca82697594b/odoo14_addon_base_ubl_payment-14.0.1.0.1.dev14-py3-none-any.whl", hash = "sha256:7e68518a33da9ef97b10d330c656680393628e463d0a8c8f9900498f7715c51f", size = 26401, upload-time = "2025-05-28T02:50:39.498Z" }, ] [[package]] name = "odoo14-addon-base-unece" -version = "14.0.1.1.1.dev13" +version = "14.0.1.1.1.dev14" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/76/8b0908506c5034fd0f4fc73c3840e7cabddc77b3ae1661767b0de1759424/odoo14_addon_base_unece-14.0.1.1.1.dev13-py3-none-any.whl", hash = "sha256:52cf358000ee8cb4d872fa01cc0a9bb66a4051ede97026fc7ba970c8bf62e797", size = 29203, upload-time = "2025-01-01T02:40:12.72Z" }, + { url = "https://files.pythonhosted.org/packages/a8/c8/ffc85b0cebc4faae2f66e08ec757ea7d1c166c90e0f2c1057907a0280041/odoo14_addon_base_unece-14.0.1.1.1.dev14-py3-none-any.whl", hash = "sha256:f86f4bf28c1a3a966a065d928bce73ed42edc8fe2dff6a4b3382f01dec483939", size = 29267, upload-time = "2025-05-21T02:41:33.382Z" }, ] [[package]] @@ -1183,14 +1223,14 @@ wheels = [ [[package]] name = "odoo14-addon-github-connector-oca" -version = "14.0.1.0.1.dev3" +version = "14.0.1.0.1.dev4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "odoo14-addon-github-connector-odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/37/f1/6f423f84cfa63cdff82fbc5bcccfcae29d8bb4f991b55c88d104d0558d20/odoo14_addon_github_connector_oca-14.0.1.0.1.dev3-py3-none-any.whl", hash = "sha256:1445823adfc002f35549ad0d06eae9335bcbc34ce6cd806f7e469e58883e4266", size = 83071, upload-time = "2024-12-11T02:54:10.633Z" }, + { url = "https://files.pythonhosted.org/packages/0e/d4/cbbb3bd114d0cf27f7c5d9c5ba91c5f226959b90bfa653a67002ec943dd7/odoo14_addon_github_connector_oca-14.0.1.0.1.dev4-py3-none-any.whl", hash = "sha256:42747f6e30eb6a4913e9e528863434d05da6d371f8248d73fc20a95d3e8ac47c", size = 83150, upload-time = "2025-05-28T02:57:12.253Z" }, ] [[package]] @@ -1219,13 +1259,40 @@ wheels = [ [[package]] name = "odoo14-addon-l10n-ch-base-bank" -version = "14.0.1.0.4.dev1" +version = "14.0.1.0.4.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/76/a971aa23c34d99e15ad576809495a73b23cb8ae36a0f119c4f44301b0466/odoo14_addon_l10n_ch_base_bank-14.0.1.0.4.dev2-py3-none-any.whl", hash = "sha256:aa7d6e4454461a14991cac5af013b2193d8b81011dfa892c896ead04aecb4514", size = 39865, upload-time = "2025-05-30T03:10:48.289Z" }, +] + +[[package]] +name = "odoo14-addon-l10n-ch-pain-base" +version = "14.0.1.0.1.dev4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, + { name = "odoo14-addon-account-banking-pain-base" }, + { name = "odoo14-addon-l10n-ch-base-bank" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/f0/9ce76cca05a1916d3df1ff79b234841b20fd9e240f034093542474bb90a9/odoo14_addon_l10n_ch_base_bank-14.0.1.0.4.dev1-py3-none-any.whl", hash = "sha256:56cb3f62cecc5c08789610804d1ed9dba625cdac2fda5eccc690623917c5970c", size = 39870, upload-time = "2024-05-07T05:10:58.453Z" }, + { url = "https://files.pythonhosted.org/packages/7d/1a/3f88b1520f192d27883794c1f4afb59b75eb3c30e3d6f0b8fc143ea1965f/odoo14_addon_l10n_ch_pain_base-14.0.1.0.1.dev4-py3-none-any.whl", hash = "sha256:94ac1d9ac344f2276b27328985f8a600fb6f63c04d6dbbc9dd644d377ccd1645", size = 28150, upload-time = "2024-02-24T04:56:38.637Z" }, +] + +[[package]] +name = "odoo14-addon-l10n-ch-pain-credit-transfer" +version = "14.0.1.0.1.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-account-banking-sepa-credit-transfer" }, + { name = "odoo14-addon-l10n-ch-base-bank" }, + { name = "odoo14-addon-l10n-ch-pain-base" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/5a/7867ac59b2ccb42f85c6beb48f792aecc885273f8d72e9d09796769d4fe9/odoo14_addon_l10n_ch_pain_credit_transfer-14.0.1.0.1.dev2-py3-none-any.whl", hash = "sha256:1d15f4ec0a68c46e2a111be707ee53d4df6d4d018e68a39d69b48bddc5871406", size = 34263, upload-time = "2023-12-15T13:45:58.682Z" }, ] [[package]] @@ -1271,7 +1338,7 @@ wheels = [ [[package]] name = "odoo14-addon-mis-builder" -version = "14.0.4.2.3.dev8" +version = "14.0.4.2.3.dev9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, @@ -1279,31 +1346,31 @@ dependencies = [ { name = "odoo14-addon-report-xlsx" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/58/be/dc65b03a3c4fb02dc43517ab1354739994ed8396ddf33d830868c938d8ed/odoo14_addon_mis_builder-14.0.4.2.3.dev8-py3-none-any.whl", hash = "sha256:3ea0af03a9e0fbdadd4f765a7fd69e5dde11e2a947c12ded92bd1d83f1d596a6", size = 570527, upload-time = "2025-01-28T03:12:52.849Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ed/299b87b3da25a4a98938589b6b6c5de149ac17507e18f80d8279e93436ee/odoo14_addon_mis_builder-14.0.4.2.3.dev9-py3-none-any.whl", hash = "sha256:297eacca0812f4660a752d9d7138c2f8a0da5cec3a43958d926d0e16305f68b8", size = 570534, upload-time = "2025-06-06T03:16:53.045Z" }, ] [[package]] name = "odoo14-addon-mis-builder-budget" -version = "14.0.4.0.4.dev7" +version = "14.0.4.0.4.dev8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "odoo14-addon-mis-builder" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/0b/d6a6a493ff89c26ba9c9ac5c5b692098d24920b2a2dce90a5867faa9f27f/odoo14_addon_mis_builder_budget-14.0.4.0.4.dev7-py3-none-any.whl", hash = "sha256:1a123c892a6f44c95155346984d37f9fdb6a600dad9b5ce05c6cef2e0d8ec58b", size = 83663, upload-time = "2024-05-18T05:22:07.363Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ce/03bff01ab0c582a90fe3a09100c4567b484156f56dfe85ac2592844c7002/odoo14_addon_mis_builder_budget-14.0.4.0.4.dev8-py3-none-any.whl", hash = "sha256:8d2bcbfd85a88a4687e2786ec05b93b132c13a061e745bc1dc4e2e2f6b14b82b", size = 83731, upload-time = "2025-05-30T03:16:43.906Z" }, ] [[package]] name = "odoo14-addon-mis-builder-cash-flow" -version = "14.0.1.0.4.dev6" +version = "14.0.1.0.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "odoo14-addon-mis-builder" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/98/82/8b99f6484e73d4b0847eefa6e0fe82eb507fc5480669368b095055c68060/odoo14_addon_mis_builder_cash_flow-14.0.1.0.4.dev6-py3-none-any.whl", hash = "sha256:2826ef27a7dced13281398edd179a7512675e4ca9df82323dec8cc1a42eec358", size = 49869, upload-time = "2024-03-23T02:35:47.965Z" }, + { url = "https://files.pythonhosted.org/packages/5d/44/41fc6f23644d7b93f869f67d6392b6ff90c7bf854ad120310c3bd6d842e7/odoo14_addon_mis_builder_cash_flow-14.0.1.0.4-py3-none-any.whl", hash = "sha256:f9e0c854bb1b7d7417cca1668ed058b5cf6d9162fee4d68c703a75b9fc7455e0", size = 49829, upload-time = "2025-04-17T18:44:11.07Z" }, ] [[package]] @@ -1320,13 +1387,13 @@ wheels = [ [[package]] name = "odoo14-addon-multi-step-wizard" -version = "14.0.1.0.1.dev9" +version = "14.0.1.0.1.dev10" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/5b/b8cc1f55cc26794bee3b9b6ce37417c72a82131c2d257bd32b28eeec7e43/odoo14_addon_multi_step_wizard-14.0.1.0.1.dev9-py3-none-any.whl", hash = "sha256:ca632bbc0236f43464f0dbb134fb60fcde6a3d8a5d42df4b857ff7bdf4230a6f", size = 32463, upload-time = "2024-12-03T03:34:43.582Z" }, + { url = "https://files.pythonhosted.org/packages/05/46/9605a66abd5e005e049a2bafe0c44c2729577814fd0044c31b0bfc5b72c9/odoo14_addon_multi_step_wizard-14.0.1.0.1.dev10-py3-none-any.whl", hash = "sha256:8e726efc64e95028b71a1ae65a2c43330b410eaebcbc1bc39991c13ca96da760", size = 32549, upload-time = "2025-05-28T03:43:46.077Z" }, ] [[package]] @@ -1342,7 +1409,7 @@ wheels = [ [[package]] name = "odoo14-addon-partner-statement" -version = "14.0.1.4.8.dev3" +version = "14.0.1.7.1.dev2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, @@ -1350,30 +1417,41 @@ dependencies = [ { name = "odoo14-addon-report-xlsx-helper" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/f5/073f59d282725e8f4adba3cc01acbf7dc82cd9ac85e0589a6d4aa3f93844/odoo14_addon_partner_statement-14.0.1.4.8.dev3-py3-none-any.whl", hash = "sha256:88b0d0f7b449de8e9fc52213b29be790db211b7ae03970b90f23a9bf3152f099", size = 141031, upload-time = "2025-03-04T02:32:04.134Z" }, + { url = "https://files.pythonhosted.org/packages/1f/52/4b7a93ee5edb848eca32c228b7f8e72a3dabeed126a0b4289a0e10a884f6/odoo14_addon_partner_statement-14.0.1.7.1.dev2-py3-none-any.whl", hash = "sha256:cd60a6b5f9452a12860c2b6d6d3596ae27226d316f1bbf272b361e309fc909f6", size = 147476, upload-time = "2025-06-14T02:32:12.356Z" }, ] [[package]] name = "odoo14-addon-pdf-helper" -version = "14.0.2.0.2.dev1" +version = "14.0.2.0.2.dev3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, { name = "pypdf" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/39/1d/a881fd4403d8df6e9c38aee8e0c47ee51ee2d8bcbf032eb304cb37026961/odoo14_addon_pdf_helper-14.0.2.0.2.dev1-py3-none-any.whl", hash = "sha256:9767dec1e7c687b5fe28fa72a84994220dabc90e1d73253d4370690a1fca916d", size = 101292, upload-time = "2025-01-08T02:49:59.159Z" }, + { url = "https://files.pythonhosted.org/packages/9c/1e/3869e25060977829efceaed0c861923d98132b066f8cbe7400f5f6903cd9/odoo14_addon_pdf_helper-14.0.2.0.2.dev3-py3-none-any.whl", hash = "sha256:e5fb9720ae8d8f854763d35a05cc03e3757b62dd9bf0fe4cd557611772a8f342", size = 101371, upload-time = "2025-05-28T02:51:10.726Z" }, +] + +[[package]] +name = "odoo14-addon-project-task-add-very-high" +version = "14.0.1.1.1.dev6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/19/9258501168dcc0219fca2054eba8d2124d6f15ee6234b5d9c0b370c071f8/odoo14_addon_project_task_add_very_high-14.0.1.1.1.dev6-py3-none-any.whl", hash = "sha256:c4ebbdb23addcd40a61adc8828959c9f5a2c844cab73fbcbe55852371f55e042", size = 119787, upload-time = "2024-03-26T05:41:26.268Z" }, ] [[package]] name = "odoo14-addon-report-xlsx" -version = "14.0.1.0.11" +version = "14.0.1.0.12.dev1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/01/dba92a8a6e9cf50a9498d39505975e02d6b5a579df80ad4e5041c724305b/odoo14_addon_report_xlsx-14.0.1.0.11-py3-none-any.whl", hash = "sha256:d7c3db0213b44724c045c3d8d432c980079d224f12e608402ddadc59bf9646ad", size = 46765, upload-time = "2024-08-19T06:37:45.116Z" }, + { url = "https://files.pythonhosted.org/packages/82/b8/4c7438004a8c399220d9f81cbf33135736111853f2d8aeae5e0aee3d0e93/odoo14_addon_report_xlsx-14.0.1.0.12.dev1-py3-none-any.whl", hash = "sha256:3a692bb402ab0ee4c989a7ce388a0c96cd1929168847eb96f3fa6fcbedabc23b", size = 46880, upload-time = "2025-05-30T03:32:03.258Z" }, ] [[package]] @@ -1413,13 +1491,13 @@ wheels = [ [[package]] name = "odoo14-addon-uom-unece" -version = "14.0.1.0.1.dev8" +version = "14.0.1.0.1.dev10" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "odoo" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/8e/50b35c14c36ab72ad236d7e808d782d52955f82f159f20141e92de056e20/odoo14_addon_uom_unece-14.0.1.0.1.dev8-py3-none-any.whl", hash = "sha256:385d8a103119f049533f4e5bc54d4163cd5a4f3ecbaa1be245a84c1f66c056d5", size = 26485, upload-time = "2025-01-01T02:40:02.496Z" }, + { url = "https://files.pythonhosted.org/packages/ac/b1/684926e71cd70c80862b1bce22a2e93731fa0df43c516aea5dfce9be7ee9/odoo14_addon_uom_unece-14.0.1.0.1.dev10-py3-none-any.whl", hash = "sha256:b8133267ff16786dac34d3210a699d51b8b5fbd01a421d3fbcfd19a7c111fc4b", size = 26582, upload-time = "2025-05-28T02:40:55.978Z" }, ] [[package]] @@ -1444,6 +1522,17 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/fd/b2e7619794829cc171558e79aaf6b9dcc988a5dae3fc317267827e4beffc/odoo14_addon_web_responsive-14.0.1.2.3.dev6-py3-none-any.whl", hash = "sha256:710d1d6aa114c2ecedc521478bd1f3ff3a21f56eb661fe9ea13302ec8fb5f888", size = 24086872, upload-time = "2024-05-21T07:33:43.638Z" }, ] +[[package]] +name = "odoo14-addon-web-search-with-and" +version = "14.0.1.0.2.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/c8/f7aa195018aeae54d857c1affd0af02953ee17f24d6ee339b407aa063dc3/odoo14_addon_web_search_with_and-14.0.1.0.2.dev2-py3-none-any.whl", hash = "sha256:0341c9a868c6f5e4de3033d68302b106cc368f02915aaccf3a9fdaa8fcd604dd", size = 24936, upload-time = "2023-10-11T07:18:43.33Z" }, +] + [[package]] name = "odoo14-addon-web-widget-dropdown-dynamic" version = "14.0.1.0.1.dev5" @@ -1494,11 +1583,11 @@ wheels = [ [[package]] name = "packaging" -version = "24.2" +version = "25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950, upload-time = "2024-11-08T09:47:47.202Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451, upload-time = "2024-11-08T09:47:44.722Z" }, + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] [[package]] @@ -1545,20 +1634,20 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.3.6" +version = "4.3.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302, upload-time = "2024-09-17T19:06:50.688Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362, upload-time = "2025-05-07T22:47:42.121Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439, upload-time = "2024-09-17T19:06:49.212Z" }, + { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" }, ] [[package]] name = "pluggy" -version = "1.5.0" +version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955, upload-time = "2024-04-20T21:34:42.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556, upload-time = "2024-04-20T21:34:40.434Z" }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] @@ -1678,11 +1767,11 @@ wheels = [ [[package]] name = "pyparsing" -version = "3.2.1" +version = "3.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8b/1a/3544f4f299a47911c2ab3710f534e52fea62a633c96806995da5d25be4b2/pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a", size = 1067694, upload-time = "2024-12-31T20:59:46.157Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608, upload-time = "2025-03-25T05:01:28.114Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", size = 107716, upload-time = "2024-12-31T20:59:42.738Z" }, + { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" }, ] [[package]] @@ -1714,7 +1803,7 @@ wheels = [ [[package]] name = "pytest" -version = "8.3.5" +version = "8.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1722,49 +1811,51 @@ dependencies = [ { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, + { name = "pygments" }, { name = "tomli" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" } +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634, upload-time = "2025-03-02T12:54:52.069Z" }, + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" }, ] [[package]] name = "pytest-cov" -version = "6.0.0" +version = "6.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "coverage", extra = ["toml"] }, + { name = "pluggy" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945, upload-time = "2024-10-29T20:13:35.363Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/99/668cade231f434aaa59bbfbf49469068d2ddd945000621d3d165d2e7dd7b/pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2", size = 69432, upload-time = "2025-06-12T10:47:47.684Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949, upload-time = "2024-10-29T20:13:33.215Z" }, + { url = "https://files.pythonhosted.org/packages/bc/16/4ea354101abb1287856baa4af2732be351c7bee728065aed451b678153fd/pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5", size = 24644, upload-time = "2025-06-12T10:47:45.932Z" }, ] [[package]] name = "pytest-odoo" -version = "2.1.2" +version = "2.1.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5a/cc/fb1bb767db03873dfd1e74956049ac2235291deb37a5190379dc3ec64f19/pytest_odoo-2.1.2.tar.gz", hash = "sha256:f8f542e5e3b17f8150bc32beb36b340e7fb6c59b5a9dedce35c021097ad98456", size = 20040, upload-time = "2025-03-12T14:17:23.323Z" } +sdist = { url = "https://files.pythonhosted.org/packages/84/c3/430684a80c0448f241397341d361801c901846c947f79815e639572d3585/pytest_odoo-2.1.3.tar.gz", hash = "sha256:788d6cc500d33624a789e729f41c995e8f829b3ee8596cef0d4b4800981058ec", size = 20591, upload-time = "2025-05-20T13:00:01.464Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/91/b11505eb2c2b3d85df86ddf72de8464d721cc6de6b5d06dad1204065e1c7/pytest_odoo-2.1.2-py3-none-any.whl", hash = "sha256:552926e4709835fc5314da21041d97d7ade1f4224cb767e5c3e4db8a272bd83d", size = 17937, upload-time = "2025-03-12T14:17:21.722Z" }, + { url = "https://files.pythonhosted.org/packages/fd/20/86dab4d2b051fcf93aadf69a10a839015d4ab62d281740fa4357bed24b44/pytest_odoo-2.1.3-py3-none-any.whl", hash = "sha256:20295d8eab4b15f946bb04f54709d8326ba97d6ba30436903fa461a022de8386", size = 18162, upload-time = "2025-05-20T12:59:59.878Z" }, ] [[package]] name = "pytest-xdist" -version = "3.6.1" +version = "3.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "execnet" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060, upload-time = "2024-04-28T19:29:54.414Z" } +sdist = { url = "https://files.pythonhosted.org/packages/49/dc/865845cfe987b21658e871d16e0a24e871e00884c545f246dd8f6f69edda/pytest_xdist-3.7.0.tar.gz", hash = "sha256:f9248c99a7c15b7d2f90715df93610353a485827bc06eefb6566d23f6400f126", size = 87550, upload-time = "2025-05-26T21:18:20.251Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108, upload-time = "2024-04-28T19:29:52.813Z" }, + { url = "https://files.pythonhosted.org/packages/0d/b2/0e802fde6f1c5b2f7ae7e9ad42b83fd4ecebac18a8a8c2f2f14e39dce6e1/pytest_xdist-3.7.0-py3-none-any.whl", hash = "sha256:7d3fbd255998265052435eb9daa4e99b62e6fb9cfb6efd1f858d4d8c0c7f0ca0", size = 46142, upload-time = "2025-05-26T21:18:18.759Z" }, ] [[package]] @@ -1787,18 +1878,21 @@ sdist = { url = "https://files.pythonhosted.org/packages/89/ad/9388970542f82857a [[package]] name = "pytz" -version = "2025.1" +version = "2025.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5f/57/df1c9157c8d5a05117e455d66fd7cf6dbc46974f832b1058ed4856785d8a/pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e", size = 319617, upload-time = "2025-01-31T01:54:48.615Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/38/ac33370d784287baa1c3d538978b5e2ea064d4c1b93ffbd12826c190dd10/pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", size = 507930, upload-time = "2025-01-31T01:54:45.634Z" }, + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, ] [[package]] name = "pyusb" -version = "1.0.2" +version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5f/34/2095e821c01225377dda4ebdbd53d8316d6abb243c9bee43d3888fa91dd6/pyusb-1.0.2.tar.gz", hash = "sha256:4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362", size = 54220, upload-time = "2017-10-12T01:19:01.492Z" } +sdist = { url = "https://files.pythonhosted.org/packages/00/6b/ce3727395e52b7b76dfcf0c665e37d223b680b9becc60710d4bc08b7b7cb/pyusb-1.3.1.tar.gz", hash = "sha256:3af070b607467c1c164f49d5b0caabe8ac78dbed9298d703a8dbf9df4052d17e", size = 77281, upload-time = "2025-01-08T23:45:01.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/b8/27e6312e86408a44fe16bd28ee12dd98608b39f7e7e57884a24e8f29b573/pyusb-1.3.1-py3-none-any.whl", hash = "sha256:bf9b754557af4717fe80c2b07cc2b923a9151f5c08d17bdb5345dac09d6a0430", size = 58465, upload-time = "2025-01-08T23:45:00.029Z" }, +] [[package]] name = "qrcode" @@ -1873,16 +1967,16 @@ wheels = [ [[package]] name = "rich" -version = "13.9.4" +version = "14.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149, upload-time = "2024-11-01T16:43:57.873Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/53/830aa4c3066a8ab0ae9a9955976fb770fe9c6102117c8ec4ab3ea62d89e8/rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725", size = 224078, upload-time = "2025-03-30T14:15:14.23Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424, upload-time = "2024-11-01T16:43:55.817Z" }, + { url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload-time = "2025-03-30T14:15:12.283Z" }, ] [[package]] @@ -1900,11 +1994,11 @@ wheels = [ [[package]] name = "setuptools" -version = "76.0.0" +version = "80.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/32/d2/7b171caf085ba0d40d8391f54e1c75a1cda9255f542becf84575cfd8a732/setuptools-76.0.0.tar.gz", hash = "sha256:43b4ee60e10b0d0ee98ad11918e114c70701bc6051662a9a675a0496c1a158f4", size = 1349387, upload-time = "2025-03-09T13:59:49.697Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/37/66/d2d7e6ad554f3a7c7297c3f8ef6e22643ad3d35ef5c63bf488bc89f32f31/setuptools-76.0.0-py3-none-any.whl", hash = "sha256:199466a166ff664970d0ee145839f5582cb9bca7a0a3a2e795b6a9cb2308e9c6", size = 1236106, upload-time = "2025-03-09T13:59:48.208Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, ] [[package]] @@ -1936,16 +2030,16 @@ wheels = [ [[package]] name = "soupsieve" -version = "2.6" +version = "2.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569, upload-time = "2024-08-13T13:39:12.166Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/f4/4a80cd6ef364b2e8b65b15816a843c0980f7a5a2b4dc701fc574952aa19f/soupsieve-2.7.tar.gz", hash = "sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a", size = 103418, upload-time = "2025-04-20T18:50:08.518Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186, upload-time = "2024-08-13T13:39:10.986Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload-time = "2025-04-20T18:50:07.196Z" }, ] [[package]] name = "textual" -version = "2.1.2" +version = "3.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py", extra = ["linkify", "plugins"] }, @@ -1953,9 +2047,9 @@ dependencies = [ { name = "rich" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/41/62/4af4689dd971ed4fb3215467624016d53550bff1df9ca02e7625eec07f8b/textual-2.1.2.tar.gz", hash = "sha256:aae3f9fde00c7440be00e3c3ac189e02d014f5298afdc32132f93480f9e09146", size = 1596600, upload-time = "2025-02-26T20:06:36.425Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/cf/b4a02ae702ccb3ba0e5de0aaf3197f95585f480ce9f6ed0a5936f6eb2609/textual-3.4.0.tar.gz", hash = "sha256:f697c3b9371bbc30c11453a094d700e95cf7c2115f68bad35f0249de67996c99", size = 1620130, upload-time = "2025-06-14T15:43:45.293Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/81/9df1988c908cbba77f10fecb8587496b3dff2838d4510457877a521d87fd/textual-2.1.2-py3-none-any.whl", hash = "sha256:95f37f49e930838e721bba8612f62114d410a3019665b6142adabc14c2fb9611", size = 680148, upload-time = "2025-02-26T20:06:34.687Z" }, + { url = "https://files.pythonhosted.org/packages/80/34/388d1da5b524dc56ea02fbcaa1c399f65974263f768573c1c4fcf7777c76/textual-3.4.0-py3-none-any.whl", hash = "sha256:5b3fd07772d3897d30b257825de3df011b83742863aa9d9abcb10e76e61e6ee4", size = 688499, upload-time = "2025-06-14T15:43:43.389Z" }, ] [[package]] @@ -1969,7 +2063,7 @@ wheels = [ [[package]] name = "typer" -version = "0.15.2" +version = "0.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -1977,18 +2071,18 @@ dependencies = [ { name = "shellingham" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8b/6f/3991f0f1c7fcb2df31aef28e0594d8d54b05393a0e4e34c65e475c2a5d41/typer-0.15.2.tar.gz", hash = "sha256:ab2fab47533a813c49fe1f16b1a370fd5819099c00b119e0633df65f22144ba5", size = 100711, upload-time = "2025-02-27T19:17:34.807Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c5/8c/7d682431efca5fd290017663ea4588bf6f2c6aad085c7f108c5dbc316e70/typer-0.16.0.tar.gz", hash = "sha256:af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b", size = 102625, upload-time = "2025-05-26T14:30:31.824Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/fc/5b29fea8cee020515ca82cc68e3b8e1e34bb19a3535ad854cac9257b414c/typer-0.15.2-py3-none-any.whl", hash = "sha256:46a499c6107d645a9c13f7ee46c5d5096cae6f5fc57dd11eccbbb9ae3e44ddfc", size = 45061, upload-time = "2025-02-27T19:17:32.111Z" }, + { url = "https://files.pythonhosted.org/packages/76/42/3efaf858001d2c2913de7f354563e3a3a2f0decae3efe98427125a8f441e/typer-0.16.0-py3-none-any.whl", hash = "sha256:1f79bed11d4d02d4310e3c1b7ba594183bcedb0ac73b27a9e5f28f6fb5b98855", size = 46317, upload-time = "2025-05-26T14:30:30.523Z" }, ] [[package]] name = "typing-extensions" -version = "4.12.2" +version = "4.14.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321, upload-time = "2024-06-07T18:52:15.995Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/bc/51647cd02527e87d05cb083ccc402f93e441606ff1f01739a62c8ad09ba5/typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4", size = 107423, upload-time = "2025-06-02T14:52:11.399Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438, upload-time = "2024-06-07T18:52:13.582Z" }, + { url = "https://files.pythonhosted.org/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af", size = 43839, upload-time = "2025-06-02T14:52:10.026Z" }, ] [[package]] @@ -2002,11 +2096,11 @@ wheels = [ [[package]] name = "unidecode" -version = "1.3.8" +version = "1.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f7/89/19151076a006b9ac0dd37b1354e031f5297891ee507eb624755e58e10d3e/Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4", size = 192701, upload-time = "2024-01-11T11:58:35.609Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/7d/a8a765761bbc0c836e397a2e48d498305a865b70a8600fd7a942e85dcf63/Unidecode-1.4.0.tar.gz", hash = "sha256:ce35985008338b676573023acc382d62c264f307c8f7963733405add37ea2b23", size = 200149, upload-time = "2025-04-24T08:45:03.798Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39", size = 235494, upload-time = "2024-01-11T11:58:33.012Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b7/559f59d57d18b44c6d1250d2eeaa676e028b9c527431f5d0736478a73ba1/Unidecode-1.4.0-py3-none-any.whl", hash = "sha256:c3c7606c27503ad8d501270406e345ddb480a7b5f38827eafe4fa82a137f0021", size = 235837, upload-time = "2025-04-24T08:45:01.609Z" }, ] [[package]] From 68ca9bc5def15dfb07931dbdc35504550b48a506 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Wed, 18 Jun 2025 16:12:09 +0200 Subject: [PATCH 10/15] freeze pytest version waiting for https://github.com/camptocamp/pytest-odoo/pull/85 --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8324807..28e16d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,7 +86,7 @@ cache-keys = [{ file = "pyproject.toml" }, { file = "**/__manifest__.py" }] dev = [ "parameterized>=0.9.0", "pytest>8", - "pytest-odoo>=2", + "pytest-odoo==2.1.2", "pytest-cov>=5.0.0", "pytest-xdist>=3.6.1", "manifestoo>=1.0", diff --git a/uv.lock b/uv.lock index b65ea63..b73c44b 100644 --- a/uv.lock +++ b/uv.lock @@ -767,7 +767,7 @@ dev = [ { name = "parameterized", specifier = ">=0.9.0" }, { name = "pytest", specifier = ">8" }, { name = "pytest-cov", specifier = ">=5.0.0" }, - { name = "pytest-odoo", specifier = ">=2" }, + { name = "pytest-odoo", specifier = "==2.1.2" }, { name = "pytest-xdist", specifier = ">=3.6.1" }, { name = "websocket-client" }, ] @@ -1835,14 +1835,14 @@ wheels = [ [[package]] name = "pytest-odoo" -version = "2.1.3" +version = "2.1.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/84/c3/430684a80c0448f241397341d361801c901846c947f79815e639572d3585/pytest_odoo-2.1.3.tar.gz", hash = "sha256:788d6cc500d33624a789e729f41c995e8f829b3ee8596cef0d4b4800981058ec", size = 20591, upload-time = "2025-05-20T13:00:01.464Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/cc/fb1bb767db03873dfd1e74956049ac2235291deb37a5190379dc3ec64f19/pytest_odoo-2.1.2.tar.gz", hash = "sha256:f8f542e5e3b17f8150bc32beb36b340e7fb6c59b5a9dedce35c021097ad98456", size = 20040, upload-time = "2025-03-12T14:17:23.323Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/20/86dab4d2b051fcf93aadf69a10a839015d4ab62d281740fa4357bed24b44/pytest_odoo-2.1.3-py3-none-any.whl", hash = "sha256:20295d8eab4b15f946bb04f54709d8326ba97d6ba30436903fa461a022de8386", size = 18162, upload-time = "2025-05-20T12:59:59.878Z" }, + { url = "https://files.pythonhosted.org/packages/4a/91/b11505eb2c2b3d85df86ddf72de8464d721cc6de6b5d06dad1204065e1c7/pytest_odoo-2.1.2-py3-none-any.whl", hash = "sha256:552926e4709835fc5314da21041d97d7ade1f4224cb767e5c3e4db8a272bd83d", size = 17937, upload-time = "2025-03-12T14:17:21.722Z" }, ] [[package]] From 82b6c31ceb6fd0d944747e72d596f435241b246c Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Thu, 3 Jul 2025 21:25:50 +0200 Subject: [PATCH 11/15] [IMP] docker entrypoint install oca_all if empty database --- .github/workflows/build-oca-image.yml | 5 +++-- docker-compose.yml | 2 -- entrypoints/000_15_odoo-update | 11 ++++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-oca-image.yml b/.github/workflows/build-oca-image.yml index d25ab08..a01a7c4 100644 --- a/.github/workflows/build-oca-image.yml +++ b/.github/workflows/build-oca-image.yml @@ -47,8 +47,9 @@ jobs: - name: Test install oca_all in docker image run: | - docker compose up --wait db kwkhtmltopdf - docker compose run --rm odoo odoo -c /etc/odoo.cfg -i oca_all --without-demo= --stop-after-init + # First start installing the database + docker compose up --wait odoo + docker compose stop odoo # purpose it to test update entrypoints docker compose up --wait odoo - diff --git a/docker-compose.yml b/docker-compose.yml index e0ef208..0234370 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,8 +25,6 @@ services: - RUNNING_ENV=dev healthcheck: test: ["CMD", "bash", "-c", "echo > /dev/tcp/0.0.0.0/8069"] - # test: ["CMD-SHELL", "sh -c '(echo > /dev/tcp/0.0.0.0/8069) >/dev/null 2>&1'"] - # install is done without checksum so start in CI will be quite long interval: 2s timeout: 200ms retries: 150 diff --git a/entrypoints/000_15_odoo-update b/entrypoints/000_15_odoo-update index d50e8fc..c36339a 100755 --- a/entrypoints/000_15_odoo-update +++ b/entrypoints/000_15_odoo-update @@ -6,13 +6,18 @@ set -x if [ "$( psql -tAc "SELECT 1 FROM pg_database WHERE datname='$DB_NAME'" )" != '1' ] then echo "Database $DB_NAME does not exist, skipping $0" - exit 0 + echo "Database $DB_NAME does not exist, create it ! $0" + createdb $DB_NAME fi if [ "$( psql $DB_NAME -tAc "SELECT 1 FROM pg_tables WHERE tablename='ir_config_parameter'" )" != '1' ] then - echo "Database $DB_NAME not initialized, skipping $0" - exit 0 + echo "Database $DB_NAME not initialized, install $0" + dropdb $DB_NAME + click-odoo-initdb -n "$DB_NAME" -c /etc/odoo.cfg -m oca_all --no-cache --demo +else + click-odoo-update --if-exists -d "$DB_NAME" --i18n-overwrite + fi From 171976d31c89731266a9a036d19a6eedc337e631 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Thu, 3 Jul 2025 22:40:42 +0200 Subject: [PATCH 12/15] Add missing depenencies likes in production --- oca_all/__manifest__.py | 2 ++ pyproject.toml | 3 +-- uv.lock | 42 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/oca_all/__manifest__.py b/oca_all/__manifest__.py index 88aca8b..5cc600f 100644 --- a/oca_all/__manifest__.py +++ b/oca_all/__manifest__.py @@ -177,10 +177,12 @@ "report_xlsx", "report_xlsx_helper", "sentry", + "survey_xlsx", "sql_request_abstract", "uom_unece", "web_advanced_search", "web_responsive", + "web_refresher", "web_search_with_and", "web_widget_dropdown_dynamic", "website_apps_store", diff --git a/pyproject.toml b/pyproject.toml index 28e16d7..3fb32fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,6 @@ dependencies = [ "ebaysdk==2.1.5", "freezegun==0.3.15", "gevent==20.9.0 ", - # gevent==21.8.0 ", "greenlet==1.1.2", "idna==2.6", "Jinja2==2.11.2", @@ -44,8 +43,8 @@ dependencies = [ "MarkupSafe==1.1.0", "num2words==0.5.6", "ofxparse==0.19", - # ofxparse==0.21", "passlib==1.7.1", + "pdfminer.six==20211012", "Pillow==8.1.1", "polib==1.1.0", "psutil==5.6.6", diff --git a/uv.lock b/uv.lock index b73c44b..f431d36 100644 --- a/uv.lock +++ b/uv.lock @@ -611,8 +611,10 @@ dependencies = [ { name = "odoo14-addon-report-xlsx-helper" }, { name = "odoo14-addon-sentry" }, { name = "odoo14-addon-sql-request-abstract" }, + { name = "odoo14-addon-survey-xlsx" }, { name = "odoo14-addon-uom-unece" }, { name = "odoo14-addon-web-advanced-search" }, + { name = "odoo14-addon-web-refresher" }, { name = "odoo14-addon-web-responsive" }, { name = "odoo14-addon-web-search-with-and" }, { name = "odoo14-addon-web-widget-dropdown-dynamic" }, @@ -620,6 +622,7 @@ dependencies = [ { name = "ofxparse" }, { name = "openupgradelib" }, { name = "passlib" }, + { name = "pdfminer-six" }, { name = "pillow" }, { name = "polib" }, { name = "psutil" }, @@ -728,8 +731,10 @@ requires-dist = [ { name = "odoo14-addon-report-xlsx-helper" }, { name = "odoo14-addon-sentry" }, { name = "odoo14-addon-sql-request-abstract" }, + { name = "odoo14-addon-survey-xlsx" }, { name = "odoo14-addon-uom-unece" }, { name = "odoo14-addon-web-advanced-search" }, + { name = "odoo14-addon-web-refresher" }, { name = "odoo14-addon-web-responsive" }, { name = "odoo14-addon-web-search-with-and" }, { name = "odoo14-addon-web-widget-dropdown-dynamic" }, @@ -737,6 +742,7 @@ requires-dist = [ { name = "ofxparse", specifier = "==0.19" }, { name = "openupgradelib" }, { name = "passlib", specifier = "==1.7.1" }, + { name = "pdfminer-six", specifier = "==20211012" }, { name = "pillow", specifier = "==8.1.1" }, { name = "polib", specifier = "==1.1.0" }, { name = "psutil", specifier = "==5.6.6" }, @@ -1489,6 +1495,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8f/f2/b6f10c0fa794e1cb9bc55320e8e3a90215fc27386287a8bc57fcc8e286cb/odoo14_addon_sql_request_abstract-14.0.1.3.1.dev6-py3-none-any.whl", hash = "sha256:aaa4737896eddcbffae879b920d7efcef5218d17d44efc392949db4c823c1642", size = 134199, upload-time = "2024-05-21T06:51:56.215Z" }, ] +[[package]] +name = "odoo14-addon-survey-xlsx" +version = "14.0.1.0.1.dev8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, + { name = "odoo14-addon-report-xlsx" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/ae/fcac7d988d61e3b8ed66613a7f1959a0314f5bae1dcc8f99eb3b55a4f0c3/odoo14_addon_survey_xlsx-14.0.1.0.1.dev8-py3-none-any.whl", hash = "sha256:480266e4d86539610e24e88164c5aae379ee809d5b4dd6240b39c7c6a6d54010", size = 24491, upload-time = "2023-10-31T06:28:32.849Z" }, +] + [[package]] name = "odoo14-addon-uom-unece" version = "14.0.1.0.1.dev10" @@ -1511,6 +1529,17 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e6/98/f09f0b555245138ef9c97390c77cf01124ab8cae40af119170458ca8465c/odoo14_addon_web_advanced_search-14.0.1.0.2.dev7-py3-none-any.whl", hash = "sha256:549f3109f023a56554863f433a86ac0d6c7bab4120358b96186e49b5b4fdfce3", size = 48685, upload-time = "2024-01-20T07:03:54.258Z" }, ] +[[package]] +name = "odoo14-addon-web-refresher" +version = "14.0.2.0.1.dev2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "odoo" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/02/e462c7dbf03e4c0c5acf9ee3724c20fce7c91d21d9a47a590168cbac8fa0/odoo14_addon_web_refresher-14.0.2.0.1.dev2-py3-none-any.whl", hash = "sha256:ef8d289d26f736b21c83e2946b29e26f53483f81e33cd21f90a5cef29355b5a5", size = 41726, upload-time = "2023-09-03T17:56:23.275Z" }, +] + [[package]] name = "odoo14-addon-web-responsive" version = "14.0.1.2.3.dev6" @@ -1617,6 +1646,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, ] +[[package]] +name = "pdfminer-six" +version = "20211012" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "chardet" }, + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/0a/b01677bb31bd79756f05ff3e052ad369ac0ebb2e64b47fc6d6bad290d981/pdfminer.six-20211012.tar.gz", hash = "sha256:0351f17d362ee2d48b158be52bcde6576d96460efd038a3e89a043fba6d634d7", size = 7350867, upload-time = "2021-10-12T18:49:32.183Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/2b/0a3329605203de8df990ff5427a145dc81ea3e0eff0046424d1d306d1b29/pdfminer.six-20211012-py3-none-any.whl", hash = "sha256:d3efb75c0249b51c1bf795e3a8bddf1726b276c77bf75fb136adea471ee2825b", size = 5604808, upload-time = "2021-10-12T18:49:23.832Z" }, +] + [[package]] name = "pillow" version = "8.1.1" From 2c358cf9b6a52bf3a6ff260e3903e6bdf401f403 Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Thu, 3 Jul 2025 22:58:25 +0200 Subject: [PATCH 13/15] kwkhtmltopdf use init:true to quickly stop properly propagate signals --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 0234370..abeeedb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -54,6 +54,7 @@ services: kwkhtmltopdf: image: ghcr.io/acsone/kwkhtmltopdf:0.12.5-latest + init: true networks: - kwkhtmltopdf From d755726b17aa07fcc1166ecb769eb681c9d3b08d Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Fri, 4 Jul 2025 01:35:37 +0200 Subject: [PATCH 14/15] add click-odoo fix membership line maintenance script --- scripts/fix_membership_line.py | 107 +++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 scripts/fix_membership_line.py diff --git a/scripts/fix_membership_line.py b/scripts/fix_membership_line.py new file mode 100644 index 0000000..41aacf5 --- /dev/null +++ b/scripts/fix_membership_line.py @@ -0,0 +1,107 @@ +""" +To run this scripts use as follow + +python3 ./scripts/fix_membership_line --help +""" +import logging + +import click +import click_odoo + +from odoo.api import Environment + +logger = logging.getLogger(__name__) + + +@click.command(help="Fix membership line sync date from account move line.") +@click_odoo.env_options( + default_log_level="info", + with_database=True, + with_rollback=True, +) +@click.option( + "--since", + default="2020-01-01", + type=click.DateTime(formats=["%Y-%m-%d"]), + help="oldest membership line to force sync", +) +@click.option( + "--no-fix-partner", is_flag=True, help="Do not change partner on membership line" +) +def fix_membership_line(env: Environment, since: click.DateTime, no_fix_partner: bool): + memberships = ( + env["membership.membership_line"] + .with_context(active_test=False) + .search( + [ + ("date", ">=", since), + ("account_invoice_line", "!=", False), + ] + ) + ) + + for membership in memberships: + messages = [] + move_line = membership.account_invoice_line + account_member = move_line.delegated_member_id or move_line.move_id.partner_id + if not no_fix_partner and account_member != membership.partner: + messages.append( + [ + "membership line (id: %s) change " + "partner %s (id: %s) -> %s (id: %s)", + membership.id, + membership.partner.name, + membership.partner.id, + account_member.name, + account_member.id, + ] + ) + membership.partner = account_member + if membership.membership_id != move_line.product_id: + messages.append( + [ + "membership line (id: %s) change " + "product %s (id: %s) -> %s (id: %s)", + membership.id, + membership.membership_id.name, + membership.membership_id.id, + move_line.product_id.name, + move_line.product_id.id, + ] + ) + membership.membership_id = move_line.product_id + if membership.member_price != move_line.price_unit: + messages.append( + [ + "membership line (id: %s) change price %s -> %s", + membership.id, + membership.member_price, + move_line.price_unit, + ] + ) + membership.member_price = move_line.price_unit + + if membership.date_to != membership.membership_id.membership_date_to: + messages.append( + [ + "membership line (id: %s) change date to %s -> %s", + membership.id, + membership.date_to, + membership.membership_id.membership_date_to, + ] + ) + membership.date_to = membership.membership_id.membership_date_to + + if messages: + logger.info( + "Apply %s changes while processing member %s (id: %s) - %s ", + len(messages), + membership.partner.name, + membership.partner.id, + membership.membership_id.name, + ) + [logger.warning(*message) for message in messages] + + +if __name__ == "__main__": + fix_membership_line() From 8d3429719ce9fed625cdd1c0de250c07036f340c Mon Sep 17 00:00:00 2001 From: Pierre Verkest Date: Mon, 21 Jul 2025 10:17:01 +0200 Subject: [PATCH 15/15] integrate account_statement_import_online_wise Tom's fix using foreing currency --- pyproject.toml | 2 +- uv.lock | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3fb32fd..f373c04 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,7 +102,7 @@ odoo = { git = "https://github.com/OCA/OCB", rev = "refs/pull/1299/head" } # test pipeline to use it as well odoo-addons-design-themes = { git = "https://github.com/acsone/design-themes", branch = "14.0-with-pyproject" } odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" } - +odoo14-addon-account_statement_import_online_wise = { git = "https://github.com/OCA/bank-statement-import", rev = "refs/pull/816/head", subdirectory = "setup/account_statement_import_online_wise" } # Example to develop module from an other repository # installing in editable mode # odoo14-addon-membership-delegated-partner-line = { path = "src/vertical-association/setup/membership_delegated_partner_line", editable = true } diff --git a/uv.lock b/uv.lock index f431d36..cbc25e9 100644 --- a/uv.lock +++ b/uv.lock @@ -692,7 +692,7 @@ requires-dist = [ { name = "odoo14-addon-account-reconciliation-widget" }, { name = "odoo14-addon-account-statement-import" }, { name = "odoo14-addon-account-statement-import-base" }, - { name = "odoo14-addon-account-statement-import-online-wise" }, + { name = "odoo14-addon-account-statement-import-online-wise", git = "https://github.com/OCA/bank-statement-import?subdirectory=setup%2Faccount_statement_import_online_wise&rev=refs%2Fpull%2F816%2Fhead" }, { name = "odoo14-addon-account-statement-import-paypal" }, { name = "odoo14-addon-account-statement-import-txt-xlsx" }, { name = "odoo14-addon-account-tax-unece" }, @@ -1015,17 +1015,14 @@ wheels = [ [[package]] name = "odoo14-addon-account-statement-import-online-wise" -version = "14.0.1.0.1.dev6" -source = { registry = "https://pypi.org/simple" } +version = "14.0.1.0.1.dev7" +source = { git = "https://github.com/OCA/bank-statement-import?subdirectory=setup%2Faccount_statement_import_online_wise&rev=refs%2Fpull%2F816%2Fhead#2e96f29c13ec096fb48ef99943a5534404be2dd9" } dependencies = [ { name = "cryptography" }, { name = "odoo" }, { name = "odoo14-addon-account-statement-import-online" }, { name = "odoo14-addon-web-widget-dropdown-dynamic" }, ] -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/72/b99d9b3540bf4e55a46c0839784cf4b3f51cc7d4875b55162f824450ff9e/odoo14_addon_account_statement_import_online_wise-14.0.1.0.1.dev6-py3-none-any.whl", hash = "sha256:ded3ea5ccc232fb16b829b81cad0875a8f8a8e922cef159b9068085209ec0024", size = 42632, upload-time = "2025-05-30T02:39:16.112Z" }, -] [[package]] name = "odoo14-addon-account-statement-import-paypal"