diff --git a/.github/actions/setup-poetry/action.yml b/.github/actions/setup-poetry/action.yml index 0578501c..960b9012 100644 --- a/.github/actions/setup-poetry/action.yml +++ b/.github/actions/setup-poetry/action.yml @@ -30,5 +30,5 @@ runs: shell: bash - name: Install dependencies - run: poetry install --no-interaction --no-root + run: poetry install --with tests,dev --no-interaction --no-root shell: bash diff --git a/Dockerfile b/Dockerfile index 1d883c66..4f343d27 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,7 @@ RUN microdnf update -y \ FROM python-base AS dependencies ARG POETRY_VERSION=1.7.1 +ARG INSTALL_PLUGINS=true # https://python-poetry.org/docs/configuration/#using-environment-variables ENV POETRY_VIRTUALENVS_IN_PROJECT=true \ @@ -39,14 +40,20 @@ COPY . "/build" # Install runtime deps and install the project in non-editable mode. # Ensure pip and setuptools are updated in the virtualenv as well. RUN python3.9 -m venv "$VENV_PATH" && \ + . "$VENV_PATH"/bin/activate && \ + python3.9 -m pip install --no-cache-dir --upgrade pip setuptools && \ + if [ "$INSTALL_PLUGINS" == "true" ]; then \ + poetry install --with plugins --no-root \ + else \ + poetry install --no-root \ + fi + +RUN python3.9 -m venv "$VENV_PATH" && \ . "$VENV_PATH"/bin/activate && \ - python3.9 -m pip install --no-cache-dir --upgrade pip setuptools && \ - poetry install --without tests,dev --no-root && \ poetry build -f wheel -n && \ pip install --no-cache-dir --no-deps dist/*.whl && \ rm -rf dist ./*.egg-info - FROM python-base AS final COPY --from=dependencies $PYSETUP_PATH $PYSETUP_PATH diff --git a/poetry.lock b/poetry.lock index 43a6d700..c9802032 100644 --- a/poetry.lock +++ b/poetry.lock @@ -526,6 +526,24 @@ requests = ">=2.32.2" [package.extras] dev = ["gitpython", "livereload", "markdown-include", "mkdocs (==1.5.0)", "mkdocs-material", "mkdocstrings[python-legacy] (==0.19.0)", "mypy", "pep8-naming", "pre-commit (>=2.4.0)", "pylint", "pymdown-extensions", "pytest (>=5.4.3)", "pytest-cov (>=2.10.0)", "pytest-random-order", "pytest-xdist", "python-dateutil", "python-semantic-release (>=9.8.0)", "setuptools (>=61)", "types-PyYAML", "types-paramiko", "types-requests", "types-setuptools", "urllib3 (==1.26.19)", "wheel", "yapf"] +[[package]] +name = "compliance-trestle-fedramp" +version = "0.3.0" +description = "Trestle plugin for FedRAMP validation and format conversion" +optional = false +python-versions = "*" +files = [ + {file = "compliance_trestle_fedramp-0.3.0-py2.py3-none-any.whl", hash = "sha256:16e0959600b56deb54a035a017989aa2deaeab1609e1a20f31925a0e92f2c3ec"}, + {file = "compliance_trestle_fedramp-0.3.0.tar.gz", hash = "sha256:773eae569e52a6178d8b4ae39d97355e143d8fc3d9dfd66db4352826b90a6575"}, +] + +[package.dependencies] +compliance-trestle = ">=3.3.0" +saxonche = ">=12.4.1.0" + +[package.extras] +dev = ["livereload", "markdown-include", "mkdocs", "mkdocs-material", "mkdocstrings", "mypy", "pep8-naming", "pre-commit (>=2.4.0)", "pylint", "pymdown-extensions", "pytest (>=5.4.3)", "pytest-cov (>=2.10.0)", "pytest-random-order", "pytest-xdist", "python-dateutil", "python-semantic-release (>=9.8.0)", "setuptools", "wheel", "yapf"] + [[package]] name = "coverage" version = "7.6.1" @@ -2468,6 +2486,40 @@ pydantic = "*" ruamel-yaml = ">=0.17.21" typing-extensions = ">=4.7.1" +[[package]] +name = "saxonche" +version = "12.5.0" +description = "Official Saxonica python package for the SaxonC-HE 12.5.0 processor: for XSLT 3.0, XQuery 3.1, XPath 3.1 and XML Schema processing." +optional = false +python-versions = ">=3.8" +files = [ + {file = "saxonche-12.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3f84604bc47721b2fc1df3106083e264d6dede5eec1934000376d61b3ad73c0b"}, + {file = "saxonche-12.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c03ce719be633ddfd70198cb469d1f27e67062e5220eb810001b16a1061f5f43"}, + {file = "saxonche-12.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:638895fc495e22a582e1d25dcc8b15c3fb94f645788bbff0efc0765287cd1fe1"}, + {file = "saxonche-12.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5079210932e6d6a77d638a5acc15a438a91ea47f4e322ae2ae8a8e2b1be40689"}, + {file = "saxonche-12.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:df4ac7ef8420477184f4aa48ed5e696fef7b787d61aadfb6b62695afbb204a79"}, + {file = "saxonche-12.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab8ff38eba50b86c547dfe62494e8525e49737fb8c111377a530f8e4aba5398"}, + {file = "saxonche-12.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:38a735bc7e7f7ec8fd31cf8d88d6880ea76d21f2c3da151c2d86a589f6cd6603"}, + {file = "saxonche-12.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bfa0f72280e518bc48cb2dc648534ec9cde8da3e7f1b4a60beca8ca29c9ede31"}, + {file = "saxonche-12.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:620849d0411e32a20193099106ddfe97d3ba07aa4b76ef0edab94920fdae0b34"}, + {file = "saxonche-12.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:a2d30fbe608390a9e32e27d8065696df398d3c56c5a776fd5e794e940d42b14b"}, + {file = "saxonche-12.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bc3f406ed0529ef56a796a3ddb66608047bc4d641ead57891b6924dfe0234f90"}, + {file = "saxonche-12.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:620d586392ef7084ba8d0c6747bed2193da49cd137866ba619c479185fa24ed4"}, + {file = "saxonche-12.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2374c58755944fa1bed6a5275eac2c988f132b461da15a33c66f79548b81f043"}, + {file = "saxonche-12.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78f4f606165f2d9c14c871132c3b3fd2ecaaa8a2f3d6a624c63f56524cef7470"}, + {file = "saxonche-12.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:bcdfc89a6ea6fb0e6b796cd55b6496cd21fc813110a692ed49a3457a47cafe31"}, + {file = "saxonche-12.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f05d0679d2355721adb6d1cd98968f698e46c7cc3c85d4f604315deef1ae82ec"}, + {file = "saxonche-12.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98d9647d37a166be9b2402bad389aaf28e5979258a672a6db86c1f48baf9db7e"}, + {file = "saxonche-12.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:957f28de384ad3c24125f761ad0d10a5d62e6aa5123775e845cb28303a8717c7"}, + {file = "saxonche-12.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7648002a76fcbd7c078fe91db52a93130a1b88932e5f7cd846f2ee5c91c89ff0"}, + {file = "saxonche-12.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:cbe5ff6b06a924e3f762ae359b5ec2fac9e5fe7febe6b0de95feca177fba7332"}, + {file = "saxonche-12.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4128c46466561b891ab07276043b94b37762187aa0a5a38331a3870e180907b1"}, + {file = "saxonche-12.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f926d4158a280bca25a8b1d87c98e0901c881c0d190f066dba415cb63d7361a"}, + {file = "saxonche-12.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f4f9852684d70d708f36abc35e1da059b793b5e67d0d490c091c466fbce6d0f"}, + {file = "saxonche-12.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc22f5ea64e118bcae1599962b8a6b3ccdcd9da6eef14328f9eebd59ee2a4c88"}, + {file = "saxonche-12.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:26e0b1cfb7f99aed581c5c175db811a5cddfe860816b19bbeab4fdb1a7327fd6"}, +] + [[package]] name = "setuptools" version = "74.1.2" @@ -2699,4 +2751,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "^3.8.1" -content-hash = "0690c021f277fdd5bf1d5f42f7a370d41cf7b10d136ee1acd500b299d9367856" +content-hash = "b092dc921c6e4e92c0ec1b6aa8303f5375ced613bb77b9cbafbed781c0d19886" diff --git a/pyproject.toml b/pyproject.toml index 524267a9..e1b4e0a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,6 +35,9 @@ python-gitlab = "^4.2.0" ruamel-yaml = "^0.18.5" pydantic = "^2.0.0" +[tool.poetry.group.dev] +optional = true + [tool.poetry.group.dev.dependencies] flake8 = "^7.0.0" black = "^24.3.0" @@ -46,12 +49,20 @@ pre-commit = "^3.4.0" mkdocs-material = "^9.5.31" markdown-include = "^0.8.1" +[tool.poetry.group.tests] +optional = true + [tool.poetry.group.tests.dependencies] pytest = "^8.3.2" pytest-cov = "^5.0.0" pytest-skip-slow = "^0.0.5" responses = "^0.25.0" +[tool.poetry.group.plugins] +optional = true + +[tool.poetry.group.plugins.dependencies] +compliance-trestle-fedramp = "^0.3.0" [tool.coverage.run] branch = true