wexample-wex-addon-dev-python 15.2.1__tar.gz → 15.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wexample_wex_addon_dev_python-15.3.1/PKG-INFO +121 -0
- wexample_wex_addon_dev_python-15.3.1/README.md +93 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/pyproject.toml +4 -4
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/rename.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/common/pypi_registry_gateway.py +13 -3
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/common → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/config_value}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/const/tags.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/formatter/python_code_formatter.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/abstract_python_path_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/abstract_python_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/abstract_python_symbol_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/applier.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/python_class_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/python_common.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/python_constant_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/python_function_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/python_module_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/python_package_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/rename_plan.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/refactor/symbol_kind.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/ai/agents/describer/agent.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/ai/agents/describer/context.j2 +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/design_rules/python_code.md +0 -0
- wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/resources/package_gitlab_ci.yml +4 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/readme_templates/install.md.j2 +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/writing_rules/python_code.md +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/selection/abstract_python_code_selection.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/selection/package_description_missing_selection.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/selection/python_code_performance_selection.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/formatter → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/selection → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services/python/samples}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/workdir/python_package_workdir.py +105 -17
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/workdir/python_workdir.py +18 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/.gitkeep +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/helper/test_pdm.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/integration/refactor/test_python_class_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/integration/refactor/test_python_constant_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/integration/refactor/test_python_function_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/integration/refactor/test_python_module_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/integration/refactor/test_python_package_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/helper/test_pdm.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_abstract_python_path_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_abstract_python_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_abstract_python_symbol_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_applier.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_python_class_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_python_common.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_python_constant_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_python_function_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_python_module_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_python_package_rename_handler.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_rename_plan.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/refactor/test_symbol_kind.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/tests/helper → wexample_wex_addon_dev_python-15.3.1/tests/unit/resources}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/resources/test_shipped_agents.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/tests/integration → wexample_wex_addon_dev_python-15.3.1/tests/unit/workdir}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/unit/workdir/test_python_package_workdir.py +0 -0
- wexample_wex_addon_dev_python-15.2.1/PKG-INFO +0 -315
- wexample_wex_addon_dev_python-15.2.1/README.md +0 -287
- wexample_wex_addon_dev_python-15.2.1/tests/integration/refactor/__init__.py +0 -0
- wexample_wex_addon_dev_python-15.2.1/tests/unit/__init__.py +0 -0
- wexample_wex_addon_dev_python-15.2.1/tests/unit/helper/__init__.py +0 -0
- wexample_wex_addon_dev_python-15.2.1/tests/unit/refactor/__init__.py +0 -0
- wexample_wex_addon_dev_python-15.2.1/tests/unit/resources/__init__.py +0 -0
- wexample_wex_addon_dev_python-15.2.1/tests/unit/workdir/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/__pycache__ → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/commands}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/commands → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/commands/code}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/commands/code → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/commands/code/check}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/check/mypy.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/check/pylint.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/check/pyright.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/check.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/format/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/format/black.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/format/isort.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/code/format.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/commands/code/check → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/commands/examples}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/commands/examples → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/commands/examples/utils}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/examples/utils/some_example_type.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/commands/examples/validate.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/commands/examples/utils → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/commands/release}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/commands/release → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/common}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/config_value/python_package_readme_config_value.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/config_value → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/const}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/const/package.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/const/python.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/config_value/__pycache__ → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/file}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/file/python_app_iml_file.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/file/python_pyproject_toml_file.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/const → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/formatter}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/const/__pycache__ → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/helper}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/helper/pdm.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/file → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/middleware}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/py.typed +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/python_addon_manager.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/.wex.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/docker/Dockerfile.python-profiling +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/package_publish_gitlab.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/resources/readme_templates/tests.md.j2 +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/file/__pycache__ → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/selection}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/helper → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services/python}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/app_service.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/middleware → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services/python/commands}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/middleware/__pycache__ → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services/python/commands/service}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/commands/service/install.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/commands/service/setup.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/docker/.wex.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services/python/samples/docker}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/samples/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/samples/docker/entrypoint.sh +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/Dockerfile.base +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/Dockerfile.develop +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services/python → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/services/python/samples/docker/images}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/services/python/service.yml +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services/python/commands → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/workdir}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services/python/commands/service → wexample_wex_addon_dev_python-15.3.1/src/wexample_wex_addon_dev_python/workdir/mixin}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/src/wexample_wex_addon_dev_python/workdir/python_packages_suite_workdir.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services/python/samples → wexample_wex_addon_dev_python-15.3.1/tests/helper}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services/python/samples/docker → wexample_wex_addon_dev_python-15.3.1/tests/integration}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/services/python/samples/docker/images → wexample_wex_addon_dev_python-15.3.1/tests/integration/refactor}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/workdir → wexample_wex_addon_dev_python-15.3.1/tests/unit}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/workdir/__pycache__ → wexample_wex_addon_dev_python-15.3.1/tests/unit/helper}/__init__.py +0 -0
- {wexample_wex_addon_dev_python-15.2.1/src/wexample_wex_addon_dev_python/workdir/mixin → wexample_wex_addon_dev_python-15.3.1/tests/unit/refactor}/__init__.py +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: wexample-wex-addon-dev-python
|
|
3
|
+
Version: 15.3.1
|
|
4
|
+
Summary: Extends wex with commands to format, lint, and rename Python symbols, plus workdir types for Python packages and suites
|
|
5
|
+
Author-Email: weeger <contact@wexample.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Project-URL: homepage, https://github.com/wexample/python-wex-dev-python
|
|
11
|
+
Requires-Python: >=3.10
|
|
12
|
+
Requires-Dist: attrs>=23.1.0
|
|
13
|
+
Requires-Dist: black
|
|
14
|
+
Requires-Dist: cattrs>=23.1.0
|
|
15
|
+
Requires-Dist: griffe>=2.0.2
|
|
16
|
+
Requires-Dist: isort
|
|
17
|
+
Requires-Dist: networkx
|
|
18
|
+
Requires-Dist: pylint
|
|
19
|
+
Requires-Dist: pyright
|
|
20
|
+
Requires-Dist: wexample-api>=6.8.0
|
|
21
|
+
Requires-Dist: wexample-filestate-python>=9.1.4
|
|
22
|
+
Requires-Dist: wexample-wex-addon-ai>=19.0.2
|
|
23
|
+
Requires-Dist: wexample-wex-addon-app>=34.2.0
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: pytest; extra == "dev"
|
|
26
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# wex_addon_dev_python
|
|
30
|
+
|
|
31
|
+
Version: 15.3.1
|
|
32
|
+
|
|
33
|
+
Extends wex with commands to format, lint, and rename Python symbols, plus workdir types for Python packages and suites
|
|
34
|
+
|
|
35
|
+
## Table of Contents
|
|
36
|
+
|
|
37
|
+
- [Install](#install)
|
|
38
|
+
- [Tests](#tests)
|
|
39
|
+
- [Roadmap](#roadmap)
|
|
40
|
+
- [Status Compatibility](#status-compatibility)
|
|
41
|
+
- [Useful Links](#useful-links)
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install wexample-wex-addon-dev-python
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Requires Python >=3.10.
|
|
50
|
+
|
|
51
|
+
## Tests
|
|
52
|
+
|
|
53
|
+
This project uses `pytest` for testing and `pytest-cov` for code coverage analysis.
|
|
54
|
+
|
|
55
|
+
### Installation
|
|
56
|
+
|
|
57
|
+
First, install the required testing dependencies:
|
|
58
|
+
```bash
|
|
59
|
+
.venv/bin/python -m pip install pytest pytest-cov
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Basic Usage
|
|
63
|
+
|
|
64
|
+
Run all tests with coverage:
|
|
65
|
+
```bash
|
|
66
|
+
.venv/bin/python -m pytest --cov --cov-report=html
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Common Commands
|
|
70
|
+
```bash
|
|
71
|
+
# Run tests with coverage for a specific module
|
|
72
|
+
.venv/bin/python -m pytest --cov=your_module
|
|
73
|
+
|
|
74
|
+
# Show which lines are not covered
|
|
75
|
+
.venv/bin/python -m pytest --cov=your_module --cov-report=term-missing
|
|
76
|
+
|
|
77
|
+
# Generate an HTML coverage report
|
|
78
|
+
.venv/bin/python -m pytest --cov=your_module --cov-report=html
|
|
79
|
+
|
|
80
|
+
# Combine terminal and HTML reports
|
|
81
|
+
.venv/bin/python -m pytest --cov=your_module --cov-report=term-missing --cov-report=html
|
|
82
|
+
|
|
83
|
+
# Run specific test file with coverage
|
|
84
|
+
.venv/bin/python -m pytest tests/test_file.py --cov=your_module --cov-report=term-missing
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Viewing HTML Reports
|
|
88
|
+
|
|
89
|
+
After generating an HTML report, open `htmlcov/index.html` in your browser to view detailed line-by-line coverage information.
|
|
90
|
+
|
|
91
|
+
### Coverage Threshold
|
|
92
|
+
|
|
93
|
+
To enforce a minimum coverage percentage:
|
|
94
|
+
```bash
|
|
95
|
+
.venv/bin/python -m pytest --cov=your_module --cov-fail-under=80
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
This will cause the test suite to fail if coverage drops below 80%.
|
|
99
|
+
|
|
100
|
+
## Known Limitations & Roadmap
|
|
101
|
+
|
|
102
|
+
Current limitations and planned features are tracked in the GitHub issues.
|
|
103
|
+
|
|
104
|
+
See the [project roadmap](https://github.com/wexample/python-wex_addon_dev_python/issues) for upcoming features and improvements.
|
|
105
|
+
|
|
106
|
+
## Status & Compatibility
|
|
107
|
+
|
|
108
|
+
**Maturity**: Production-ready
|
|
109
|
+
|
|
110
|
+
**Python Support**: >=3.10
|
|
111
|
+
|
|
112
|
+
**OS Support**: Linux, macOS, Windows
|
|
113
|
+
|
|
114
|
+
**Status**: Actively maintained
|
|
115
|
+
|
|
116
|
+
## Useful Links
|
|
117
|
+
|
|
118
|
+
- **Homepage**: https://github.com/wexample/python-wex-addon-dev-python
|
|
119
|
+
- **Issue Tracker**: https://github.com/wexample/python-wex-addon-dev-python/issues
|
|
120
|
+
- **Discussions**: https://github.com/wexample/python-wex-addon-dev-python/discussions
|
|
121
|
+
- **PyPI**: [pypi.org/project/wexample-wex-addon-dev-python](https://pypi.org/project/wexample-wex-addon-dev-python/)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# wex_addon_dev_python
|
|
2
|
+
|
|
3
|
+
Version: 15.3.1
|
|
4
|
+
|
|
5
|
+
Extends wex with commands to format, lint, and rename Python symbols, plus workdir types for Python packages and suites
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
- [Install](#install)
|
|
10
|
+
- [Tests](#tests)
|
|
11
|
+
- [Roadmap](#roadmap)
|
|
12
|
+
- [Status Compatibility](#status-compatibility)
|
|
13
|
+
- [Useful Links](#useful-links)
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pip install wexample-wex-addon-dev-python
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Requires Python >=3.10.
|
|
22
|
+
|
|
23
|
+
## Tests
|
|
24
|
+
|
|
25
|
+
This project uses `pytest` for testing and `pytest-cov` for code coverage analysis.
|
|
26
|
+
|
|
27
|
+
### Installation
|
|
28
|
+
|
|
29
|
+
First, install the required testing dependencies:
|
|
30
|
+
```bash
|
|
31
|
+
.venv/bin/python -m pip install pytest pytest-cov
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Basic Usage
|
|
35
|
+
|
|
36
|
+
Run all tests with coverage:
|
|
37
|
+
```bash
|
|
38
|
+
.venv/bin/python -m pytest --cov --cov-report=html
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Common Commands
|
|
42
|
+
```bash
|
|
43
|
+
# Run tests with coverage for a specific module
|
|
44
|
+
.venv/bin/python -m pytest --cov=your_module
|
|
45
|
+
|
|
46
|
+
# Show which lines are not covered
|
|
47
|
+
.venv/bin/python -m pytest --cov=your_module --cov-report=term-missing
|
|
48
|
+
|
|
49
|
+
# Generate an HTML coverage report
|
|
50
|
+
.venv/bin/python -m pytest --cov=your_module --cov-report=html
|
|
51
|
+
|
|
52
|
+
# Combine terminal and HTML reports
|
|
53
|
+
.venv/bin/python -m pytest --cov=your_module --cov-report=term-missing --cov-report=html
|
|
54
|
+
|
|
55
|
+
# Run specific test file with coverage
|
|
56
|
+
.venv/bin/python -m pytest tests/test_file.py --cov=your_module --cov-report=term-missing
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Viewing HTML Reports
|
|
60
|
+
|
|
61
|
+
After generating an HTML report, open `htmlcov/index.html` in your browser to view detailed line-by-line coverage information.
|
|
62
|
+
|
|
63
|
+
### Coverage Threshold
|
|
64
|
+
|
|
65
|
+
To enforce a minimum coverage percentage:
|
|
66
|
+
```bash
|
|
67
|
+
.venv/bin/python -m pytest --cov=your_module --cov-fail-under=80
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This will cause the test suite to fail if coverage drops below 80%.
|
|
71
|
+
|
|
72
|
+
## Known Limitations & Roadmap
|
|
73
|
+
|
|
74
|
+
Current limitations and planned features are tracked in the GitHub issues.
|
|
75
|
+
|
|
76
|
+
See the [project roadmap](https://github.com/wexample/python-wex_addon_dev_python/issues) for upcoming features and improvements.
|
|
77
|
+
|
|
78
|
+
## Status & Compatibility
|
|
79
|
+
|
|
80
|
+
**Maturity**: Production-ready
|
|
81
|
+
|
|
82
|
+
**Python Support**: >=3.10
|
|
83
|
+
|
|
84
|
+
**OS Support**: Linux, macOS, Windows
|
|
85
|
+
|
|
86
|
+
**Status**: Actively maintained
|
|
87
|
+
|
|
88
|
+
## Useful Links
|
|
89
|
+
|
|
90
|
+
- **Homepage**: https://github.com/wexample/python-wex-addon-dev-python
|
|
91
|
+
- **Issue Tracker**: https://github.com/wexample/python-wex-addon-dev-python/issues
|
|
92
|
+
- **Discussions**: https://github.com/wexample/python-wex-addon-dev-python/discussions
|
|
93
|
+
- **PyPI**: [pypi.org/project/wexample-wex-addon-dev-python](https://pypi.org/project/wexample-wex-addon-dev-python/)
|
{wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/pyproject.toml
RENAMED
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "wexample-wex-addon-dev-python"
|
|
9
|
-
version = "15.
|
|
9
|
+
version = "15.3.1"
|
|
10
10
|
description = "Extends wex with commands to format, lint, and rename Python symbols, plus workdir types for Python packages and suites"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "weeger", email = "contact@wexample.com" },
|
|
@@ -27,9 +27,9 @@ dependencies = [
|
|
|
27
27
|
"pylint",
|
|
28
28
|
"pyright",
|
|
29
29
|
"wexample-api>=6.8.0",
|
|
30
|
-
"wexample-filestate-python>=9.1.
|
|
31
|
-
"wexample-wex-addon-ai>=19.0.
|
|
32
|
-
"wexample-wex-addon-app>=34.
|
|
30
|
+
"wexample-filestate-python>=9.1.4",
|
|
31
|
+
"wexample-wex-addon-ai>=19.0.2",
|
|
32
|
+
"wexample-wex-addon-app>=34.2.0",
|
|
33
33
|
]
|
|
34
34
|
|
|
35
35
|
[project.readme]
|
|
File without changes
|
|
@@ -39,12 +39,22 @@ class PypiRegistryGateway(AbstractGateway):
|
|
|
39
39
|
def has_version(self, package: str, version: str) -> bool:
|
|
40
40
|
"""Return True iff `package==version` is published on this index.
|
|
41
41
|
|
|
42
|
-
Uses the
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
Uses the Simple index and matches the version string against its
|
|
43
|
+
body. Returns False on 404 (unknown package, or version not yet
|
|
44
|
+
propagated through the registry's CDN).
|
|
45
|
+
|
|
46
|
+
Asked for exactly as pip asks for it: PyPI's CDN caches each
|
|
47
|
+
representation of the page apart, and they do not refresh together.
|
|
48
|
+
The gzipped HTML one stayed without a release for over ten minutes
|
|
49
|
+
after pip's JSON one listed it, so a check reading the former waited
|
|
50
|
+
on a version pip could already install.
|
|
45
51
|
"""
|
|
46
52
|
response = self.make_request(
|
|
47
53
|
endpoint=f"simple/{package}/",
|
|
54
|
+
headers={
|
|
55
|
+
"Accept": "application/vnd.pypi.simple.v1+json, "
|
|
56
|
+
"application/vnd.pypi.simple.v1+html; q=0.1, text/html; q=0.01",
|
|
57
|
+
},
|
|
48
58
|
expected_status_codes=_HAS_VERSION_STATUS_CODES,
|
|
49
59
|
fatal_if_unexpected=False,
|
|
50
60
|
quiet=True,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -58,6 +58,18 @@ class PythonPackageWorkdir(PythonWorkdir):
|
|
|
58
58
|
"Install: pipx install pdm — then run: wex core::env/configure"
|
|
59
59
|
)
|
|
60
60
|
|
|
61
|
+
def get_gitlab_registry_url(self) -> str | None:
|
|
62
|
+
"""The GitLab PyPI registry of the group, when the suite publishes there.
|
|
63
|
+
|
|
64
|
+
`python.gitlab_registry.url`, the group's endpoint without `/simple`:
|
|
65
|
+
`https://gitlab.example.com/api/v4/groups/<group>/-/packages/pypi`.
|
|
66
|
+
Installs read its `/simple` index; each package uploads to its own
|
|
67
|
+
project's registry, which the group one gathers.
|
|
68
|
+
"""
|
|
69
|
+
return self.search_app_or_suite_runtime_config(
|
|
70
|
+
"python.gitlab_registry.url", default=None
|
|
71
|
+
).get_str_or_none()
|
|
72
|
+
|
|
61
73
|
def get_required_knowledge_pages(self) -> dict[str, str]:
|
|
62
74
|
return {
|
|
63
75
|
**super().get_required_knowledge_pages(),
|
|
@@ -77,22 +89,28 @@ class PythonPackageWorkdir(PythonWorkdir):
|
|
|
77
89
|
raw_value = super().prepare_value(raw_value=raw_value)
|
|
78
90
|
children = raw_value.get("children")
|
|
79
91
|
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
#
|
|
92
|
+
# Every package is tested by GitLab at each push, the way a consumer
|
|
93
|
+
# installs it: the file only includes the job, which lives in the ci-cd
|
|
94
|
+
# repository. A package published to the private GitLab registry gets
|
|
95
|
+
# the job publishing it on a tag instead, and no tests: the base
|
|
96
|
+
# template's workflow runs no tag pipeline. Created when absent, never
|
|
97
|
+
# rewritten. The callback is evaluated after configure() completes, so
|
|
98
|
+
# the runtime config is available at that point.
|
|
83
99
|
children.append(
|
|
84
100
|
{
|
|
85
101
|
"name": ".gitlab-ci.yml",
|
|
86
102
|
"type": DiskItemType.FILE,
|
|
87
|
-
"should_exist":
|
|
88
|
-
|
|
89
|
-
"pdm.repository.url", default=None
|
|
90
|
-
).get_str_or_none()
|
|
91
|
-
),
|
|
92
|
-
"default_content": lambda _: file_read(
|
|
103
|
+
"should_exist": True,
|
|
104
|
+
"default_content": lambda _, _self=self: file_read(
|
|
93
105
|
module_get_path(wexample_wex_addon_dev_python)
|
|
94
106
|
/ "resources"
|
|
95
|
-
/
|
|
107
|
+
/ (
|
|
108
|
+
"package_publish_gitlab.yml"
|
|
109
|
+
if _self.search_app_or_suite_runtime_config(
|
|
110
|
+
"pdm.repository.url", default=None
|
|
111
|
+
).get_str_or_none()
|
|
112
|
+
else "package_gitlab_ci.yml"
|
|
113
|
+
)
|
|
96
114
|
),
|
|
97
115
|
}
|
|
98
116
|
)
|
|
@@ -414,8 +432,9 @@ class PythonPackageWorkdir(PythonWorkdir):
|
|
|
414
432
|
self.push_to_deployment_remote(branch_name=GIT_BRANCH_MAIN)
|
|
415
433
|
|
|
416
434
|
def _publish(self, force: bool = False) -> None:
|
|
417
|
-
from
|
|
418
|
-
|
|
435
|
+
from wexample_helpers.exception.shell_command_failed_exception import (
|
|
436
|
+
ShellCommandFailedException,
|
|
437
|
+
)
|
|
419
438
|
from wexample_helpers_git.helper.git import (
|
|
420
439
|
git_push_tag,
|
|
421
440
|
git_tag_annotated,
|
|
@@ -443,10 +462,75 @@ class PythonPackageWorkdir(PythonWorkdir):
|
|
|
443
462
|
git_push_tag(tag, cwd=cwd, remote=remote, inherit_stdio=True)
|
|
444
463
|
return
|
|
445
464
|
|
|
446
|
-
#
|
|
447
|
-
#
|
|
448
|
-
#
|
|
449
|
-
|
|
465
|
+
# Our own registry first, where the release counts: what installs read
|
|
466
|
+
# (wex, the apps) and what the publication waits for. PyPI then only
|
|
467
|
+
# mirrors it, and a refusal there no longer stops the suite.
|
|
468
|
+
if self.get_gitlab_registry_url():
|
|
469
|
+
self._publish_to_gitlab_registry(force=force)
|
|
470
|
+
try:
|
|
471
|
+
self._publish_to_pypi(force=force)
|
|
472
|
+
except ShellCommandFailedException as exception:
|
|
473
|
+
self.warning(
|
|
474
|
+
f"PyPI refused {package_name} {version}, published on the GitLab "
|
|
475
|
+
f"registry all the same: {exception}"
|
|
476
|
+
)
|
|
477
|
+
return
|
|
478
|
+
|
|
479
|
+
self._publish_to_pypi(force=force)
|
|
480
|
+
|
|
481
|
+
def _publish_to_gitlab_registry(self, force: bool = False) -> None:
|
|
482
|
+
import re
|
|
483
|
+
from urllib.parse import quote
|
|
484
|
+
|
|
485
|
+
from wexample_helpers.helper.shell import shell_run
|
|
486
|
+
from wexample_helpers_git.helper.git import git_get_remote_url
|
|
487
|
+
|
|
488
|
+
from wexample_wex_addon_dev_python.common.pypi_registry_gateway import (
|
|
489
|
+
PypiRegistryGateway,
|
|
490
|
+
)
|
|
491
|
+
|
|
492
|
+
package_name = self.get_package_name()
|
|
493
|
+
version = self.get_setup_version()
|
|
494
|
+
registry_url = self.get_gitlab_registry_url()
|
|
495
|
+
|
|
496
|
+
index = PypiRegistryGateway(base_url=registry_url, io=self.io, timeout=10)
|
|
497
|
+
if index.has_version(package_name, version) and not force:
|
|
498
|
+
self.log(f"{package_name} {version} is already on the GitLab registry.")
|
|
499
|
+
return
|
|
500
|
+
|
|
501
|
+
# The project is the package's origin: ssh://git@host:port/<group>/<name>.git
|
|
502
|
+
project_path = re.sub(
|
|
503
|
+
r"^(ssh://[^/]+/|git@[^:]+:|https?://[^/]+/)",
|
|
504
|
+
"",
|
|
505
|
+
git_get_remote_url(cwd=self.get_path()),
|
|
506
|
+
).removesuffix(".git")
|
|
507
|
+
project = quote(project_path, safe="")
|
|
508
|
+
api_url = registry_url.split("/groups/", 1)[0]
|
|
509
|
+
|
|
510
|
+
self.subtitle("Publishing to the GitLab registry")
|
|
511
|
+
shell_run(
|
|
512
|
+
[
|
|
513
|
+
"pdm",
|
|
514
|
+
"publish",
|
|
515
|
+
"--repository",
|
|
516
|
+
f"{api_url}/projects/{project}/packages/pypi",
|
|
517
|
+
# GitLab authenticates the token alone; the name is required, not read.
|
|
518
|
+
"--username",
|
|
519
|
+
"__token__",
|
|
520
|
+
"--password",
|
|
521
|
+
self.get_env_parameter_or_suite_fallback("GITLAB_API_TOKEN"),
|
|
522
|
+
],
|
|
523
|
+
inherit_stdio=True,
|
|
524
|
+
cwd=self.get_path(),
|
|
525
|
+
)
|
|
526
|
+
|
|
527
|
+
def _publish_to_pypi(self, force: bool = False) -> None:
|
|
528
|
+
from wexample_filestate_python.common.pipy_gateway import PipyGateway
|
|
529
|
+
from wexample_helpers.helper.shell import shell_run
|
|
530
|
+
|
|
531
|
+
package_name = self.get_package_name()
|
|
532
|
+
version = self.get_setup_version()
|
|
533
|
+
|
|
450
534
|
client = PipyGateway(parent_io_handler=self)
|
|
451
535
|
if client.package_release_exists(package_name=package_name, version=version):
|
|
452
536
|
self.warning(
|
|
@@ -487,8 +571,12 @@ class PythonPackageWorkdir(PythonWorkdir):
|
|
|
487
571
|
PypiRegistryGateway,
|
|
488
572
|
)
|
|
489
573
|
|
|
574
|
+
# The GitLab registry, when the suite publishes there, is what installs
|
|
575
|
+
# read: it serves a version as soon as it is uploaded, where PyPI's CDN
|
|
576
|
+
# can lag for many minutes.
|
|
490
577
|
repository_url = (
|
|
491
|
-
self.
|
|
578
|
+
self.get_gitlab_registry_url()
|
|
579
|
+
or self.search_app_or_suite_runtime_config(
|
|
492
580
|
"pdm.repository.url", default=None
|
|
493
581
|
).get_str_or_none()
|
|
494
582
|
or "https://pypi.org"
|
|
@@ -476,6 +476,23 @@ class PythonWorkdir(
|
|
|
476
476
|
|
|
477
477
|
pyproject_path = self.get_path() / "pyproject.toml"
|
|
478
478
|
|
|
479
|
+
# The suite's GitLab registry beside PyPI: the wexample packages are
|
|
480
|
+
# there first. Written into requirements.txt, so `pip install -r` reads
|
|
481
|
+
# it too. Best match across both, as pip does: a package published
|
|
482
|
+
# before the registry existed is only on PyPI.
|
|
483
|
+
index_arguments: list[str] = []
|
|
484
|
+
registry_url = self.search_app_or_suite_runtime_config(
|
|
485
|
+
"python.gitlab_registry.url", default=None
|
|
486
|
+
).get_str_or_none()
|
|
487
|
+
if registry_url:
|
|
488
|
+
index_arguments = [
|
|
489
|
+
"--extra-index-url",
|
|
490
|
+
f"{registry_url}/simple",
|
|
491
|
+
"--index-strategy",
|
|
492
|
+
"unsafe-best-match",
|
|
493
|
+
"--emit-index-url",
|
|
494
|
+
]
|
|
495
|
+
|
|
479
496
|
def _run_uv_compile() -> None:
|
|
480
497
|
result = subprocess.run(
|
|
481
498
|
[
|
|
@@ -494,6 +511,7 @@ class PythonWorkdir(
|
|
|
494
511
|
# long as they satisfy constraints — causing stale
|
|
495
512
|
# transitives even after their direct dependents bumped.
|
|
496
513
|
"--upgrade",
|
|
514
|
+
*index_arguments,
|
|
497
515
|
],
|
|
498
516
|
capture_output=True,
|
|
499
517
|
text=True,
|
{wexample_wex_addon_dev_python-15.2.1 → wexample_wex_addon_dev_python-15.3.1}/tests/.gitkeep
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|