From 9fb87ae3a67d1ba9c8e40e0f05ff4e4056b62eb9 Mon Sep 17 00:00:00 2001 From: benflexcompute Date: Wed, 11 Feb 2026 19:04:51 -0500 Subject: [PATCH 1/5] Fisrt step: Enable importing --- .../setup-codeartifact-poetry-auth/action.yml | 52 +++++++++ .github/workflows/codestyle.yml | 24 ++++ .github/workflows/test.yml | 9 ++ poetry.lock | 109 ++++++++++++++++-- pyproject.toml | 7 ++ tests/test_artifact_import.py | 7 ++ 6 files changed, 197 insertions(+), 11 deletions(-) create mode 100644 .github/actions/setup-codeartifact-poetry-auth/action.yml create mode 100644 tests/test_artifact_import.py diff --git a/.github/actions/setup-codeartifact-poetry-auth/action.yml b/.github/actions/setup-codeartifact-poetry-auth/action.yml new file mode 100644 index 000000000..4fb5ef2a0 --- /dev/null +++ b/.github/actions/setup-codeartifact-poetry-auth/action.yml @@ -0,0 +1,52 @@ +name: Setup CodeArtifact Poetry Auth +description: Configure AWS credentials, fetch CodeArtifact token, and set Poetry auth env vars. + +inputs: + aws-access-key-id: + description: AWS access key id for CodeArtifact access. + required: true + aws-secret-access-key: + description: AWS secret access key for CodeArtifact access. + required: true + aws-region: + description: AWS region of the CodeArtifact domain. + required: false + default: us-east-1 + domain: + description: CodeArtifact domain name. + required: false + default: flexcompute + domain-owner: + description: AWS account id that owns the CodeArtifact domain. + required: false + default: "625554095313" + +outputs: + token: + description: CodeArtifact authorization token. + value: ${{ steps.get-token.outputs.token }} + +runs: + using: composite + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ inputs.aws-access-key-id }} + aws-secret-access-key: ${{ inputs.aws-secret-access-key }} + aws-region: ${{ inputs.aws-region }} + + - name: Get CodeArtifact token and set Poetry env + id: get-token + shell: bash + run: | + TOKEN=$(aws codeartifact get-authorization-token \ + --domain "${{ inputs.domain }}" \ + --domain-owner "${{ inputs.domain-owner }}" \ + --region "${{ inputs.aws-region }}" \ + --query authorizationToken \ + --output text) + echo "::add-mask::$TOKEN" + echo "token=$TOKEN" >> "$GITHUB_OUTPUT" + echo "POETRY_HTTP_BASIC_CODEARTIFACT_USERNAME=aws" >> "$GITHUB_ENV" + echo "POETRY_HTTP_BASIC_CODEARTIFACT_PASSWORD=$TOKEN" >> "$GITHUB_ENV" diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml index 16061566c..478cd578d 100644 --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -15,6 +15,14 @@ jobs: with: python-version: '3.9' cache: 'poetry' + - name: Setup CodeArtifact auth for Poetry + uses: ./.github/actions/setup-codeartifact-poetry-auth + with: + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} + aws-region: us-east-1 + domain: flexcompute + domain-owner: "625554095313" - name: Install black run: poetry install - name: Run black @@ -30,6 +38,14 @@ jobs: with: python-version: '3.9' cache: 'poetry' + - name: Setup CodeArtifact auth for Poetry + uses: ./.github/actions/setup-codeartifact-poetry-auth + with: + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} + aws-region: us-east-1 + domain: flexcompute + domain-owner: "625554095313" - name: Install isort run: poetry install - name: Check isort version @@ -47,6 +63,14 @@ jobs: with: python-version: '3.9' cache: 'poetry' + - name: Setup CodeArtifact auth for Poetry + uses: ./.github/actions/setup-codeartifact-poetry-auth + with: + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} + aws-region: us-east-1 + domain: flexcompute + domain-owner: "625554095313" - name: Install dependencies run: poetry install - name: Run pylint diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7bcaf2c49..26e816db9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,6 +46,15 @@ jobs: virtualenvs-in-project: true virtualenvs-create: true + - name: Setup CodeArtifact auth for Poetry + uses: ./.github/actions/setup-codeartifact-poetry-auth + with: + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} + aws-region: us-east-1 + domain: flexcompute + domain-owner: "625554095313" + - name: Install dependencies run: poetry install diff --git a/poetry.lock b/poetry.lock index 609440452..c3593a617 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.3.1 and should not be changed by hand. [[package]] name = "accessible-pygments" @@ -56,6 +56,7 @@ files = [ {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} @@ -115,11 +116,11 @@ description = "Disable App Nap on macOS >= 10.9" optional = false python-versions = ">=3.6" groups = ["main", "dev"] -markers = "platform_system == \"Darwin\"" files = [ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] +markers = {main = "platform_system == \"Darwin\" and extra == \"docs\"", dev = "platform_system == \"Darwin\""} [[package]] name = "argon2-cffi" @@ -132,6 +133,7 @@ files = [ {file = "argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741"}, {file = "argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] argon2-cffi-bindings = "*" @@ -171,6 +173,7 @@ files = [ {file = "argon2_cffi_bindings-25.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:da0c79c23a63723aa5d782250fbf51b768abca630285262fb5144ba5ae01e520"}, {file = "argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] cffi = {version = ">=1.0.1", markers = "python_version < \"3.14\""} @@ -186,6 +189,7 @@ files = [ {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] python-dateutil = ">=2.7.0" @@ -237,6 +241,7 @@ files = [ {file = "async_lru-2.0.5-py3-none-any.whl", hash = "sha256:ab95404d8d2605310d345932697371a5f40def0487c03d6d0ad9138de52c9943"}, {file = "async_lru-2.0.5.tar.gz", hash = "sha256:481d52ccdd27275f42c43a928b4a50c3bfb2d67af4e78b170e3e0bb39c66e5bb"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] typing_extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} @@ -252,6 +257,7 @@ files = [ {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] +markers = {main = "extra == \"docs\""} [package.extras] benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] @@ -380,6 +386,7 @@ files = [ {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, ] +markers = {main = "extra == \"docs\""} [package.extras] dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] @@ -395,6 +402,7 @@ files = [ {file = "beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b"}, {file = "beautifulsoup4-4.13.4.tar.gz", hash = "sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] soupsieve = ">1.2" @@ -467,6 +475,7 @@ files = [ {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] tinycss2 = {version = ">=1.1.0,<1.5", optional = true, markers = "extra == \"css\""} @@ -686,6 +695,7 @@ files = [ {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] +markers = {main = "extra == \"docs\" or platform_python_implementation == \"PyPy\""} [package.dependencies] pycparser = "*" @@ -837,7 +847,7 @@ files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -markers = {dev = "platform_system == \"Windows\" or sys_platform == \"win32\""} +markers = {dev = "sys_platform == \"win32\" or platform_system == \"Windows\""} [[package]] name = "colorful" @@ -865,6 +875,7 @@ files = [ {file = "comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417"}, {file = "comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971"}, ] +markers = {main = "extra == \"docs\""} [package.extras] test = ["pytest"] @@ -1322,6 +1333,7 @@ files = [ {file = "debugpy-1.8.15-py2.py3-none-any.whl", hash = "sha256:bce2e6c5ff4f2e00b98d45e7e01a49c7b489ff6df5f12d881c67d2f1ac635f3d"}, {file = "debugpy-1.8.15.tar.gz", hash = "sha256:58d7a20b7773ab5ee6bdfb2e6cf622fdf1e40c9d5aef2857d85391526719ac00"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "decorator" @@ -1346,6 +1358,7 @@ files = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "dict2css" @@ -1459,6 +1472,7 @@ files = [ {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, ] +markers = {main = "extra == \"docs\""} [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] @@ -1481,6 +1495,26 @@ docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3) testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] +[[package]] +name = "flow360-schemas" +version = "0.1.0+feature.worker.cn.013f3f8" +description = "Pure Pydantic schemas for Flow360 - Single Source of Truth" +optional = false +python-versions = ">=3.9,<4.0" +groups = ["main"] +files = [ + {file = "flow360_schemas-0.1.0+feature.worker.cn.013f3f8-py3-none-any.whl", hash = "sha256:1ddfebf7ffe529d9b5f139020836dce8e8332931671793d04da880086fe1cc78"}, + {file = "flow360_schemas-0.1.0+feature.worker.cn.013f3f8.tar.gz", hash = "sha256:9d5460b0ce1a05d646025c3f2b87438fb52cc835f7af5ec6b53399bd02bf8f8b"}, +] + +[package.dependencies] +pydantic = ">=2.8,<3.0" + +[package.source] +type = "legacy" +url = "https://flexcompute-625554095313.d.codeartifact.us-east-1.amazonaws.com/pypi/pypi-releases/simple" +reference = "codeartifact" + [[package]] name = "fonttools" version = "4.60.2" @@ -1573,6 +1607,7 @@ files = [ {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "gitdb" @@ -1663,6 +1698,7 @@ files = [ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "h2" @@ -1765,6 +1801,7 @@ files = [ {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] certifi = "*" @@ -1787,6 +1824,7 @@ files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] anyio = "*" @@ -1849,11 +1887,11 @@ description = "Read metadata from Python packages" optional = false python-versions = ">=3.9" groups = ["main", "dev"] -markers = "python_version == \"3.9\"" files = [ {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, ] +markers = {main = "extra == \"docs\" and python_version == \"3.9\"", dev = "python_version == \"3.9\""} [package.dependencies] zipp = ">=3.20" @@ -1914,6 +1952,7 @@ files = [ {file = "ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4"}, {file = "ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] appnope = {version = ">=0.1.2", markers = "platform_system == \"Darwin\""} @@ -2009,6 +2048,7 @@ files = [ {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] arrow = ">=0.15.0" @@ -2059,6 +2099,7 @@ files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] MarkupSafe = ">=2.0" @@ -2089,6 +2130,7 @@ files = [ {file = "json5-0.12.0-py3-none-any.whl", hash = "sha256:6d37aa6c08b0609f16e1ec5ff94697e2cbbfbad5ac112afa05794da9ab7810db"}, {file = "json5-0.12.0.tar.gz", hash = "sha256:0b4b6ff56801a1c7dc817b0241bca4ce474a0e6a163bfef3fc594d3fd263ff3a"}, ] +markers = {main = "extra == \"docs\""} [package.extras] dev = ["build (==1.2.2.post1)", "coverage (==7.5.4) ; python_version < \"3.9\"", "coverage (==7.8.0) ; python_version >= \"3.9\"", "mypy (==1.14.1) ; python_version < \"3.9\"", "mypy (==1.15.0) ; python_version >= \"3.9\"", "pip (==25.0.1)", "pylint (==3.2.7) ; python_version < \"3.9\"", "pylint (==3.3.6) ; python_version >= \"3.9\"", "ruff (==0.11.2)", "twine (==6.1.0)", "uv (==0.6.11)"] @@ -2104,6 +2146,7 @@ files = [ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "jsonschema" @@ -2116,6 +2159,7 @@ files = [ {file = "jsonschema-4.25.0-py3-none-any.whl", hash = "sha256:24c2e8da302de79c8b9382fee3e76b355e44d2a4364bb207159ce10b517bd716"}, {file = "jsonschema-4.25.0.tar.gz", hash = "sha256:e63acf5c11762c0e6672ffb61482bdf57f0876684d8d249c0fe2d730d48bc55f"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] attrs = ">=22.2.0" @@ -2123,7 +2167,7 @@ fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} -jsonschema-specifications = ">=2023.03.6" +jsonschema-specifications = ">=2023.3.6" referencing = ">=0.28.4" rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} @@ -2147,6 +2191,7 @@ files = [ {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"}, {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] referencing = ">=0.31.0" @@ -2183,6 +2228,7 @@ files = [ {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} @@ -2233,6 +2279,7 @@ files = [ {file = "jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0"}, {file = "jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] platformdirs = ">=2.5" @@ -2254,6 +2301,7 @@ files = [ {file = "jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb"}, {file = "jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} @@ -2281,6 +2329,7 @@ files = [ {file = "jupyter_lsp-2.2.6-py3-none-any.whl", hash = "sha256:283783752bf0b459ee7fa88effa72104d87dd343b82d5c06cf113ef755b15b6d"}, {file = "jupyter_lsp-2.2.6.tar.gz", hash = "sha256:0566bd9bb04fd9e6774a937ed01522b555ba78be37bebef787c8ab22de4c0361"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] importlib_metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} @@ -2297,6 +2346,7 @@ files = [ {file = "jupyter_server-2.16.0-py3-none-any.whl", hash = "sha256:3d8db5be3bc64403b1c65b400a1d7f4647a5ce743f3b20dbdefe8ddb7b55af9e"}, {file = "jupyter_server-2.16.0.tar.gz", hash = "sha256:65d4b44fdf2dcbbdfe0aa1ace4a842d4aaf746a2b7b168134d5aaed35621b7f6"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] anyio = ">=3.1.0" @@ -2353,6 +2403,7 @@ files = [ {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} @@ -2373,6 +2424,7 @@ files = [ {file = "jupyterlab-4.4.8-py3-none-any.whl", hash = "sha256:81b56f33f35be15150e7ccd43440963a93d2b115ffa614a06d38b91e4d650f92"}, {file = "jupyterlab-4.4.8.tar.gz", hash = "sha256:a89e5a2e9f9295ae039356fc5247e5bfac64936126ab805e3ff8e47f385b0c7e"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] async-lru = ">=1.0.0" @@ -2409,6 +2461,7 @@ files = [ {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "jupyterlab-server" @@ -2421,6 +2474,7 @@ files = [ {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] babel = ">=2.10" @@ -2677,6 +2731,7 @@ files = [ {file = "lark-1.2.2-py3-none-any.whl", hash = "sha256:c2276486b02f0f1b90be155f2c8ba4a8e194d42775786db622faccd652d8e80c"}, {file = "lark-1.2.2.tar.gz", hash = "sha256:ca807d0162cd16cef15a8feecb862d7319e7a09bdb13aef927968e45040fed80"}, ] +markers = {main = "extra == \"docs\""} [package.extras] atomic-cache = ["atomicwrites"] @@ -2889,6 +2944,7 @@ files = [ {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "matplotlib" @@ -3087,6 +3143,7 @@ files = [ {file = "mistune-3.1.3-py3-none-any.whl", hash = "sha256:1a32314113cff28aa6432e99e522677c8587fd83e3d51c29b82a52409c842bd9"}, {file = "mistune-3.1.3.tar.gz", hash = "sha256:a7035c21782b2becb6be62f8f25d3df81ccb4d6fa477a6525b15af06539f02a0"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] typing-extensions = {version = "*", markers = "python_version < \"3.11\""} @@ -3260,6 +3317,7 @@ files = [ {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] jupyter-client = ">=6.1.12" @@ -3283,6 +3341,7 @@ files = [ {file = "nbconvert-7.17.0-py3-none-any.whl", hash = "sha256:4f99a63b337b9a23504347afdab24a11faa7d86b405e5c8f9881cd313336d518"}, {file = "nbconvert-7.17.0.tar.gz", hash = "sha256:1b2696f1b5be12309f6c7d707c24af604b87dfaf6d950794c7b07acab96dda78"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] beautifulsoup4 = "*" @@ -3349,6 +3408,7 @@ files = [ {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] fastjsonschema = ">=2.15" @@ -3392,6 +3452,7 @@ files = [ {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "notebook" @@ -3404,6 +3465,7 @@ files = [ {file = "notebook-7.4.4-py3-none-any.whl", hash = "sha256:32840f7f777b6bff79bb101159336e9b332bdbfba1495b8739e34d1d65cbc1c0"}, {file = "notebook-7.4.4.tar.gz", hash = "sha256:392fd501e266f2fb3466c6fcd3331163a2184968cb5c5accf90292e01dfe528c"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] jupyter-server = ">=2.4.0,<3" @@ -3428,6 +3490,7 @@ files = [ {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] jupyter-server = ">=1.8,<3" @@ -3734,6 +3797,7 @@ files = [ {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "packaging" @@ -3845,6 +3909,7 @@ files = [ {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "parso" @@ -4098,6 +4163,7 @@ files = [ {file = "prometheus_client-0.22.1-py3-none-any.whl", hash = "sha256:cca895342e308174341b2cbf99a56bef291fbc0ef7b9e5412a0f26d653ba7094"}, {file = "prometheus_client-0.22.1.tar.gz", hash = "sha256:190f1331e783cf21eb60bca559354e0a4d4378facecf78f5428c39b675d20d28"}, ] +markers = {main = "extra == \"docs\""} [package.extras] twisted = ["twisted"] @@ -4136,6 +4202,7 @@ files = [ {file = "psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553"}, {file = "psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456"}, ] +markers = {main = "extra == \"docs\""} [package.extras] dev = ["abi3audit", "black (==24.10.0)", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest", "pytest-cov", "pytest-xdist", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] @@ -4148,11 +4215,11 @@ description = "Run a subprocess in a pseudo terminal" optional = false python-versions = "*" groups = ["main", "dev"] -markers = "sys_platform != \"win32\" or os_name != \"nt\"" files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] +markers = {main = "os_name != \"nt\" and extra == \"docs\" or sys_platform != \"win32\"", dev = "sys_platform != \"win32\" or os_name != \"nt\""} [[package]] name = "pure-eval" @@ -4180,6 +4247,7 @@ files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] +markers = {main = "extra == \"docs\" or platform_python_implementation == \"PyPy\""} [[package]] name = "pydantic" @@ -4602,6 +4670,7 @@ files = [ {file = "python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7"}, {file = "python_json_logger-3.3.0.tar.gz", hash = "sha256:12b7e74b17775e7d565129296105bbe3910842d9d0eb083fc83a6a617aa8df84"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] typing_extensions = {version = "*", markers = "python_version < \"3.10\""} @@ -4628,7 +4697,6 @@ description = "Python for Window Extensions" optional = false python-versions = "*" groups = ["main", "dev"] -markers = "platform_python_implementation != \"PyPy\" and sys_platform == \"win32\"" files = [ {file = "pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3"}, {file = "pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b"}, @@ -4651,6 +4719,7 @@ files = [ {file = "pywin32-311-cp39-cp39-win_amd64.whl", hash = "sha256:e0c4cfb0621281fe40387df582097fd796e80430597cb9944f0ae70447bacd91"}, {file = "pywin32-311-cp39-cp39-win_arm64.whl", hash = "sha256:62ea666235135fee79bb154e695f3ff67370afefd71bd7fea7512fc70ef31e3d"}, ] +markers = {main = "platform_python_implementation != \"PyPy\" and extra == \"docs\" and sys_platform == \"win32\"", dev = "platform_python_implementation != \"PyPy\" and sys_platform == \"win32\""} [[package]] name = "pywinpty" @@ -4659,7 +4728,6 @@ description = "Pseudo terminal support for Windows from Python." optional = false python-versions = ">=3.9" groups = ["main", "dev"] -markers = "os_name == \"nt\"" files = [ {file = "pywinpty-2.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:8e7f5de756a615a38b96cd86fa3cd65f901ce54ce147a3179c45907fa11b4c4e"}, {file = "pywinpty-2.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:9a6bcec2df2707aaa9d08b86071970ee32c5026e10bcc3cc5f6f391d85baf7ca"}, @@ -4669,6 +4737,7 @@ files = [ {file = "pywinpty-2.0.15-cp39-cp39-win_amd64.whl", hash = "sha256:d261cd88fcd358cfb48a7ca0700db3e1c088c9c10403c9ebc0d8a8b57aa6a117"}, {file = "pywinpty-2.0.15.tar.gz", hash = "sha256:312cf39153a8736c617d45ce8b6ad6cd2107de121df91c455b10ce6bba7a39b2"}, ] +markers = {main = "os_name == \"nt\" and extra == \"docs\"", dev = "os_name == \"nt\""} [[package]] name = "pyyaml" @@ -4821,6 +4890,7 @@ files = [ {file = "pyzmq-27.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:096af9e133fec3a72108ddefba1e42985cb3639e9de52cfd336b6fc23aa083e9"}, {file = "pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} @@ -4849,6 +4919,7 @@ files = [ {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] attrs = ">=22.2.0" @@ -4888,6 +4959,7 @@ files = [ {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] six = "*" @@ -4903,6 +4975,7 @@ files = [ {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "rfc3987-syntax" @@ -4915,6 +4988,7 @@ files = [ {file = "rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f"}, {file = "rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] lark = ">=1.2.2" @@ -5110,6 +5184,7 @@ files = [ {file = "rpds_py-0.26.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:69a607203441e07e9a8a529cff1d5b73f6a160f22db1097211e6212a68567d11"}, {file = "rpds_py-0.26.0.tar.gz", hash = "sha256:20dae58a859b0906f0685642e591056f1e787f3a8b39c8e8749a45dc7d26bdb0"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "ruamel-yaml" @@ -5201,10 +5276,10 @@ files = [ ] [package.dependencies] -botocore = ">=1.37.4,<2.0a.0" +botocore = ">=1.37.4,<2.0a0" [package.extras] -crt = ["botocore[crt] (>=1.37.4,<2.0a.0)"] +crt = ["botocore[crt] (>=1.37.4,<2.0a0)"] [[package]] name = "semver" @@ -5229,6 +5304,7 @@ files = [ {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, ] +markers = {main = "extra == \"docs\""} [package.extras] nativelib = ["pyobjc-framework-Cocoa ; sys_platform == \"darwin\"", "pywin32 ; sys_platform == \"win32\""] @@ -5246,6 +5322,7 @@ files = [ {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, ] +markers = {main = "extra == \"docs\""} [package.extras] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""] @@ -5307,6 +5384,7 @@ files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "snowballstemmer" @@ -5332,6 +5410,7 @@ files = [ {file = "soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4"}, {file = "soupsieve-2.7.tar.gz", hash = "sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "sphinx" @@ -5886,6 +5965,7 @@ files = [ {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] ptyprocess = {version = "*", markers = "os_name != \"nt\""} @@ -5908,6 +5988,7 @@ files = [ {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, ] +markers = {main = "extra == \"docs\""} [package.dependencies] webencodings = ">=0.4" @@ -6016,6 +6097,7 @@ files = [ {file = "tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7"}, {file = "tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "traitlets" @@ -6044,6 +6126,7 @@ files = [ {file = "types_python_dateutil-2.9.0.20250708-py3-none-any.whl", hash = "sha256:4d6d0cc1cc4d24a2dc3816024e502564094497b713f7befda4d5bc7a8e3fd21f"}, {file = "types_python_dateutil-2.9.0.20250708.tar.gz", hash = "sha256:ccdbd75dab2d6c9696c350579f34cffe2c281e4c5f27a585b2a2438dd1d5c8ab"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "typing-extensions" @@ -6112,6 +6195,7 @@ files = [ {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, ] +markers = {main = "extra == \"docs\""} [package.extras] dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] @@ -6191,6 +6275,7 @@ files = [ {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "webencodings" @@ -6203,6 +6288,7 @@ files = [ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, ] +markers = {main = "extra == \"docs\""} [[package]] name = "websocket-client" @@ -6215,6 +6301,7 @@ files = [ {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, ] +markers = {main = "extra == \"docs\""} [package.extras] docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] @@ -6320,4 +6407,4 @@ docs = ["autodoc_pydantic", "cairosvg", "ipython", "jinja2", "jupyter", "myst-pa [metadata] lock-version = "2.1" python-versions = ">=3.9,<3.14" -content-hash = "f17c72d9c531957854141eb35e4eb5e1dfe82303d92c46427ee51650745c095e" +content-hash = "beb8f13b5c952450721418ad7ecfdeb0bc4b98a0bb1dd9ad93eccf615e111762" diff --git a/pyproject.toml b/pyproject.toml index 37959477f..6f4bd69d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,9 +4,16 @@ version = "v25.8.5" description = "Flow360 Python Client" authors = ["Flexcompute "] + +[[tool.poetry.source]] +name = "codeartifact" +url = "https://flexcompute-625554095313.d.codeartifact.us-east-1.amazonaws.com/pypi/pypi-releases/simple/" +priority = "supplemental" + [tool.poetry.dependencies] python = ">=3.9,<3.14" pydantic = ">=2.8,<2.12" +flow360-schemas = "0.1.0" pytest = "^7.1.2" click = "^8.1.3" toml = "^0.10.2" diff --git a/tests/test_artifact_import.py b/tests/test_artifact_import.py new file mode 100644 index 000000000..e84f3117a --- /dev/null +++ b/tests/test_artifact_import.py @@ -0,0 +1,7 @@ + +import importlib + + +def test_importable_artifact(): + module = importlib.import_module("flow360_schemas") + assert module.__name__ == "flow360_schemas" From e0521dce0fa30b8582856deada1fe3a4674afa45 Mon Sep 17 00:00:00 2001 From: benflexcompute Date: Wed, 11 Feb 2026 19:17:40 -0500 Subject: [PATCH 2/5] Try again --- .github/workflows/codestyle.yml | 5 +++++ .github/workflows/pypi-publish.yml | 1 + .github/workflows/test.yml | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml index 478cd578d..e4d5b2b81 100644 --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -2,6 +2,11 @@ name: Codestyle checking on: workflow_call: + secrets: + AWS_CODEARTIFACT_ACCESS_KEY: + required: true + AWS_CODEARTIFACT_ACCESS_SECRET: + required: true workflow_dispatch: jobs: diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 525d0396b..79b256075 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -56,6 +56,7 @@ jobs: preflight-tests: needs: validate-release-source uses: ./.github/workflows/test.yml + secrets: inherit publish: needs: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 26e816db9..41db87d5f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,10 +7,16 @@ on: pull_request: types: [ opened, synchronize, reopened, ready_for_review ] workflow_call: + secrets: + AWS_CODEARTIFACT_ACCESS_KEY: + required: true + AWS_CODEARTIFACT_ACCESS_SECRET: + required: true jobs: code-style: uses: ./.github/workflows/codestyle.yml + secrets: inherit testing: needs: code-style name: test ${{ matrix.python-version }} - ${{ matrix.platform }} From 0045350ec60c81eb08f39aa57dc0621b71fd9256 Mon Sep 17 00:00:00 2001 From: benflexcompute Date: Wed, 11 Feb 2026 20:31:57 -0500 Subject: [PATCH 3/5] Updated --- .github/workflows/pypi-publish.yml | 8 ++++++++ poetry.lock | 2 +- pyproject.toml | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index add70ef76..8537a4eaa 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -326,6 +326,14 @@ jobs: with: python-version: '3.9' cache: 'poetry' + - name: Setup CodeArtifact auth for Poetry + uses: ./.github/actions/setup-codeartifact-poetry-auth + with: + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} + aws-region: us-east-1 + domain: flexcompute + domain-owner: "625554095313" - name: Install dependencies run: poetry install - name: Pump version number diff --git a/poetry.lock b/poetry.lock index c3593a617..7b28d63ce 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6407,4 +6407,4 @@ docs = ["autodoc_pydantic", "cairosvg", "ipython", "jinja2", "jupyter", "myst-pa [metadata] lock-version = "2.1" python-versions = ">=3.9,<3.14" -content-hash = "beb8f13b5c952450721418ad7ecfdeb0bc4b98a0bb1dd9ad93eccf615e111762" +content-hash = "4f7bf489380f6a818d45cf9642b8653ebb450e238031452ddeed7b0650cbe2f1" diff --git a/pyproject.toml b/pyproject.toml index 3690ad642..13ae4d494 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,12 +8,12 @@ authors = ["Flexcompute "] [[tool.poetry.source]] name = "codeartifact" url = "https://flexcompute-625554095313.d.codeartifact.us-east-1.amazonaws.com/pypi/pypi-releases/simple/" -priority = "supplemental" +priority = "explicit" [tool.poetry.dependencies] python = ">=3.9,<3.14" pydantic = ">=2.8,<2.12" -flow360-schemas = "0.1.0" +flow360-schemas = { version = "0.1.0", source = "codeartifact" } pytest = "^7.1.2" click = "^8.1.3" toml = "^0.10.2" From 5c942666c93e7f57a4cdc97ec9a7dca4b3fce40f Mon Sep 17 00:00:00 2001 From: benflexcompute Date: Thu, 12 Feb 2026 10:43:02 -0500 Subject: [PATCH 4/5] Try again --- .github/workflows/codestyle.yml | 25 ++++++++----------------- .github/workflows/pypi-publish.yml | 4 ++-- .github/workflows/test.yml | 11 ++++------- 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml index e4d5b2b81..4c2fce211 100644 --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -3,9 +3,9 @@ name: Codestyle checking on: workflow_call: secrets: - AWS_CODEARTIFACT_ACCESS_KEY: + AWS_CODEARTIFACT_READ_ACCESS_KEY: required: true - AWS_CODEARTIFACT_ACCESS_SECRET: + AWS_CODEARTIFACT_READ_ACCESS_SECRET: required: true workflow_dispatch: @@ -23,11 +23,8 @@ jobs: - name: Setup CodeArtifact auth for Poetry uses: ./.github/actions/setup-codeartifact-poetry-auth with: - aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} - aws-region: us-east-1 - domain: flexcompute - domain-owner: "625554095313" + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_SECRET }} - name: Install black run: poetry install - name: Run black @@ -46,11 +43,8 @@ jobs: - name: Setup CodeArtifact auth for Poetry uses: ./.github/actions/setup-codeartifact-poetry-auth with: - aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} - aws-region: us-east-1 - domain: flexcompute - domain-owner: "625554095313" + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_SECRET }} - name: Install isort run: poetry install - name: Check isort version @@ -71,11 +65,8 @@ jobs: - name: Setup CodeArtifact auth for Poetry uses: ./.github/actions/setup-codeartifact-poetry-auth with: - aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} - aws-region: us-east-1 - domain: flexcompute - domain-owner: "625554095313" + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_SECRET }} - name: Install dependencies run: poetry install - name: Run pylint diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 8537a4eaa..b0dca3822 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -329,8 +329,8 @@ jobs: - name: Setup CodeArtifact auth for Poetry uses: ./.github/actions/setup-codeartifact-poetry-auth with: - aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_SECRET }} aws-region: us-east-1 domain: flexcompute domain-owner: "625554095313" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 41db87d5f..8edc65d04 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,9 +8,9 @@ on: types: [ opened, synchronize, reopened, ready_for_review ] workflow_call: secrets: - AWS_CODEARTIFACT_ACCESS_KEY: + AWS_CODEARTIFACT_READ_ACCESS_KEY: required: true - AWS_CODEARTIFACT_ACCESS_SECRET: + AWS_CODEARTIFACT_READ_ACCESS_SECRET: required: true jobs: @@ -55,11 +55,8 @@ jobs: - name: Setup CodeArtifact auth for Poetry uses: ./.github/actions/setup-codeartifact-poetry-auth with: - aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_ACCESS_SECRET }} - aws-region: us-east-1 - domain: flexcompute - domain-owner: "625554095313" + aws-access-key-id: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_CODEARTIFACT_READ_ACCESS_SECRET }} - name: Install dependencies run: poetry install From c39501e7b2b268b62b4903d21a5e0a9f484375d9 Mon Sep 17 00:00:00 2001 From: benflexcompute Date: Thu, 12 Feb 2026 10:45:20 -0500 Subject: [PATCH 5/5] Format --- tests/test_artifact_import.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_artifact_import.py b/tests/test_artifact_import.py index e84f3117a..9a1f4df91 100644 --- a/tests/test_artifact_import.py +++ b/tests/test_artifact_import.py @@ -1,4 +1,3 @@ - import importlib