diff --git a/.github/workflows/static-checks.yml b/.github/workflows/static-checks.yml index 244e36b..b7d89bc 100644 --- a/.github/workflows/static-checks.yml +++ b/.github/workflows/static-checks.yml @@ -43,8 +43,7 @@ jobs: # stop the build if there are Python syntax errors or undefined names poetry run flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - poetry run flake8 . --count --exit-zero --max-line-length=127 --statistics + poetry run flake8 . --count --statistics - name: Run isort run: | diff --git a/ChangeLog.md b/ChangeLog.md index 1e57a0b..0ff0c55 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -7,11 +7,31 @@ ## NEXT +* fix for `bom findsources` for some JavaScript SBOMs. +* `bom show` command also lists purl and source code download url in verbose mode. + If one of the values is missing and `--forceerror` has been specified, error code 97 is returned. +* `bom show` command also lists license information in verbose mode, but + only for CycloneDX 1.6 and later. +* `bom validate` now also uses `-v` and `--forceerror` and uses the same `bom show` functionality + to check for missing purl or source code url. +* until version 2.6.0, `project create` always set the Project Mainline State of a project release either + to SPECIFIC of to the value given by `-pms`. Now **existing** Project Mainline States are kept. +* `project create` has a new parameter `--copy_from` which allows to first create a copy of the given + project and then update the releases based on the contents of the given SBOM. +* fix for `bom map` losing SBOM items when it tries to map to invalid SW360 releases. +* fix issue with setting external references (in `bom granularity`). + +## 2.6.0 + * `bom merge` improved: the dependencies are reconstructed, i.e. all dependencies that existed in the SBOMs before the merge should also exist after the merge. * `bom convert` improved: we can now convert from and to CycloneDX XML. -* new command `bom validate` to do a siple validation whether a given SBOM +* new command `bom validate` to do a simple validation whether a given SBOM complies with the CycloneDX spec version 1.4, 1.5 or 1.6. +* `bom findsources`: programming language can be `golang` or `go`. +* support for the new CyCloneDX 1.6 external reference type `source-distribution` + when trying to find the source code for a component. +* Dependency updates. ## 2.6.0.dev1 diff --git a/DUMP.TXT b/DUMP.TXT deleted file mode 100644 index 45cb3ba..0000000 --- a/DUMP.TXT +++ /dev/null @@ -1,1031 +0,0 @@ - -CaPyCli, 2.5.1 - Determine Python components/dependencies - - -Checking meta-data: - backports-zoneinfo, 0.2.1 - Homepage missing - Source code URL missing - beautifulsoup4, 4.12.3 - Homepage missing - Source code URL missing - boolean-py, 4.0 - Homepage missing - Source code URL missing - certifi, 2024.8.30 - Homepage missing - Source code URL missing - chardet, 5.2.0 - Homepage missing - Source code URL missing - charset-normalizer, 3.4.0 - Homepage missing - Source code URL missing - cli-support, 2.0.1 - Homepage missing - Source code URL missing - cli-test-helpers, 3.5.0 - Homepage missing - Source code URL missing - codespell, 2.3.0 - Homepage missing - Source code URL missing - colorama, 0.4.6 - Homepage missing - Source code URL missing - coverage, 5.5 - Homepage missing - Source code URL missing - cyclonedx-python-lib, 8.0.0 - Homepage missing - Source code URL missing - dateparser, 1.2.0 - Homepage missing - Source code URL missing - defusedxml, 0.7.1 - Homepage missing - Source code URL missing - et-xmlfile, 1.1.0 - Homepage missing - Source code URL missing - exceptiongroup, 1.2.2 - Homepage missing - Source code URL missing - flake8, 5.0.4 - Homepage missing - Source code URL missing - idna, 3.10 - Homepage missing - Source code URL missing - importlib-resources, 5.13.0 - Homepage missing - Source code URL missing - iniconfig, 2.0.0 - Homepage missing - Source code URL missing - isort, 5.13.2 - Homepage missing - Source code URL missing - license-expression, 30.3.1 - Homepage missing - Source code URL missing - mccabe, 0.7.0 - Homepage missing - Source code URL missing - multidict, 6.1.0 - Homepage missing - Source code URL missing - mypy, 1.12.1 - Homepage missing - Source code URL missing - mypy-extensions, 1.0.0 - Homepage missing - Source code URL missing - openpyxl, 3.1.5 - Homepage missing - Source code URL missing - packageurl-python, 0.15.6 - Homepage missing - Source code URL missing - packaging, 24.1 - Homepage missing - Source code URL missing - pluggy, 1.5.0 - Homepage missing - Source code URL missing - propcache, 0.2.0 - Homepage missing - Source code URL missing - py-serializable, 1.1.2 - Homepage missing - Source code URL missing - pycodestyle, 2.9.1 - Homepage missing - Source code URL missing - pyflakes, 2.5.0 - Homepage missing - Source code URL missing - pyjwt, 1.7.1 - Homepage missing - Source code URL missing - pytest, 7.4.3 - Homepage missing - Source code URL missing - python-dateutil, 2.9.0.post0 - Homepage missing - Source code URL missing - pytz, 2024.2 - Homepage missing - Source code URL missing - pyyaml, 6.0.2 - Homepage missing - Source code URL missing - regex, 2024.9.11 - Homepage missing - Source code URL missing - requests, 2.32.3 - Homepage missing - Source code URL missing - requirements-parser, 0.11.0 - Homepage missing - Source code URL missing - responses, 0.24.1 - Homepage missing - Source code URL missing - semver, 3.0.2 - Homepage missing - Source code URL missing - six, 1.16.0 - Homepage missing - Source code URL missing - sortedcontainers, 2.4.0 - Homepage missing - Source code URL missing - soupsieve, 2.6 - Homepage missing - Source code URL missing - sw360, 1.6.0 - Homepage missing - Source code URL missing - tomli, 2.0.2 - Homepage missing - Source code URL missing - types-beautifulsoup4, 4.12.0.20241020 - Homepage missing - Source code URL missing - types-colorama, 0.4.15.20240311 - Homepage missing - Source code URL missing - types-html5lib, 1.1.11.20241018 - Homepage missing - Source code URL missing - types-openpyxl, 3.1.5.20241020 - Homepage missing - Source code URL missing - types-python-dateutil, 2.9.0.20241003 - Homepage missing - Source code URL missing - types-requests, 2.31.0.6 - Homepage missing - Source code URL missing - types-setuptools, 75.2.0.20241019 - Homepage missing - Source code URL missing - types-urllib3, 1.26.25.14 - Homepage missing - Source code URL missing - typing-extensions, 4.12.2 - Homepage missing - Source code URL missing - tzdata, 2024.2 - Homepage missing - Source code URL missing - tzlocal, 5.2 - Homepage missing - Source code URL missing - urllib3, 1.26.20 - Homepage missing - Source code URL missing - vcrpy, 4.4.0 - Homepage missing - Source code URL missing - wheel, 0.38.4 - Homepage missing - Source code URL missing - wrapt, 1.16.0 - Homepage missing - Source code URL missing - yarl, 1.15.2 - Homepage missing - Source code URL missing - zipp, 3.20.2 - Homepage missing - Source code URL missing - -Writing new SBOM to output.json -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... -Dumping to JSON with view: ... - 66 components items written to file. - diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..db6bbd9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM python:3.12-slim + +ARG VERSION + +ARG MY_PATH=/opt/capycli +ARG MY_VENV=${MY_PATH}/venv + +RUN mkdir -p "${MY_PATH}" +RUN python -m venv --without-pip "${MY_VENV}" +ENV VIRTUAL_ENV=${MY_VENV} +ENV PATH=${VIRTUAL_ENV}/bin:${PATH} + +COPY ./dist ${MY_PATH}/dist +RUN pip --python "${MY_VENV}" \ + install --no-cache-dir --no-input --progress-bar=off \ + --verbose --debug \ + --prefix "${MY_VENV}" --require-virtualenv \ + --compile \ + "capycli==${VERSION}" --find-links "file://${MY_PATH}/dist" +RUN rm -rf ${MY_PATH}/dist + +# reset entrypoint +ENTRYPOINT [] diff --git a/Readme.md b/Readme.md index 0aa8ad8..e0afdf5 100644 --- a/Readme.md +++ b/Readme.md @@ -145,7 +145,8 @@ Options: These options are not available for all commands. At the moment * `--forceexit` applies only to the `project vulnerabilities` command. -* `--forceerror` applies only to the `project prerequisites` and `project getlicenseinfo` commands. +* `--forceerror` applies only to the commands `project prerequisites`, `project getlicenseinfo` + and `bom show`. ## Use Cases diff --git a/SBOM/sbom_no_dev.cyclonedx.json b/SBOM/sbom_no_dev.cyclonedx.json index 85362fc..b08070e 100644 --- a/SBOM/sbom_no_dev.cyclonedx.json +++ b/SBOM/sbom_no_dev.cyclonedx.json @@ -1,2916 +1,5712 @@ { - "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", - "bomFormat": "CycloneDX", - "specVersion": "1.4", - "serialNumber": "urn:uuid:558fcf60-926c-4e28-bd86-a671213b1ba0", - "version": 1, - "metadata": { - "timestamp": "2024-02-21T12:45:16.637340+00:00", - "tools": [ - { - "vendor": "Siemens AG", - "name": "CaPyCLI", - "version": "2.2.0", - "externalReferences": [ - { - "url": "https://github.com/sw360/capycli", - "type": "website" - } - ] - }, - { - "vendor": "Siemens AG", - "name": "standard-bom", - "version": "2.0.0", - "externalReferences": [ - { - "url": "https://code.siemens.com/sbom/standard-bom", - "type": "website" - } - ] - } - ], - "licenses": [ - { - "license": { - "id": "CC0-1.0" - } - } - ], - "properties": [ - { - "name": "siemens:profile", - "value": "capycli" - } - ] - }, "components": [ { - "type": "library", - "bom-ref": "pkg:pypi/backports-zoneinfo@0.2.1", - "name": "backports-zoneinfo", - "version": "0.2.1", - "description": "Backport of the standard library zoneinfo module", - "licenses": [ - { - "license": { - "name": "Apache-2.0" - } - } - ], - "purl": "pkg:pypi/backports-zoneinfo@0.2.1", + "bom-ref": "pkg:pypi/attrs@24.2.0", + "description": "Classes Without Boilerplate", "externalReferences": [ { - "url": "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "attrs-24.2.0-py3-none-any.whl" }, { - "url": "backports.zoneinfo-0.2.1.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "attrs-24.2.0.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/ad/85/475e514c3140937cf435954f78dedea1861aeab7662d11de232bdaa90655/backports.zoneinfo-0.2.1.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl" }, { - "url": "https://pypi.org/project/backports.zoneinfo/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz" }, { - "url": "https://github.com/pganssle/zoneinfo", - "type": "website" + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/attrs/" } ], + "name": "attrs", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/attrs@24.2.0", + "type": "library", + "version": "24.2.0" }, { - "type": "library", - "bom-ref": "pkg:pypi/beautifulsoup4@4.12.2", - "name": "beautifulsoup4", - "version": "4.12.2", - "description": "Screen-scraping library", - "purl": "pkg:pypi/beautifulsoup4@4.12.2", + "bom-ref": "pkg:pypi/backports-zoneinfo@0.2.1", + "description": "Backport of the standard library zoneinfo module", "externalReferences": [ { - "url": "beautifulsoup4-4.12.2-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl" }, { - "url": "beautifulsoup4-4.12.2.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/57/f4/a69c20ee4f660081a7dedb1ac57f29be9378e04edfcb90c526b923d4bebc/beautifulsoup4-4.12.2-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/af/0b/44c39cf3b18a9280950ad63a579ce395dda4c32193ee9da7ff0aed547094/beautifulsoup4-4.12.2.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl" }, { - "url": "https://pypi.org/project/beautifulsoup4/", - "comment": "PyPi URL", - "type": "distribution" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/certifi@2023.11.17", - "name": "certifi", - "version": "2023.11.17", - "description": "Python package for providing Mozilla's CA Bundle.", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl" + }, { - "license": { - "name": "MPL-2.0" - } - } - ], - "purl": "pkg:pypi/certifi@2023.11.17", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl" + }, { - "url": "certifi-2023.11.17-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl" }, { - "url": "certifi-2023.11.17.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "backports.zoneinfo-0.2.1.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/64/62/428ef076be88fa93716b576e4a01f919d25968913e817077a386fcbe4f42/certifi-2023.11.17-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1a/ab/3e941e3fcf1b7d3ab3d0233194d99d6a0ed6b24f8f956fc81e47edc8c079/backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/d4/91/c89518dd4fe1f3a4e3f6ab7ff23cb00ef2e8c9adf99dacc618ad5e068e28/certifi-2023.11.17.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1c/96/baaca3ad1b06d97138d42a225e4d4d27cd1586b646740f771706cd2d812c/backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl" }, { - "url": "https://pypi.org/project/certifi/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/28/d5/e2f3d6a52870045afd8c37b2681c47fd0b98679cd4851e349bfd7e19cfd7/backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl" }, { - "url": "https://github.com/certifi/python-certifi", - "type": "website" - } - ], - "properties": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/33/1c/9357061860f5d3a09e1877aa4cf7c004c55eec40a1036761144ef24d8a1d/backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/chardet@5.2.0", - "name": "chardet", - "version": "5.2.0", - "description": "Universal encoding detector for Python 3", - "licenses": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4a/6d/eca004eeadcbf8bd64cc96feb9e355536147f0577420b44d80c7cac70767/backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl" + }, { - "license": { - "name": "LGPL" - } - } - ], - "purl": "pkg:pypi/chardet@5.2.0", - "externalReferences": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4c/7e/ed8af95bed90eeccfb4a4fe6ec424bc7a79e1aa983e54dd1d9062d9fa20b/backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl" + }, { - "url": "chardet-5.2.0-py3-none-any.whl", - "comment": "relativePath", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6c/99/513f2c4dd41522eefc42feb86854f6cf3b1add9c175c14d90c070775e484/backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl" }, { - "url": "chardet-5.2.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/74/a1/323f86a5ca5a559d452affb879512365a0473529398bfcf2d712a40ae088/backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/78/cc/e27fd6493bbce8dbea7e6c1bc861fe3d3bc22c4f7c81f4c3befb8ff5bfaf/backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ad/85/475e514c3140937cf435954f78dedea1861aeab7662d11de232bdaa90655/backports.zoneinfo-0.2.1.tar.gz" }, { - "url": "https://pypi.org/project/chardet/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c0/34/5fdb0a3a28841d215c255be8fc60b8666257bb6632193c86fd04b63d4a31/backports.zoneinfo-0.2.1-cp38-cp38-win32.whl" }, { - "url": "https://github.com/chardet/chardet", - "type": "website" - } - ], - "properties": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c1/8f/9b1b920a6a95652463143943fa3b8c000cb0b932ab463764a6f2a2416560/backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/charset-normalizer@3.3.2", - "name": "charset-normalizer", - "version": "3.3.2", - "description": "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.", - "licenses": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d1/04/8f2fed9c0cb9c88442fc8d6372cb0f5738fb05a65b45e2d371fbc8a15087/backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/charset-normalizer@3.3.2", - "externalReferences": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d4/79/249bd3c4f794741f04f1e0ff33ad3cca9b2d1f4299b73f78d0d9bc9ec8dc/backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl" + }, { - "url": "charset-normalizer-3.3.2.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ef/9a/8de8f379d5b3961a517762cc051b366de3f7d4d3a2250120e7a71e25fab4/backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl" }, { - "url": "charset_normalizer-3.3.2-py3-none-any.whl", - "comment": "relativePath", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f9/04/33e910faffe91a5680d68a064162525779259ae5de3b0c0c5bd9c4e900e0/backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl" }, { - "url": "https://pypi.org/project/charset-normalizer/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/backports.zoneinfo/" }, { - "url": "https://github.com/Ousret/charset_normalizer", - "type": "website" + "type": "website", + "url": "https://github.com/pganssle/zoneinfo" } ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } + } + ], + "name": "backports_zoneinfo", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/backports-zoneinfo@0.2.1", + "type": "library", + "version": "0.2.1" }, { - "type": "library", - "bom-ref": "pkg:pypi/cli-support@2.0.0", - "name": "cli-support", - "version": "2.0.0", - "description": "Support component license information (CLI) files", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/cli-support@2.0.0", + "bom-ref": "pkg:pypi/beautifulsoup4@4.12.3", + "description": "Screen-scraping library", "externalReferences": [ { - "url": "cli_support-2.0.0-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "beautifulsoup4-4.12.3-py3-none-any.whl" }, { - "url": "cli_support-2.0.0.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "beautifulsoup4-4.12.3.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/40/be/30a3f07379a6b1826a3898faa36ba947e60958b6ffa97bee2b3a4f99db5a/cli_support-2.0.0-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/a2/af/d488b9223fa92dfbc4502aed7639e8e7e1906df5563d6638db8a1e05aec2/cli_support-2.0.0.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz" }, { - "url": "https://pypi.org/project/cli-support/", "comment": "PyPi URL", - "type": "distribution" - }, + "type": "distribution", + "url": "https://pypi.org/project/beautifulsoup4/" + } + ], + "licenses": [ { - "url": "https://github.com/sw360/clipython", - "type": "website" + "license": { + "name": "MIT License" + } } ], + "name": "beautifulsoup4", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/beautifulsoup4@4.12.3", + "type": "library", + "version": "4.12.3" }, { - "type": "library", - "bom-ref": "pkg:pypi/colorama@0.4.6", - "name": "colorama", - "version": "0.4.6", - "description": "Cross-platform colored terminal text.", - "purl": "pkg:pypi/colorama@0.4.6", + "bom-ref": "pkg:pypi/boolean-py@4.0", + "description": "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL.", "externalReferences": [ { - "url": "colorama-0.4.6-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "boolean.py-4.0-py3-none-any.whl" }, { - "url": "colorama-0.4.6.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "boolean.py-4.0.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3f/02/6389ef0529af6da0b913374dedb9bbde8eabfe45767ceec38cc37801b0bd/boolean.py-4.0-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a2/d9/b6e56a303d221fc0bdff2c775e4eef7fedd58194aa5a96fa89fb71634cc9/boolean.py-4.0.tar.gz" }, { - "url": "https://pypi.org/project/colorama/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/boolean.py/" + }, + { + "type": "website", + "url": "https://github.com/bastikr/boolean.py" + } + ], + "licenses": [ + { + "license": { + "name": "BSD-2-Clause" + } } ], + "name": "boolean_py", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/boolean-py@4.0", + "type": "library", + "version": "4.0" }, { - "type": "library", - "bom-ref": "pkg:pypi/cyclonedx-bom@3.11.7", - "name": "cyclonedx-bom", - "version": "3.11.7", - "description": "CycloneDX Software Bill of Materials (SBOM) generation utility", - "licenses": [ - { - "license": { - "name": "Apache-2.0" - } - } - ], - "purl": "pkg:pypi/cyclonedx-bom@3.11.7", + "bom-ref": "pkg:pypi/certifi@2024.8.30", + "description": "Python package for providing Mozilla's CA Bundle.", "externalReferences": [ { - "url": "cyclonedx_bom-3.11.7-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "certifi-2024.8.30-py3-none-any.whl" }, { - "url": "cyclonedx_bom-3.11.7.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "certifi-2024.8.30.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/df/f5/6057f76ca661ec89d14241a3181ec85d2c46bb47f7996298d04857b919b2/cyclonedx_bom-3.11.7.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/e7/1b/832c209fdcc7722af0911bd28b38c26d8fef5088cb9eaa99919c0a3e7bbb/cyclonedx_bom-3.11.7-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" }, { - "url": "https://pypi.org/project/cyclonedx-bom/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/certifi/" }, { - "url": "https://github.com/CycloneDX/cyclonedx-python/#readme", - "type": "website" + "type": "website", + "url": "https://github.com/certifi/python-certifi" + } + ], + "licenses": [ + { + "license": { + "name": "MPL-2.0" + } } ], + "name": "certifi", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/certifi@2024.8.30", + "type": "library", + "version": "2024.8.30" }, { - "type": "library", - "bom-ref": "pkg:pypi/cyclonedx-python-lib@3.1.5", - "name": "cyclonedx-python-lib", - "version": "3.1.5", - "description": "A library for producing CycloneDX SBOM (Software Bill of Materials) files.", - "licenses": [ - { - "license": { - "name": "Apache-2.0" - } - } - ], - "purl": "pkg:pypi/cyclonedx-python-lib@3.1.5", + "bom-ref": "pkg:pypi/chardet@5.2.0", + "description": "Universal encoding detector for Python 3", "externalReferences": [ { - "url": "cyclonedx_python_lib-3.1.5-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "chardet-5.2.0-py3-none-any.whl" }, { - "url": "cyclonedx_python_lib-3.1.5.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "chardet-5.2.0.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/d8/f4/9edc007e4ff68cdc3b23960659f2bd1eb36f31e9f45b4c2d581bd78f983d/cyclonedx_python_lib-3.1.5-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/dd/0d/2d77978ff3ebe445c00ffc209eb205d126ef7a8ece69e7f3d014e561bada/cyclonedx_python_lib-3.1.5.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz" }, { - "url": "https://pypi.org/project/cyclonedx-python-lib/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/chardet/" }, { - "url": "https://github.com/CycloneDX/cyclonedx-python-lib", - "type": "website" + "type": "website", + "url": "https://github.com/chardet/chardet" } ], - "properties": [ + "licenses": [ { - "name": "siemens:primaryLanguage", - "value": "Python" + "license": { + "name": "LGPL" + } } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/dateparser@1.2.0", - "name": "dateparser", - "version": "1.2.0", - "description": "Date parsing library designed to parse dates from HTML pages", - "licenses": [ + ], + "name": "chardet", + "properties": [ { - "license": { - "name": "BSD" - } + "name": "siemens:primaryLanguage", + "value": "Python" } ], - "purl": "pkg:pypi/dateparser@1.2.0", + "purl": "pkg:pypi/chardet@5.2.0", + "type": "library", + "version": "5.2.0" + }, + { + "bom-ref": "pkg:pypi/charset-normalizer@3.4.0", + "description": "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.", "externalReferences": [ { - "url": "dateparser-1.2.0-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl" }, { - "url": "dateparser-1.2.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/1a/b2/f6b29ab17d7959eb1a0a5c64f5011dc85051ad4e25e401cbddcc515db00f/dateparser-1.2.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/a4/29/db12aa4dda81580be1999824a689bd52aa40061fc12c9ccdc3feab5ea718/dateparser-1.2.0-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://pypi.org/project/dateparser/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://github.com/scrapinghub/dateparser", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/et-xmlfile@1.1.0", - "name": "et-xmlfile", - "version": "1.1.0", - "description": "An implementation of lxml.xmlfile for the standard library", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/et-xmlfile@1.1.0", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, { - "url": "et_xmlfile-1.1.0-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl" }, { - "url": "et_xmlfile-1.1.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/3d/5d/0413a31d184a20c763ad741cc7852a659bf15094c24840c5bdd1754765cd/et_xmlfile-1.1.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/96/c2/3dd434b0108730014f1b96fd286040dc3bcb70066346f7e01ec2ac95865f/et_xmlfile-1.1.0-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl" }, { - "url": "https://pypi.org/project/et-xmlfile/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl" }, { - "url": "https://foss.heptapod.net/openpyxl/et_xmlfile", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-win32.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/idna@3.6", - "name": "idna", - "version": "3.6", - "description": "Internationalized Domain Names in Applications (IDNA)", - "purl": "pkg:pypi/idna@3.6", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl" + }, { - "url": "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" }, { - "url": "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" }, { - "url": "https://pypi.org/project/idna/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" }, { - "url": "idna-3.6-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "idna-3.6.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/importlib-resources@5.13.0", - "name": "importlib-resources", - "version": "5.13.0", - "description": "Read resources from Python packages", - "purl": "pkg:pypi/importlib-resources@5.13.0", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, { - "url": "https://files.pythonhosted.org/packages/7a/68/bd9dd6bbf06772c7accce77d0354d783333fbe712a60b08fc13540c05422/importlib_resources-5.13.0-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/a5/f1/8711c49ffd121083007a24c1bff0d324c9ff621d4fdf8b4ffcb8d9e60330/importlib_resources-5.13.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { - "url": "https://pypi.org/project/importlib-resources/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" }, { - "url": "importlib_resources-5.13.0-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl" }, { - "url": "importlib_resources-5.13.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl" }, { - "url": "https://github.com/python/importlib_resources", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/openpyxl@3.1.2", - "name": "openpyxl", - "version": "3.1.2", - "description": "A Python library to read/write Excel 2010 xlsx/xlsm files", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/openpyxl@3.1.2", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-win32.whl" + }, { - "url": "https://files.pythonhosted.org/packages/42/e8/af028681d493814ca9c2ff8106fc62a4a32e4e0ae14602c2a98fc7b741c8/openpyxl-3.1.2.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/6a/94/a59521de836ef0da54aaf50da6c4da8fb4072fb3053fa71f052fd9399e7a/openpyxl-3.1.2-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl" }, { - "url": "https://pypi.org/project/openpyxl/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "charset_normalizer-3.4.0-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "charset_normalizer-3.4.0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/03/f8/f9b90f5aed190d63e620d9f61db1cef5f30dbb19075e5c114329483d069a/charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/09/c8/0e17270496a05839f8b500c1166e3261d1226e39b698a735805ec206967b/charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0b/11/ca7786f7e13708687443082af20d8341c02e01024275a28bc75032c5ce5d/charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0c/48/0050550275fea585a6e24460b42465020b53375017d8596c96be57bfabca/charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0e/dd/7f6fec09a1686446cee713f38cf7d5e0669e0bcc8288c8e2924e998cf87d/charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0f/8e/44cde4d583038cbe37867efe7af4699212e6104fca0e7fc010e5f3d4a5c9/charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1c/9d/fb7f6b68f88e8becca86eb7cba1d5a5429fbfaaa6dd7a3a9f62adaee44d3/charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1e/70/17b1b9202531a33ed7ef41885f0d2575ae42a1e330c67fddda5d99ad1208/charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1f/18/0fc3d61a244ffdee01374b751387f9154ecb8a4d5f931227ecfd31ab46f0/charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/21/67/b4564d81f48042f520c948abac7079356e94b30cb8ffb22e747532cf469d/charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/23/81/d7eef6a99e42c77f444fdd7bc894b0ceca6c3a95c51239e74a722039521c/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/27/4b/522e1c868960b6be2f88cd407a284f99801421a6c5ae214f0c33de131fde/charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/27/9f/68c828438af904d830e680a8d2f6182be97f3205d6d62edfeb4a029b4192/charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/28/2c/c6c5b3d70a9e09fcde6b0901789d8c3c2f44ef12abae070a33a342d239a9/charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/28/89/60f51ad71f63aaaa7e51a2a2ad37919985a341a1d267070f212cdf6c2d22/charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/28/9b/64f11b42d34a9f1fcd05827dd695e91e0b30ac35a9a7aaeb93e84d9f8c76/charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/28/d3/efc854ab04626167ad1709e527c4f2a01f5e5cd9c1d5691094d1b7d49154/charset_normalizer-3.4.0-cp37-cp37m-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/32/c8/0bc558f7260db6ffca991ed7166494a7da4fda5983ee0b0bfc8ed2ac6ff9/charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3f/b5/354d544f60614aeb6bf73d3b6c955933e0af5eeaf2eec8c0637293a995bc/charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/44/30/574b5b5933d77ecb015550aafe1c7d14a8cd41e7e6c4dcea5ae9e8d496c3/charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4c/a8/440f1926d6d8740c34d3ca388fbd718191ec97d3d457a0677eb3aa718fce/charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/54/2f/28659eee7f5d003e0f5a3b572765bf76d6e0fe6601ab1f1b1dd4cba7e4f1/charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/54/9a/acfa96dc4ea8c928040b15822b59d0863d6e1757fba8bd7de3dc4f761c13/charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/67/56/fa28c2c3e31217c4c52158537a2cf5d98a6c1e89d31faf476c89391cd16b/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/69/8b/825cc84cf13a28bfbcba7c416ec22bf85a9584971be15b21dd8300c65b7f/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6d/02/8cb0988a1e49ac9ce2eed1e07b77ff118f2923e9ebd0ede41ba85f2dcb04/charset_normalizer-3.4.0-cp310-cp310-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/70/de/1538bb2f84ac9940f7fa39945a5dd1d22b295a89c98240b262fc4b9fcfe0/charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/73/1c/b10a63032eaebb8d7bcb8544f12f063f41f5f463778ac61da15d9985e8b6/charset_normalizer-3.4.0-cp39-cp39-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/73/8b/2102692cb6d7e9f03b9a33a710e0164cadfce312872e3efc7cfe22ed26b4/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7b/ab/f47b0159a69eab9bd915591106859f49670c75f9a19082505ff16f50efc0/charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/84/79/5c731059ebab43e80bf61fa51666b9b18167974b82004f18c76378ed31a3/charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/86/f4/ccab93e631e7293cca82f9f7ba39783c967f823a0000df2d8dd743cad74f/charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/93/5f/a2acc6e2a47d053760caece2d7b7194e9949945091eff452019765b87146/charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/94/d4/2b21cb277bac9605026d2d91a4a8872bc82199ed11072d035dc674c27223/charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9a/e0/a7c1fcdff20d9c667342e0391cfeb33ab01468d7d276b2c7914b371667cc/charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a4/23/65af317914a0308495133b2d654cf67b11bbd6ca16637c4e8a38f80a5a69/charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/aa/75/58374fdaaf8406f373e508dab3486a31091f760f99f832d3951ee93313e8/charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b2/8d/fb3d3d3d5a09202d7ef1983848b41a5928b0c907e5692a8d13b1c07a10de/charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b6/33/cf8f2602715863219804c1790374b611f08be515176229de078f807d71e3/charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c2/72/12a7f0943dd71fb5b4e7b55c41327ac0a1663046a868ee4d0d8e9c369b85/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c5/77/3a78bf28bfaa0863f9cfef278dbeadf55efe064eafff8c7c424ae3c4c1bf/charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c9/27/cde291783715b8ec30a61c810d0120411844bc4c23b50189b81188b273db/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ca/f3/0719cd09fc4dc42066f239cb3c48ced17fc3316afca3e2a30a4756fe49ab/charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d1/18/92869d5c0057baa973a3ee2af71573be7b084b3c3d428fe6463ce71167f8/charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d6/20/f1d4670a8a723c46be695dff449d86d6092916f9e99c53051954ee33a1bc/charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d6/27/327904c5a54a7796bb9f36810ec4173d2df5d88b401d2b95ef53111d214e/charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d8/96/cc2c1b5d994119ce9f088a9a0c3ebd489d360a2eb058e2c8049f27092847/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/dc/b5/47f8ee91455946f745e6c9ddbb0f8f50314d2416dd922b213e7d5551ad09/charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e9/7f/4b71e350a3377ddd70b980bea1e2cc0983faf45ba43032b24b2578c14314/charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e9/ca/288bb1a6bc2b74fb3990bdc515012b47c4bc5925c8304fc915d03f94b027/charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f2/41/6190102ad521a8aa888519bb014a74251ac4586cde9b38e790901684f9ab/charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f7/0e/c6357297f1157c8e8227ff337e93fd0a90e498e3d6ab96b2782204ecae48/charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f8/01/344ec40cf5d85c1da3c1f57566c59e0c9b56bcc5566c08804a95a6cc8257/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f9/c2/1727c1438256c71ed32753b23ec2e6fe7b6dff66a598f6566cfe8139305e/charset_normalizer-3.4.0-cp38-cp38-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f9/d2/466a9be1f32d89eb1554cf84073a5ed9262047acee1ab39cbaefc19635d2/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/charset-normalizer/" + }, + { + "type": "website", + "url": "https://github.com/Ousret/charset_normalizer" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "charset_normalizer", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/charset-normalizer@3.4.0", + "type": "library", + "version": "3.4.0" + }, + { + "bom-ref": "pkg:pypi/cli-support@2.0.1", + "description": "Support component license information (CLI) files", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "cli_support-2.0.1-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "cli_support-2.0.1.tar.gz" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/31/dc/42eae328c77b2bb8526907527ea1a68d24389801ef7d30adfecf24f66743/cli_support-2.0.1.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/42/f5/7945f2e47772c8da721a0e382b3d8e9aa1ef22cd689603a3fed7c10fec5a/cli_support-2.0.1-py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/cli-support/" + }, + { + "type": "website", + "url": "https://github.com/sw360/clipython" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "cli_support", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/cli-support@2.0.1", + "type": "library", + "version": "2.0.1" + }, + { + "bom-ref": "pkg:pypi/colorama@0.4.6", + "description": "Cross-platform colored terminal text.", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "colorama-0.4.6-py2.py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "colorama-0.4.6.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/colorama/" + } + ], + "name": "colorama", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/colorama@0.4.6", + "type": "library", + "version": "0.4.6" + }, + { + "bom-ref": "pkg:pypi/cyclonedx-python-lib@8.5.0", + "description": "Python library for CycloneDX", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "cyclonedx_python_lib-8.5.0-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "cyclonedx_python_lib-8.5.0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/48/7e/4e0561c3640f9f7795e3efce0d3045b0536f73cebf1ea142d55fe16c78b6/cyclonedx_python_lib-8.5.0-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/67/a8/c735131c5e2a4e778c335b9f2c0500829d947b095e20331c401cfd0b6ef6/cyclonedx_python_lib-8.5.0.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } + } + ], + "name": "cyclonedx_python_lib", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/cyclonedx-python-lib@8.5.0", + "type": "library", + "version": "8.5.0" + }, + { + "bom-ref": "pkg:pypi/dateparser@1.2.0", + "description": "Date parsing library designed to parse dates from HTML pages", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "dateparser-1.2.0-py2.py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "dateparser-1.2.0.tar.gz" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1a/b2/f6b29ab17d7959eb1a0a5c64f5011dc85051ad4e25e401cbddcc515db00f/dateparser-1.2.0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a4/29/db12aa4dda81580be1999824a689bd52aa40061fc12c9ccdc3feab5ea718/dateparser-1.2.0-py2.py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/dateparser/" + }, + { + "type": "website", + "url": "https://github.com/scrapinghub/dateparser" + } + ], + "licenses": [ + { + "license": { + "name": "BSD" + } + } + ], + "name": "dateparser", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/dateparser@1.2.0", + "type": "library", + "version": "1.2.0" + }, + { + "bom-ref": "pkg:pypi/defusedxml@0.7.1", + "description": "XML bomb protection for Python stdlib modules", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "defusedxml-0.7.1-py2.py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "defusedxml-0.7.1.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/defusedxml/" + }, + { + "type": "website", + "url": "https://github.com/tiran/defusedxml" + } + ], + "licenses": [ + { + "license": { + "name": "PSFL" + } + } + ], + "name": "defusedxml", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/defusedxml@0.7.1", + "type": "library", + "version": "0.7.1" + }, + { + "bom-ref": "pkg:pypi/et-xmlfile@2.0.0", + "description": "An implementation of lxml.xmlfile for the standard library", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "et_xmlfile-2.0.0-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "et_xmlfile-2.0.0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/et-xmlfile/" + }, + { + "type": "website", + "url": "https://foss.heptapod.net/openpyxl/et_xmlfile" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "et_xmlfile", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/et-xmlfile@2.0.0", + "type": "library", + "version": "2.0.0" + }, + { + "bom-ref": "pkg:pypi/idna@3.10", + "description": "Internationalized Domain Names in Applications (IDNA)", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/idna/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "idna-3.10-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "idna-3.10.tar.gz" + } + ], + "name": "idna", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/idna@3.10", + "type": "library", + "version": "3.10" + }, + { + "bom-ref": "pkg:pypi/importlib-resources@5.13.0", + "description": "Read resources from Python packages", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7a/68/bd9dd6bbf06772c7accce77d0354d783333fbe712a60b08fc13540c05422/importlib_resources-5.13.0-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a5/f1/8711c49ffd121083007a24c1bff0d324c9ff621d4fdf8b4ffcb8d9e60330/importlib_resources-5.13.0.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/importlib-resources/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "importlib_resources-5.13.0-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "importlib_resources-5.13.0.tar.gz" + }, + { + "type": "website", + "url": "https://github.com/python/importlib_resources" + } + ], + "name": "importlib_resources", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/importlib-resources@5.13.0", + "type": "library", + "version": "5.13.0" + }, + { + "bom-ref": "pkg:pypi/jsonschema@4.23.0", + "description": "An implementation of JSON Schema validation for Python", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/jsonschema/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "jsonschema-4.23.0-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "jsonschema-4.23.0.tar.gz" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "jsonschema", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/jsonschema@4.23.0", + "type": "library", + "version": "4.23.0" + }, + { + "bom-ref": "pkg:pypi/jsonschema-specifications@2023.12.1", + "description": "The JSON Schema meta-schemas and vocabularies, exposed as a Registry", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ee/07/44bd408781594c4d0a027666ef27fab1e441b109dc3b76b4f836f8fd04fe/jsonschema_specifications-2023.12.1-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f8/b9/cc0cc592e7c195fb8a650c1d5990b10175cf13b4c97465c72ec841de9e4b/jsonschema_specifications-2023.12.1.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/jsonschema-specifications/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "jsonschema_specifications-2023.12.1-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "jsonschema_specifications-2023.12.1.tar.gz" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "jsonschema_specifications", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/jsonschema-specifications@2023.12.1", + "type": "library", + "version": "2023.12.1" + }, + { + "bom-ref": "pkg:pypi/license-expression@30.3.1", + "description": "license-expression is a comprehensive utility library to parse, compare, simplify and normalize license expressions (such as SPDX license expressions) using boolean logic.", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/57/8b/dbe230196eee2de208ba87dcfae69c46db9d7ed70e2f30f143bf994ee075/license_expression-30.3.1.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/91/84/a7cf5dfa141501a20cb63595f02edfe38e0db2e3cc34e4f3cd273cc285df/license_expression-30.3.1-py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/license-expression/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "license_expression-30.3.1-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "license_expression-30.3.1.tar.gz" + }, + { + "type": "website", + "url": "https://github.com/aboutcode-org/license-expression" + } + ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } + } + ], + "name": "license_expression", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/license-expression@30.3.1", + "type": "library", + "version": "30.3.1" + }, + { + "bom-ref": "pkg:pypi/openpyxl@3.1.5", + "description": "A Python library to read/write Excel 2010 xlsx/xlsm files", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/openpyxl/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "openpyxl-3.1.5-py2.py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "openpyxl-3.1.5.tar.gz" + }, + { + "type": "website", + "url": "https://openpyxl.readthedocs.io" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "openpyxl", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/openpyxl@3.1.5", + "type": "library", + "version": "3.1.5" + }, + { + "bom-ref": "pkg:pypi/packageurl-python@0.15.6", + "description": "A purl aka. Package URL parser and builder", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4b/ca/b598e18eb0820a0116690a960d85625aae50dae8ba58195e254e35c2289a/packageurl_python-0.15.6-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/56/c5/c0f3ac14fd44f9b344069397fbe79aad1fd2c69220d145447c6c29cb541d/packageurl_python-0.15.6.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/packageurl-python/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "packageurl_python-0.15.6-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "packageurl_python-0.15.6.tar.gz" + }, + { + "type": "website", + "url": "https://github.com/package-url/packageurl-python" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "packageurl_python", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/packageurl-python@0.15.6", + "type": "library", + "version": "0.15.6" + }, + { + "bom-ref": "pkg:pypi/packaging@24.2", + "description": "Core utilities for Python packages", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/packaging/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "packaging-24.2-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "packaging-24.2.tar.gz" + } + ], + "name": "packaging", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/packaging@24.2", + "type": "library", + "version": "24.2" + }, + { + "bom-ref": "pkg:pypi/pkgutil-resolve-name@1.3.10", + "description": "Resolve a name to an object.", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/70/f2/f2891a9dc37398696ddd945012b90ef8d0a034f0012e3f83c3f7a70b0f79/pkgutil_resolve_name-1.3.10.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c9/5c/3d4882ba113fd55bdba9326c1e4c62a15e674a2501de4869e6bd6301f87e/pkgutil_resolve_name-1.3.10-py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/pkgutil_resolve_name/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "pkgutil_resolve_name-1.3.10-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "pkgutil_resolve_name-1.3.10.tar.gz" + }, + { + "type": "website", + "url": "https://github.com/graingert/pkgutil-resolve-name" + } + ], + "name": "pkgutil_resolve_name", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/pkgutil-resolve-name@1.3.10", + "type": "library", + "version": "1.3.10" + }, + { + "bom-ref": "pkg:pypi/py-serializable@1.1.2", + "description": "Library for serializing and deserializing Python Objects to and from JSON and XML.", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/16/cf/6e482507764034d6c41423a19f33fdd59655052fdb2ca4358faa3b0bcfd1/py_serializable-1.1.2.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/30/f2/3483060562245668bb07193b65277f0ea619cabf530deb351911eb0453eb/py_serializable-1.1.2-py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/py-serializable/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "py_serializable-1.1.2-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "py_serializable-1.1.2.tar.gz" + }, + { + "type": "website", + "url": "https://github.com/madpah/serializable#readme" + } + ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } + } + ], + "name": "py_serializable", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/py-serializable@1.1.2", + "type": "library", + "version": "1.1.2" + }, + { + "bom-ref": "pkg:pypi/pyjwt@1.7.1", + "description": "JSON Web Token implementation in Python", + "externalReferences": [ + { + "comment": "relativePath", + "type": "distribution", + "url": "PyJWT-1.7.1-py2.py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "PyJWT-1.7.1.tar.gz" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/2f/38/ff37a24c0243c5f45f5798bd120c0f873eeed073994133c084e1cf13b95c/PyJWT-1.7.1.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/87/8b/6a9f14b5f781697e51259d81657e6048fd31a113229cf346880bb7545565/PyJWT-1.7.1-py2.py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/PyJWT/" + }, + { + "type": "website", + "url": "http://github.com/jpadilla/pyjwt" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "pyjwt", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/pyjwt@1.7.1", + "type": "library", + "version": "1.7.1" + }, + { + "bom-ref": "pkg:pypi/python-dateutil@2.9.0.post0", + "description": "Extensions to the standard Python datetime module", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/python-dateutil/" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "python-dateutil-2.9.0.post0.tar.gz" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "python_dateutil-2.9.0.post0-py2.py3-none-any.whl" + }, + { + "type": "website", + "url": "https://github.com/dateutil/dateutil" + } + ], + "licenses": [ + { + "license": { + "name": "Dual License" + } + } + ], + "name": "python_dateutil", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/python-dateutil@2.9.0.post0", + "type": "library", + "version": "2.9.0.post0" + }, + { + "bom-ref": "pkg:pypi/pytz@2024.2", + "description": "World timezone definitions, modern and historical", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/pytz/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "pytz-2024.2-py2.py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "pytz-2024.2.tar.gz" + }, + { + "type": "website", + "url": "http://pythonhosted.org/pytz" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "pytz", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/pytz@2024.2", + "type": "library", + "version": "2024.2" + }, + { + "bom-ref": "pkg:pypi/referencing@0.35.1", + "description": "JSON Referencing + Python", + "externalReferences": [ + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/99/5b/73ca1f8e72fff6fa52119dbd185f73a907b1989428917b24cff660129b6d/referencing-0.35.1.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/referencing/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "referencing-0.35.1-py3-none-any.whl" + }, + { + "comment": "source archive (local copy)", + "type": "distribution", + "url": "referencing-0.35.1.tar.gz" + } + ], + "name": "referencing", + "properties": [ + { + "name": "siemens:primaryLanguage", + "value": "Python" + } + ], + "purl": "pkg:pypi/referencing@0.35.1", + "type": "library", + "version": "0.35.1" + }, + { + "bom-ref": "pkg:pypi/regex@2024.11.6", + "description": "Alternative regular expression module, to replace re.", + "externalReferences": [ + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/07/5d/0cd19cf44d96a7aa31526611c24235d21d27c23b65201cb2c5cac508dd42/regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/08/92/9df786fad8a4e0766bfc9a2e334c5f0757356070c9639b2ec776b8cdef3d/regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0a/27/0b3cf7d9fbe43301aa3473d54406019a7380abe4e3c9ae250bac13c4fdb3/regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/13/5d/61a533ccb8c231b474ac8e3a7d70155b00dfc61af6cafdccd1947df6d735/regex-2024.11.6-cp39-cp39-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/15/51/9f35d12da8434b489c7b7bffc205c474a0a9432a889457026e9bc06a297a/regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1b/2b/323e72d5d2fd8de0d9baa443e1ed70363ed7e7b2fb526f5950c5cb99c364/regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/2a/13/ec3f8d85b789ee1c6ffbdfd4092fd901416716317ee17bf51aa2890bac96/regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/2a/29/841489ea52013062b22625fbaf49b0916aeb62bae2e56425ac30f9dead46/regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3c/8b/45c24ab7a51a1658441b961b86209c43e6bb9d39caf1e63f46ce6ea03bc7/regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3e/4e/4a0da5e87f7c2dc73a8505785d5af2b1a19c66f4645b93caa50b7eb08242/regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3f/a4/e3b11c643e5ae1059a08aeef971973f0c803d2a9ae2e7a86f97c68146a6c/regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/42/7e/5f1b92c8468290c465fd50c5318da64319133231415a8aa6ea5ab995a815/regex-2024.11.6-cp310-cp310-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/44/0f/207b37e6e08d548fac0aa00bf0b7464126315d58ab5161216b8cb3abb2aa/regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/45/3f/ef9589aba93e084cd3f8471fded352826dcae8489b650d0b9b27bc5bba8a/regex-2024.11.6-cp310-cp310-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/49/70/c7eaa219efa67a215846766fde18d92d54cb590b6a04ffe43cef30057622/regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/49/dc/bb45572ceb49e0f6509f7596e4ba7031f6819ecb26bc7610979af5a77f45/regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/50/cb/7170247e65afea2bf9204bcb2682f292b0a3a57d112478da199b84d59792/regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5a/5a/586bafa294c5d2451265d3685815606c61e620f469cac3b946fff0a4aa48/regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5a/c8/dc7153ceb5bcc344f5c4f0291ea45925a5f00009afa3849e91561ac2e847/regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5a/db/f43fd75dc4c0c2d96d0881967897926942e935d700863666f3c844a72ce6/regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5c/93/c6d2092fd479dcaeea40fc8fa673822829181ded77d294a7f950f1dda6e2/regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5f/3f/9f5da81aff1d4167ac52711acf789df13e789fe6ac9545552e49138e3282/regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/74/c0/be707bcfe98254d8f9d2cff55d216e946f4ea48ad2fd8cf1428f8c5332ba/regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/78/a2/6dd36e16341ab95e4c6073426561b9bfdeb1a9c9b63ab1b579c2e96cb105/regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7a/d1/598de10b17fdafc452d11f7dada11c3be4e379a8671393e4e3da3c4070df/regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7e/f2/48b393b51900456155de3ad001900f94298965e1cad1c772b87f9cfea011/regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/86/44/2101cc0890c3621b90365c9ee8d7291a597c0722ad66eccd6ffa7f1bcc09/regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/87/55/eb2a068334274db86208ab9d5599ffa63631b9f0f67ed70ea7c82a69bbc8/regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/89/23/c4a86df398e57e26f93b13ae63acce58771e04bdde86092502496fa57f9c/regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/89/38/499b32cbb61163af60a5c5ff26aacea7836fe7e3d821e76af216e996088c/regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/89/96/c05a0fe173cd2acd29d5e13c1adad8b706bcaa71b169e1ee57dcf2e74584/regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/89/e5/ef52c7eb117dd20ff1697968219971d052138965a4d3d9b95e92e549f505/regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/90/30/63373b9ea468fbef8a907fd273e5c329b8c9535fee36fc8dba5fecac475d/regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/94/6e/444e66346600d11e8a0f4bb31611973cffa772d5033ba1cf1f15de8a0d52/regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/95/3c/4651f6b130c6842a8f3df82461a8950f923925db8b6961063e82744bddcc/regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/99/d7/f94154db29ab5a89d69ff893159b19ada89e76b915c1293e98603d39838c/regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a6/49/1bc4584254355e3dba930a3a2fd7ad26ccba3ebbab7d9100db0aff2eedb0/regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b5/f3/a757748066255f97f14506483436c5f6aded7af9e37bca04ec30c90ca683/regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/bd/18/b731f5510d1b8fb63c6b6d3484bfa9a59b84cc578ac8b5172970e05ae07c/regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c8/dd/42879c1fc8a37a887cd08e358af3d3ba9e23038cd77c7fe044a86d9450ba/regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/cc/06/c817c9201f09b7d9dd033039ba90d8197c91e9fe2984141f2d1de270c159/regex-2024.11.6-cp38-cp38-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ce/2e/3e0668d8d1c7c3c0d397bf54d92fc182575b3a26939aed5000d3cc78760f/regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/cf/69/c39e16320400842eb4358c982ef5fc680800866f35ebfd4dd38a22967ce0/regex-2024.11.6-cp38-cp38-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/da/28/95c3ed6cd51b27f54e59940400e2a3ddd3f8bbbc3aaf947e57a67104ecbd/regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/dc/7b/e59b7f7c91ae110d154370c24133f947262525b5d6406df65f23422acc17/regex-2024.11.6-cp39-cp39-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f2/98/26d3830875b53071f1f0ae6d547f1d98e964dd29ad35cbf94439120bb67a/regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f7/17/3cbfab1f23356fbbf07708220ab438a7efa1e0f34195bf857433f79f1788/regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ff/9c/daa99532c72f25051a90ef90e1413a8d54413a9e64614d9095b0c1c154d0/regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/regex/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp310-cp310-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp311-cp311-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp312-cp312-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-win32.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp313-cp313-win_amd64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "openpyxl-3.1.2-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "openpyxl-3.1.2.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://openpyxl.readthedocs.io", - "type": "website" - } - ], - "properties": [ - { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/packageurl-python@0.13.1", - "name": "packageurl-python", - "version": "0.13.1", - "description": "A purl aka. Package URL parser and builder", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/packageurl-python@0.13.1", - "externalReferences": [ - { - "url": "https://files.pythonhosted.org/packages/52/b9/209a78e8f1c296521d349b5608b2d22a166879d2b10a70ecce5436ee8e1b/packageurl_python-0.13.1-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/e5/9d/9ef479ff1378b70adea861c2d1548033763ebf3f703d4d7b913eaae73e01/packageurl-python-0.13.1.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { - "url": "https://pypi.org/project/packageurl-python/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" }, { - "url": "packageurl-python-0.13.1.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl" }, { - "url": "packageurl_python-0.13.1-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl" }, { - "url": "https://github.com/package-url/packageurl-python", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/packaging@23.2", - "name": "packaging", - "version": "23.2", - "description": "Core utilities for Python packages", - "purl": "pkg:pypi/packaging@23.2", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl" + }, { - "url": "https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/fb/2b/9b9c33ffed44ee921d0967086d653047286054117d584f1b1a7c22ceaf7b/packaging-23.2.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-win32.whl" }, { - "url": "https://pypi.org/project/packaging/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp38-cp38-win_amd64.whl" }, { - "url": "packaging-23.2-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl" }, { - "url": "packaging-23.2.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/pip-requirements-parser@32.0.1", - "name": "pip-requirements-parser", - "version": "32.0.1", - "description": "pip requirements parser - a mostly correct pip requirements parsing library because it uses pip's own code.", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/pip-requirements-parser@32.0.1", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, { - "url": "https://files.pythonhosted.org/packages/54/d0/d04f1d1e064ac901439699ee097f58688caadea42498ec9c4b4ad2ef84ab/pip_requirements_parser-32.0.1-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/5e/2a/63b574101850e7f7b306ddbdb02cb294380d37948140eecd468fae392b54/pip-requirements-parser-32.0.1.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://pypi.org/project/pip-requirements-parser/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "pip-requirements-parser-32.0.1.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { - "url": "pip_requirements_parser-32.0.1-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" }, { - "url": "https://github.com/nexB/pip-requirements-parser", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/pyjwt@1.7.1", - "name": "pyjwt", - "version": "1.7.1", - "description": "JSON Web Token implementation in Python", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/pyjwt@1.7.1", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl" + }, { - "url": "PyJWT-1.7.1-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl" }, { - "url": "PyJWT-1.7.1.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/2f/38/ff37a24c0243c5f45f5798bd120c0f873eeed073994133c084e1cf13b95c/PyJWT-1.7.1.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/87/8b/6a9f14b5f781697e51259d81657e6048fd31a113229cf346880bb7545565/PyJWT-1.7.1-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "regex-2024.11.6-cp39-cp39-win_amd64.whl" }, { - "url": "https://pypi.org/project/PyJWT/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "source archive (local copy)", + "type": "distribution", + "url": "regex-2024.11.6.tar.gz" }, { - "url": "http://github.com/jpadilla/pyjwt", - "type": "website" + "type": "website", + "url": "https://github.com/mrabarnett/mrab-regex" + } + ], + "licenses": [ + { + "license": { + "name": "Apache Software License" + } } ], + "name": "regex", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/regex@2024.11.6", + "type": "library", + "version": "2024.11.6" }, { - "type": "library", - "bom-ref": "pkg:pypi/pyparsing@3.1.1", - "name": "pyparsing", - "version": "3.1.1", - "description": "pyparsing module - Classes and methods to define and execute parsing grammars", - "purl": "pkg:pypi/pyparsing@3.1.1", + "bom-ref": "pkg:pypi/requests@2.32.3", + "description": "Python HTTP for Humans.", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/37/fe/65c989f70bd630b589adfbbcd6ed238af22319e90f059946c26b4835e44b/pyparsing-3.1.1.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl" }, { - "url": "https://pypi.org/project/pyparsing/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/requests/" }, { - "url": "pyparsing-3.1.1-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "requests-2.32.3-py3-none-any.whl" }, { - "url": "pyparsing-3.1.1.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "requests-2.32.3.tar.gz" + }, + { + "type": "website", + "url": "https://requests.readthedocs.io" } ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } + } + ], + "name": "requests", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/requests@2.32.3", + "type": "library", + "version": "2.32.3" }, { - "type": "library", - "bom-ref": "pkg:pypi/python-dateutil@2.8.2", - "name": "python-dateutil", - "version": "2.8.2", - "description": "Extensions to the standard Python datetime module", - "licenses": [ - { - "license": { - "name": "Dual License" - } - } - ], - "purl": "pkg:pypi/python-dateutil@2.8.2", + "bom-ref": "pkg:pypi/requirements-parser@0.11.0", + "description": "This is a small Python module for parsing Pip requirement files.", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/05/70/80ed53ebd21853855aad552d4ed6c4934df62cd32fe9a3669fcdef59429c/requirements_parser-0.11.0.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/4c/c4/13b4776ea2d76c115c1d1b84579f3764ee6d57204f6be27119f13a61d0a9/python-dateutil-2.8.2.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/88/33/190393a7d36872e237cbc99e6c44d9a078a1ba7b406462fe6eafd5a28e04/requirements_parser-0.11.0-py3-none-any.whl" }, { - "url": "https://pypi.org/project/python-dateutil/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/requirements-parser/" }, { - "url": "python-dateutil-2.8.2.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "requirements_parser-0.11.0-py3-none-any.whl" }, { - "url": "python_dateutil-2.8.2-py2.py3-none-any.whl", - "comment": "relativePath", - "type": "distribution" + "comment": "source archive (local copy)", + "type": "distribution", + "url": "requirements_parser-0.11.0.tar.gz" }, { - "url": "https://github.com/dateutil/dateutil", - "type": "website" + "type": "website", + "url": "https://github.com/madpah/requirements-parser/#readme" + } + ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } } ], + "name": "requirements_parser", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/requirements-parser@0.11.0", + "type": "library", + "version": "0.11.0" }, { - "type": "library", - "bom-ref": "pkg:pypi/pytz@2023.3.post1", - "name": "pytz", - "version": "2023.3.post1", - "description": "World timezone definitions, modern and historical", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/pytz@2023.3.post1", + "bom-ref": "pkg:pypi/rpds-py@0.20.1", + "description": "Python bindings to Rust's persistent data structures (rpds)", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/32/4d/aaf7eff5deb402fd9a24a1449a8119f00d74ae9c2efa79f8ef9994261fc2/pytz-2023.3.post1-py2.py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/02/f1/1b47b9e5b941c2659c9b7e4ef41b6f07385a6500c638fa10c066e4616ecb/rpds_py-0.20.1-cp311-none-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/69/4f/7bf883f12ad496ecc9514cd9e267b29a68b3e9629661a2bbc24f80eff168/pytz-2023.3.post1.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/05/01/e64bb8889f2dcc951e53de33d8b8070456397ae4e10edc35e6cb9908f5c8/rpds_py-0.20.1-cp39-none-win_amd64.whl" }, { - "url": "https://pypi.org/project/pytz/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/05/c3/10c68a08849f1fa45d205e54141fa75d316013e3d701ef01770ee1220bb8/rpds_py-0.20.1-pp39-pypy39_pp73-win_amd64.whl" }, { - "url": "pytz-2023.3.post1-py2.py3-none-any.whl", - "comment": "relativePath", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/06/31/3bd721575671f22a37476c2d7b9e34bfa5185bdcee09f7fedde3b29f3adb/rpds_py-0.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "pytz-2023.3.post1.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/07/dd/9f6520712a5108cd7d407c9db44a3d59011b385c58e320d58ebf67757a9e/rpds_py-0.20.1-cp312-cp312-musllinux_1_2_i686.whl" }, { - "url": "http://pythonhosted.org/pytz", - "type": "website" - } - ], - "properties": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/08/a7/988e179c9bef55821abe41762228d65077e0570ca75c9efbcd1bc6e263b4/rpds_py-0.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/regex@2023.12.25", - "name": "regex", - "version": "2023.12.25", - "description": "Alternative regular expression module, to replace re.", - "licenses": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0b/83/1cc776dce7bedb17d6f4ea62eafccee8a57a4678f4fac414ab69fb9b6b0b/rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl" + }, { - "license": { - "name": "Apache Software License" - } - } - ], - "purl": "pkg:pypi/regex@2023.12.25", - "externalReferences": [ + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/0d/f2/e9b90fd8416d59941b6a12f2c2e1d898b63fd092f5a7a6f98236cb865764/rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, { - "url": "https://files.pythonhosted.org/packages/00/d4/d876ce23d76103db84f3b2aeb3cba7c6b9b5750a2e2125ef6bfa2be53deb/regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/10/e1/8dde6174e7ac5b9acd3269afca2e17719bc7e5088c68f44874d2ad9e4560/rpds_py-0.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/05/3c/e77e4c13492d34171af2765c4263d35573b4b8d813f58bb33dae3da5c897/regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/11/f0/06675c6a58d6ce34547879138810eb9aab0c10e5607ea6c2e4dc56b703c8/rpds_py-0.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/05/9e/80c20f1151432a6025690c9c2037053039b028a7b236fa81d7e7ac9dec60/regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/15/c7/19fb4f1247a3c90a99eca62909bf76ee988f9b663e47878a673d9854ec5c/rpds_py-0.20.1-cp310-cp310-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/0b/d4/5498d06a7a05be1b3e1e553d60fb61292afe5ca9fdc2aea5283f30651f1b/regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/16/49/d9938603731745c7b6babff97ca61ff3eb4619e7128b5ab0111ad4e91d6d/rpds_py-0.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/0c/48/8413b04134176a59bb40a42f680a3b3ce132c1a3d73ab9d5f5db40874b7c/regex-2023.12.25-cp38-cp38-win32.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/17/5c/e0cdd6b0a8373fdef3667af2778dd9ff3abf1bbb9c7bd92c603c91440eb0/rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/12/ea/73cc9fea46f631a2b36347b7de9d20c9120a45b53924496fe75b9b467682/regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/17/69/85cf3429e9ccda684ba63ff36b5866d5f9451e921cc99819341e19880334/rpds_py-0.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/1b/aa/f9beeee2217de48fd47d68fc5ea9655f66440b33fa8212bad42427fe3587/regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/18/c0/13f1bce9c901511e5e4c0b77a99dbb946bb9a177ca88c6b480e9cb53e304/rpds_py-0.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/1d/af/4bd17254cdda1d8092460ee5561f013c4ca9c33ecf1aab81b44280327cab/regex-2023.12.25-cp312-cp312-win_amd64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/19/51/a3cc1a5238acfc2582033e8934d034301f9d4931b9bf7c7ccfabc4ca0880/rpds_py-0.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/23/ef/41e00af6e1eb77acf7295ff50ed3c443b56763dd0c65371058c378b5ce6c/regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1b/a8/81fc9cbc01e7ef6d10652aedc1de4e8473934773e2808ba49094e03575df/rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/27/98/e2f151d958bea25682118c68f22e49fe98d8797aadfbf0d5df0288118c6d/regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1f/ba/9cbb57423c4bfbd81c473913bebaed151ad4158ee2590a4e4b3e70238b48/rpds_py-0.20.1-cp312-none-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/2a/3a/9601d6e8a49ce7a124268c4c79d54f22416242e5096cd4fca07f7bfac46b/regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/20/22/3eeb0385f33251b4fd0f728e6a3801dc8acc05e714eb7867cefe635bf4ab/rpds_py-0.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/2b/4c/a029f68882fd9689e895ea4f304987fe853a03cee010b0c00c5278d03554/regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/20/af/2ae192797bffd0d6d558145b5a36e7245346ff3e44f6ddcb82f0eb8512d4/rpds_py-0.20.1-cp312-cp312-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/2d/06/8c07ade57639bd30543b96715a0c1eef72d65aabdf7ff6f0b6b1f8bd371f/regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/25/8e/41d7e3e6d3a4a6c94375020477705a3fbb6515717901ab8f94821cf0a0d9/rpds_py-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/2e/15/58c7b42d4ebc85b88696483c739d2c3b1db7234d7ab3c1aef50cf9b88d51/regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/25/97/5dfdb091c30267ff404d2fd9e70c7a6d6ffc65ca77fffe9456e13b719066/rpds_py-0.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/25/cb/8e919951f55d109d658f81c9b49d0cc3b48637c50792c5d2e77032b8c5da/rpds_py-0.20.1.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/30/ca/330269e793b12059dd2a220fa6a62d31e7397afe59b92e993ec66b71d9b1/regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/27/9f/ce3e2ae36f392c3ef1988c06e9e0b4c74f64267dad7c223003c34da11adb/rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/32/91/7a7e2c80280df22b93c4aff5c8d1ef42f741a938f20ad7de68adc55e2a7b/regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/2b/e7/b4eb3e6ff541c83d3b46f45f855547e412ab60c45bef64520fafb00b9b42/rpds_py-0.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/35/e1/ba18181ac00d2a8d4a920fec1a3cd3a0e279fe4f4b939dc2ea353f41041c/regex-2023.12.25-cp39-cp39-win_amd64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/31/7c/f6d909cb57761293308dbef14f1663d84376f2e231892a10aafc57b42037/rpds_py-0.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/3d/d8/e5f7fcd33adaa3ce346ff5baf4319956873c49cbb0ed11566f921883096b/regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/43/15/112b7c553066cb91264691ba7fb119579c440a0ae889da222fa6fc0d411a/rpds_py-0.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/3f/b1/df76e0c38fcb7b64b23bd86de820c1cfa7b3b35005122b468df8e93f2bfa/regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/48/0f/9d04d0939682f0c97be827fc51ff986555ffb573e6781bd5132441f0ce25/rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/40/ef/acde6b823da62186d4309de039e470e3f08311e5b40b754aec187d82939f/regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4c/28/0630719c18456238bb07d59c4302fed50a13aa8035ec23dbfa80d116f9bc/rpds_py-0.20.1-cp39-cp39-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/43/4a/a8005c5aa6bb602fcfab48fa729a05eceade6400d6468dbe713f1796795f/regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4c/72/027185f213d53ae66765c575229829b202fbacf3d55fe2bd9ff4e29bb157/rpds_py-0.20.1-cp310-cp310-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/48/d7/41efecdd60b117d60618620b0d2af5d0638d1955c9266a5492235ed38fc8/regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4f/6a/8839340464d4e1bbfaf0482e9d9165a2309c2c17427e4dcb72ce3e5cc5d6/rpds_py-0.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/49/cd/4740e6bf0a6d8f00e07be0ea9072548a7d0f80bf7f899291a9381a5e7b92/regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/4f/71/4c44643bffbcb37311fc7fe221bcf139c8d660bc78f746dd3a05741372c8/rpds_py-0.20.1-cp310-none-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/4a/61/06e359b43c1a2cc288899846eea298aead9821098f58ccffecd167505aba/regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/50/80/fb62ab48f3b5cfe704ead6ad372da1922ddaa76397055e02eb507054c979/rpds_py-0.20.1-cp313-none-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/4c/6c/c3c1c4f8249371546a6a4b43ce360d8fa8970ffef1e4a276f4cc9e9b8565/regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/53/ef/b1883734ea0cd9996de793cdc38c32a28143b04911d1e570090acd8a9162/rpds_py-0.20.1-cp38-cp38-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/50/b7/2031d4f803db9eb66cfc1ebf56ca0ce5261961c44088d22a412e962bcd85/regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/54/63/47d34dc4ddb3da73e78e10c9009dcf8edc42d355a221351c05c822c2a50b/rpds_py-0.20.1-cp38-cp38-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/57/59/2fb680ddb311087fa92d36ac471d2c973cfe6b8ff4a8c2b6d6ad125d67e2/regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/57/ac/a716b4729ff23ec034b7d2ff76a86e6f0753c4098401bdfdf55b2efe90e6/rpds_py-0.20.1-cp38-cp38-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/57/c9/99a839d1a5dbdec67c4959bbb371818b435f6128616ac95140406bd2d1cc/regex-2023.12.25-cp37-cp37m-win_amd64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5e/0e/b1bdc7ea0db0946d640ab8965146099093391bb5d265832994c47461e3c5/rpds_py-0.20.1-cp312-cp312-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/59/d6/3d8fb38120053e4d7b196f32fa5c3a760f8349cdee02c021617e6e653e61/regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5f/c3/222e25124283afc76c473fcd2c547e82ec57683fa31cb4d6c6eb44e5d57a/rpds_py-0.20.1-cp38-none-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/5b/40/f1f77be3c32770c44c6d06047a8630beac0100298eaa9faf5b6f4a8c8cd8/regex-2023.12.25-cp38-cp38-win_amd64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5f/d5/89d44504d0bc7a1135062cb520a17903ff002f458371b8d9160af3b71e52/rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/60/79/137700bb0f13ccafeecec8a1302655c2486452d41f28f5775173fa953142/regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/64/96/7a7f938d3796a6a3ec08ed0e8a5ecd436fbd516a3684ab1fa22d46d6f6cc/rpds_py-0.20.1-cp310-cp310-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/60/9e/4b0223e05776aa3be806a902093b2ab1de3ba26b652d92065d5c7e1d4df3/regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/67/0e/6f069feaff5c298375cd8c55e00ecd9bd79c792ce0893d39448dc0097857/rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/64/c7/700257786f4d4974993364469438ac7498288c2b4aa683dc3230de3fd42d/regex-2023.12.25-cp312-cp312-win32.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/67/29/00a9e986df36721b5def82fff60995c1ee8827a7d909a6ec8929fb4cc668/rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/66/65/90e759a89534b850fa20e533e587748e967c44f58333b40f6d62718df1b1/regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/68/11/d3f84c69de2b2086be3d6bd5e9d172825c096b13842ab7e5f8f39f06035b/rpds_py-0.20.1-cp311-cp311-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/6e/62/4227b2ad7232fa8cdd34ab35cea2269b605900d7139af3e3fae0fa53a81c/regex-2023.12.25-cp37-cp37m-win32.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6c/8a/abcd5119a0573f9588ad71a3fde3c07ddd1d1393cfee15a6ba7495c256f1/rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/6e/82/2e9bf54a8e9a3d64c31c5f3978aa2cec633078d8bd2d3dbf5b3d62df2ec0/regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6c/ee/f4bab2b9e51ced30351cfd210647885391463ae682028c79760e7db28e4e/rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/70/0f/311ada39601c7bd7904b6ab3b01b414438a16efab5f2009f35a273999942/regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/70/f1/8fe7d04c194218171220a412057429defa9e2da785de0777c4d39309337e/rpds_py-0.20.1-cp39-cp39-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/7a/00/8b2322e246d0a392c91bdb43750bb900fab5d48d693c1497b3ea6656f851/regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/75/fd/84f42386165d6d555acb76c6d39c90b10c9dcf25116daf4f48a0a9d6867a/rpds_py-0.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/7b/e6/f22ad63b72ff39101d7b7dbeff81a78bc8b82b1106c8b73d1c460983c885/regex-2023.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7b/8b/6da8636b2ea2e2f709e56656e663b6a71ecd9a9f9d9dc21488aade122026/rpds_py-0.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/81/8a/96a62ce98e8ff1b16db56fde3debc8a571f6b7ea42ee137eb0d995cdfa26/regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/7c/98/cf2608722400f5f9bb4c82aa5ac09026f3ac2ebea9d4059d3533589ed0b6/rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/82/71/3f613eb12ee0513c4cf7eea5be8bb067a6e07523279f6743d7d3d7c62b22/regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/85/f6/c751c1adfa31610055acfa1cc667cf2c2d7011a73070679c448cf5856905/rpds_py-0.20.1-cp311-none-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/83/3e/3b0cd5bac2e1c3dda2340e8d46d922b37ccda31ffe24adfcd1c54a6fcae4/regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/86/98/1ef4028e9d5b76470bf7f8f2459be07ac5c9621270a2a5e093f8d8a8cc2c/rpds_py-0.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/83/eb/144d2db5cf2ac3989d0ea4273040218d68bd67422133548da47043423594/regex-2023.12.25-cp310-cp310-win_amd64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/87/81/dc30bc449ccba63ad23a0f6633486d4e0e6955f45f3715a130dacabd6ad0/rpds_py-0.20.1-cp313-cp313-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/84/0e/1e435f46997cf601aedb0d0efee86f137d982c3bd5864a4534081f8bb9db/regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/87/d2/480b36c69cdc373853401b6aab6a281cf60f6d72b1545d82c0d23d9dd77c/rpds_py-0.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/8a/8d/8c70bce12045fa622949d3fd3e4e64a01b506a3e670dada8c5f9b3be1e34/regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/89/de/0e13dd43c785c60e63933e96fbddda0b019df6862f4d3019bb49c3861131/rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/8b/b8/14527ca54351156f65c90f8728ee62e646a484dbce0e4cbffb34489e5bb0/regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/8a/fc/fe3c83c77f82b8059eeec4e998064913d66212b69b3653df48f58ad33d3d/rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/8d/4d/5546af3d7b50ccc10eb511bec0a1029821882be76c49d8c79116163e6a62/regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/8f/8f/e1c2db4fcca3947d9a28ec9553700b4dc8038f0eff575f579e75885b0661/rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/8d/6b/2f6478814954c07c04ba60b78d688d3d7bab10d786e0b6c1db607e4f6673/regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/93/a0/17836b7961fc82586e9b818abdee2a27e2e605a602bb8c0d43f02092f8c2/rpds_py-0.20.1-cp39-cp39-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/8d/fc/8ade283909c52f795bdc9b9fe44f85c6da5417f9be84c3d245706406551e/regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/94/30/5189518bfb80a41f664daf32b46645c7fbdcc89028a0f1bfa82e806e0fbb/rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/92/2a/6431462df58f29515be33fa8b3800efa73b2be47664e71af557101e2a733/regex-2023.12.25-cp311-cp311-win32.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/95/1b/463b11e7039e18f9e778568dbf7338c29bbc1f8996381115201c668eb8c8/rpds_py-0.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/97/33/101559f6506a98b55613efa484d072d23fdeca3ef6876d43a8c49c7ec65f/regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/96/b0/e4077f7f1b9622112ae83254aedfb691490278793299bc06dcf54ec8c8e4/rpds_py-0.20.1-cp38-cp38-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/9b/71/b55b5ffc75918a96ea99794783524609ac3ff9e2d8f51e7ece8648a968f6/regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9d/65/1c2bb10afd4bd32800227a658ae9097bc1d08a4e5048a57a9bd2efdf6306/rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/a2/da/2b04560d91bdf49d3ca519c08db68a5d37d02e526b491f1a5c179ec3d21d/regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a0/2e/a6ded84019a05b8f23e0fe6a632f62ae438a8c5e5932d3dfc90c73418414/rpds_py-0.20.1-cp311-cp311-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/a3/58/ea9e50b29028fea7b8b97ddc246463df4d29a7244c94999baf7ab1d882d0/regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a3/32/95364440560ec476b19c6a2704259e710c223bf767632ebaa72cc2a1760f/rpds_py-0.20.1-pp310-pypy310_pp73-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/a4/db/7d05718f5157257ee9f980d381f54efdaccb95c0db8e05071ce4d8ee3347/regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ab/d3/c40e4d9ecd571f0f50fe69bc53fe608d7b2c49b30738b480044990260838/rpds_py-0.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/a5/49/2d83a9332d97b750cf964a2e8c6c689cc32a328dc7f82379d887ca641968/regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ac/bd/bce2dddb518b13a7e77eed4be234c9af0c9c6d403d01c5e6ae8eb447ab62/rpds_py-0.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/a8/01/18232f93672c1d530834e2e0568a80eaab1df12d67ae499b1762ab462b5c/regex-2023.12.25-cp311-cp311-win_amd64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ae/0e/d7e7e9280988a7bc56fd326042baca27f4f55fad27dc8aa64e5e0e894e5d/rpds_py-0.20.1-cp310-cp310-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/ac/fc/b7b7da0eb7110d1c4529b9d74d5d1ba92f85f0ce32be72f490f5eebfcdab/regex-2023.12.25-cp310-cp310-win32.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ae/d3/ffe907084299484fab60a7955f7c0e8a295c04249090218c59437010f9f4/rpds_py-0.20.1-cp312-none-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/ae/04/29f5b681c3e4f0cdabdf3b98e7f211385be2de8cbf2577f130d421c7fae5/regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/af/8d/2da52aef8ae5494a382b0c0025ba5b68f2952db0f2a4c7534580e8ca83cc/rpds_py-0.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/af/30/027e03ea8312f79d95f9bec5c758c0e423d75620134be5b0eaeda3cfc20b/regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b0/cf/4aeffb02b7090029d7aeecbffb9a10e1c80f6f56d7e9a30e15481dc4099c/rpds_py-0.20.1-cp313-cp313-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/b2/61/7f3ac9acb68205cfe5c0ef2210e9982260db817967bfea74871339ea1629/regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b3/87/99648693d3c1bbce088119bc61ecaab62e5f9c713894edc604ffeca5ae88/rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/b5/29/ddfd602f350a5f71926fec1f6f1ba9f5fcc7a05b36b364009904a119dfc7/regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b5/01/fee2e1d1274c92fff04aa47d805a28d62c2aa971d1f49f5baea1c6e670d9/rpds_py-0.20.1-cp313-cp313-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/b5/39/31626e7e75b187fae7f121af3c538a991e725c744ac893cc2cfd70ce2853/regex-2023.12.25.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b6/fa/7959429e69569d0f6e7d27f80451402da0409349dd2b07f6bcbdd5fad2d3/rpds_py-0.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b9/75/3c9bda11b9c15d680b315f898af23825159314d4b56568f24b53ace8afcd/rpds_py-0.20.1-cp39-cp39-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/b5/51/e884e1e021a8819251e09606354733a62decffd703ad6fd1ed9098a003a0/regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/bf/ac/2d1f50374eb8e41030fad4e87f81751e1c39e3b5d4bee8c5618830d8a6ac/rpds_py-0.20.1-cp313-cp313-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/b8/2f/dbfade801c0d19eaee278b2f2d45c1106158676078f1e95b6716dc0c8d53/regex-2023.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c1/a7/15d927d83a44da8307a432b1cac06284b6657706d099a98cc99fec34ad51/rpds_py-0.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/b8/5d/d2f0a1091c00ee5a854199423609c69eaa8b48a8352a6626c0ae85265b6a/regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c4/07/bf8a949d2ec4626c285579c9d6b356c692325f1a4126e947736b416e1fc4/rpds_py-0.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/b9/0a/082d5677a724fdbf8fee8fa65ff4472eb10dee0d028e0d269024fae58bdf/regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c4/ce/af016c81fda833bf125b20d1677d816f230cad2ab189f46bcbfea3c7a375/rpds_py-0.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/bb/21/2832bfa23fe34d7ff0cf8878ec762362bdafc5107af2229ff42ce008d525/regex-2023.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c8/1b/f23015cb293927c93bdb4b94a48bfe77ad9d57359c75db51f0ff0cf482ff/rpds_py-0.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/be/a8/165b58247039958bac3be16ea6d96b868c3e535fd96e2b102f1c04e9ca21/regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/cd/8c/3c87471a44bd4114e2b0aec90f298f6caaac4e8db6af904d5dd2279f5c61/rpds_py-0.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/c1/69/b9671621092a1f9b16892bc638368efb3ce00648ce79b91d472feaa740c9/regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/cd/8f/702b52287949314b498a311f92b5ee0ba30c702a27e0e6b560e2da43b8d5/rpds_py-0.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/c5/b3/f5c06f5ebb865a63ea775828038d5ce48263806616e4ad5092ff50e22c93/regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d0/9b/95073fe3e0f130e6d561e106818b6568ef1f2df3352e7f162ab912da837c/rpds_py-0.20.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/c5/fb/d7d23657fb16e5e01e1129c8b2a2445c884854e188e62655c0285b1cf44b/regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d1/b8/88675399d2038580743c570a809c43a900e7090edc6553f8ffb66b23c965/rpds_py-0.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/c6/b2/5f135bae42695796b5b68eb7d1aa00d39d16c39e1a60a3e0892ac8c73edc/regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d2/4c/445eb597a39a883368ea2f341dd6e48a9d9681b12ebf32f38a827b30529b/rpds_py-0.20.1-cp310-cp310-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/c8/b5/882aa0697e46d29a9f796c91221e03b1beec3c29664718c7d26ce05e7fb8/regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d2/e4/61144f3790e12fd89e6153d77f7915ad26779735fef8ee9c099cba6dfb4a/rpds_py-0.20.1-cp312-cp312-macosx_11_0_arm64.whl" }, { - "url": "https://files.pythonhosted.org/packages/d2/a0/4c4f4b4bab4b82137ece75619fafc2bdecae4d984b2e2a5000c4ea1c10f1/regex-2023.12.25-cp39-cp39-win32.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d4/62/c9bd294c4b5f84d9cc2c387b548ae53096ad7e71ac5b02b6310e9dc85aa4/rpds_py-0.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/d5/7c/5a531f7690ede1028ba80a78e45c7fd2d7481e316c6f18bf689d24852f2f/regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d6/62/41b0020f4b00af042b008e679dbe25a2f5bce655139a81f8b812f9068e52/rpds_py-0.20.1-cp39-none-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/d6/3b/909ab8c13caf117cab2d494f4e0ba5c973a66014b15e8ccd5ec1a704f179/regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d6/87/e7e0fcbfdc0d0e261534bcc885f6ae6253095b972e32f8b8b1278c78a2a9/rpds_py-0.20.1-cp39-cp39-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/d7/ad/c44702756cd84b49bc40a02c8a856813341eb35904e35b4efc1357f41c8c/regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d9/30/a3391e76d0b3313f33bdedd394a519decae3a953d2943e3dabf80ae32447/rpds_py-0.20.1-cp313-none-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/d8/44/8c81700465f3fd13ba01bdc2d262339d03aa57d319db3a863889d143a252/regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/dc/03/deb81d8ea3a8b974e7b03cfe8c8c26616ef8f4980dd430d8dd0a2f1b4d8e/rpds_py-0.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/d9/52/249f4047a548d84b6f805fcb6e3b44e9590433c748577e3d4cbd89feaf90/regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/de/4c/7ab3669e02bb06fedebcfd64d361b7168ba39dfdf385e4109440f2e7927b/rpds_py-0.20.1-cp311-cp311-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/dc/c2/b3c89e9c8933ceb2a8f56fcd25f1133f21d8e490fbdbd76160dfc2c83a6e/regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e0/ed/a0b58a9ecef79918169eacdabd14eb4c5c86ce71184ed56b80c6eb425828/rpds_py-0.20.1-cp38-none-win32.whl" }, { - "url": "https://files.pythonhosted.org/packages/dd/66/1274fd78698d799dc4c6b30a5b78c7bfc7b854c0e6e77df8884c21f08f21/regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e1/aa/cca639f6d17caf00bab51bdc70fcc0bdda3063e5662665c4fdf60443c474/rpds_py-0.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "https://files.pythonhosted.org/packages/e2/98/8384cc2f697bcf00398de3faf5727353ca2357381dee70eba2c022e8f569/regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e4/5e/1d4dd08ec0352cfe516ea93ea1993c2f656f893c87dafcd9312bd07f65f7/rpds_py-0.20.1-cp38-cp38-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/e3/66/29a1feac5c69907fedd6b3d8562d5ddc7c28fdf8585da6484617fe4c0b5e/regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e7/10/4e8dcc08b58a548098dbcee67a4888751a25be7a6dde0a83d4300df48bfa/rpds_py-0.20.1-cp312-cp312-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/e5/62/765114c47f070e2fbe6788a96798383a8b9cf1e1baab4035288295dedc6c/regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e7/80/cb9a4b4cad31bcaa37f38dae7a8be861f767eb2ca4f07a146b5ffcfbee09/rpds_py-0.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/eb/00/208ce4387c9ef72b751c34c4c84667bd8b47a70f3a6cc26f2240f8aab97e/regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ed/bf/ad8492e972c90a3d48a38e2b5095c51a8399d5b57e83f2d5d1649490f72b/rpds_py-0.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/eb/10/4ccc8eed80f11c082a2883d49d4090aa80c7f65704216a529f490cb089b1/regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ef/de/7df88dea9c3eeb832196d23b41f0f6fc5f9a2ee9b2080bbb1db8731ead9c/rpds_py-0.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "https://files.pythonhosted.org/packages/ee/07/d62cbcf2b87bd1255f13d7f7a7d5bb9f46d0fca6fb771a0aa6ee441a97d9/regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f1/b6/96a4a9977a8a06c2c49d90aa571346aff1642abf15066a39a0b4817bf049/rpds_py-0.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "https://files.pythonhosted.org/packages/ef/2e/1e93f6c7a303cc08d9562c96030924b24d45419a78a288ebd6dc61a2246c/regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f1/e8/ad5da336cd42adbdafe0ecd40dcecdae01fd3d703c621c7637615a008d3a/rpds_py-0.20.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/f2/9e/42b68eb9000707e82abe0c360cf46e73d457321b51e62a4dfb5938b148c6/regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f4/33/9d0529d74099e090ec9ab15eb0a049c56cca599eaaca71bfedbdbca656a9/rpds_py-0.20.1-cp310-none-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/f9/ef/14fcc5f19b0e72b64d4d530ae9bb8ba9739f6ced9c80d061c68ff93d5ebc/regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f7/d4/a7d70a7cc71df772eeadf4bce05e32e780a9fe44a511a5b091c7a85cb767/rpds_py-0.20.1-cp313-cp313-musllinux_1_2_i686.whl" }, { - "url": "https://files.pythonhosted.org/packages/fa/53/b473865d5b44d1395874f0b88df5143def8ef2f7bd11424083260aa93461/regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f7/e1/d6323be4afbe3013f28725553b7bfa80b3f013f91678af258f579f8ea8f9/rpds_py-0.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/fe/4e/242050c3ff38c08f16b31a5a338525def3f85b819fc0c5a97c35217098a7/regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/fa/e0/99205aabbf3be29ef6c58ef9b08feed51ba6532fdd47461245cb58dd9897/rpds_py-0.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/rpds-py/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-macosx_10_12_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_aarch64.whl" }, { - "url": "https://pypi.org/project/regex/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-none-win32.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp310-none-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-win32.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-none-win32.whl" }, { - "url": "regex-2023.12.25-cp310-cp310-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp311-none-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-none-win32.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp312-none-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-win32.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp311-cp311-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-none-win32.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp313-none-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-win32.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp312-cp312-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-none-win32.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp38-none-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-win32.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp37-cp37m-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-none-win32.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-cp39-none-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-win32.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp38-cp38-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp310-pypy310_pp73-win_amd64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-win32.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl" }, { - "url": "regex-2023.12.25-cp39-cp39-win_amd64.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "rpds_py-0.20.1-pp39-pypy39_pp73-win_amd64.whl" }, { - "url": "regex-2023.12.25.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" - }, + "type": "distribution", + "url": "rpds_py-0.20.1.tar.gz" + } + ], + "licenses": [ { - "url": "https://github.com/mrabarnett/mrab-regex", - "type": "website" + "license": { + "name": "MIT" + } } ], + "name": "rpds_py", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/rpds-py@0.20.1", + "type": "library", + "version": "0.20.1" }, { - "type": "library", - "bom-ref": "pkg:pypi/requests@2.31.0", - "name": "requests", - "version": "2.31.0", - "description": "Python HTTP for Humans.", - "licenses": [ - { - "license": { - "name": "Apache 2.0" - } - } - ], - "purl": "pkg:pypi/requests@2.31.0", + "bom-ref": "pkg:pypi/semver@3.0.2", + "description": "Python helper for Semantic Versioning (https://semver.org)", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/41/6c/a536cc008f38fd83b3c1b98ce19ead13b746b5588c9a0cb9dd9f6ea434bc/semver-3.0.2.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9a/77/0cc7a8a3bc7e53d07e8f47f147b92b0960e902b8254859f4aee5c4d7866b/semver-3.0.2-py3-none-any.whl" }, { - "url": "https://pypi.org/project/requests/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/semver/" }, { - "url": "requests-2.31.0-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "semver-3.0.2-py3-none-any.whl" }, { - "url": "requests-2.31.0.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "semver-3.0.2.tar.gz" }, { - "url": "https://requests.readthedocs.io", - "type": "website" + "type": "website", + "url": "https://github.com/python-semver/python-semver" + } + ], + "licenses": [ + { + "license": { + "name": "BSD" + } } ], + "name": "semver", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/semver@3.0.2", + "type": "library", + "version": "3.0.2" }, { - "type": "library", - "bom-ref": "pkg:pypi/requirements-parser@0.5.0", - "name": "requirements-parser", - "version": "0.5.0", - "description": "This is a small Python module for parsing Pip requirement files.", - "licenses": [ - { - "license": { - "name": "Apache-2.0" - } - } - ], - "purl": "pkg:pypi/requirements-parser@0.5.0", + "bom-ref": "pkg:pypi/six@1.17.0", + "description": "Python 2 and 3 compatibility utilities", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/c2/f9/76106e710015f0f8da37bff8db378ced99ae2553cc4b1cffb0aef87dc4ac/requirements-parser-0.5.0.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/f8/89/612e3b326d87780dc1daf39af7696634f969838213cddae4f553f75d04ae/requirements_parser-0.5.0-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl" }, { - "url": "https://pypi.org/project/requirements-parser/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/six/" }, { - "url": "requirements-parser-0.5.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "six-1.17.0-py2.py3-none-any.whl" }, { - "url": "requirements_parser-0.5.0-py3-none-any.whl", - "comment": "relativePath", - "type": "distribution" + "comment": "source archive (local copy)", + "type": "distribution", + "url": "six-1.17.0.tar.gz" }, { - "url": "https://github.com/madpah/requirements-parser", - "type": "website" + "type": "website", + "url": "https://github.com/benjaminp/six" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } } ], + "name": "six", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/six@1.17.0", + "type": "library", + "version": "1.17.0" }, { - "type": "library", - "bom-ref": "pkg:pypi/semver@3.0.2", - "name": "semver", - "version": "3.0.2", - "description": "Python helper for Semantic Versioning (https://semver.org)", - "licenses": [ - { - "license": { - "name": "BSD" - } - } - ], - "purl": "pkg:pypi/semver@3.0.2", + "bom-ref": "pkg:pypi/sortedcontainers@2.4.0", + "description": "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/41/6c/a536cc008f38fd83b3c1b98ce19ead13b746b5588c9a0cb9dd9f6ea434bc/semver-3.0.2.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/9a/77/0cc7a8a3bc7e53d07e8f47f147b92b0960e902b8254859f4aee5c4d7866b/semver-3.0.2-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz" }, { - "url": "https://pypi.org/project/semver/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/sortedcontainers/" }, { - "url": "semver-3.0.2-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "sortedcontainers-2.4.0-py2.py3-none-any.whl" }, { - "url": "semver-3.0.2.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "sortedcontainers-2.4.0.tar.gz" }, { - "url": "https://github.com/python-semver/python-semver", - "type": "website" + "type": "website", + "url": "http://www.grantjenks.com/docs/sortedcontainers/" + } + ], + "licenses": [ + { + "license": { + "name": "Apache 2.0" + } } ], + "name": "sortedcontainers", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/sortedcontainers@2.4.0", + "type": "library", + "version": "2.4.0" }, { - "type": "library", - "bom-ref": "pkg:pypi/setuptools@69.0.3", - "name": "setuptools", - "version": "69.0.3", - "description": "Easily download, build, install, upgrade, and uninstall Python packages", - "purl": "pkg:pypi/setuptools@69.0.3", + "bom-ref": "pkg:pypi/soupsieve@2.6", + "description": "A modern CSS selector implementation for Beautiful Soup.", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/55/3a/5121b58b578a598b269537e09a316ad2a94fdd561a2c6eb75cd68578cc6b/setuptools-69.0.3-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/fc/c9/b146ca195403e0182a374e0ea4dbc69136bad3cd55bc293df496d625d0f7/setuptools-69.0.3.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz" }, { - "url": "https://pypi.org/project/setuptools/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/soupsieve/" }, { - "url": "setuptools-69.0.3-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "soupsieve-2.6-py3-none-any.whl" }, { - "url": "setuptools-69.0.3.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" - }, - { - "url": "https://github.com/pypa/setuptools", - "type": "website" + "type": "distribution", + "url": "soupsieve-2.6.tar.gz" } ], + "name": "soupsieve", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/soupsieve@2.6", + "type": "library", + "version": "2.6" }, { - "type": "library", - "bom-ref": "pkg:pypi/six@1.16.0", - "name": "six", - "version": "1.16.0", - "description": "Python 2 and 3 compatibility utilities", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/six@1.16.0", + "bom-ref": "pkg:pypi/sw360@1.8.0", + "description": "Python interface to the SW360 software component catalogue", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/18/72/acdd3faf52550a3beacb56957f868742b940389ecd8370e0fb5b7a7f85e2/sw360-1.8.0-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a3/b8/35fa74711bbd9ff86aaa232aa34e0a31e30bba18e9d4dd474801dc2e0b3c/sw360-1.8.0.tar.gz" }, { - "url": "https://pypi.org/project/six/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/sw360/" }, { - "url": "six-1.16.0-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "sw360-1.8.0-py3-none-any.whl" }, { - "url": "six-1.16.0.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "sw360-1.8.0.tar.gz" }, { - "url": "https://github.com/benjaminp/six", - "type": "website" + "type": "website", + "url": "https://github.com/sw360/sw360python" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } } ], + "name": "sw360", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/sw360@1.8.0", + "type": "library", + "version": "1.8.0" }, { - "type": "library", - "bom-ref": "pkg:pypi/sortedcontainers@2.4.0", - "name": "sortedcontainers", - "version": "2.4.0", - "description": "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set", - "licenses": [ - { - "license": { - "name": "Apache 2.0" - } - } - ], - "purl": "pkg:pypi/sortedcontainers@2.4.0", + "bom-ref": "pkg:pypi/tomli@2.2.1", + "description": "A lil' TOML parser", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl" + }, + { + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl" + }, + { + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "PyPi URL", + "type": "distribution", + "url": "https://pypi.org/project/tomli/" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl" }, { - "url": "https://pypi.org/project/sortedcontainers/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { - "url": "sortedcontainers-2.4.0-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-win32.whl" }, { - "url": "sortedcontainers-2.4.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp311-cp311-win_amd64.whl" }, { - "url": "http://www.grantjenks.com/docs/sortedcontainers/", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/soupsieve@2.4.1", - "name": "soupsieve", - "version": "2.4.1", - "description": "A modern CSS selector implementation for Beautiful Soup.", - "purl": "pkg:pypi/soupsieve@2.4.1", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl" + }, { - "url": "https://files.pythonhosted.org/packages/47/9e/780779233a615777fbdf75a4dee2af7a345f4bf74b42d4a5f836800b9d91/soupsieve-2.4.1.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "https://files.pythonhosted.org/packages/49/37/673d6490efc51ec46d198c75903d99de59baffdd47aea3d071b80a9e4e89/soupsieve-2.4.1-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://pypi.org/project/soupsieve/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { - "url": "soupsieve-2.4.1-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl" }, { - "url": "soupsieve-2.4.1.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/sw360@1.4.0", - "name": "sw360", - "version": "1.4.0", - "description": "Python interface to the SW360 software component catalogue", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/sw360@1.4.0", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-win32.whl" + }, { - "url": "https://files.pythonhosted.org/packages/13/d2/33886463c9dd3e3ede3b62000a9d74dcbb5755fc598cec2ae0011beaea2e/sw360-1.4.0-py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp312-cp312-win_amd64.whl" }, { - "url": "https://files.pythonhosted.org/packages/c3/cb/8029cea4c88ce6a03de7459d80f3d498e156ad0feb1212a62975649ba869/sw360-1.4.0.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl" }, { - "url": "https://pypi.org/project/sw360/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl" }, { - "url": "sw360-1.4.0-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { - "url": "sw360-1.4.0.tar.gz", - "comment": "source archive (local copy)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { - "url": "https://github.com/sw360/sw360python", - "type": "website" - } - ], - "properties": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, { - "name": "siemens:primaryLanguage", - "value": "Python" - } - ] - }, - { - "type": "library", - "bom-ref": "pkg:pypi/toml@0.10.2", - "name": "toml", - "version": "0.10.2", - "description": "Python Library for Tom's Obvious, Minimal Language", - "licenses": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl" + }, { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/toml@0.10.2", - "externalReferences": [ + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl" + }, { - "url": "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl" }, { - "url": "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-win32.whl" }, { - "url": "https://pypi.org/project/toml/", - "comment": "PyPi URL", - "type": "distribution" + "comment": "relativePath", + "type": "distribution", + "url": "tomli-2.2.1-cp313-cp313-win_amd64.whl" }, { - "url": "toml-0.10.2-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "tomli-2.2.1-py3-none-any.whl" }, { - "url": "toml-0.10.2.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" - }, + "type": "distribution", + "url": "tomli-2.2.1.tar.gz" + } + ], + "licenses": [ { - "url": "https://github.com/uiri/toml", - "type": "website" + "license": { + "name": "MIT License Copyright (c) 2021 Taneli Hukkinen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. " + } } ], + "name": "tomli", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/tomli@2.2.1", + "type": "library", + "version": "2.2.1" }, { - "type": "library", - "bom-ref": "pkg:pypi/tomli@2.0.1", - "name": "tomli", - "version": "2.0.1", - "description": "A lil' TOML parser", - "purl": "pkg:pypi/tomli@2.0.1", + "bom-ref": "pkg:pypi/types-setuptools@75.6.0.20241126", + "description": "Typing stubs for setuptools", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/3b/a0/898a1363592d372d4103b76b7c723d84fcbde5fa4ed0c3a29102805ed7db/types_setuptools-75.6.0.20241126-py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/c2/d2/15ede73bc3faf647af2c7bfefa90dde563a4b6bb580b1199f6255463c272/types_setuptools-75.6.0.20241126.tar.gz" }, { - "url": "https://pypi.org/project/tomli/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/types-setuptools/" }, { - "url": "tomli-2.0.1-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "types_setuptools-75.6.0.20241126-py3-none-any.whl" }, { - "url": "tomli-2.0.1.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "types_setuptools-75.6.0.20241126.tar.gz" + }, + { + "type": "website", + "url": "https://github.com/python/typeshed" + } + ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } } ], + "name": "types_setuptools", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/types-setuptools@75.6.0.20241126", + "type": "library", + "version": "75.6.0.20241126" }, { - "type": "library", - "bom-ref": "pkg:pypi/tzdata@2023.3", - "name": "tzdata", - "version": "2023.3", + "bom-ref": "pkg:pypi/tzdata@2024.2", "description": "Provider of IANA time zone data", - "licenses": [ - { - "license": { - "name": "Apache-2.0" - } - } - ], - "purl": "pkg:pypi/tzdata@2023.3", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/70/e5/81f99b9fced59624562ab62a33df639a11b26c582be78864b339dafa420d/tzdata-2023.3.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/d5/fb/a79efcab32b8a1f1ddca7f35109a50e4a80d42ac1c9187ab46522b2407d7/tzdata-2023.3-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz" }, { - "url": "https://pypi.org/project/tzdata/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/tzdata/" }, { - "url": "tzdata-2023.3-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "tzdata-2024.2-py2.py3-none-any.whl" }, { - "url": "tzdata-2023.3.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "tzdata-2024.2.tar.gz" }, { - "url": "https://github.com/python/tzdata", - "type": "website" + "type": "website", + "url": "https://github.com/python/tzdata" + } + ], + "licenses": [ + { + "license": { + "name": "Apache-2.0" + } } ], + "name": "tzdata", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/tzdata@2024.2", + "type": "library", + "version": "2024.2" }, { - "type": "library", "bom-ref": "pkg:pypi/tzlocal@5.2", - "name": "tzlocal", - "version": "5.2", "description": "tzinfo object for the local timezone", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/tzlocal@5.2", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/04/d3/c19d65ae67636fe63953b20c2e4a8ced4497ea232c43ff8d01db16de8dc0/tzlocal-5.2.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/04/d3/c19d65ae67636fe63953b20c2e4a8ced4497ea232c43ff8d01db16de8dc0/tzlocal-5.2.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/97/3f/c4c51c55ff8487f2e6d0e618dba917e3c3ee2caae6cf0fbb59c9b1876f2e/tzlocal-5.2-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/97/3f/c4c51c55ff8487f2e6d0e618dba917e3c3ee2caae6cf0fbb59c9b1876f2e/tzlocal-5.2-py3-none-any.whl" }, { - "url": "https://pypi.org/project/tzlocal/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/tzlocal/" }, { - "url": "tzlocal-5.2-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "tzlocal-5.2-py3-none-any.whl" }, { - "url": "tzlocal-5.2.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "tzlocal-5.2.tar.gz" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } } ], + "name": "tzlocal", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/tzlocal@5.2", + "type": "library", + "version": "5.2" }, { - "type": "library", - "bom-ref": "pkg:pypi/urllib3@1.26.18", - "name": "urllib3", - "version": "1.26.18", + "bom-ref": "pkg:pypi/urllib3@1.26.20", "description": "HTTP library with thread-safe connection pooling, file post, and more.", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/urllib3@1.26.18", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/0c/39/64487bf07df2ed854cc06078c27c0d0abc59bd27b32232876e403c333a08/urllib3-1.26.18.tar.gz", - "comment": "source archive (download location)", - "type": "distribution" + "comment": "binary (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/33/cf/8435d5a7159e2a9c83a95896ed596f68cf798005fe107cc655b5c5c14704/urllib3-1.26.20-py2.py3-none-any.whl" }, { - "url": "https://files.pythonhosted.org/packages/b0/53/aa91e163dcfd1e5b82d8a890ecf13314e3e149c05270cc644581f77f17fd/urllib3-1.26.18-py2.py3-none-any.whl", - "comment": "binary (download location)", - "type": "distribution" + "comment": "source archive (download location)", + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/e4/e8/6ff5e6bc22095cfc59b6ea711b687e2b7ed4bdb373f7eeec370a97d7392f/urllib3-1.26.20.tar.gz" }, { - "url": "https://pypi.org/project/urllib3/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/urllib3/" }, { - "url": "urllib3-1.26.18-py2.py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "urllib3-1.26.20-py2.py3-none-any.whl" }, { - "url": "urllib3-1.26.18.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "urllib3-1.26.20.tar.gz" }, { - "url": "https://urllib3.readthedocs.io/", - "type": "website" + "type": "website", + "url": "https://urllib3.readthedocs.io/" } ], + "licenses": [ + { + "license": { + "name": "MIT" + } + } + ], + "name": "urllib3", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/urllib3@1.26.20", + "type": "library", + "version": "1.26.20" }, { - "type": "library", "bom-ref": "pkg:pypi/wheel@0.38.4", - "name": "wheel", - "version": "0.38.4", "description": "A built-package format for Python", - "licenses": [ - { - "license": { - "name": "MIT" - } - } - ], - "purl": "pkg:pypi/wheel@0.38.4", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/a2/b8/6a06ff0f13a00fc3c3e7d222a995526cbca26c1ad107691b6b1badbbabf1/wheel-0.38.4.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/a2/b8/6a06ff0f13a00fc3c3e7d222a995526cbca26c1ad107691b6b1badbbabf1/wheel-0.38.4.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/bd/7c/d38a0b30ce22fc26ed7dbc087c6d00851fb3395e9d0dac40bec1f905030c/wheel-0.38.4-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/bd/7c/d38a0b30ce22fc26ed7dbc087c6d00851fb3395e9d0dac40bec1f905030c/wheel-0.38.4-py3-none-any.whl" }, { - "url": "https://pypi.org/project/wheel/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/wheel/" }, { - "url": "wheel-0.38.4-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "wheel-0.38.4-py3-none-any.whl" }, { - "url": "wheel-0.38.4.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" + "type": "distribution", + "url": "wheel-0.38.4.tar.gz" }, { - "url": "https://github.com/pypa/wheel", - "type": "website" + "type": "website", + "url": "https://github.com/pypa/wheel" + } + ], + "licenses": [ + { + "license": { + "name": "MIT" + } } ], + "name": "wheel", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/wheel@0.38.4", + "type": "library", + "version": "0.38.4" }, { - "type": "library", - "bom-ref": "pkg:pypi/zipp@3.17.0", - "name": "zipp", - "version": "3.17.0", + "bom-ref": "pkg:pypi/zipp@3.20.2", "description": "Backport of pathlib-compatible object wrapper for zip files", - "purl": "pkg:pypi/zipp@3.17.0", "externalReferences": [ { - "url": "https://files.pythonhosted.org/packages/58/03/dd5ccf4e06dec9537ecba8fcc67bbd4ea48a2791773e469e73f94c3ba9a6/zipp-3.17.0.tar.gz", "comment": "source archive (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz" }, { - "url": "https://files.pythonhosted.org/packages/d9/66/48866fc6b158c81cc2bfecc04c480f105c6040e8b077bc54c634b4a67926/zipp-3.17.0-py3-none-any.whl", "comment": "binary (download location)", - "type": "distribution" + "type": "distribution", + "url": "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl" }, { - "url": "https://pypi.org/project/zipp/", "comment": "PyPi URL", - "type": "distribution" + "type": "distribution", + "url": "https://pypi.org/project/zipp/" }, { - "url": "zipp-3.17.0-py3-none-any.whl", "comment": "relativePath", - "type": "distribution" + "type": "distribution", + "url": "zipp-3.20.2-py3-none-any.whl" }, { - "url": "zipp-3.17.0.tar.gz", "comment": "source archive (local copy)", - "type": "distribution" - }, - { - "url": "https://github.com/jaraco/zipp", - "type": "website" + "type": "distribution", + "url": "zipp-3.20.2.tar.gz" } ], + "name": "zipp", "properties": [ { "name": "siemens:primaryLanguage", "value": "Python" } - ] + ], + "purl": "pkg:pypi/zipp@3.20.2", + "type": "library", + "version": "3.20.2" } ], + "definitions": { + "standards": [ + { + "bom-ref": "standard-bom", + "description": "The Standard for Software Bills of Materials in Siemens", + "externalReferences": [ + { + "type": "website", + "url": "https://sbom.siemens.io/" + } + ], + "name": "Standard BOM", + "owner": "Siemens AG", + "version": "3.0.0" + } + ] + }, "dependencies": [ { - "ref": "pkg:pypi/backports-zoneinfo@0.2.1", - "dependsOn": [] + "ref": "pkg:pypi/attrs@24.2.0" }, { - "ref": "pkg:pypi/beautifulsoup4@4.12.2", - "dependsOn": [] + "ref": "pkg:pypi/backports-zoneinfo@0.2.1" }, { - "ref": "pkg:pypi/certifi@2023.11.17", - "dependsOn": [] + "ref": "pkg:pypi/beautifulsoup4@4.12.3" }, { - "ref": "pkg:pypi/chardet@5.2.0", - "dependsOn": [] + "ref": "pkg:pypi/boolean-py@4.0" }, { - "ref": "pkg:pypi/charset-normalizer@3.3.2", - "dependsOn": [] + "ref": "pkg:pypi/certifi@2024.8.30" }, { - "ref": "pkg:pypi/cli-support@2.0.0", - "dependsOn": [] + "ref": "pkg:pypi/chardet@5.2.0" }, { - "ref": "pkg:pypi/colorama@0.4.6", - "dependsOn": [] + "ref": "pkg:pypi/charset-normalizer@3.4.0" }, { - "ref": "pkg:pypi/cyclonedx-bom@3.11.7", - "dependsOn": [] + "ref": "pkg:pypi/cli-support@2.0.1" }, { - "ref": "pkg:pypi/cyclonedx-python-lib@3.1.5", - "dependsOn": [] + "ref": "pkg:pypi/colorama@0.4.6" }, { - "ref": "pkg:pypi/dateparser@1.2.0", - "dependsOn": [] + "ref": "pkg:pypi/cyclonedx-python-lib@8.5.0" }, { - "ref": "pkg:pypi/et-xmlfile@1.1.0", - "dependsOn": [] + "ref": "pkg:pypi/dateparser@1.2.0" }, { - "ref": "pkg:pypi/idna@3.6", - "dependsOn": [] + "ref": "pkg:pypi/defusedxml@0.7.1" }, { - "ref": "pkg:pypi/importlib-resources@5.13.0", - "dependsOn": [] + "ref": "pkg:pypi/et-xmlfile@2.0.0" }, { - "ref": "pkg:pypi/openpyxl@3.1.2", - "dependsOn": [] + "ref": "pkg:pypi/idna@3.10" }, { - "ref": "pkg:pypi/packageurl-python@0.13.1", - "dependsOn": [] + "ref": "pkg:pypi/importlib-resources@5.13.0" }, { - "ref": "pkg:pypi/packaging@23.2", - "dependsOn": [] + "ref": "pkg:pypi/jsonschema-specifications@2023.12.1" }, { - "ref": "pkg:pypi/pip-requirements-parser@32.0.1", - "dependsOn": [] + "ref": "pkg:pypi/jsonschema@4.23.0" }, { - "ref": "pkg:pypi/pyjwt@1.7.1", - "dependsOn": [] + "ref": "pkg:pypi/license-expression@30.3.1" }, { - "ref": "pkg:pypi/pyparsing@3.1.1", - "dependsOn": [] + "ref": "pkg:pypi/openpyxl@3.1.5" }, { - "ref": "pkg:pypi/python-dateutil@2.8.2", - "dependsOn": [] + "ref": "pkg:pypi/packageurl-python@0.15.6" }, { - "ref": "pkg:pypi/pytz@2023.3.post1", - "dependsOn": [] + "ref": "pkg:pypi/packaging@24.2" }, { - "ref": "pkg:pypi/regex@2023.12.25", - "dependsOn": [] + "ref": "pkg:pypi/pkgutil-resolve-name@1.3.10" }, { - "ref": "pkg:pypi/requests@2.31.0", - "dependsOn": [] + "ref": "pkg:pypi/py-serializable@1.1.2" }, { - "ref": "pkg:pypi/requirements-parser@0.5.0", - "dependsOn": [] + "ref": "pkg:pypi/pyjwt@1.7.1" }, { - "ref": "pkg:pypi/semver@3.0.2", - "dependsOn": [] + "ref": "pkg:pypi/python-dateutil@2.9.0.post0" }, { - "ref": "pkg:pypi/setuptools@69.0.3", - "dependsOn": [] + "ref": "pkg:pypi/pytz@2024.2" }, { - "ref": "pkg:pypi/six@1.16.0", - "dependsOn": [] + "ref": "pkg:pypi/referencing@0.35.1" }, { - "ref": "pkg:pypi/sortedcontainers@2.4.0", - "dependsOn": [] + "ref": "pkg:pypi/regex@2024.11.6" }, { - "ref": "pkg:pypi/soupsieve@2.4.1", - "dependsOn": [] + "ref": "pkg:pypi/requests@2.32.3" }, { - "ref": "pkg:pypi/sw360@1.4.0", - "dependsOn": [] + "ref": "pkg:pypi/requirements-parser@0.11.0" }, { - "ref": "pkg:pypi/toml@0.10.2", - "dependsOn": [] + "ref": "pkg:pypi/rpds-py@0.20.1" }, { - "ref": "pkg:pypi/tomli@2.0.1", - "dependsOn": [] + "ref": "pkg:pypi/semver@3.0.2" }, { - "ref": "pkg:pypi/tzdata@2023.3", - "dependsOn": [] + "ref": "pkg:pypi/six@1.17.0" }, { - "ref": "pkg:pypi/tzlocal@5.2", - "dependsOn": [] + "ref": "pkg:pypi/sortedcontainers@2.4.0" }, { - "ref": "pkg:pypi/urllib3@1.26.18", - "dependsOn": [] + "ref": "pkg:pypi/soupsieve@2.6" }, { - "ref": "pkg:pypi/wheel@0.38.4", - "dependsOn": [] + "ref": "pkg:pypi/sw360@1.8.0" }, { - "ref": "pkg:pypi/zipp@3.17.0", - "dependsOn": [] + "ref": "pkg:pypi/tomli@2.2.1" + }, + { + "ref": "pkg:pypi/types-setuptools@75.6.0.20241126" + }, + { + "ref": "pkg:pypi/tzdata@2024.2" + }, + { + "ref": "pkg:pypi/tzlocal@5.2" + }, + { + "ref": "pkg:pypi/urllib3@1.26.20" + }, + { + "ref": "pkg:pypi/wheel@0.38.4" + }, + { + "ref": "pkg:pypi/zipp@3.20.2" + } + ], + "metadata": { + "licenses": [ + { + "license": { + "id": "CC0-1.0" + } + } + ], + "properties": [ + { + "name": "siemens:profile", + "value": "clearing" + } + ], + "timestamp": "2024-12-07T12:44:31.329768+00:00", + "tools": { + "components": [ + { + "externalReferences": [ + { + "type": "website", + "url": "https://github.com/sw360/capycli" + } + ], + "name": "CaPyCLI", + "supplier": { + "name": "Siemens AG" + }, + "type": "application", + "version": "2.6.0" + } + ] } - ] + }, + "serialNumber": "urn:uuid:453d837c-b840-4a03-ae9e-9768ec435f4d", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.6" } \ No newline at end of file diff --git a/capycli/bom/bom_validate.py b/capycli/bom/bom_validate.py index 4b98c66..de8c997 100644 --- a/capycli/bom/bom_validate.py +++ b/capycli/bom/bom_validate.py @@ -13,8 +13,9 @@ import capycli.common.json_support import capycli.common.script_base from capycli import get_logger +from capycli.bom.show_bom import ShowBom from capycli.common.capycli_bom_support import CaPyCliBom -from capycli.common.print import print_text +from capycli.common.print import print_green, print_text from capycli.main.exceptions import CaPyCliException from capycli.main.result_codes import ResultCode @@ -22,13 +23,17 @@ class BomValidate(capycli.common.script_base.ScriptBase): - def validate(self, inputfile: str, spec_version: str) -> None: + def __init__(self) -> None: + self.has_error: bool = False + self.verbose: bool = False + + def validate(self, inputfile: str, spec_version: str) -> bool: """Main validation method.""" try: if not spec_version: print_text("No CycloneDX spec version specified, defaulting to 1.6") spec_version = "1.6" - CaPyCliBom.validate_sbom(inputfile, spec_version) + return CaPyCliBom.validate_sbom(inputfile, spec_version, False) except CaPyCliException as error: LOG.error(f"Error processing input file: {str(error)}") sys.exit(ResultCode.RESULT_GENERAL_ERROR) @@ -51,6 +56,8 @@ def display_help(self) -> None: print(" -h, --help Show this help message and exit") print(" -i INPUTFILE Input BOM filename (JSON)") print(" -version SpecVersion CycloneDX spec version to validate against: allowed are 1.4, 1.5, and 1.6") + print(" -v be verbose (show more details about purl, download URL, and license)") + print(" --forceerror force an error exit code in case of validation errors or warnings") def run(self, args: Any) -> None: """Main method()""" @@ -65,4 +72,26 @@ def run(self, args: Any) -> None: global LOG LOG = get_logger(__name__) - self.validate(args.inputfile, args.version) + if args.verbose: + self.verbose = True + + self.has_error = not self.validate(args.inputfile, args.version) + if not self.has_error: + print_green("JSON file successfully validated against CycloneDX.") + + if self.verbose: + try: + bom = CaPyCliBom.read_sbom(args.inputfile) + except Exception as ex: + LOG.error("Error reading SBOM: " + repr(ex)) + sys.exit(ResultCode.RESULT_ERROR_READING_BOM) + + show_bom = ShowBom() + show_bom.verbose = self.verbose + print_text("Siemens Standard BOM checks") + show_bom.display_bom(bom) + if show_bom.has_error: + self.has_error = True + + if args.force_error and self.has_error: + sys.exit(ResultCode.RESULT_PREREQUISITE_ERROR) diff --git a/capycli/bom/check_granularity.py b/capycli/bom/check_granularity.py index 6145b37..566cddb 100644 --- a/capycli/bom/check_granularity.py +++ b/capycli/bom/check_granularity.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# Copyright (c) 2021-2024 Siemens +# Copyright (c) 2021-2025 Siemens # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -258,8 +258,8 @@ def run(self, args: Any) -> None: print_text("\nLoading SBOM file", args.inputfile) try: sbom = CaPyCliBom.read_sbom(args.inputfile) - for c in sbom.components: - print(c) + # for c in sbom.components: + # print(c) except Exception as ex: print_red("Error reading SBOM: " + repr(ex)) sys.exit(ResultCode.RESULT_ERROR_READING_BOM) diff --git a/capycli/bom/findsources.py b/capycli/bom/findsources.py index 6b684a9..d98f44c 100644 --- a/capycli/bom/findsources.py +++ b/capycli/bom/findsources.py @@ -695,7 +695,7 @@ def find_sources(self, bom: Bom) -> Tuple[int, int]: if self.verbose: print(" No Source code URL available - try to find with language:") source_url = self.find_source_url_by_language(component) - if not source_url and language.lower() == "golang": + if not source_url and (language.lower() == "golang" or language.lower() == "go"): if self.verbose: print(" No Source code URL available - try to find on pkg.go.dev:") source_url = self.find_golang_url(component) diff --git a/capycli/bom/map_bom.py b/capycli/bom/map_bom.py index a1f7c29..ed9cfff 100644 --- a/capycli/bom/map_bom.py +++ b/capycli/bom/map_bom.py @@ -375,9 +375,13 @@ def map_bom_item_no_cache(self, component: Component) -> MapResult: # Sorted alternatives in descending version order # Please note: the release list sometimes contain just the href but no version - rel_list = sorted(rel_list, - key=lambda x: "version" in x and ComparableVersion( - x.get("version", "")), reverse=True) # type: ignore + try: + rel_list = sorted(rel_list, + key=lambda x: "version" in x and ComparableVersion( + x.get("version", "")), reverse=True) # type: ignore + except ValueError: + pass # we can live with an unsorted list + for relref in rel_list: href = relref["_links"]["self"]["href"] real_release = self.client.get_release_by_url(href) @@ -779,7 +783,11 @@ def create_updated_bom(self, old_bom: Bom, result: List[MapResult]) -> Bom: newbom.components.add(newitem) # Sorted alternatives in descending version order - item.releases = sorted(item.releases, key=lambda x: ComparableVersion(x['Version']), reverse=True) + try: + item.releases = sorted(item.releases, key=lambda x: ComparableVersion(x['Version']), reverse=True) + except ValueError: + pass # we can live with an unsorted list + for match_item in item.releases: if self.is_good_match(match_item["MapResult"]): newitem = self.update_bom_item(item.component, match_item) diff --git a/capycli/bom/show_bom.py b/capycli/bom/show_bom.py index 96c711b..ed2d332 100644 --- a/capycli/bom/show_bom.py +++ b/capycli/bom/show_bom.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# Copyright (c) 2019-23 Siemens +# Copyright (c) 2019-2024 Siemens # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -14,7 +14,10 @@ import sys from typing import Any +from cyclonedx.factory.license import DisjunctiveLicense, LicenseExpression # type: ignore +from cyclonedx.model import XsUri from cyclonedx.model.bom import Bom +from cyclonedx.model.component import Component import capycli.common.script_base from capycli.common.capycli_bom_support import CaPyCliBom, CycloneDxSupport @@ -25,8 +28,36 @@ class ShowBom(capycli.common.script_base.ScriptBase): - """Print SBOM contents to stdout""" - def display_bom(self, bom: Bom, verbose: bool) -> None: + def __init__(self) -> None: + self.has_error: bool = False + self.verbose: bool = False + + def get_license(self, bomitem: Component) -> str: + """ + Get the license information of a component as string. + Only for CycloneDX 1.6 and later. + """ + if not bomitem.licenses: + return "" + + for license in bomitem.licenses: + # CycloneDX 1.6 + if isinstance(license, DisjunctiveLicense): + if license.id: # supersedes name + return license.id + if license.name: + return license.name + + if isinstance(license, LicenseExpression) and license.value: + return license.value + + if license.id: + return license.id + + return "" + + def display_bom(self, bom: Bom) -> None: + """Print SBOM contents to stdout""" if not bom: print_yellow(" Empty SBOM!") return @@ -34,19 +65,30 @@ def display_bom(self, bom: Bom, verbose: bool) -> None: for bomitem in bom.components: print_text(" " + bomitem.name + ", " + bomitem.version) - if verbose: + if self.verbose: if bomitem.purl: - print_text(" package-url:" + bomitem.purl.to_string()) + print_text(" package-url: " + bomitem.purl.to_string()) + else: + print_yellow(" No package-url given!") + self.has_error = True sw360id = CycloneDxSupport.get_property_value(bomitem, CycloneDxSupport.CDX_PROP_SW360ID) if sw360id: print_text(" SW360 id:" + sw360id) - download_url = CycloneDxSupport.get_ext_ref_source_file(bomitem) - if not download_url: - download_url = CycloneDxSupport.get_ext_ref_source_url(bomitem) - if not download_url: + download_url: XsUri + download_url = CycloneDxSupport.get_ext_ref_source_url(bomitem) + if download_url: + print_text(" download URL: " + download_url.uri) + else: print_yellow(" No download URL given!") + self.has_error = True + + license = self.get_license(bomitem) + if license: + print_text(" license: " + license) + else: + print_yellow(" No license given!") print_text("\n" + str(len(bom.components)) + " items in bill of material\n") @@ -64,7 +106,8 @@ def run(self, args: Any) -> None: print("optional arguments:") print("-h, --help show this help message and exit") print("-i INPUTFILE input file to read from (JSON)") - print("-v be verbose") + print("-v be verbose (show more details about purl, download URL, and license)") + print("--forceerror force an error exit code in case of prerequisite errors or warnings") return if not args.inputfile: @@ -75,10 +118,16 @@ def run(self, args: Any) -> None: LOG.error("Input file not found!") sys.exit(ResultCode.RESULT_FILE_NOT_FOUND) + if args.verbose: + self.verbose = True + try: bom = CaPyCliBom.read_sbom(args.inputfile) except Exception as ex: print_red("Error reading SBOM: " + repr(ex)) sys.exit(ResultCode.RESULT_ERROR_READING_BOM) - self.display_bom(bom, args.verbose) + self.display_bom(bom) + + if args.force_error and self.has_error: + sys.exit(ResultCode.RESULT_PREREQUISITE_ERROR) diff --git a/capycli/common/capycli_bom_support.py b/capycli/common/capycli_bom_support.py index 27e4d4c..ea3c1e8 100644 --- a/capycli/common/capycli_bom_support.py +++ b/capycli/common/capycli_bom_support.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# Copyright (c) 2023-2024 Siemens +# Copyright (c) 2023-2025 Siemens # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -124,10 +124,16 @@ def get_ext_ref(comp: Component, type: ExternalReferenceType, comment: str) -> O @staticmethod def set_ext_ref(comp: Component, type: ExternalReferenceType, comment: str, value: str, hash_algo: str = "", hash: str = "") -> None: - ext_ref = ExternalReference( - type=type, - url=XsUri(value), - comment=comment) + if isinstance(value, XsUri): + ext_ref = ExternalReference( + type=type, + url=value, + comment=comment) + else: + ext_ref = ExternalReference( + type=type, + url=XsUri(value), + comment=comment) if hash_algo and hash: ext_ref.hashes.add(HashType( @@ -145,7 +151,10 @@ def update_or_set_ext_ref(comp: Component, type: ExternalReferenceType, comment: break if ext_ref: - ext_ref.url = XsUri(value) + if isinstance(value, XsUri): + ext_ref.url = value + else: + ext_ref.url = XsUri(value) else: CycloneDxSupport.set_ext_ref(comp, type, comment, value) @@ -200,6 +209,10 @@ def get_ext_ref_source_url(comp: Component) -> Any: and (ext_ref.comment == CaPyCliBom.SOURCE_URL_COMMENT): return ext_ref.url + # new for CyCloneDX 1.6 + if (ext_ref.type == ExternalReferenceType.SOURCE_DISTRIBUTION): + return ext_ref.url + return "" @staticmethod @@ -542,7 +555,7 @@ def _string_to_schema_version(cls, spec_version: str) -> SchemaVersion: return SchemaVersion.V1_6 @classmethod - def validate_sbom(cls, inputfile: str, spec_version: str) -> bool: + def validate_sbom(cls, inputfile: str, spec_version: str, show_success: bool = True) -> bool: """Validate the given SBOM file against the given CycloneDX spec. version.""" LOG.debug(f"Validating SBOM from file {inputfile}") with open(inputfile) as fin: @@ -557,7 +570,8 @@ def validate_sbom(cls, inputfile: str, spec_version: str) -> bool: if validation_errors: raise CaPyCliException("JSON validation error: " + repr(validation_errors)) - print_green("JSON file successfully validated.") + if show_success: + print_green("JSON file successfully validated.") return True except MissingOptionalDependencyException as error: print_yellow('JSON-validation was skipped due to', error) diff --git a/capycli/common/comparable_version.py b/capycli/common/comparable_version.py index 80c4f1e..4fbda58 100644 --- a/capycli/common/comparable_version.py +++ b/capycli/common/comparable_version.py @@ -31,6 +31,7 @@ def __init__(self, version: str) -> None: self.parts = self.parse(version) except Exception: LOG.warning("Unable to parse version %s", version) + raise # pass on to caller as object is useless without self.parts @staticmethod def parse(version: str) -> List[Tuple[bool, int | str]]: diff --git a/capycli/main/options.py b/capycli/main/options.py index 7f109e9..9ffff1b 100644 --- a/capycli/main/options.py +++ b/capycli/main/options.py @@ -403,6 +403,7 @@ def register_options(self) -> None: help="force an error exit code in case of visual errors", ) + # used by CreateProject self.parser.add_argument( "-pms", "--project-mainline-state", @@ -410,6 +411,13 @@ def register_options(self) -> None: help="project mainline state for releases in a newly created project", ) + # used by CreateProject + self.parser.add_argument( + "--copy_from", + dest="copy_from", + help="copy the project with the given id and the update it", + ) + def read_config(self, filename: str = "", config_string: str = "") -> Dict[str, Any]: """ Read configuration from string or config file. diff --git a/capycli/project/create_project.py b/capycli/project/create_project.py index a9314ce..bf1b4da 100644 --- a/capycli/project/create_project.py +++ b/capycli/project/create_project.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# Copyright (c) 2019-2024 Siemens +# Copyright (c) 2019-2025 Siemens # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -49,6 +49,28 @@ def bom_to_release_list(self, sbom: Bom) -> List[str]: return linkedReleases + def get_release_project_mainline_states(self, project: Optional[Dict[str, Any]]) -> List[Dict[str, Any]]: + pms: List[Dict[str, Any]] = [] + if not project: + return pms + + if "linkedReleases" not in project: + return pms + + for release in project["linkedReleases"]: # NOT ["sw360:releases"] + pms_release = release.get("release", "") + if not pms_release: + continue + pms_state = release.get("mainlineState", "OPEN") + pms_relation = release.get("relation", "UNKNOWN") + pms_entry: Dict[str, Any] = {} + pms_entry["release"] = pms_release + pms_entry["mainlineState"] = pms_state + pms_entry["new_relation"] = pms_relation + pms.append(pms_entry) + + return pms + def update_project(self, project_id: str, project: Optional[Dict[str, Any]], sbom: Bom, project_info: Dict[str, Any]) -> None: """Update an existing project with the given SBOM""" @@ -57,6 +79,7 @@ def update_project(self, project_id: str, project: Optional[Dict[str, Any]], sys.exit(ResultCode.RESULT_ERROR_ACCESSING_SW360) data = self.bom_to_release_list(sbom) + pms = self.get_release_project_mainline_states(project) ignore_update_elements = ["name", "version"] # remove elements from list because they are handled separately @@ -91,6 +114,20 @@ def update_project(self, project_id: str, project: Optional[Dict[str, Any]], if not result2: print_red(" Error updating project!") + if pms and project: + print_text(" Restoring original project mainline states...") + for pms_entry in pms: + update_release = False + for r in project.get("linkedReleases", []): + if r["release"] == pms_entry["release"]: + update_release = True + break + + if update_release: + rid = self.client.get_id_from_href(pms_entry["release"]) + self.client.update_project_release_relationship( + project_id, rid, pms_entry["mainlineState"], pms_entry["new_relation"], "") + except SW360Error as swex: if swex.response is None: print_red(" Unknown error: " + swex.message) @@ -277,19 +314,27 @@ def run(self, args: Any) -> None: print(" -t SW360_TOKEN, use this token for access to SW360") print(" -oa, --oauth2 this is an oauth2 token") print(" -url SW360_URL use this URL for access to SW360") - print(" -name NAME, --name NAME name of the project") + print(" -name NAME name of the project") print(" -version VERSION, version of the project") print(" -id PROJECT_ID SW360 id of the project, supersedes name and version parameters") print(" -old-version previous version") print(" -source projectinfo.json additional information about the project to be created") print(" -pms project mainline state for releases in a newly created project") + print(" --copy_from PROJECT_ID copy the project with the given id and the update it") return if not args.inputfile: print_red("No input file (BOM) specified!") sys.exit(ResultCode.RESULT_COMMAND_ERROR) - if not args.id: + if args.copy_from: + if args.id: + print_red("--copy_from cannot get combined with -id!") + sys.exit(ResultCode.RESULT_COMMAND_ERROR) + if not args.version: + print_red("No version for the new project specified!") + sys.exit(ResultCode.RESULT_COMMAND_ERROR) + elif not args.id: if not args.name: print_red("Neither project name nor id specified!") sys.exit(ResultCode.RESULT_COMMAND_ERROR) @@ -340,6 +385,16 @@ def run(self, args: Any) -> None: print_red("Error reading project information: " + repr(ex)) sys.exit(ResultCode.RESULT_COMMAND_ERROR) + if args.copy_from: + print(f"Creating a copy of project {args.copy_from}...") + try: + project = self.client.duplicate_project(args.copy_from, args.version) + if project: + args.id = self.client.get_id_from_href(project["_links"]["self"]["href"]) + except SW360Error as swex: + print_red(" ERROR: unable to copy existing project:" + repr(swex)) + sys.exit(ResultCode.RESULT_ERROR_ACCESSING_SW360) + if args.id: self.project_id = args.id elif args.name and args.version: diff --git a/poetry.lock b/poetry.lock index a80b9dc..09eaa1c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -331,13 +331,13 @@ toml = ["toml"] [[package]] name = "cyclonedx-python-lib" -version = "8.4.0" +version = "8.5.0" description = "Python library for CycloneDX" optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "cyclonedx_python_lib-8.4.0-py3-none-any.whl", hash = "sha256:fd44efd601f651c8865acf0dfeacb0df19a2b50ec69ead0262096fd2f67197b9"}, - {file = "cyclonedx_python_lib-8.4.0.tar.gz", hash = "sha256:1d86efc1e81c0fd01141658b8aed5248c4f4d8d300d7ced9e1dfc39abeafc0a9"}, + {file = "cyclonedx_python_lib-8.5.0-py3-none-any.whl", hash = "sha256:a6b6d04295cdbee27c4b8d618ba2c1c7bbd535b9666cc36b05e9d6408751a829"}, + {file = "cyclonedx_python_lib-8.5.0.tar.gz", hash = "sha256:35f7a139042e4df17ff414fa228cec83c7e4e493bdec990847357791ca72f3a5"}, ] [package.dependencies] @@ -750,13 +750,13 @@ test = ["pytest"] [[package]] name = "packaging" -version = "24.1" +version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -1070,105 +1070,105 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a"}, - {file = "regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0"}, - {file = "regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd"}, - {file = "regex-2024.9.11-cp38-cp38-win32.whl", hash = "sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771"}, - {file = "regex-2024.9.11-cp38-cp38-win_amd64.whl", hash = "sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35"}, - {file = "regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142"}, - {file = "regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] @@ -1351,13 +1351,13 @@ files = [ [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -1384,13 +1384,13 @@ files = [ [[package]] name = "sw360" -version = "1.7.0" +version = "1.8.0" description = "Python interface to the SW360 software component catalogue" optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "sw360-1.7.0-py3-none-any.whl", hash = "sha256:e0146972bcead8327ec32390fdcf0d43180e4480dd3ac436d16d50f15b61c2a0"}, - {file = "sw360-1.7.0.tar.gz", hash = "sha256:e1322c33c8c08c3e257e1f9033b17321f3d643056338bcde02c4df7eed11ad25"}, + {file = "sw360-1.8.0-py3-none-any.whl", hash = "sha256:7c7d83164383a5015aabefe7a701d50bdd960816a18466720f3dfe0ba1933991"}, + {file = "sw360-1.8.0.tar.gz", hash = "sha256:713189ecc5abed3bed7fd4b51eca73eeb26dd539b8f188fc858489a96a2cc0e5"}, ] [package.dependencies] @@ -1398,13 +1398,43 @@ requests = ">=2.32.2,<3.0.0" [[package]] name = "tomli" -version = "2.0.2" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, - {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] @@ -1445,24 +1475,24 @@ files = [ [[package]] name = "types-openpyxl" -version = "3.1.5.20241025" +version = "3.1.5.20241126" description = "Typing stubs for openpyxl" optional = false python-versions = ">=3.8" files = [ - {file = "types-openpyxl-3.1.5.20241025.tar.gz", hash = "sha256:16089ea33238877994f2740f7f12d60f937d8c670a7589fc6d5434561c960da3"}, - {file = "types_openpyxl-3.1.5.20241025-py3-none-any.whl", hash = "sha256:6f0cd1fe7a0b488c1df53786e10aad4887c5f85eeb19e3ac288cc4083214050e"}, + {file = "types_openpyxl-3.1.5.20241126-py3-none-any.whl", hash = "sha256:e50ad5c2dec2c92cca521abed5c039975226e8e76389f17ab0ef813595593fbe"}, + {file = "types_openpyxl-3.1.5.20241126.tar.gz", hash = "sha256:f599afab19f87aa11672ee675346401d82a0dac71988df9a5411cdb1e7477377"}, ] [[package]] name = "types-python-dateutil" -version = "2.9.0.20241003" +version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" files = [ - {file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"}, - {file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"}, + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, ] [[package]] @@ -1481,13 +1511,13 @@ types-urllib3 = "*" [[package]] name = "types-setuptools" -version = "75.2.0.20241025" +version = "75.6.0.20241126" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.2.0.20241025.tar.gz", hash = "sha256:2949913a518d5285ce00a3b7d88961c80a6e72ffb8f3da0a3f5650ea533bd45e"}, - {file = "types_setuptools-75.2.0.20241025-py3-none-any.whl", hash = "sha256:6721ac0f1a620321e2ccd87a9a747c4a383dc381f78d894ce37f2455b45fcf1c"}, + {file = "types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b"}, + {file = "types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0"}, ] [[package]] @@ -1557,6 +1587,23 @@ brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotl secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +[[package]] +name = "validation" +version = "0.8.3" +description = "A library for runtime type checking and validation of python values" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "validation-0.8.3.tar.gz", hash = "sha256:c4aed7dd548b5ad3ba12306cda7322658490e22dedef29295fdb8692b1b4fe3a"}, +] + +[package.dependencies] +six = ">=1.10,<2" + +[package.extras] +email = ["idna (>=2.0.0)"] +test = ["idna", "pytz"] + [[package]] name = "vcrpy" version = "4.4.0" @@ -1591,81 +1638,76 @@ test = ["pytest (>=3.0.0)"] [[package]] name = "wrapt" -version = "1.16.0" +version = "1.17.0" description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, + {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e185ec6060e301a7e5f8461c86fb3640a7beb1a0f0208ffde7a65ec4074931df"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb90765dd91aed05b53cd7a87bd7f5c188fcd95960914bae0d32c5e7f899719d"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:879591c2b5ab0a7184258274c42a126b74a2c3d5a329df16d69f9cee07bba6ea"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fce6fee67c318fdfb7f285c29a82d84782ae2579c0e1b385b7f36c6e8074fffb"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0698d3a86f68abc894d537887b9bbf84d29bcfbc759e23f4644be27acf6da301"}, + {file = "wrapt-1.17.0-cp310-cp310-win32.whl", hash = "sha256:69d093792dc34a9c4c8a70e4973a3361c7a7578e9cd86961b2bbf38ca71e4e22"}, + {file = "wrapt-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:f28b29dc158ca5d6ac396c8e0a2ef45c4e97bb7e65522bfc04c989e6fe814575"}, + {file = "wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, + {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, + {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, + {file = "wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4"}, + {file = "wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635"}, + {file = "wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7"}, + {file = "wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a"}, + {file = "wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045"}, + {file = "wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838"}, + {file = "wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab"}, + {file = "wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf"}, + {file = "wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a"}, + {file = "wrapt-1.17.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:69c40d4655e078ede067a7095544bcec5a963566e17503e75a3a3e0fe2803b13"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f495b6754358979379f84534f8dd7a43ff8cff2558dcdea4a148a6e713a758f"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa7ef4e0886a6f482e00d1d5bcd37c201b383f1d314643dfb0367169f94f04c"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fc931382e56627ec4acb01e09ce66e5c03c384ca52606111cee50d931a342d"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8f8909cdb9f1b237786c09a810e24ee5e15ef17019f7cecb207ce205b9b5fcce"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad47b095f0bdc5585bced35bd088cbfe4177236c7df9984b3cc46b391cc60627"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:948a9bd0fb2c5120457b07e59c8d7210cbc8703243225dbd78f4dfc13c8d2d1f"}, + {file = "wrapt-1.17.0-cp38-cp38-win32.whl", hash = "sha256:5ae271862b2142f4bc687bdbfcc942e2473a89999a54231aa1c2c676e28f29ea"}, + {file = "wrapt-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:f335579a1b485c834849e9075191c9898e0731af45705c2ebf70e0cd5d58beed"}, + {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, + {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, + {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, + {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, + {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, ] [[package]] @@ -1802,4 +1844,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "db98a82b8742344f873e748243530209f38b9137b77fd2f8ef0269e0ab638005" +content-hash = "fd6417ebc9aed08c08fb8e8e05775be708ab25465f4b3de39999de8ceff142d6" diff --git a/pyproject.toml b/pyproject.toml index 628174d..71f7675 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [tool.poetry] name = "capycli" -version = "2.6.0.dev1" +version = "2.6.0" description = "CaPyCli - Clearing Automation Python Command Line Interface for SW360" authors = ["Thomas Graf "] license = "MIT" @@ -53,6 +53,7 @@ urllib3 = "*" importlib-resources = "^5.12.0" beautifulsoup4 = "^4.11.1" jsonschema = "^4.23.0" +validation = "^0.8.3" [tool.poetry.group.dev.dependencies] flake8 = ">=3.7.8" diff --git a/requirements.txt b/requirements.txt index c48df6f..228b6d6 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/tests/test_base.py b/tests/test_base.py index 07350fa..9c3e811 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -65,6 +65,7 @@ def __init__(self) -> None: self.github_token: str = "" self.force_error: bool = False self.project_mainline_state = "" + self.copy_from = "" class TestBasePytest: diff --git a/tests/test_bom_create_releases.py b/tests/test_bom_create_releases.py index 57bc63d..5dc30aa 100644 --- a/tests/test_bom_create_releases.py +++ b/tests/test_bom_create_releases.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# Copyright (c) 2021-2023 Siemens +# Copyright (c) 2021-2024 Siemens # All Rights Reserved. # Author: gernot.hillier@siemens.com, thomas.graf@siemens.com # @@ -703,7 +703,7 @@ def test_upload_file_allow_git_binary_upload(self) -> None: body="content") responses.add( responses.POST, SW360_BASE_URL + 'releases/06a6e7/attachments', - match=[upload_matcher("babel.git")]) + match=[upload_matcher("babel.git", "BINARY")]) self.app.download = True item = Component( @@ -1171,4 +1171,4 @@ def test_update_release_attachment_rename(self) -> None: if __name__ == '__main__': APP = CapycliTestBomCreate() APP.setUp() - APP.test_update_release_attachment() + APP.test_upload_file_allow_git_binary_upload() diff --git a/tests/test_bom_map2.py b/tests/test_bom_map2.py index bedf9db..219cade 100644 --- a/tests/test_bom_map2.py +++ b/tests/test_bom_map2.py @@ -178,7 +178,7 @@ def test_map_bom_item_nocache_mixed_match(self) -> None: res = self.app.map_bom_item_no_cache(bomitem) assert res.result == MapResult.FULL_MATCH_BY_NAME_AND_VERSION - # TODO see #25: assert len(res.releases) == 1 + # TODO see #118: assert len(res.releases) == 1 component_matches = {"_embedded": {"sw360:components": [ {"name": "Mail", @@ -191,6 +191,38 @@ def test_map_bom_item_nocache_mixed_match(self) -> None: assert res.result == MapResult.FULL_MATCH_BY_NAME_AND_VERSION assert len(res.releases) == 1 + @responses.activate + def test_map_bom_item_nocache_invalid_version(self) -> None: + bomitem = Component( + name="mail", + version="1.4") + component_matches = {"_embedded": {"sw360:components": [ + {"name": "mail", + "_links": {"self": {"href": SW360_BASE_URL + 'components/b001'}}}]}} + component_data1 = {"_embedded": {"sw360:releases": [ + {"version": "1.4", + "_links": {"self": {"href": SW360_BASE_URL + 'releases/1111'}}}, + {"version": "1.0._ME-2", + "_links": {"self": {"href": SW360_BASE_URL + 'releases/1112'}}}]}} + release_data1 = {"name": "mail", "version": "1.4", "_links": { + "self": {"href": SW360_BASE_URL + 'releases/1111'}, + "sw360:component": {"href": SW360_BASE_URL + "components/b001"}}} + release_data2 = {"name": "Mail", "version": "1.0._ME-2", "_links": { + "self": {"href": SW360_BASE_URL + 'releases/1112'}, + "sw360:component": {"href": SW360_BASE_URL + "components/b002"}}} + responses.add(responses.GET, SW360_BASE_URL + 'components?name=mail', + json=component_matches) + responses.add(responses.GET, SW360_BASE_URL + 'components/b001', + json=component_data1) + responses.add(responses.GET, SW360_BASE_URL + 'releases/1111', + json=release_data1) + responses.add(responses.GET, SW360_BASE_URL + 'releases/1112', + json=release_data2) + + res = self.app.map_bom_item_no_cache(bomitem) + assert res.result == MapResult.FULL_MATCH_BY_NAME_AND_VERSION + assert len(res.releases) == 1 + # ----------------- map_bom_item_no_cache purl cases -------------------- @responses.activate diff --git a/tests/test_bom_show.py b/tests/test_bom_show.py index d63e428..7e7d06e 100644 --- a/tests/test_bom_show.py +++ b/tests/test_bom_show.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# Copyright (c) 2023 Siemens +# Copyright (c) 2023-2024 Siemens # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -94,16 +94,16 @@ def test_simple_bom_verbose(self) -> None: out = self.capture_stdout(sut.run, args) self.assertTrue("colorama, 0.4.6" in out) - self.assertTrue("package-url:pkg:pypi/colorama@0.4.6" in out) + self.assertTrue("package-url: pkg:pypi/colorama@0.4.6" in out) self.assertTrue("SW360 id:9a2373710bd44769a2560dd31280901d" in out) self.assertTrue("python, 3.8" in out) - self.assertTrue("package-url:pkg:pypi/python@3.8" in out) + self.assertTrue("package-url: pkg:pypi/python@3.8" in out) self.assertTrue("SW360 id:05c30bf89a512463260b57e84d99b38f" in out) self.assertTrue("tomli, 2.0.1" in out) - self.assertTrue("package-url:pkg:pypi/tomli@2.0.1" in out) + self.assertTrue("package-url: pkg:pypi/tomli@2.0.1" in out) self.assertTrue("SW360 id:fa0d21eb17574ba9ae17e5c9b432558e" in out) self.assertTrue("wheel, 0.38.4" in out) - self.assertTrue("package-url:pkg:pypi/wheel@0.38.4" in out) + self.assertTrue("package-url: pkg:pypi/wheel@0.38.4" in out) self.assertTrue("SW360 id:e0995819173d4ac8b1a4da3548935976" in out)