diff --git a/.env b/.env.test similarity index 55% rename from .env rename to .env.test index c62498b00..f108edb65 100644 --- a/.env +++ b/.env.test @@ -1,16 +1,14 @@ +# Your version of Splunk (default: latest) +version=latest + +# Access scheme (default: https) +scheme=https # Splunk host (default: localhost) host=localhost # Splunk admin port (default: 8089) port=8089 + # Splunk username username=admin # Splunk password password=changed! -# Access scheme (default: https) -scheme=https -# Your version of Splunk (default: 6.2) -version=9.0 -# Bearer token for authentication -#splunkToken="" -# Session key for authentication -#token="" diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e36085909..b645ed216 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,10 +1,9 @@ --- name: Bug report about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - +title: "" +labels: "" +assignees: "" --- **Describe the bug** @@ -12,6 +11,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -24,14 +24,16 @@ A clear and concise description of what you expected to happen. If applicable, add logs or screenshots to help explain your problem. **Splunk (please complete the following information):** + - Version: [e.g. 8.0.5] - OS: [e.g. Ubuntu 20.04.1] - Deployment: [e.g. single-instance] **SDK (please complete the following information):** - - Version: [e.g. 1.6.14] - - Language Runtime Version: [e.g. Python 3.7] - - OS: [e.g. MacOS 10.15.7] + +- Version: [e.g. 1.6.14] +- Language Runtime Version: [e.g. Python 3.7] +- OS: [e.g. MacOS 10.15.7] **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md index 48d5f81fa..babf9b2c0 100644 --- a/.github/ISSUE_TEMPLATE/custom.md +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -1,10 +1,7 @@ --- name: Custom issue template about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - +title: "" +labels: "" +assignees: "" --- - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index bbcbbe7d6..2bc5d5f71 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,10 +1,9 @@ --- name: Feature request about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - +title: "" +labels: "" +assignees: "" --- **Is your feature request related to a problem? Please describe.** diff --git a/.github/PULL_REQUEST_TEMPLATE/pr_template.md b/.github/PULL_REQUEST_TEMPLATE/pr_template.md index 9fd37c3cf..40b3dc4dd 100644 --- a/.github/PULL_REQUEST_TEMPLATE/pr_template.md +++ b/.github/PULL_REQUEST_TEMPLATE/pr_template.md @@ -1,15 +1,14 @@ --- name: Pull Request Template about: Create a Pull Request to contribute to the SDK -title: '' -labels: '' -assignees: '' - +title: "" +labels: "" +assignees: "" --- ## Description of PR -Provide the **context and motivation** for this PR. +Provide the **context and motivation** for this PR. Briefly explain the **type of changes** (bug fix, feature request, doc update, etc.) made in this PR. Provide reference to issue # fixed, if applicable. Describe the approach to the solution, the changes made, and any resulting change in behavior or impact to the user. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 90ef8171b..30e3ebe21 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,43 +1,45 @@ -name: Release +name: Publish release to PyPI on: release: types: [published] + workflow_dispatch: + inputs: + dry-run: + type: boolean + required: true + default: true jobs: - publish: - name: Deploy Release to PyPI - runs-on: ubuntu-latest + release: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + python-version: [3.9] steps: - - name: Checkout source - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 + - name: Checkout repo + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 with: - python-version: 3.7 + python-version: ${{ matrix.python-version }} - name: Install dependencies - run: pip install twine + run: pip install . --group build - name: Build package - run: python setup.py sdist + run: python -m build - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@v1.8.10 + if: ${{ inputs.dry-run == 'false' }} + uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc with: user: __token__ - password: ${{ secrets.pypi_password }} - - name: Install tox - run: pip install tox - - name: Generate API docs + password: ${{ secrets.PYPI_PASSWORD }} + - name: Generate API reference docs run: | rm -rf ./docs/_build - tox -e docs - - name : Docs Upload - uses: actions/upload-artifact@v3 + python -m tox -e docs + - name: Upload API reference docs + if: ${{ inputs.dry-run == 'false' }} + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 with: name: python_sdk_docs path: docs/_build/html - # Test upload - # - name: Publish package to TestPyPI - # uses: pypa/gh-action-pypi-publish@master - # with: - # user: __token__ - # password: ${{ secrets.test_pypi_password }} - # repository_url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 329c686c4..d678fec7f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,51 +1,51 @@ name: Python CI -on: - [ push, workflow_dispatch ] +on: [push, workflow_dispatch] jobs: - build: - + test: runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: - - ubuntu-latest - python: [ 3.9, 3.13 ] + - ubuntu-22.04 + # - ubuntu-latest + python-version: + - 3.7 + # - 3.9 + # - 3.13 splunk-version: - - "8.1" - - "8.2" - - "latest" - include: - - os: ubuntu-22.04 - python: 3.7 - splunk-version: "8.1" - - os: ubuntu-22.04 - python: 3.7 - splunk-version: "8.2" - - os: ubuntu-22.04 - python: 3.7 - splunk-version: "latest" - - fail-fast: false - + - "9.3" + # - "9.4" + # - "latest" steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Run docker compose - run: SPLUNK_VERSION=${{matrix.splunk-version}} docker compose up -d - - - name: Setup Python - uses: actions/setup-python@v4 + - name: Checkout repo + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - name: Set up environment variables + run: cp ./.env.test ./.env + - name: Launch Splunk ${{ matrix.splunk-version }} + run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 with: - python-version: ${{ matrix.python }} - - - name: Install tox - run: pip install tox - - - name: Test Execution - run: tox -e py - fossa-scan: - uses: splunk/oss-scanning-public/.github/workflows/oss-scan.yml@main - secrets: inherit \ No newline at end of file + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: type -a python && python -m pip install tox + - name: Run Docker health check + # Probably solves nothing, worth trying regardless + run: | + timeout 30s make wait_up + if [ $? -eq 124 ]; then + echo "Splunk failed to start within 30 seconds." + docker compose logs + exit 1 + fi + - name: Run test suite + run: type -a python && python -m tox -e py + - name: Print docker logs for optional inspection + run: docker compose logs +# [BJ] I'll uncomment this step after I finish fiddling +# fossa-scan: +# uses: splunk/oss-scanning-public/.github/workflows/oss-scan.yml@main +# secrets: inherit diff --git a/.gitignore b/.gitignore index 05505fe74..78771e29e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,8 @@ *coverage_html_report* .coverage .coverage.* -.python-version .vscode +# *.code-workspace __stdout__ docs/_build build/ @@ -17,12 +17,16 @@ coverage_report test.log tests/searchcommands_data/log/ tests/searchcommands_data/output/ -Test Results*.html tests/searchcommands/data/app/app.log +tests/searchcommands/apps/app_with_logging_configuration/*.log +Test Results*.html splunk_sdk.egg-info/ +.splunkrc dist/ -tests/searchcommands/apps/app_with_logging_configuration/*.log *.observed venv/ +.venv/ +.mypy_cache/ .tox test-reports/ +.env \ No newline at end of file diff --git a/.python-version b/.python-version new file mode 100644 index 000000000..a02597f4b --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.9 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 288543c6e..bdf60ee97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,276 +3,302 @@ ## Version 2.1.0 ### Changes -* [#516](https://github.com/splunk/splunk-sdk-python/pull/516) Added support for macros -* Remove deprecated `wrap_socket` in `Contex` class. -* Added explicit support for self signed certificates in https -* Enforce minimal required tls version in https connection -* Add support for python 3.13 -* [#559](https://github.com/splunk/splunk-sdk-python/pull/559/) Add exception logging + +- [#516](https://github.com/splunk/splunk-sdk-python/pull/516) Added support for macros +- Remove deprecated `wrap_socket` in `Contex` class. +- Added explicit support for self signed certificates in https +- Enforce minimal required tls version in https connection +- Add support for python 3.13 +- [#559](https://github.com/splunk/splunk-sdk-python/pull/559/) Add exception logging ## Version 2.0.2 ### Minor changes -* Added six.py file back +- Added six.py file back ## Version 2.0.1 ### Bug fixes -* [#567](https://github.com/splunk/splunk-sdk-python/issues/567) Moved "deprecation" dependency +- [#567](https://github.com/splunk/splunk-sdk-python/issues/567) Moved "deprecation" dependency ## Version 2.0.0 ### Feature updates -* `ensure_binary`, `ensure_str` and `assert_regex` utility methods have been migrated from `six.py` to `splunklib/utils.py` + +- `ensure_binary`, `ensure_str` and `assert_regex` utility methods have been migrated from `six.py` to `splunklib/utils.py` ### Major changes -* Removed code specific to Python 2 -* Removed six.py dependency -* Removed `__future__` imports -* Refactored and Updated `splunklib` and `tests` to utilize Python 3 features -* Updated CI test matrix to run with Python versions - 3.7 and 3.9 -* Refactored Code throwing `deprecation` warnings -* Refactored Code violating Pylint rules + +- Removed code specific to Python 2 +- Removed six.py dependency +- Removed `__future__` imports +- Refactored and Updated `splunklib` and `tests` to utilize Python 3 features +- Updated CI test matrix to run with Python versions - 3.9. and 3.13. +- Refactored Code throwing `deprecation` warnings +- Refactored Code violating Pylint rules ### Bug fixes -* [#527](https://github.com/splunk/splunk-sdk-python/issues/527) Added check for user roles -* Fix to access the metadata "finished" field in search commands using the v2 protocol -* Fix for error messages about ChunkedExternProcessor in splunkd.log for Custom Search Commands +- [#527](https://github.com/splunk/splunk-sdk-python/issues/527) Added check for user roles +- Fix to access the metadata "finished" field in search commands using the v2 protocol +- Fix for error messages about ChunkedExternProcessor in splunkd.log for Custom Search Commands ## Version 1.7.4 ### Bug fixes -* [#532](https://github.com/splunk/splunk-sdk-python/pull/532) Update encoding errors mode to 'replace' [[issue#505](https://github.com/splunk/splunk-sdk-python/issues/505)] -* [#507](https://github.com/splunk/splunk-sdk-python/pull/507) Masked sensitive data in logs [[issue#506](https://github.com/splunk/splunk-sdk-python/issues/506)] + +- [#532](https://github.com/splunk/splunk-sdk-python/pull/532) Update encoding errors mode to 'replace' [[issue#505](https://github.com/splunk/splunk-sdk-python/issues/505)] +- [#507](https://github.com/splunk/splunk-sdk-python/pull/507) Masked sensitive data in logs [[issue#506](https://github.com/splunk/splunk-sdk-python/issues/506)] ### Minor changes -* [#530](https://github.com/splunk/splunk-sdk-python/pull/530) Update GitHub CI build status in README and removed RTD(Read The Docs) reference + +- [#530](https://github.com/splunk/splunk-sdk-python/pull/530) Update GitHub CI build status in README and removed RTD(Read The Docs) reference ## Version 1.7.3 ### Bug fixes -* [#493](https://github.com/splunk/splunk-sdk-python/pull/493) Fixed file permission for event_writer.py file [[issue#487](https://github.com/splunk/splunk-sdk-python/issues/487)] -* [#500](https://github.com/splunk/splunk-sdk-python/pull/500) Replaced index_field with accelerated_field for kvstore [[issue#497](https://github.com/splunk/splunk-sdk-python/issues/497)] -* [#502](https://github.com/splunk/splunk-sdk-python/pull/502) Updated check for IPv6 addresses + +- [#493](https://github.com/splunk/splunk-sdk-python/pull/493) Fixed file permission for event_writer.py file [[issue#487](https://github.com/splunk/splunk-sdk-python/issues/487)] +- [#500](https://github.com/splunk/splunk-sdk-python/pull/500) Replaced index_field with accelerated_field for kvstore [[issue#497](https://github.com/splunk/splunk-sdk-python/issues/497)] +- [#502](https://github.com/splunk/splunk-sdk-python/pull/502) Updated check for IPv6 addresses ### Minor changes -* [#490](https://github.com/splunk/splunk-sdk-python/pull/490) Added ACL properties update feature -* [#495](https://github.com/splunk/splunk-sdk-python/pull/495) Added Splunk 8.1 in GitHub Actions Matrix -* [#485](https://github.com/splunk/splunk-sdk-python/pull/485) Added test case for cookie persistence -* [#503](https://github.com/splunk/splunk-sdk-python/pull/503) README updates on accessing "service" instance in CSC and ModularInput apps -* [#504](https://github.com/splunk/splunk-sdk-python/pull/504) Updated authentication token names in docs to reduce confusion -* [#494](https://github.com/splunk/splunk-sdk-python/pull/494) Reuse splunklib.__version__ in handler.request + +- [#490](https://github.com/splunk/splunk-sdk-python/pull/490) Added ACL properties update feature +- [#495](https://github.com/splunk/splunk-sdk-python/pull/495) Added Splunk 8.1 in GitHub Actions Matrix +- [#485](https://github.com/splunk/splunk-sdk-python/pull/485) Added test case for cookie persistence +- [#503](https://github.com/splunk/splunk-sdk-python/pull/503) README updates on accessing "service" instance in CSC and ModularInput apps +- [#504](https://github.com/splunk/splunk-sdk-python/pull/504) Updated authentication token names in docs to reduce confusion +- [#494](https://github.com/splunk/splunk-sdk-python/pull/494) Reuse splunklib.**version** in handler.request ## Version 1.7.2 ### Minor changes -* [#482](https://github.com/splunk/splunk-sdk-python/pull/482) Special handling related to the semantic versioning of specific Search APIs functional in Splunk Enterprise 9.0.2 and (Splunk Cloud 9.0.2209). These SDK changes will enable seamless transition between the APIs based on the version of the Splunk Enterprise in use + +- [#482](https://github.com/splunk/splunk-sdk-python/pull/482) Special handling related to the semantic versioning of specific Search APIs functional in Splunk Enterprise 9.0.2 and (Splunk Cloud 9.0.2209). These SDK changes will enable seamless transition between the APIs based on the version of the Splunk Enterprise in use ## Version 1.7.1 ### Bug fixes -* [#471](https://github.com/splunk/splunk-sdk-python/pull/471) Fixed support of Load Balancer "sticky sessions" (persistent cookies) [[issue#438](https://github.com/splunk/splunk-sdk-python/issues/438)] + +- [#471](https://github.com/splunk/splunk-sdk-python/pull/471) Fixed support of Load Balancer "sticky sessions" (persistent cookies) [[issue#438](https://github.com/splunk/splunk-sdk-python/issues/438)] ### Minor changes -* [#466](https://github.com/splunk/splunk-sdk-python/pull/466) Tests for CSC apps -* [#467](https://github.com/splunk/splunk-sdk-python/pull/467) Added 'kwargs' parameter for Saved Search History function -* [#475](https://github.com/splunk/splunk-sdk-python/pull/475) README updates + +- [#466](https://github.com/splunk/splunk-sdk-python/pull/466) Tests for CSC apps +- [#467](https://github.com/splunk/splunk-sdk-python/pull/467) Added 'kwargs' parameter for Saved Search History function +- [#475](https://github.com/splunk/splunk-sdk-python/pull/475) README updates ## Version 1.7.0 ### New features and APIs -* [#468](https://github.com/splunk/splunk-sdk-python/pull/468) SDK Support for splunkd search API changes + +- [#468](https://github.com/splunk/splunk-sdk-python/pull/468) SDK Support for splunkd search API changes ### Bug fixes -* [#464](https://github.com/splunk/splunk-sdk-python/pull/464) Updated checks for wildcards in StoragePasswords [[issue#458](https://github.com/splunk/splunk-sdk-python/issues/458)] + +- [#464](https://github.com/splunk/splunk-sdk-python/pull/464) Updated checks for wildcards in StoragePasswords [[issue#458](https://github.com/splunk/splunk-sdk-python/issues/458)] ### Minor changes -* [#463](https://github.com/splunk/splunk-sdk-python/pull/463) Preserve third-party cookies + +- [#463](https://github.com/splunk/splunk-sdk-python/pull/463) Preserve third-party cookies ## Version 1.6.20 ### New features and APIs -* [#442](https://github.com/splunk/splunk-sdk-python/pull/442) Optional retries feature added -* [#447](https://github.com/splunk/splunk-sdk-python/pull/447) Create job support for "output_mode:json" [[issue#285](https://github.com/splunk/splunk-sdk-python/issues/285)] + +- [#442](https://github.com/splunk/splunk-sdk-python/pull/442) Optional retries feature added +- [#447](https://github.com/splunk/splunk-sdk-python/pull/447) Create job support for "output_mode:json" [[issue#285](https://github.com/splunk/splunk-sdk-python/issues/285)] ### Bug fixes -* [#449](https://github.com/splunk/splunk-sdk-python/pull/449) Set cookie [[issue#438](https://github.com/splunk/splunk-sdk-python/issues/438)] -* [#460](https://github.com/splunk/splunk-sdk-python/pull/460) Remove restart from client.Entity.disable + +- [#449](https://github.com/splunk/splunk-sdk-python/pull/449) Set cookie [[issue#438](https://github.com/splunk/splunk-sdk-python/issues/438)] +- [#460](https://github.com/splunk/splunk-sdk-python/pull/460) Remove restart from client.Entity.disable ### Minor changes -* [#444](https://github.com/splunk/splunk-sdk-python/pull/444) Update tox.ini -* [#446](https://github.com/splunk/splunk-sdk-python/pull/446) Release workflow refactor -* [#448](https://github.com/splunk/splunk-sdk-python/pull/448) Documentation changes -* [#450](https://github.com/splunk/splunk-sdk-python/pull/450) Removed examples and it's references from the SDK +- [#444](https://github.com/splunk/splunk-sdk-python/pull/444) Update tox.ini +- [#446](https://github.com/splunk/splunk-sdk-python/pull/446) Release workflow refactor +- [#448](https://github.com/splunk/splunk-sdk-python/pull/448) Documentation changes +- [#450](https://github.com/splunk/splunk-sdk-python/pull/450) Removed examples and it's references from the SDK ## Version 1.6.19 ### New features and APIs -* [#441](https://github.com/splunk/splunk-sdk-python/pull/441) JSONResultsReader added and deprecated ResultsReader - * Pre-requisite: Query parameter 'output_mode' must be set to 'json' - * Improves performance by approx ~80-90% - * ResultsReader is deprecated and will be removed in future releases (NOTE: Please migrate to JSONResultsReader) -* [#437](https://github.com/splunk/splunk-sdk-python/pull/437) Added setup_logging() method in splunklib for logging -* [#426](https://github.com/splunk/splunk-sdk-python/pull/426) Added new github_commit modular input example -* [#392](https://github.com/splunk/splunk-sdk-python/pull/392) Break out search argument to option parsing for v2 custom search commands -* [#384](https://github.com/splunk/splunk-sdk-python/pull/384) Added Float parameter validator for custom search commands -* [#371](https://github.com/splunk/splunk-sdk-python/pull/371) Modinput preserve 'app' context + +- [#441](https://github.com/splunk/splunk-sdk-python/pull/441) JSONResultsReader added and deprecated ResultsReader + - Pre-requisite: Query parameter 'output_mode' must be set to 'json' + - Improves performance by approx ~80-90% + - ResultsReader is deprecated and will be removed in future releases (NOTE: Please migrate to JSONResultsReader) +- [#437](https://github.com/splunk/splunk-sdk-python/pull/437) Added setup_logging() method in splunklib for logging +- [#426](https://github.com/splunk/splunk-sdk-python/pull/426) Added new github_commit modular input example +- [#392](https://github.com/splunk/splunk-sdk-python/pull/392) Break out search argument to option parsing for v2 custom search commands +- [#384](https://github.com/splunk/splunk-sdk-python/pull/384) Added Float parameter validator for custom search commands +- [#371](https://github.com/splunk/splunk-sdk-python/pull/371) Modinput preserve 'app' context ### Bug fixes -* [#439](https://github.com/splunk/splunk-sdk-python/pull/439) Modified POST method debug log to not log sensitive body/data -* [#431](https://github.com/splunk/splunk-sdk-python/pull/431) Add distsearch.conf to Stream Search Command examples [ [issue#418](https://github.com/splunk/splunk-sdk-python/issues/418) ] -* [#419](https://github.com/splunk/splunk-sdk-python/pull/419) Hec endpoint issue[ [issue#345](https://github.com/splunk/splunk-sdk-python/issues/345) ] -* [#416](https://github.com/splunk/splunk-sdk-python/pull/416) Removed strip() method in load_value() method from data.py file [ [issue#400](https://github.com/splunk/splunk-sdk-python/issues/400) ] -* [#148](https://github.com/splunk/splunk-sdk-python/pull/148) Identical entity names will cause an infinite loop + +- [#439](https://github.com/splunk/splunk-sdk-python/pull/439) Modified POST method debug log to not log sensitive body/data +- [#431](https://github.com/splunk/splunk-sdk-python/pull/431) Add distsearch.conf to Stream Search Command examples [ [issue#418](https://github.com/splunk/splunk-sdk-python/issues/418) ] +- [#419](https://github.com/splunk/splunk-sdk-python/pull/419) Hec endpoint issue[ [issue#345](https://github.com/splunk/splunk-sdk-python/issues/345) ] +- [#416](https://github.com/splunk/splunk-sdk-python/pull/416) Removed strip() method in load_value() method from data.py file [ [issue#400](https://github.com/splunk/splunk-sdk-python/issues/400) ] +- [#148](https://github.com/splunk/splunk-sdk-python/pull/148) Identical entity names will cause an infinite loop ### Minor changes -* [#440](https://github.com/splunk/splunk-sdk-python/pull/440) Github release workflow modified to generate docs -* [#430](https://github.com/splunk/splunk-sdk-python/pull/430) Fix indentation in README -* [#429](https://github.com/splunk/splunk-sdk-python/pull/429) Documented how to access modular input metadata -* [#427](https://github.com/splunk/splunk-sdk-python/pull/427) Replace .splunkrc with .env file in test and examples -* [#424](https://github.com/splunk/splunk-sdk-python/pull/424) Float validator test fix -* [#423](https://github.com/splunk/splunk-sdk-python/pull/423) Python 3 compatibility for ResponseReader.__str__() -* [#422](https://github.com/splunk/splunk-sdk-python/pull/422) ordereddict and all its reference removed -* [#421](https://github.com/splunk/splunk-sdk-python/pull/421) Update README.md -* [#387](https://github.com/splunk/splunk-sdk-python/pull/387) Update filter.py -* [#331](https://github.com/splunk/splunk-sdk-python/pull/331) Fix a couple of warnings spotted when running python 2.7 tests -* [#330](https://github.com/splunk/splunk-sdk-python/pull/330) client: use six.string_types instead of basestring -* [#329](https://github.com/splunk/splunk-sdk-python/pull/329) client: remove outdated comment in Index.submit -* [#262](https://github.com/splunk/splunk-sdk-python/pull/262) Properly add parameters to request based on the method of the request -* [#237](https://github.com/splunk/splunk-sdk-python/pull/237) Don't output close tags if you haven't written a start tag -* [#149](https://github.com/splunk/splunk-sdk-python/pull/149) "handlers" stanza missing in examples/searchcommands_template/default/logging.conf + +- [#440](https://github.com/splunk/splunk-sdk-python/pull/440) Github release workflow modified to generate docs +- [#430](https://github.com/splunk/splunk-sdk-python/pull/430) Fix indentation in README +- [#429](https://github.com/splunk/splunk-sdk-python/pull/429) Documented how to access modular input metadata +- [#427](https://github.com/splunk/splunk-sdk-python/pull/427) Replace .splunkrc with .env file in test and examples +- [#424](https://github.com/splunk/splunk-sdk-python/pull/424) Float validator test fix +- [#423](https://github.com/splunk/splunk-sdk-python/pull/423) Python 3 compatibility for ResponseReader.**str**() +- [#422](https://github.com/splunk/splunk-sdk-python/pull/422) ordereddict and all its reference removed +- [#421](https://github.com/splunk/splunk-sdk-python/pull/421) Update README.md +- [#387](https://github.com/splunk/splunk-sdk-python/pull/387) Update filter.py +- [#331](https://github.com/splunk/splunk-sdk-python/pull/331) Fix a couple of warnings spotted when running python 2.7 tests +- [#330](https://github.com/splunk/splunk-sdk-python/pull/330) client: use six.string_types instead of basestring +- [#329](https://github.com/splunk/splunk-sdk-python/pull/329) client: remove outdated comment in Index.submit +- [#262](https://github.com/splunk/splunk-sdk-python/pull/262) Properly add parameters to request based on the method of the request +- [#237](https://github.com/splunk/splunk-sdk-python/pull/237) Don't output close tags if you haven't written a start tag +- [#149](https://github.com/splunk/splunk-sdk-python/pull/149) "handlers" stanza missing in examples/searchcommands_template/default/logging.conf ## Version 1.6.18 ### Bug fixes -* [#405](https://github.com/splunk/splunk-sdk-python/pull/405) Fix searchcommands_app example -* [#406](https://github.com/splunk/splunk-sdk-python/pull/406) Fix mod inputs examples -* [#407](https://github.com/splunk/splunk-sdk-python/pull/407) Fixed issue with Streaming and Generating Custom Search Commands dropping fields that aren't present in the first row of results. More details on how to opt-in to this fix can be found here: -https://github.com/splunk/splunk-sdk-python/blob/develop/README.md#customization [ [issue#401](https://github.com/splunk/splunk-sdk-python/issues/401) ] + +- [#405](https://github.com/splunk/splunk-sdk-python/pull/405) Fix searchcommands_app example +- [#406](https://github.com/splunk/splunk-sdk-python/pull/406) Fix mod inputs examples +- [#407](https://github.com/splunk/splunk-sdk-python/pull/407) Fixed issue with Streaming and Generating Custom Search Commands dropping fields that aren't present in the first row of results. More details on how to opt-in to this fix can be found here: + https://github.com/splunk/splunk-sdk-python/blob/develop/README.md#customization [ [issue#401](https://github.com/splunk/splunk-sdk-python/issues/401) ] ### Minor changes -* [#408](https://github.com/splunk/splunk-sdk-python/pull/408) Add search mode example -* [#409](https://github.com/splunk/splunk-sdk-python/pull/409) Add Support for authorization tokens read from .splunkrc [ [issue#388](https://github.com/splunk/splunk-sdk-python/issues/388) ] -* [#413](https://github.com/splunk/splunk-sdk-python/pull/413) Default kvstore owner to nobody [ [issue#231](https://github.com/splunk/splunk-sdk-python/issues/231) ] + +- [#408](https://github.com/splunk/splunk-sdk-python/pull/408) Add search mode example +- [#409](https://github.com/splunk/splunk-sdk-python/pull/409) Add Support for authorization tokens read from .splunkrc [ [issue#388](https://github.com/splunk/splunk-sdk-python/issues/388) ] +- [#413](https://github.com/splunk/splunk-sdk-python/pull/413) Default kvstore owner to nobody [ [issue#231](https://github.com/splunk/splunk-sdk-python/issues/231) ] ## Version 1.6.17 ### Bug fixes -* [#383](https://github.com/splunk/splunk-sdk-python/pull/383) Implemented the possibility to provide a SSLContext object to the connect method -* [#396](https://github.com/splunk/splunk-sdk-python/pull/396) Updated KVStore Methods to support dictionaries -* [#397](https://github.com/splunk/splunk-sdk-python/pull/397) Added code changes for encoding '/' in _key parameter in kvstore.data APIs. -* [#398](https://github.com/splunk/splunk-sdk-python/pull/398) Added dictionary support for KVStore "query" methods. -* [#402](https://github.com/splunk/splunk-sdk-python/pull/402) Fixed regression introduced in 1.6.15 to once again allow processing of empty input records in custom search commands (fix [#376](https://github.com/splunk/splunk-sdk-python/issues/376)) -* [#404](https://github.com/splunk/splunk-sdk-python/pull/404) Fixed test case failure for 8.0 and latest(8.2.x) splunk version +- [#383](https://github.com/splunk/splunk-sdk-python/pull/383) Implemented the possibility to provide a SSLContext object to the connect method +- [#396](https://github.com/splunk/splunk-sdk-python/pull/396) Updated KVStore Methods to support dictionaries +- [#397](https://github.com/splunk/splunk-sdk-python/pull/397) Added code changes for encoding '/' in \_key parameter in kvstore.data APIs. +- [#398](https://github.com/splunk/splunk-sdk-python/pull/398) Added dictionary support for KVStore "query" methods. +- [#402](https://github.com/splunk/splunk-sdk-python/pull/402) Fixed regression introduced in 1.6.15 to once again allow processing of empty input records in custom search commands (fix [#376](https://github.com/splunk/splunk-sdk-python/issues/376)) +- [#404](https://github.com/splunk/splunk-sdk-python/pull/404) Fixed test case failure for 8.0 and latest(8.2.x) splunk version ### Minor changes -* [#381](https://github.com/splunk/splunk-sdk-python/pull/381) Updated current year in conf.py -* [#389](https://github.com/splunk/splunk-sdk-python/pull/389) Fixed few typos -* [#391](https://github.com/splunk/splunk-sdk-python/pull/391) Fixed spelling error in client.py -* [#393](https://github.com/splunk/splunk-sdk-python/pull/393) Updated development status past 3 -* [#394](https://github.com/splunk/splunk-sdk-python/pull/394) Updated Readme steps to run examples -* [#395](https://github.com/splunk/splunk-sdk-python/pull/395) Updated random_number.py -* [#399](https://github.com/splunk/splunk-sdk-python/pull/399) Moved CI tests to GitHub Actions -* [#403](https://github.com/splunk/splunk-sdk-python/pull/403) Removed usage of Easy_install to install SDK +- [#381](https://github.com/splunk/splunk-sdk-python/pull/381) Updated current year in conf.py +- [#389](https://github.com/splunk/splunk-sdk-python/pull/389) Fixed few typos +- [#391](https://github.com/splunk/splunk-sdk-python/pull/391) Fixed spelling error in client.py +- [#393](https://github.com/splunk/splunk-sdk-python/pull/393) Updated development status past 3 +- [#394](https://github.com/splunk/splunk-sdk-python/pull/394) Updated Readme steps to run examples +- [#395](https://github.com/splunk/splunk-sdk-python/pull/395) Updated random_number.py +- [#399](https://github.com/splunk/splunk-sdk-python/pull/399) Moved CI tests to GitHub Actions +- [#403](https://github.com/splunk/splunk-sdk-python/pull/403) Removed usage of Easy_install to install SDK ## Version 1.6.16 ### Bug fixes + [#312](https://github.com/splunk/splunk-sdk-python/pull/312) Fix issue [#309](https://github.com/splunk/splunk-sdk-python/issues/309), avoid catastrophic backtracking in searchcommands ## Version 1.6.15 ### Bug fixes -* [#301](https://github.com/splunk/splunk-sdk-python/pull/301) Fix chunk synchronization -* [#327](https://github.com/splunk/splunk-sdk-python/pull/327) Rename and cleanup follow-up for chunk synchronization -* [#352](https://github.com/splunk/splunk-sdk-python/pull/352) Allow supplying of a key-value body when calling Context.post() +- [#301](https://github.com/splunk/splunk-sdk-python/pull/301) Fix chunk synchronization +- [#327](https://github.com/splunk/splunk-sdk-python/pull/327) Rename and cleanup follow-up for chunk synchronization +- [#352](https://github.com/splunk/splunk-sdk-python/pull/352) Allow supplying of a key-value body when calling Context.post() ### Minor changes -* [#350](https://github.com/splunk/splunk-sdk-python/pull/350) Initial end-to-end tests for streaming, reporting, generating custom search commands -* [#348](https://github.com/splunk/splunk-sdk-python/pull/348) Update copyright years to 2020 -* [#346](https://github.com/splunk/splunk-sdk-python/pull/346) Readme updates to urls, terminology, and formatting -* [#317](https://github.com/splunk/splunk-sdk-python/pull/317) Fix deprecation warnings +- [#350](https://github.com/splunk/splunk-sdk-python/pull/350) Initial end-to-end tests for streaming, reporting, generating custom search commands +- [#348](https://github.com/splunk/splunk-sdk-python/pull/348) Update copyright years to 2020 +- [#346](https://github.com/splunk/splunk-sdk-python/pull/346) Readme updates to urls, terminology, and formatting +- [#317](https://github.com/splunk/splunk-sdk-python/pull/317) Fix deprecation warnings ## Version 1.6.14 ### Bug fix -* `SearchCommand` now correctly supports multibyte characters in Python 3. + +- `SearchCommand` now correctly supports multibyte characters in Python 3. ## Version 1.6.13 ### Bug fix -* Fixed regression in mod inputs which resulted in error ’file' object has no attribute 'readable’, by not forcing to text/bytes in mod inputs event writer any longer. + +- Fixed regression in mod inputs which resulted in error ’file' object has no attribute 'readable’, by not forcing to text/bytes in mod inputs event writer any longer. ### Minor changes -* Minor updates to the splunklib search commands to support Python 3 + +- Minor updates to the splunklib search commands to support Python 3 ## Version 1.6.12 ### New features and APIs -* Added Bearer token support using Splunk Token in v7.3 -* Made modinput text consistent + +- Added Bearer token support using Splunk Token in v7.3 +- Made modinput text consistent ### Bug fixes -* Changed permissions from 755 to 644 for Python files to pass Appinspect checks -* Removed version check on ssl verify toggle + +- Changed permissions from 755 to 644 for Python files to pass Appinspect checks +- Removed version check on ssl verify toggle ## Version 1.6.11 ### Bug Fix -* Fix custom search command V2 failures on Windows for Python 3 +- Fix custom search command V2 failures on Windows for Python 3 ## Version 1.6.10 ### Bug Fix -* Fix long type gets wrong values on Windows for Python 2 +- Fix long type gets wrong values on Windows for Python 2 ## Version 1.6.9 ### Bug Fix -* Fix buffered input in Python 3 +- Fix buffered input in Python 3 ## Version 1.6.8 ### Bug Fix -* Fix custom search command on Python 3 on Windows +- Fix custom search command on Python 3 on Windows ## Version 1.6.7 ### Changes -* Updated the Splunk Enterprise SDK for Python to work with the Python 3 version of Splunk Enterprise on Windows -* Improved the performance of deleting/updating an input -* Added logging to custom search commands app to showcase how to do logging in custom search commands by using the Splunk Enterprise SDK for Python +- Updated the Splunk Enterprise SDK for Python to work with the Python 3 version of Splunk Enterprise on Windows +- Improved the performance of deleting/updating an input +- Added logging to custom search commands app to showcase how to do logging in custom search commands by using the Splunk Enterprise SDK for Python ## Version 1.6.6 ### Bug fixes -* Fix ssl verify to require certs when true +- Fix ssl verify to require certs when true ### Minor changes -* Make the explorer example compatible w/ Python 3 -* Add full support for unicode in SearchCommands -* Add return code for invalid_args block +- Make the explorer example compatible w/ Python 3 +- Add full support for unicode in SearchCommands +- Add return code for invalid_args block ## Version 1.6.5 ### Bug fixes -* Fixed XML responses to not throw errors for unicode characters. +- Fixed XML responses to not throw errors for unicode characters. ## Version 1.6.4 @@ -282,10 +308,10 @@ Not Applicable ### Minor Changes -* Changed `splunklib/binding.py` Context class' constructor initialization to support default settings for encrypted http communication when creating the HttpLib object that it depends on. This is extracted from the keyword dictionary that is provided for its initializaiton. Encryption defaults to enabled if not specified. -* Changed `splunklib/binding.py` HttpLib class constructor to include the `verify` parameter in order to support default encryption if the default handler is being used. Encryption defaults to enabled if not specified. -* Changed `splunklib/binding.py` `handler` function to include the `verify` parameter in order to support default encryption. -* Changed `splunklib/binding.py` `handler`'s nested `connect` function to create the context in as unverified if specified by the `verify` parameter. +- Changed `splunklib/binding.py` Context class' constructor initialization to support default settings for encrypted http communication when creating the HttpLib object that it depends on. This is extracted from the keyword dictionary that is provided for its initializaiton. Encryption defaults to enabled if not specified. +- Changed `splunklib/binding.py` HttpLib class constructor to include the `verify` parameter in order to support default encryption if the default handler is being used. Encryption defaults to enabled if not specified. +- Changed `splunklib/binding.py` `handler` function to include the `verify` parameter in order to support default encryption. +- Changed `splunklib/binding.py` `handler`'s nested `connect` function to create the context in as unverified if specified by the `verify` parameter. ### Bug fixes @@ -293,189 +319,188 @@ Not Applicable ### Documentation -* Changed `examples/searchcommands_app/package/bin/filter.py` FilterCommand.update doc-string from `map` to `update` in order to align with Splunk search changes. -* Changed `examples/searchcommands_app/package/default/searchbnf.conf` [filter-command].example1 from the `map` keyword to the `update` keyword in order to align with Splunk search changes. -* Changed `splunklib/binding.py` Context class' doc-string to include the `verify` parameter and type information related to the new keyword dictionary parameter `verify`. -* Changed `splunklib/binding.py` `handler` function's doc-string to include the `verify` parameter and type information related to the parameter `verify`. -* Changed `splunklib/client.py` `connect` function doc-string to include the `verify` parameter and type information related to the new keyword dictionary parameter `verify`. -* Changed `splunklib/client.py` `Service` Class' doc-string to include the `verify` parameter and type information related to the new keyword dictionary parameter `verify`. +- Changed `examples/searchcommands_app/package/bin/filter.py` FilterCommand.update doc-string from `map` to `update` in order to align with Splunk search changes. +- Changed `examples/searchcommands_app/package/default/searchbnf.conf` [filter-command].example1 from the `map` keyword to the `update` keyword in order to align with Splunk search changes. +- Changed `splunklib/binding.py` Context class' doc-string to include the `verify` parameter and type information related to the new keyword dictionary parameter `verify`. +- Changed `splunklib/binding.py` `handler` function's doc-string to include the `verify` parameter and type information related to the parameter `verify`. +- Changed `splunklib/client.py` `connect` function doc-string to include the `verify` parameter and type information related to the new keyword dictionary parameter `verify`. +- Changed `splunklib/client.py` `Service` Class' doc-string to include the `verify` parameter and type information related to the new keyword dictionary parameter `verify`. ## Version 1.6.3 ### New features and APIs -* Support for Python 3.x has been added for external integrations with the Splunk platform. However, because Splunk Enterprise 7+ still includes Python 2.7.x, any apps or scripts that run on the Splunk platform must continue to be written for Python 2.7.x. +- Support for Python 3.x has been added for external integrations with the Splunk platform. However, because Splunk Enterprise 7+ still includes Python 2.7.x, any apps or scripts that run on the Splunk platform must continue to be written for Python 2.7.x. ### Bug fixes The following bugs have been fixed: -* Search commands error - `ERROR ChunkedExternProcessor - Invalid custom search command type: eventing`. +- Search commands error - `ERROR ChunkedExternProcessor - Invalid custom search command type: eventing`. -* Search commands running more than once for certain cases. +- Search commands running more than once for certain cases. -* Search command protocol v2 inverting the `distributed` configuration flag. +- Search command protocol v2 inverting the `distributed` configuration flag. ## Version 1.6.2 ### Minor changes -* Use relative imports throughout the SDK. +- Use relative imports throughout the SDK. -* Performance improvement when constructing `Input` entity paths. +- Performance improvement when constructing `Input` entity paths. ## Version 1.6.1 ### Bug Fixes -* Fixed Search Commands exiting if the external process returns a zero status code (Windows only). +- Fixed Search Commands exiting if the external process returns a zero status code (Windows only). -* Fixed Search Command Protocol v2 not parsing the `maxresultrows` and `command` metadata properties. +- Fixed Search Command Protocol v2 not parsing the `maxresultrows` and `command` metadata properties. -* Fixed double prepending the `Splunk ` prefix for authentication tokens. +- Fixed double prepending the `Splunk ` prefix for authentication tokens. -* Fixed `Index.submit()` for namespaced `Service` instances. +- Fixed `Index.submit()` for namespaced `Service` instances. -* Fixed uncaught `AttributeError` when accessing `Entity` properties (GitHub issue #131). +- Fixed uncaught `AttributeError` when accessing `Entity` properties (GitHub issue #131). ### Minor Changes -* Fixed broken tests due to expired SSL certificate. +- Fixed broken tests due to expired SSL certificate. ## Version 1.6.0 ### New Features and APIs -* Added support for KV Store. - -* Added support for HTTP basic authentication (GitHub issue #117). +- Added support for KV Store. -* Improve support for HTTP keep-alive connections (GitHub issue #122). +- Added support for HTTP basic authentication (GitHub issue #117). +- Improve support for HTTP keep-alive connections (GitHub issue #122). ### Bug Fixes -* Fixed Python 2.6 compatibility (GitHub issue #141). +- Fixed Python 2.6 compatibility (GitHub issue #141). -* Fixed appending restrictToHost to UDP inputs (GitHub issue #128). +- Fixed appending restrictToHost to UDP inputs (GitHub issue #128). ### Minor Changes -* Added support for Travis CI. +- Added support for Travis CI. -* Updated the default test runner. +- Updated the default test runner. -* Removed shortened links from documentation and comments. +- Removed shortened links from documentation and comments. ## Version 1.5.0 ### New features and APIs -* Added support for the new experimental Search Command Protocol v2, for Splunk 6.3+. +- Added support for the new experimental Search Command Protocol v2, for Splunk 6.3+. Opt-in by setting `chunked = true` in commands.conf. See `examples/searchcommands_app/package/default/commands-scpv2.conf`. -* Added support for invoking external search command processes. +- Added support for invoking external search command processes. See `examples/searchcommands_app/package/bin/pypygeneratext.py`. -* Added a new search command type: EventingCommand is the base class for commands that filter events arriving at a +- Added a new search command type: EventingCommand is the base class for commands that filter events arriving at a search head from one or more search peers. See `examples/searchcommands_app/package/bin/filter.py`. -* Added `splunklib` logger so that command loggers can be configured independently of the `splunklib.searchcommands` +- Added `splunklib` logger so that command loggers can be configured independently of the `splunklib.searchcommands` module. See `examples/searchcommands_app/package/default/logger.conf` for guidance on logging configuration. -* Added `splunklib.searchcommands.validators.Match` class for verifying that an option value matches a regular +- Added `splunklib.searchcommands.validators.Match` class for verifying that an option value matches a regular expression pattern. ### Bug fixes -* GitHub issue 88: `splunklib.modularinput`, `` written even when `done=False`. +- GitHub issue 88: `splunklib.modularinput`, `` written even when `done=False`. -* GitHub issue 115: `splunklib.searchcommands.splunk_csv.dict_reader` raises `KeyError` when `supports_multivalues = True`. +- GitHub issue 115: `splunklib.searchcommands.splunk_csv.dict_reader` raises `KeyError` when `supports_multivalues = True`. -* GitHub issue 119: `None` returned in `_load_atom_entries`. +- GitHub issue 119: `None` returned in `_load_atom_entries`. -* Various other bug fixes/improvements for Search Command Protocol v1. +- Various other bug fixes/improvements for Search Command Protocol v1. -* Various bug fixes/improvements to the full splunklib test suite. +- Various bug fixes/improvements to the full splunklib test suite. ## Version 1.4.0 ### New features and APIs -* Added support for cookie-based authentication, for Splunk 6.2+. +- Added support for cookie-based authentication, for Splunk 6.2+. -* Added support for installing as a Python egg. +- Added support for installing as a Python egg. -* Added a convenience `Service.job()` method to get a `Job` by its sid. +- Added a convenience `Service.job()` method to get a `Job` by its sid. ### Bug fixes -* Restored support for Python 2.6 (GitHub issues #96 & #114). +- Restored support for Python 2.6 (GitHub issues #96 & #114). -* Fix `SearchCommands` decorators and `Validator` classes (GitHub issue #113). +- Fix `SearchCommands` decorators and `Validator` classes (GitHub issue #113). -* Fix `SearchCommands` bug iterating over `None` in `dict_reader.fieldnames` (GitHub issue #110). +- Fix `SearchCommands` bug iterating over `None` in `dict_reader.fieldnames` (GitHub issue #110). -* Fixed JSON parsing errors (GitHub issue #100). +- Fixed JSON parsing errors (GitHub issue #100). -* Retain the `type` property when parsing Atom feeds (GitHub issue #92). +- Retain the `type` property when parsing Atom feeds (GitHub issue #92). -* Update non-namespaced server paths with a `/services/` prefix. Fixes a bug where setting the `owner` and/or `app` on a `Service` could produce 403 errors on some REST API endpoints. +- Update non-namespaced server paths with a `/services/` prefix. Fixes a bug where setting the `owner` and/or `app` on a `Service` could produce 403 errors on some REST API endpoints. -* Modular input `Argument.title` is now written correctly. +- Modular input `Argument.title` is now written correctly. -* `Client.connect` will now always return a `Service` instance, even if user credentials are invalid. +- `Client.connect` will now always return a `Service` instance, even if user credentials are invalid. -* Update the `saved_search/saved_search.py` example to handle saved searches with names containing characters that must be URL encoded (ex: `"Top 5 sourcetypes"`). +- Update the `saved_search/saved_search.py` example to handle saved searches with names containing characters that must be URL encoded (ex: `"Top 5 sourcetypes"`). ### Minor Changes -* Update modular input examples with readable titles. +- Update modular input examples with readable titles. -* Improvements to `splunklib.searchcommands` tests. +- Improvements to `splunklib.searchcommands` tests. -* Various docstring and code style corrections. +- Various docstring and code style corrections. -* Updated some tests to pass on Splunk 6.2+. +- Updated some tests to pass on Splunk 6.2+. ## Version 1.3.1 ### Bug fixes -* Hot fix to `binding.py` to work with Python 2.7.9, which introduced SSL certificate validation by default as outlined in [PEP 476](https://www.python.org/dev/peps/pep-0476). -* Update `async`, `handler_proxy`, and `handler_urllib2` examples to work with Python 2.7.9 by disabling SSL certificate validation by default. +- Hot fix to `binding.py` to work with Python 2.7.9, which introduced SSL certificate validation by default as outlined in [PEP 476](https://www.python.org/dev/peps/pep-0476). +- Update `async`, `handler_proxy`, and `handler_urllib2` examples to work with Python 2.7.9 by disabling SSL certificate validation by default. ## Version 1.3.0 ### New features and APIs -* Added support for Storage Passwords. +- Added support for Storage Passwords. -* Added a script (GenerateHelloCommand) to the searchcommand_app to generate a custom search command. +- Added a script (GenerateHelloCommand) to the searchcommand_app to generate a custom search command. -* Added a human-readable argument titles to modular input examples. +- Added a human-readable argument titles to modular input examples. -* Renamed the searchcommand `csv` module to `splunk_csv`. +- Renamed the searchcommand `csv` module to `splunk_csv`. ### Bug fixes -* Now entities that contain slashes in their name can be created, accessed and deleted correctly. +- Now entities that contain slashes in their name can be created, accessed and deleted correctly. -* Fixed a performance issue with connecting to Splunk on Windows. +- Fixed a performance issue with connecting to Splunk on Windows. -* Improved the `service.restart()` function. +- Improved the `service.restart()` function. ## Version 1.2.3 ### New features and APIs -* Improved error handling in custom search commands +- Improved error handling in custom search commands SearchCommand.process now catches all exceptions and @@ -485,10 +510,10 @@ The following bugs have been fixed: 2. Logs a traceback to SearchCommand.logger. This is old behavior. -* Made ResponseReader more streamlike, so that it can be wrapped in an +- Made ResponseReader more streamlike, so that it can be wrapped in an io.BufferedReader to realize a significant performance gain. - *Example usage* + _Example usage_ ``` import io @@ -518,7 +543,7 @@ The following bugs have been fixed: ### New features and APIs -* Added features for building custom search commands in Python +- Added features for building custom search commands in Python 1. Access Splunk Search Results Info. @@ -531,13 +556,13 @@ The following bugs have been fixed: 3. Control logging and view command configuration settings from the Splunk command line - + The `logging_configuration` option lets you pick an alternative logging + - The `logging_configuration` option lets you pick an alternative logging configuration file for a command invocation. - + The `logging_level` option lets you set the logging level for a command + - The `logging_level` option lets you set the logging level for a command invocation. - + The `show_configuration` option writes command configuration settings + - The `show_configuration` option writes command configuration settings to the Splunk Job Inspector. 4. Get a more complete picture of what's happening when an error occurs @@ -552,7 +577,7 @@ The following bugs have been fixed: See `SearchCommand.messages`. -* Added a feature for building modular inputs. +- Added a feature for building modular inputs. 1. Communicate with Splunk. @@ -560,93 +585,93 @@ The following bugs have been fixed: ### Bug fixes -* When running `setup.py dist` without running `setup.py build`, there is no +- When running `setup.py dist` without running `setup.py build`, there is no longer a `No such file or directory` error on the command line, and the command behaves as expected. -* When setting the sourcetype of a modular input event, events are indexed +- When setting the sourcetype of a modular input event, events are indexed properly. Previously Splunk would encounter an error and skip them. ### Quality improvements -* Better code documentation and unit test coverage. +- Better code documentation and unit test coverage. ## Version 1.2 ### New features and APIs -* Added support for building custom search commands in Python using the Splunk +- Added support for building custom search commands in Python using the Splunk SDK for Python. ### Bug fix -* When running `setup.py dist` without running `setup.py build`, there is no +- When running `setup.py dist` without running `setup.py build`, there is no longer a `No such file or directory` error on the command line, and the command behaves as expected. -* When setting the sourcetype of a modular input event, events are indexed properly. +- When setting the sourcetype of a modular input event, events are indexed properly. Previously Splunk would encounter an error and skip them. ### Breaking changes -* If modular inputs were not being indexed by Splunk because a sourcetype was set +- If modular inputs were not being indexed by Splunk because a sourcetype was set (and the SDK was not handling them correctly), they will be indexed upon updating to this version of the SDK. ### Minor changes -* Docstring corrections in the modular input examples. +- Docstring corrections in the modular input examples. -* A minor docstring correction in `splunklib/modularinput/event_writer.py`. +- A minor docstring correction in `splunklib/modularinput/event_writer.py`. ## Version 1.1 ### New features and APIs -* Added support for building modular input scripts in Python using the Splunk +- Added support for building modular input scripts in Python using the Splunk SDK for Python. ### Minor additions -* Added 2 modular input examples: `Github forks` and `random numbers`. +- Added 2 modular input examples: `Github forks` and `random numbers`. -* Added a `dist` command to `setup.py`. Running `setup.py dist` will generate +- Added a `dist` command to `setup.py`. Running `setup.py dist` will generate 2 `.spl` files for the new modular input example apps. -* `client.py` in the `splunklib` module will now restart Splunk via an HTTP +- `client.py` in the `splunklib` module will now restart Splunk via an HTTP post request instead of an HTTP get request. -* `.gitignore` has been updated to ignore `local` and `metadata` subdirectories -for any examples. +- `.gitignore` has been updated to ignore `local` and `metadata` subdirectories + for any examples. ## Version 1.0 ### New features and APIs -* An `AuthenticationError` exception has been added. +- An `AuthenticationError` exception has been added. This exception is a subclass of `HTTPError`, so existing code that expects HTTP 401 (Unauthorized) will continue to work. -* An `"autologin"` argument has been added to the `splunklib.client.connect` and +- An `"autologin"` argument has been added to the `splunklib.client.connect` and `splunklib.binding.connect` functions. When set to true, Splunk automatically tries to log in again if the session terminates. -* The `is_ready` and `is_done` methods have been added to the `Job` class to +- The `is_ready` and `is_done` methods have been added to the `Job` class to improve the verification of a job's completion status. -* Modular inputs have been added (requires Splunk 5.0+). +- Modular inputs have been added (requires Splunk 5.0+). -* The `Jobs.export` method has been added, enabling you to run export searches. +- The `Jobs.export` method has been added, enabling you to run export searches. -* The `Service.restart` method now takes a `"timeout"` argument. If a timeout +- The `Service.restart` method now takes a `"timeout"` argument. If a timeout period is specified, the function blocks until splunkd has restarted or the timeout period has passed. Otherwise, if a timeout period has not been specified, the function returns immediately and you must check whether splunkd has restarted yourself. -* The `Collections.__getitem__` method can fetch items from collections with an +- The `Collections.__getitem__` method can fetch items from collections with an explicit namespace. This example shows how to retrieve a saved search for a specific namespace: @@ -654,46 +679,47 @@ for any examples. ns = client.namespace(owner='nobody', app='search') result = service.saved_searches['Top five sourcetypes', ns] -* The `SavedSearch` class has been extended by adding the following: - - Properties: `alert_count`, `fired_alerts`, `scheduled_times`, `suppressed` - - Methods: `suppress`, `unsuppress` +- The `SavedSearch` class has been extended by adding the following: -* The `Index.attached_socket` method has been added. This method can be used + - Properties: `alert_count`, `fired_alerts`, `scheduled_times`, `suppressed` + - Methods: `suppress`, `unsuppress` + +- The `Index.attached_socket` method has been added. This method can be used inside a `with` block to submit multiple events to an index, which is a more idiomatic style than using the existing `Index.attach` method. -* The `Indexes.get_default` method has been added for returnings the name of the +- The `Indexes.get_default` method has been added for returnings the name of the default index. -* The `Service.search` method has been added as a shortcut for creating a search +- The `Service.search` method has been added as a shortcut for creating a search job. -* The `User.role_entities` convenience method has been added for returning a +- The `User.role_entities` convenience method has been added for returning a list of role entities of a user. -* The `Role` class has been added, including the `grant` and `revoke` +- The `Role` class has been added, including the `grant` and `revoke` convenience methods for adding and removing capabilities from a role. -* The `Application.package` and `Application.updateInfo` methods have been +- The `Application.package` and `Application.updateInfo` methods have been added. - ### Breaking changes -* `Job` objects are no longer guaranteed to be ready for querying. +- `Job` objects are no longer guaranteed to be ready for querying. Client code should call the `Job.is_ready` method to determine when it is safe to access properties on the job. -* The `Jobs.create` method can no longer be used to create a oneshot search +- The `Jobs.create` method can no longer be used to create a oneshot search (with `"exec_mode=oneshot"`). Use the `Jobs.oneshot` method instead. -* The `ResultsReader` interface has changed completely, including: - - The `read` method has been removed and you must iterate over the - `ResultsReader` object directly. - - Results from the iteration are either `dict`s or instances of - `results.Message`. +- The `ResultsReader` interface has changed completely, including: -* All `contains` methods on collections have been removed. + - The `read` method has been removed and you must iterate over the + `ResultsReader` object directly. + - Results from the iteration are either `dict`s or instances of + `results.Message`. + +- All `contains` methods on collections have been removed. Use Python's `in` operator instead. For example: # correct usage @@ -702,60 +728,58 @@ for any examples. # incorrect usage service.apps.contains('search') -* The `Collections.__getitem__` method throws `AmbiguousReferenceException` if +- The `Collections.__getitem__` method throws `AmbiguousReferenceException` if there are multiple entities that have the specified entity name in the current namespace. -* The order of arguments in the `Inputs.create` method has changed. The `name` +- The order of arguments in the `Inputs.create` method has changed. The `name` argument is now first, to be consistent with all other collections and all other operations on `Inputs`. -* The `ConfFile` class has been renamed to `ConfigurationFile`. +- The `ConfFile` class has been renamed to `ConfigurationFile`. -* The `Confs` class has been renamed to `Configurations`. +- The `Confs` class has been renamed to `Configurations`. -* Namespace handling has changed and any code that depends on namespace handling +- Namespace handling has changed and any code that depends on namespace handling in detail may break. -* Calling the `Job.cancel` method on a job that has already been cancelled no +- Calling the `Job.cancel` method on a job that has already been cancelled no longer has any effect. -* The `Stanza.submit` method now takes a `dict` instead of a raw string. - +- The `Stanza.submit` method now takes a `dict` instead of a raw string. ### Bug fixes and miscellaneous changes -* Collection listings are optionally paginated. +- Collection listings are optionally paginated. -* Connecting with a pre-existing session token works whether the token begins +- Connecting with a pre-existing session token works whether the token begins with 'Splunk ' or not; the SDK handles either case correctly. -* Documentation has been improved and expanded. - -* Many small bugs have been fixed. +- Documentation has been improved and expanded. +- Many small bugs have been fixed. ## 0.8.0 (beta) ### Features -* Improvements to entity state management -* Improvements to usability of entity collections -* Support for collection paging - collections now support the paging arguments: +- Improvements to entity state management +- Improvements to usability of entity collections +- Support for collection paging - collections now support the paging arguments: `count`, `offset`, `search`, `sort_dir`, `sort_key` and `sort_mode`. Note that `Inputs` and `Jobs` are not pageable collections and only support basic enumeration and iteration. -* Support for event types: - - Added Service.event_types + units - - Added examples/event_types.py -* Support for fired alerts: - - Added Service.fired_alerts + units - - Added examples/fired_alerts.py -* Support for saved searches: - - Added Service.saved_searches + units - - Added examples/saved_searches.py -* Sphinx based SDK docs and improved source code docstrings. -* Support for IPv6 - it is now possible to connect to a Splunk instance +- Support for event types: + - Added Service.event_types + units + - Added examples/event_types.py +- Support for fired alerts: + - Added Service.fired_alerts + units + - Added examples/fired_alerts.py +- Support for saved searches: + - Added Service.saved_searches + units + - Added examples/saved_searches.py +- Sphinx based SDK docs and improved source code docstrings. +- Support for IPv6 - it is now possible to connect to a Splunk instance listening on an IPv6 address. ### Breaking changes @@ -783,10 +807,10 @@ With the change to enable state caching, the entity is instantiated with a copy of its entire state record, which can be accessed using a variety of properties: -* `Entity.state` returns the entire state record -* `Entity.content` returns the content field of the state record -* `Entity.access` returns entity access metadata -* `Entity.fields` returns entity content metadata +- `Entity.state` returns the entire state record +- `Entity.content` returns the content field of the state record +- `Entity.access` returns entity access metadata +- `Entity.fields` returns entity content metadata `Entity.refresh` is a new method that issues a round-trip to the server and updates the local, cached state record. @@ -847,31 +871,30 @@ context (and all samples & test) now take separate (and optional) `app` and You can find a detailed description of Splunk namespaces in the Splunk REST API reference under the section on accessing Splunk resources at: -* http://docs.splunk.com/Documentation/Splunk/latest/RESTAPI/RESTresources +- http://docs.splunk.com/Documentation/Splunk/latest/RESTAPI/RESTresources #### Misc. API -* Update all classes in the core library modules to use new-style classes -* Rename Job.setpriority to Job.set_priority -* Rename Job.setttl to Job.set_ttl +- Update all classes in the core library modules to use new-style classes +- Rename Job.setpriority to Job.set_priority +- Rename Job.setttl to Job.set_ttl ### Bug fixes -* Fix for GitHub Issues: 2, 10, 12, 15, 17, 18, 21 -* Fix for incorrect handling of mixed case new user names (need to account for +- Fix for GitHub Issues: 2, 10, 12, 15, 17, 18, 21 +- Fix for incorrect handling of mixed case new user names (need to account for fact that Splunk automatically lowercases) -* Fix for Service.settings so that updates get sent to the correct endpoint -* Check name arg passed to Collection.create and raise ValueError if not +- Fix for Service.settings so that updates get sent to the correct endpoint +- Check name arg passed to Collection.create and raise ValueError if not a basestring -* Fix handling of resource names that are not valid URL segments by quoting the +- Fix handling of resource names that are not valid URL segments by quoting the resource name when constructing its path ## 0.1.0a (preview) -* Fix a bug in the dashboard example -* Ramp up README with more info +- Fix a bug in the dashboard example +- Ramp up README with more info ## 0.1.0 (preview) -* Initial Python SDK release - +- Initial Python SDK release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8b22561af..72a384160 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ If you're seeing some unexpected behavior with this project, please create an [i 1. Version of this project you're using (ex: 1.5.0) 2. Platform version (ex: Windows Server 2012 R2) -3. Framework version (ex: Python 3.7) +3. Framework version (ex: Python 3.13.\*) 4. Splunk Enterprise version (ex: 9.0) 5. Other relevant information (ex: local/remote environment, Splunk network configuration, standalone or distributed deployment, are load balancers used) @@ -32,4 +32,3 @@ To create a pull request: If you have a paid Splunk Enterprise or Splunk Cloud license, you can contact [Support](https://www.splunk.com/en_us/support-and-services.html) with questions. You can reach the Splunk Developer Platform team at _devinfo@splunk.com_. - diff --git a/Commands.conf.spec.xlsx b/Commands.conf.spec.xlsx deleted file mode 100644 index ad846090a..000000000 Binary files a/Commands.conf.spec.xlsx and /dev/null differ diff --git a/MANIFEST.in b/MANIFEST.in index 4bf448352..103cbdeb0 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,3 @@ -include README.md \ No newline at end of file +include README.md +include LICENSE +include pyproject.toml \ No newline at end of file diff --git a/Makefile b/Makefile index 58d53228b..ddb89a507 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ docs: .PHONY: test test: @echo "$(ATTN_COLOR)==> test $(NO_COLOR)" - @tox -e py37,py39 + @tox -e py39,py313 .PHONY: test_specific test_specific: @@ -44,17 +44,17 @@ test_specific: .PHONY: test_smoke test_smoke: @echo "$(ATTN_COLOR)==> test_smoke $(NO_COLOR)" - @tox -e py37,py39 -- -m smoke + @tox -e py39,py313 -- -m smoke .PHONY: test_no_app test_no_app: @echo "$(ATTN_COLOR)==> test_no_app $(NO_COLOR)" - @tox -e py37,py39 -- -m "not app" + @tox -e py39,py313 -- -m "not app" .PHONY: test_smoke_no_app test_smoke_no_app: @echo "$(ATTN_COLOR)==> test_smoke_no_app $(NO_COLOR)" - @tox -e py37,py39 -- -m "smoke and not app" + @tox -e py39,py313 -- -m "smoke and not app" .PHONY: env env: diff --git a/README.md b/README.md index 7cd66cc23..f8cb59a07 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -[![Build Status](https://github.com/splunk/splunk-sdk-python/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/splunk/splunk-sdk-python/actions/workflows/test.yml) +# The Splunk Enterprise Software Development Kit for Python -[Reference Docs](https://dev.splunk.com/enterprise/reference) +## Version 2.1.0 -# The Splunk Enterprise Software Development Kit for Python +[![Build Status](https://github.com/splunk/splunk-sdk-python/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/splunk/splunk-sdk-python/actions/workflows/test.yml) -#### Version 2.1.0 +[Reference Docs](https://dev.splunk.com/enterprise/reference) The Splunk Enterprise Software Development Kit (SDK) for Python contains library code designed to enable developers to build applications using the Splunk platform. @@ -16,7 +16,6 @@ The Splunk developer platform enables developers to take advantage of the same t ## Getting started with the Splunk SDK for Python - ## Get started with the Splunk Enterprise SDK for Python The Splunk Enterprise SDK for Python contains library code, and its examples are located in the [splunk-app-examples](https://github.com/splunk/splunk-app-examples) repository. They show how to programmatically interact with the Splunk platform for a variety of scenarios including searching, saved searches, data inputs, and many more, along with building complete applications. @@ -25,18 +24,18 @@ The Splunk Enterprise SDK for Python contains library code, and its examples are Here's what you need to get going with the Splunk Enterprise SDK for Python. -* Python 3.7, Python 3.9 and Python 3.13 - - The Splunk Enterprise SDK for Python is compatible with python3 and has been tested with Python v3.7, v3.9 and v3.13. +- Python 3.9 and Python 3.13 -* Splunk Enterprise 9.2 or 8.2 + The Splunk Enterprise SDK for Python is compatible with python3 and has been tested with Python 3.9 and 3.13. - The Splunk Enterprise SDK for Python has been tested with Splunk Enterprise 9.2, 8.2 and 8.1 +- Splunk Enterprise 10, 9.4 or 8.2 - If you haven't already installed Splunk Enterprise, download it [here](http://www.splunk.com/download). + The Splunk Enterprise SDK for Python has been tested with Splunk Enterprise 10, 9.4 and 8.2 + + If you haven't already installed Splunk Enterprise, download it [here](http://www.splunk.com/download). For more information, see the Splunk Enterprise [_Installation Manual_](https://docs.splunk.com/Documentation/Splunk/latest/Installation). -* Splunk Enterprise SDK for Python +- Splunk Enterprise SDK for Python Get the Splunk Enterprise SDK for Python from [PyPI](https://pypi.org/project/splunk-sdk/). If you want to contribute to the SDK, clone the repository from [GitHub](https://github.com/splunk/splunk-sdk-python). @@ -60,45 +59,54 @@ Install the sources you cloned from GitHub: You'll need `docker` and `docker-compose` to get up and running using this method. -``` -make up SPLUNK_VERSION=9.2 -make wait_up -make test -make down -``` +Also see: [Updating the .env file](#updating-the-env-file) + + ```shell + cp ./.env.template ./.env + make up SPLUNK_VERSION=latest # also available: 10, 9.4 + make wait_up + make test + make down + ``` To run the examples and unit tests, you must put the root of the SDK on your PYTHONPATH. For example, if you downloaded the SDK to your home folder and are running OS X or Linux, add the following line to your **.bash_profile** file: export PYTHONPATH=~/splunk-sdk-python ### Following are the different ways to connect to Splunk Enterprise + #### Using username/password -```python -import splunklib.client as client -service = client.connect(host=, username=, password=, autologin=True) -``` + + ```python + import splunklib.client as client + service = client.connect(host=, username=, password=, autologin=True) + ``` #### Using bearer token -```python -import splunklib.client as client -service = client.connect(host=, splunkToken=, autologin=True) -``` + + ```python + import splunklib.client as client + service = client.connect(host=, splunkToken=, autologin=True) + ``` #### Using session key -```python -import splunklib.client as client -service = client.connect(host=, token=, autologin=True) -``` + + ```python + import splunklib.client as client + service = client.connect(host=, token=, autologin=True) + ``` ### -#### Update a .env file + +#### Updating the .env file To connect to Splunk Enterprise, many of the SDK examples and unit tests take command-line arguments that specify values for the host, port, and login credentials for Splunk Enterprise. For convenience during development, you can store these arguments as key-value pairs in a **.env** file. Then, the SDK examples and unit tests use the values from the **.env** file when you don't specify them. ->**Note**: Storing login credentials in the **.env** file is only for convenience during development. This file isn't part of the Splunk platform and shouldn't be used for storing user credentials for production. And, if you're at all concerned about the security of your credentials, enter them at the command line rather than saving them in this file. +> **Note**: Storing login credentials in the **.env** file is only for convenience during development. This file isn't part of the Splunk platform and shouldn't be used for storing user credentials for production. And, if you're at all concerned about the security of your credentials, enter them at the command line rather than saving them in this file. -here is an example of .env file: +Here is an example of .env file: + ``` # Splunk Enterprise host (default: localhost) host=localhost # Splunk Enterprise admin port (default: 8089) @@ -110,11 +118,12 @@ here is an example of .env file: # Access scheme (default: https) scheme=https # Your version of Splunk Enterprise - version=9.2 + version=10 # Bearer token for authentication #splunkToken= # Session key for authentication #token= + ``` #### SDK examples @@ -124,136 +133,148 @@ Examples for the Splunk Enterprise SDK for Python are located in the [splunk-app The Splunk Enterprise SDK for Python contains a collection of unit tests. To run them, open a command prompt in the **/splunk-sdk-python** directory and enter: - make + `make` You can also run individual test files, which are located in **/splunk-sdk-python/tests**. To run a specific test, enter: - make test_specific + `make test_specific` The test suite uses Python's standard library, the built-in `unittest` library, `pytest`, and `tox`. ->**Notes:** ->* The test run fails unless the [SDK App Collection](https://github.com/splunk/sdk-app-collection) app is installed. ->* To exclude app-specific tests, use the `make test_no_app` command. ->* To learn about our testing framework, see [Splunk Test Suite](https://github.com/splunk/splunk-sdk-python/tree/master/tests) on GitHub. +> **Notes:** +> +> - The test run fails unless the [SDK App Collection](https://github.com/splunk/sdk-app-collection) app is installed. +> - To exclude app-specific tests, use the `make test_no_app` command. +> - To learn about our testing framework, see [Splunk Test Suite](https://github.com/splunk/splunk-sdk-python/tree/master/tests) on GitHub. > In addition, the test run requires you to build the searchcommands app. The `make` command runs the tasks to do this, but more complex testing may require you to rebuild using the `make build_app` command. ## Repository -| Directory | Description | -|:--------- |:---------------------------------------------------------- | -|/docs | Source for Sphinx-based docs and build | -|/splunklib | Source for the Splunk library modules | -|/tests | Source for unit tests | -|/utils | Source for utilities shared by the unit tests | +| Directory | Description | +| :--------- | :-------------------------------------------- | +| /docs | Source for Sphinx-based docs and build | +| /splunklib | Source for the Splunk library modules | +| /tests | Source for unit tests | +| /utils | Source for utilities shared by the unit tests | ### Customization -* When working with custom search commands such as Custom Streaming Commands or Custom Generating Commands, We may need to add new fields to the records based on certain conditions. -* Structural changes like this may not be preserved. -* Make sure to use ``add_field(record, fieldname, value)`` method from SearchCommand to add a new field and value to the record. -* ___Note:__ Usage of ``add_field`` method is completely optional, if you are not facing any issues with field retention._ -Do -```python -class CustomStreamingCommand(StreamingCommand): - def stream(self, records): - for index, record in enumerate(records): - if index % 1 == 0: - self.add_field(record, "odd_record", "true") - yield record -``` +- When working with custom search commands such as Custom Streaming Commands or Custom Generating Commands, We may need to add new fields to the records based on certain conditions. +- Structural changes like this may not be preserved. +- Make sure to use `add_field(record, fieldname, value)` method from SearchCommand to add a new field and value to the record. +- **\_Note:** Usage of `add_field` method is completely optional, if you are not facing any issues with field retention.\_ + +Do: + + ```python + class CustomStreamingCommand(StreamingCommand): + def stream(self, records): + for index, record in enumerate(records): + if index % 1 == 0: + self.add_field(record, "odd_record", "true") + yield record + ``` + +Don't: + + ```python + class CustomStreamingCommand(StreamingCommand): + def stream(self, records): + for index, record in enumerate(records): + if index % 1 == 0: + record["odd_record"] = "true" + yield record + ``` -Don't -```python -class CustomStreamingCommand(StreamingCommand): - def stream(self, records): - for index, record in enumerate(records): - if index % 1 == 0: - record["odd_record"] = "true" - yield record -``` ### Customization for Generating Custom Search Command -* Generating Custom Search Command is used to generate events using SDK code. -* Make sure to use ``gen_record()`` method from SearchCommand to add a new record and pass event data as a key=value pair separated by , (mentioned in below example). + +- Generating Custom Search Command is used to generate events using SDK code. +- Make sure to use `gen_record()` method from SearchCommand to add a new record and pass event data as a key=value pair separated by , (mentioned in below example). Do -```python -@Configuration() -class GeneratorTest(GeneratingCommand): - def generate(self): - yield self.gen_record(_time=time.time(), one=1) - yield self.gen_record(_time=time.time(), two=2) -``` + + ```python + @Configuration() + class GeneratorTest(GeneratingCommand): + def generate(self): + yield self.gen_record(_time=time.time(), one=1) + yield self.gen_record(_time=time.time(), two=2) + ``` Don't -```python -@Configuration() -class GeneratorTest(GeneratingCommand): - def generate(self): - yield {'_time': time.time(), 'one': 1} - yield {'_time': time.time(), 'two': 2} -``` + + ```python + @Configuration() + class GeneratorTest(GeneratingCommand): + def generate(self): + yield {'_time': time.time(), 'one': 1} + yield {'_time': time.time(), 'two': 2} + ``` ### Access metadata of modular inputs app -* In stream_events() method we can access modular input app metadata from InputDefinition object -* See [GitHub Commit](https://github.com/splunk/splunk-app-examples/blob/master/modularinputs/python/github_commits/bin/github_commits.py) Modular input App example for reference. + +- In stream_events() method we can access modular input app metadata from InputDefinition object +- See [GitHub Commit](https://github.com/splunk/splunk-app-examples/blob/master/modularinputs/python/github_commits/bin/github_commits.py) Modular input App example for reference. + ```python - def stream_events(self, inputs, ew): - # other code - - # access metadata (like server_host, server_uri, etc) of modular inputs app from InputDefinition object - # here inputs is a InputDefinition object - server_host = inputs.metadata["server_host"] - server_uri = inputs.metadata["server_uri"] - - # Get the checkpoint directory out of the modular input's metadata - checkpoint_dir = inputs.metadata["checkpoint_dir"] +def stream_events(self, inputs, ew): + # other code + + # access metadata (like server_host, server_uri, etc) of modular inputs app from InputDefinition object + # here inputs is a InputDefinition object + server_host = inputs.metadata["server_host"] + server_uri = inputs.metadata["server_uri"] + + # Get the checkpoint directory out of the modular input's metadata + checkpoint_dir = inputs.metadata["checkpoint_dir"] ``` ### Access service object in Custom Search Command & Modular Input apps #### Custom Search Commands -* The service object is created from the Splunkd URI and session key passed to the command invocation the search results info file. -* Service object can be accessed using `self.service` in `generate`/`transform`/`stream`/`reduce` methods depending on the Custom Search Command. -* For Generating Custom Search Command + +- The service object is created from the `splunkd` URI and session key passed to the command invocation the search results info file. +- Service object can be accessed using `self.service` in `generate`/`transform`/`stream`/`reduce` methods depending on the Custom Search Command. +- For Generating Custom Search Command + ```python - def generate(self): - # other code - - # access service object that can be used to connect Splunk Service - service = self.service - # to get Splunk Service Info - info = service.info + def generate(self): + # other code + + # access service object that can be used to connect Splunk Service + service = self.service + # to get Splunk Service Info + info = service.info ``` - +#### Modular Inputs app -#### Modular Inputs app: -* The service object is created from the Splunkd URI and session key passed to the command invocation on the modular input stream respectively. -* It is available as soon as the `Script.stream_events` method is called. -```python - def stream_events(self, inputs, ew): - # other code - - # access service object that can be used to connect Splunk Service - service = self.service - # to get Splunk Service Info - info = service.info -``` +- The service object is created from the Splunkd URI and session key passed to the command invocation on the modular input stream respectively. +- It is available as soon as the `Script.stream_events` method is called. + ```python + def stream_events(self, inputs, ew): + # other code + + # access service object that can be used to connect Splunk Service + service = self.service + # to get Splunk Service Info + info = service.info + ``` ### Optional:Set up logging for splunklib -+ The default level is WARNING, which means that only events of this level and above will be visible -+ To change a logging level we can call setup_logging() method and pass the logging level as an argument. -+ Optional: we can also pass log format and date format string as a method argument to modify default format -```python -import logging -from splunklib import setup_logging +- The default level is WARNING, which means that only events of this level and above will be visible +- To change a logging level we can call setup_logging() method and pass the logging level as an argument. +- Optional: we can also pass log format and date format string as a method argument to modify default format -# To see debug and above level logs -setup_logging(logging.DEBUG) -``` + ```python + import logging + from splunklib import setup_logging + + # To see debug and above level logs + setup_logging(logging.DEBUG) + ``` ### Changelog @@ -266,42 +287,42 @@ To learn about our branching model, see [Branching Model](https://github.com/spl ## Documentation and resources -| Resource | Description | -|:----------------------- |:----------- | -| [Splunk Developer Portal](http://dev.splunk.com) | General developer documentation, tools, and examples | -| [Integrate the Splunk platform using development tools for Python](https://dev.splunk.com/enterprise/docs/devtools/python)| Documentation for Python development | -| [Splunk Enterprise SDK for Python Reference](http://docs.splunk.com/Documentation/PythonSDK) | SDK API reference documentation | -| [REST API Reference Manual](https://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTprolog) | Splunk REST API reference documentation | -| [Splunk>Docs](https://docs.splunk.com/Documentation) | General documentation for the Splunk platform | -| [GitHub Wiki](https://github.com/splunk/splunk-sdk-python/wiki/) | Documentation for this SDK's repository on GitHub | -| [Splunk Enterprise SDK for Python Examples](https://github.com/splunk/splunk-app-examples) | Examples for this SDK's repository | +| Resource | Description | +| :------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- | +| [Splunk Developer Portal](http://dev.splunk.com) | General developer documentation, tools, and examples | +| [Integrate the Splunk platform using development tools for Python](https://dev.splunk.com/enterprise/docs/devtools/python) | Documentation for Python development | +| [Splunk Enterprise SDK for Python Reference](http://docs.splunk.com/Documentation/PythonSDK) | SDK API reference documentation | +| [REST API Reference Manual](https://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTprolog) | Splunk REST API reference documentation | +| [Splunk>Docs](https://docs.splunk.com/Documentation) | General documentation for the Splunk platform | +| [GitHub Wiki](https://github.com/splunk/splunk-sdk-python/wiki/) | Documentation for this SDK's repository on GitHub | +| [Splunk Enterprise SDK for Python Examples](https://github.com/splunk/splunk-app-examples) | Examples for this SDK's repository | ## Community Stay connected with other developers building on the Splunk platform. -* [Email](mailto:devinfo@splunk.com) -* [Issues and pull requests](https://github.com/splunk/splunk-sdk-python/issues/) -* [Community Slack](https://splunk-usergroups.slack.com/app_redirect?channel=appdev) -* [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools) -* [Splunk Blogs](https://www.splunk.com/blog) -* [Twitter](https://twitter.com/splunkdev) +- [Email](mailto:devinfo@splunk.com) +- [Issues and pull requests](https://github.com/splunk/splunk-sdk-python/issues/) +- [Community Slack](https://splunk-usergroups.slack.com/app_redirect?channel=appdev) +- [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools) +- [Splunk Blogs](https://www.splunk.com/blog) +- [Twitter](https://twitter.com/splunkdev) ### Contributions -If you would like to contribute to the SDK, see [Contributing to Splunk](https://www.splunk.com/en_us/form/contributions.html). For additional guidelines, see [CONTRIBUTING](CONTRIBUTING.md). +If you would like to contribute to the SDK, see [Contributing to Splunk](https://www.splunk.com/en_us/form/contributions.html). For additional guidelines, see [CONTRIBUTING](CONTRIBUTING.md). ### Support -* You will be granted support if you or your company are already covered under an existing maintenance/support agreement. Submit a new case in the [Support Portal](https://www.splunk.com/en_us/support-and-services.html) and include "Splunk Enterprise SDK for Python" in the subject line. +- You will be granted support if you or your company are already covered under an existing maintenance/support agreement. Submit a new case in the [Support Portal](https://www.splunk.com/en_us/support-and-services.html) and include "Splunk Enterprise SDK for Python" in the subject line. - If you are not covered under an existing maintenance/support agreement, you can find help through the broader community at [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools). + If you are not covered under an existing maintenance/support agreement, you can find help through the broader community at [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools). -* Splunk will NOT provide support for SDKs if the core library (the code in the /splunklib directory) has been modified. If you modify an SDK and want support, you can find help through the broader community and [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools). +- Splunk will NOT provide support for SDKs if the core library (the code in the /splunklib directory) has been modified. If you modify an SDK and want support, you can find help through the broader community and [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools). - We would also like to know why you modified the core library, so please send feedback to _devinfo@splunk.com_. + We would also like to know why you modified the core library, so please send feedback to _devinfo@splunk.com_. -* File any issues on [GitHub](https://github.com/splunk/splunk-sdk-python/issues). +- File any issues on [GitHub](https://github.com/splunk/splunk-sdk-python/issues). ### Contact Us diff --git a/docker-compose.yml b/docker-compose.yml index 10800c2a8..c4f20ba8f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,29 @@ -version: '3.6' - services: - splunk: - image: "splunk/splunk:${SPLUNK_VERSION}" - container_name: splunk - environment: - - SPLUNK_START_ARGS=--accept-license - - SPLUNK_HEC_TOKEN=11111111-1111-1111-1111-1111111111113 - - SPLUNK_PASSWORD=changed! - - SPLUNK_APPS_URL=https://github.com/splunk/sdk-app-collection/releases/download/v1.1.0/sdkappcollection.tgz - ports: - - 8000:8000 - - 8088:8088 - - 8089:8089 - healthcheck: - test: ['CMD', 'curl', '-f', 'http://localhost:8000'] - interval: 5s - timeout: 5s - retries: 20 - volumes: - - "./tests/searchcommands/test_apps/eventing_app:/opt/splunk/etc/apps/eventing_app" - - "./tests/searchcommands/test_apps/generating_app:/opt/splunk/etc/apps/generating_app" - - "./tests/searchcommands/test_apps/reporting_app:/opt/splunk/etc/apps/reporting_app" - - "./tests/searchcommands/test_apps/streaming_app:/opt/splunk/etc/apps/streaming_app" - - "./splunklib:/opt/splunk/etc/apps/eventing_app/lib/splunklib" - - "./splunklib:/opt/splunk/etc/apps/generating_app/lib/splunklib" - - "./splunklib:/opt/splunk/etc/apps/reporting_app/lib/splunklib" - - "./splunklib:/opt/splunk/etc/apps/streaming_app/lib/splunklib" + splunk: + image: "splunk/splunk:${SPLUNK_VERSION}" + container_name: splunk + platform: linux/amd64 + environment: + - SPLUNK_START_ARGS=--accept-license + - SPLUNK_GENERAL_TERMS=--accept-sgt-current-at-splunk-com + - SPLUNK_HEC_TOKEN=11111111-1111-1111-1111-1111111111113 + - SPLUNK_PASSWORD=changed! + - SPLUNK_APPS_URL=https://github.com/splunk/sdk-app-collection/releases/latest/download/sdkappcollection.tgz + ports: + - "8000:8000" + - "8088:8088" + - "8089:8089" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000"] + interval: 5s + timeout: 5s + retries: 20 + volumes: + - "./tests/searchcommands/test_apps/eventing_app:/opt/splunk/etc/apps/eventing_app" + - "./tests/searchcommands/test_apps/generating_app:/opt/splunk/etc/apps/generating_app" + - "./tests/searchcommands/test_apps/reporting_app:/opt/splunk/etc/apps/reporting_app" + - "./tests/searchcommands/test_apps/streaming_app:/opt/splunk/etc/apps/streaming_app" + - "./splunklib:/opt/splunk/etc/apps/eventing_app/lib/splunklib" + - "./splunklib:/opt/splunk/etc/apps/generating_app/lib/splunklib" + - "./splunklib:/opt/splunk/etc/apps/reporting_app/lib/splunklib" + - "./splunklib:/opt/splunk/etc/apps/streaming_app/lib/splunklib" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..7ffca78f9 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,109 @@ +[project.urls] +HOMEPAGE = "https://pypi.org/project/splunk-sdk" +DOCS = "https://docs.splunk.com/Documentation/PythonSDK/2.1.0" +REPO = "http://github.com/splunk/splunk-sdk-python.git" + +[project] +name = "splunk-sdk" +dynamic = ["version"] +description = "The Splunk Software Development Kit for Python" +readme = "README.md" +requires-python = ">=3.7.17" +license = { file = "LICENSE" } +authors = [{ name = "Splunk, Inc.", email = "devinfo@splunk.com" }] +classifiers = [ + "Programming Language :: Python", + "Development Status :: 6 - Mature", + "Environment :: Other Environment", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Software Development :: Libraries :: Application Frameworks", +] + +dependencies = ["deprecation", "python-dotenv"] + +[dependency-groups] +test = ["tox", "pytest"] +lint = ["mypy", "ruff"] +build = ["build", "setuptools", { include-group = "test" }] +dev = [ + { include-group = "test" }, + { include-group = "lint" }, + { include-group = "build" }, +] + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[tool.setuptools.dynamic] +version = { attr = "splunklib.__version__" } + +# https://docs.astral.sh/ruff/configuration/ +# [tool.ruff] + +[tool.ruff.lint] +pydocstyle.convention = "google" +fixable = ["ALL"] +select = [ + "F", # pyflakes + "E", # pycodestyle + "I", # isort + "ANN", # flake8 type annotations + "RUF", # ruff-specific rules +] + +# https://tox.wiki/en/latest/config.html#pyproject-toml-ini +[tool.tox] +legacy_tox_ini = """ +[tox] +envlist = clean,docs,py37,py39,313 +skipsdist = {env:TOXBUILD:false} + +# TODO: Replace with ruff +# https://docs.astral.sh/ruff/settings/ +[testenv:pep8] +deps = flake8 + flake8-import-order + flake8-blind-except + flake8-builtins + flake8-docstrings + flake8-rst-docstrings + flake8-logging-format + six +commands = flake8 + +[flake8] +exclude = .tox +# If you need to ignore some error codes in the whole source code +# you can write them here +# ignore = D100,D101 +show-source = true +enable-extensions = G +application-import-names = splunk-sdk-python + +[testenv] +passenv = LANG +setenv = SPLUNK_HOME=/opt/splunk +allowlist_externals = make +deps = pytest + pytest-cov + python-dotenv + +distdir = build +commands = + {env:TOXBUILD:python -m pytest --junitxml=test-reports/junit-{envname}.xml --cov --cov-config=.coveragerc} {posargs} + +[testenv:clean] +deps = coverage +skip-install = true +commands = coverage erase + +[testenv:docs] +description = invoke sphinx-build to build the HTML docs +basepython = python3.9 +deps = sphinx >= 1.7.5, < 2 + jinja2 < 3.1.0 +commands = make -C docs/ html +""" diff --git a/setup.py b/setup.py deleted file mode 100755 index 65b56812d..000000000 --- a/setup.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"): you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from setuptools import setup - -import splunklib - -setup( - author="Splunk, Inc.", - author_email="devinfo@splunk.com", - description="The Splunk Software Development Kit for Python.", - license="http://www.apache.org/licenses/LICENSE-2.0", - name="splunk-sdk", - packages=["splunklib", "splunklib.modularinput", "splunklib.searchcommands"], - install_requires=[ - "deprecation", - ], - url="http://github.com/splunk/splunk-sdk-python", - version=splunklib.__version__, - classifiers=[ - "Programming Language :: Python", - "Development Status :: 6 - Mature", - "Environment :: Other Environment", - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Operating System :: OS Independent", - "Topic :: Software Development :: Libraries :: Python Modules", - "Topic :: Software Development :: Libraries :: Application Frameworks", - ], -) diff --git a/sitecustomize.py b/sitecustomize.py index 6a23233ad..053c4b7ec 100644 --- a/sitecustomize.py +++ b/sitecustomize.py @@ -20,5 +20,6 @@ import coverage coverage.process_startup() -except: +except: # noqa: E722 + # TODO: Add logging pass diff --git a/tests/README.md b/tests/README.md index da02228c7..0c57ee5e3 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1,16 +1,15 @@ # Splunk Test Suite -The test suite uses Python's standard library and the built-in **unittest** -library. The Splunk Enterprise SDK for Python has been tested with Python v3.7 -and v3.9. +The test suite uses Python's standard library and the built-in **unittest** +library. The Splunk Enterprise SDK for Python has been tested with Python 3.9.23 and 3.13.5. -To run the unit tests, open a command prompt in the **/splunk-sdk-python** +To run the unit tests, open a command prompt in the **/splunk-sdk-python** directory and enter: python setup.py test -You can also run individual test files, which are located in -**/splunk-sdk-python/tests**. Each distinct area of the SDK is tested in a +You can also run individual test files, which are located in +**/splunk-sdk-python/tests**. Each distinct area of the SDK is tested in a single file. For example, roles are tested in `test_role.py`. To run this test, open a command prompt in the **/splunk-sdk-python/tests** subdirectory and enter: @@ -21,11 +20,10 @@ NOTE: Before running the test suite, make sure the instance of Splunk you are testing against doesn't have new events being dumped continuously into it. Several of the tests rely on a stable event count. It's best to test against a clean install of Splunk, but if you can't, you -should at least disable the *NIX and Windows apps. Do not run the test +should at least disable the \*NIX and Windows apps. Do not run the test suite against a production instance of Splunk! It will run just fine with the free Splunk license. - ## Code Coverage Coverage.py is an excellent tool for measuring code coverage of Python programs. @@ -43,8 +41,8 @@ prompt in the **/splunk-sdk-python** directory and enter: python setup.py coverage -This command runs the entire test suite and writes an HTML coverage report to +This command runs the entire test suite and writes an HTML coverage report to the **/splunk-sdk-python/coverage_report** directory. -For more information about Coverage.py, see the author's website -([http://nedbatchelder.com/code/coverage/](http://nedbatchelder.com/code/coverage/)). \ No newline at end of file +For more information about Coverage.py, see the author's website +([http://nedbatchelder.com/code/coverage/](http://nedbatchelder.com/code/coverage/)). diff --git a/tests/searchcommands/test_csc_apps.py b/tests/searchcommands/test_csc_apps.py index b3eb18b47..3c817bc72 100755 --- a/tests/searchcommands/test_csc_apps.py +++ b/tests/searchcommands/test_csc_apps.py @@ -15,10 +15,11 @@ # under the License. import unittest + import pytest -from tests import testlib from splunklib import results +from tests import testlib @pytest.mark.smoke @@ -71,7 +72,9 @@ def test_eventing_app(self): result = results.JSONResultsReader(stream) ds = list(result) - self.assertEqual(result.is_preview, False) + if self.service.splunk_version < (10,): + self.assertEqual(result.is_preview, False) + self.assertTrue(isinstance(ds[0], (dict, results.Message))) nonmessages = [d for d in ds if isinstance(d, dict)] self.assertTrue(len(nonmessages) <= 10) diff --git a/tests/test_job.py b/tests/test_job.py index c1c9ab004..c13f0dd9b 100755 --- a/tests/test_job.py +++ b/tests/test_job.py @@ -56,7 +56,10 @@ def test_oneshot(self): ) result = results.JSONResultsReader(stream) ds = list(result) - self.assertEqual(result.is_preview, False) + + if self.service.splunk_version < (10,): + self.assertEqual(result.is_preview, False) + self.assertTrue(isinstance(ds[0], dict) or isinstance(ds[0], results.Message)) nonmessages = [d for d in ds if isinstance(d, dict)] self.assertTrue(len(nonmessages) <= 3) @@ -72,7 +75,10 @@ def test_export(self): ) result = results.JSONResultsReader(stream) ds = list(result) - self.assertEqual(result.is_preview, False) + + if self.service.splunk_version < (10,): + self.assertEqual(result.is_preview, False) + self.assertTrue(isinstance(ds[0], dict) or isinstance(ds[0], results.Message)) nonmessages = [d for d in ds if isinstance(d, dict)] self.assertTrue(len(nonmessages) <= 3) @@ -92,7 +98,9 @@ def test_export_docstring_sample(self): elif isinstance(result, dict): # Normal events are returned as dicts pass # print(result) - assert rr.is_preview == False + + if self.service.splunk_version < (10,): + self.assertFalse(rr.is_preview) def test_results_docstring_sample(self): from splunklib import results @@ -109,7 +117,9 @@ def test_results_docstring_sample(self): elif isinstance(result, dict): # Normal events are returned as dicts pass # print(result) - assert rr.is_preview == False + + if self.service.splunk_version < (10,): + self.assertFalse(rr.is_preview) def test_preview_docstring_sample(self): from splunklib import client @@ -125,13 +135,14 @@ def test_preview_docstring_sample(self): elif isinstance(result, dict): # Normal events are returned as dicts pass # print(result) - if rr.is_preview: - pass # print("Preview of a running search job.") - else: - pass # print("Job is finished. Results are final.") + + if self.service.splunk_version < (10,): + if rr.is_preview: + pass # print("Preview of a running search job.") + else: + pass # print("Job is finished. Results are final.") def test_oneshot_docstring_sample(self): - from splunklib import client from splunklib import results service = self.service # cheat @@ -145,7 +156,9 @@ def test_oneshot_docstring_sample(self): elif isinstance(result, dict): # Normal events are returned as dicts pass # print(result) - assert rr.is_preview == False + + if self.service.splunk_version < (10,): + self.assertFalse(rr.is_preview) def test_normal_job_with_garbage_fails(self): jobs = self.service.jobs diff --git a/tox.ini b/tox.ini deleted file mode 100644 index e69c2e6ad..000000000 --- a/tox.ini +++ /dev/null @@ -1,47 +0,0 @@ -[tox] -envlist = clean,docs,py37,py39,313 -skipsdist = {env:TOXBUILD:false} - -[testenv:pep8] -deps = flake8 - flake8-import-order - flake8-blind-except - flake8-builtins - flake8-docstrings - flake8-rst-docstrings - flake8-logging-format - six -commands = flake8 - -[flake8] -exclude = .tox -# If you need to ignore some error codes in the whole source code -# you can write them here -# ignore = D100,D101 -show-source = true -enable-extensions=G -application-import-names = splunk-sdk-python - -[testenv] -passenv = LANG -setenv = SPLUNK_HOME=/opt/splunk -allowlist_externals = make -deps = pytest - pytest-cov - python-dotenv - -distdir = build -commands = - {env:TOXBUILD:python -m pytest --junitxml=test-reports/junit-{envname}.xml --cov --cov-config=.coveragerc} {posargs} - -[testenv:clean] -deps = coverage -skip_install = true -commands = coverage erase - -[testenv:docs] -description = invoke sphinx-build to build the HTML docs -basepython = python3.7 -deps = sphinx >= 1.7.5, < 2 - jinja2 < 3.1.0 -commands = make -C docs/ html \ No newline at end of file diff --git a/uv.lock b/uv.lock new file mode 100644 index 000000000..da5e941b2 --- /dev/null +++ b/uv.lock @@ -0,0 +1,1133 @@ +version = 1 +revision = 3 +requires-python = ">=3.7.17" +resolution-markers = [ + "python_full_version >= '3.9'", + "python_full_version == '3.8.*'", + "python_full_version < '3.8'", +] + +[[package]] +name = "build" +version = "1.1.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version < '3.8' and os_name == 'nt'" }, + { name = "importlib-metadata", version = "6.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "packaging", version = "24.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pyproject-hooks", marker = "python_full_version < '3.8'" }, + { name = "tomli", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/55/f7/7bd626bc41b59152248087c1b56dd9f5d09c3f817b96075dc3cbda539dc7/build-1.1.1.tar.gz", hash = "sha256:8eea65bb45b1aac2e734ba2cc8dad3a6d97d97901a395bd0ed3e7b46953d2a31" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4f/81/4849059526d02fcc9708e19346dd740e8b9edd2f0675ea7c38302d6729df/build-1.1.1-py3-none-any.whl", hash = "sha256:8ed0851ee76e6e38adce47e4bee3b51c771d86c64cf578d0c2245567ee200e73" }, +] + +[[package]] +name = "build" +version = "1.2.2.post1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version == '3.8.*' and os_name == 'nt'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pyproject-hooks", marker = "python_full_version == '3.8.*'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7d/46/aeab111f8e06793e4f0e421fcad593d547fb8313b50990f31681ee2fb1ad/build-1.2.2.post1.tar.gz", hash = "sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/84/c2/80633736cd183ee4a62107413def345f7e6e3c01563dbca1417363cf957e/build-1.2.2.post1-py3-none-any.whl", hash = "sha256:1d61c0887fa860c01971625baae8bdd338e517b836a2f70dd1f7aa3a6b2fc5b5" }, +] + +[[package]] +name = "build" +version = "1.3.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.9' and os_name == 'nt'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.10.2'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyproject-hooks", marker = "python_full_version >= '3.9'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz", hash = "sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4" }, +] + +[[package]] +name = "cachetools" +version = "5.5.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6c/81/3747dad6b14fa2cf53fcf10548cf5aea6913e96fab41a3c198676f8948a5/cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/76/20fa66124dbe6be5cafeb312ece67de6b61dd91a0247d1ea13db4ebb33c2/cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a" }, +] + +[[package]] +name = "cachetools" +version = "6.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8a/89/817ad5d0411f136c484d535952aef74af9b25e0d99e90cdffbe121e6d628/cachetools-6.1.0.tar.gz", hash = "sha256:b4c4f404392848db3ce7aac34950d17be4d864da4b8b66911008e430bc544587" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/f0/2ef431fe4141f5e334759d73e81120492b23b2824336883a91ac04ba710b/cachetools-6.1.0-py3-none-any.whl", hash = "sha256:1c7bb3cf9193deaf3508b7c5f2a79986c13ea38965c5adcff1f84519cf39163e" }, +] + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" }, +] + +[[package]] +name = "deprecation" +version = "2.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "packaging", version = "24.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a" }, +] + +[[package]] +name = "distlib" +version = "0.4.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "typing-extensions", version = "4.7.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "typing-extensions", version = "4.14.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.13'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10" }, +] + +[[package]] +name = "filelock" +version = "3.12.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/0b/c506e9e44e4c4b6c89fcecda23dc115bf8e7ff7eb127e0cb9c114cbc9a15/filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/45/ec3407adf6f6b5bf867a4462b2b0af27597a26bd3cd6e2534cb6ab029938/filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec" }, +] + +[[package]] +name = "filelock" +version = "3.16.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9d/db/3ef5bb276dae18d6ec2124224403d1d67bccdbefc17af4cc8f553e341ab1/filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0" }, +] + +[[package]] +name = "filelock" +version = "3.18.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0a/10/c23352565a6544bdc5353e0b15fc1c563352101f30e24bf500207a54df9a/filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de" }, +] + +[[package]] +name = "importlib-metadata" +version = "6.7.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "typing-extensions", version = "4.7.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "zipp", version = "3.15.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/82/f6e29c8d5c098b6be61460371c2c5591f4a335923639edec43b3830650a4/importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.5.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "zipp", version = "3.20.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +dependencies = [ + { name = "zipp", version = "3.23.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd" }, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" }, +] + +[[package]] +name = "iniconfig" +version = "2.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760" }, +] + +[[package]] +name = "mypy" +version = "1.4.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "mypy-extensions", version = "1.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tomli", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "typed-ast", marker = "python_full_version < '3.8'" }, + { name = "typing-extensions", version = "4.7.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b3/28/d8a8233ff167d06108e53b7aefb4a8d7350adbbf9d7abd980f17fdb7a3a6/mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fb/3b/1c7363863b56c059f60a1dfdca9ac774a22ba64b7a4da0ee58ee53e5243f/mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/24/6f0df1874118839db1155fed62a4bd7e80c181367ff8ea07d40fbaffcfb4/mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/5c/deeac94fcccd11aa621e6b350df333e1b809b11443774ea67582cc0205da/mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e5/2f/de3c455c54e8cf5e37ea38705c1920f2df470389f8fc051084d2dd8c9c59/mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e7/d3/6f65357dcb68109946de70cd55bd2e60f10114f387471302f48d54ff5dae/mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/01/e34e37a044325af4d4af9825c15e8a0d26d89b5a9624b4d0908449d3411b/mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/92/58/ccc0b714ecbd1a64b34d8ce1c38763ff6431de1d82551904ecc3711fbe05/mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/73/72/dfc0b46e6905eafd598e7c48c0c4f2e232647e4e36547425c64e6c850495/mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/66/f4/60739a2d336f3adf5628e7c9b920d16e8af6dc078550d615e4ba2a1d7759/mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8c/26/6ff2b55bf8b605a4cc898883654c2ca4dd4feedf0bb04ecaacf60d165cde/mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/95/47/fb69dad9634af9f1dab69f8b4031d674592384b59c7171852b1fbed6de15/mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/65/f7/77339904a3415cadca5551f2ea0c74feefc9b7187636a292690788f4d4b3/mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f5/93/ae39163ae84266d24d1fcf8ee1e2db1e0346e09de97570dd101a07ccf876/mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/13/3b/3b7de921626547b36c34b91c74cfbda260210df7c49bd3d315015cfd6005/mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/49/7d/63bab763e4d44e1a7c341fb64496ddf20970780935596ffed9ed2d85eae7/mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/23/3f/54a87d933440416a1efd7a42b45f8cf22e353efe889eb3903cc34177ab44/mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4e/89/26230b46e27724bd54f76cd73a2759eaaf35292b32ba64f36c7c47836d4b/mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/7d/156e721376951c449554942eedf4d53e9ca2a57e94bf0833ad2821d59bfa/mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/27/ab/21230851e8137c9ef9a095cc8cb70d8ff8cac21014e4b249ac7a9eae7df9/mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1d/1b/9050b5c444ef82c3d59bdbf21f91b259cf20b2ac1df37d55bc6b91d609a1/mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/00/ac2b58b321d85cac25be0dcd1bc2427dfc6cf403283fc205a0031576f14b/mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/10/26240f14e854a95af87d577b288d607ebe0ccb75cb37052f6386402f022d/mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/34/a3edaec8762181bfe97439c7e094f4c2f411ed9b79ac8f4d72156e88d5ce/mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/f3/0d0622d5a83859a992b01741a7b97949d6fb9efc9f05f20a09f0df10dc1e/mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3d/9a/e13addb8d652cb068f835ac2746d9d42f85b730092f581bb17e2059c28f1/mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4" }, +] + +[[package]] +name = "mypy" +version = "1.14.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "mypy-extensions", version = "1.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b9/eb/2c92d8ea1e684440f54fa49ac5d9a5f19967b7b472a281f419e69a8d228e/mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9b/7a/87ae2adb31d68402da6da1e5f30c07ea6063e9f09b5e7cfc9dfa44075e74/mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/23/eada4c38608b444618a132be0d199b280049ded278b24cbb9d3fc59658e4/mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/c9/d6785c6f66241c62fd2992b05057f404237deaad1566545e9f144ced07f5/mypy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90716d8b2d1f4cd503309788e51366f07c56635a3309b0f6a32547eaaa36a64d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c3/62/daa7e787770c83c52ce2aaf1a111eae5893de9e004743f51bfcad9e487ec/mypy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae753f5c9fef278bcf12e1a564351764f2a6da579d4a81347e1d5a15819997b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1b/a2/5fb18318a3637f29f16f4e41340b795da14f4751ef4f51c99ff39ab62e52/mypy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0fe0f5feaafcb04505bcf439e991c6d8f1bf8b15f12b05feeed96e9e7bf1427" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/28/99/e153ce39105d164b5f02c06c35c7ba958aaff50a2babba7d080988b03fe7/mypy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:7d54bd85b925e501c555a3227f3ec0cfc54ee8b6930bd6141ec872d1c572f81f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/11/a9422850fd506edbcdc7f6090682ecceaf1f87b9dd847f9df79942da8506/mypy-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f995e511de847791c3b11ed90084a7a0aafdc074ab88c5a9711622fe4751138c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b6/9e/47e450fd39078d9c02d620545b2cb37993a8a8bdf7db3652ace2f80521ca/mypy-1.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d64169ec3b8461311f8ce2fd2eb5d33e2d0f2c7b49116259c51d0d96edee48d1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/01/b5/6c8d33bd0f851a7692a8bfe4ee75eb82b6983a3cf39e5e32a5d2a723f0c1/mypy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba24549de7b89b6381b91fbc068d798192b1b5201987070319889e93038967a8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f0/4c/e10e2c46ea37cab5c471d0ddaaa9a434dc1d28650078ac1b56c2d7b9b2e4/mypy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:183cf0a45457d28ff9d758730cd0210419ac27d4d3f285beda038c9083363b1f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/55/beacb0c69beab2153a0f57671ec07861d27d735a0faff135a494cd4f5020/mypy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f2a0ecc86378f45347f586e4163d1769dd81c5a223d577fe351f26b179e148b1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/75/8c93ff7f315c4d086a2dfcde02f713004357d70a163eddb6c56a6a5eff40/mypy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:ad3301ebebec9e8ee7135d8e3109ca76c23752bac1e717bc84cd3836b4bf3eae" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/1b/b38c079609bb4627905b74fc6a49849835acf68547ac33d8ceb707de5f52/mypy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:30ff5ef8519bbc2e18b3b54521ec319513a26f1bba19a7582e7b1f58a6e69f14" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6b/75/2ed0d2964c1ffc9971c729f7a544e9cd34b2cdabbe2d11afd148d7838aa2/mypy-1.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb9f255c18052343c70234907e2e532bc7e55a62565d64536dbc7706a20b78b9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a1/5f/7b8051552d4da3c51bbe8fcafffd76a6823779101a2b198d80886cd8f08e/mypy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b4e3413e0bddea671012b063e27591b953d653209e7a4fa5e48759cda77ca11" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/90/f53971d3ac39d8b68bbaab9a4c6c58c8caa4d5fd3d587d16f5927eeeabe1/mypy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:553c293b1fbdebb6c3c4030589dab9fafb6dfa768995a453d8a5d3b23784af2e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/03/d2/8bc0aeaaf2e88c977db41583559319f1821c069e943ada2701e86d0430b7/mypy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fad79bfe3b65fe6a1efaed97b445c3d37f7be9fdc348bdb2d7cac75579607c89" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6f/17/07815114b903b49b0f2cf7499f1c130e5aa459411596668267535fe9243c/mypy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:8fa2220e54d2946e94ab6dbb3ba0a992795bd68b16dc852db33028df2b00191b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9e/15/bb6a686901f59222275ab228453de741185f9d54fecbaacec041679496c6/mypy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:92c3ed5afb06c3a8e188cb5da4984cab9ec9a77ba956ee419c68a388b4595255" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f8/b3/8b0f74dfd072c802b7fa368829defdf3ee1566ba74c32a2cb2403f68024c/mypy-1.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dbec574648b3e25f43d23577309b16534431db4ddc09fda50841f1e34e64ed34" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c5/9b/4fd95ab20c52bb5b8c03cc49169be5905d931de17edfe4d9d2986800b52e/mypy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c6d94b16d62eb3e947281aa7347d78236688e21081f11de976376cf010eb31a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/56/9d/4a236b9c57f5d8f08ed346914b3f091a62dd7e19336b2b2a0d85485f82ff/mypy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4b19b03fdf54f3c5b2fa474c56b4c13c9dbfb9a2db4370ede7ec11a2c5927d9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/40/88/a61a5497e2f68d9027de2bb139c7bb9abaeb1be1584649fa9d807f80a338/mypy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0c911fde686394753fff899c409fd4e16e9b294c24bfd5e1ea4675deae1ac6fd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/da/3d6fc5d92d324701b0c23fb413c853892bfe0e1dbe06c9138037d459756b/mypy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8b21525cb51671219f5307be85f7e646a153e5acc656e5cebf64bfa076c50107" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/39/02/1817328c1372be57c16148ce7d2bfcfa4a796bedaed897381b1aad9b267c/mypy-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7084fb8f1128c76cd9cf68fe5971b37072598e7c31b2f9f95586b65c741a9d31" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b9/07/99db9a95ece5e58eee1dd87ca456a7e7b5ced6798fd78182c59c35a7587b/mypy-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8f845a00b4f420f693f870eaee5f3e2692fa84cc8514496114649cfa8fd5e2c6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/eb/85ea6086227b84bce79b3baf7f465b4732e0785830726ce4a51528173b71/mypy-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44bf464499f0e3a2d14d58b54674dee25c031703b2ffc35064bd0df2e0fac319" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4b/bb/f01bebf76811475d66359c259eabe40766d2f8ac8b8250d4e224bb6df379/mypy-1.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c99f27732c0b7dc847adb21c9d47ce57eb48fa33a17bc6d7d5c5e9f9e7ae5bac" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2f/c9/84837ff891edcb6dcc3c27d85ea52aab0c4a34740ff5f0ccc0eb87c56139/mypy-1.14.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:bce23c7377b43602baa0bd22ea3265c49b9ff0b76eb315d6c34721af4cdf1d9b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/84/5f/901e18464e6a13f8949b4909535be3fa7f823291b8ab4e4b36cfe57d6769/mypy-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:8edc07eeade7ebc771ff9cf6b211b9a7d93687ff892150cb5692e4f4272b0837" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/1f/186d133ae2514633f8558e78cd658070ba686c0e9275c5a5c24a1e1f0d67/mypy-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3888a1816d69f7ab92092f785a462944b3ca16d7c470d564165fe703b0970c35" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/af/fc/4842485d034e38a4646cccd1369f6b1ccd7bc86989c52770d75d719a9941/mypy-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46c756a444117c43ee984bd055db99e498bc613a70bbbc120272bd13ca579fbc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/e6/457b83f2d701e23869cfec013a48a12638f75b9d37612a9ddf99072c1051/mypy-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:27fc248022907e72abfd8e22ab1f10e903915ff69961174784a3900a8cba9ad9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f1/bf/76a569158db678fee59f4fd30b8e7a0d75bcbaeef49edd882a0d63af6d66/mypy-1.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:499d6a72fb7e5de92218db961f1a66d5f11783f9ae549d214617edab5d4dbdbb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/bc/0bc6b694b3103de9fed61867f1c8bd33336b913d16831431e7cb48ef1c92/mypy-1.14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57961db9795eb566dc1d1b4e9139ebc4c6b0cb6e7254ecde69d1552bf7613f60" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/79/5f5ec47849b6df1e6943d5fd8e6632fbfc04b4fd4acfa5a5a9535d11b4e2/mypy-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:07ba89fdcc9451f2ebb02853deb6aaaa3d2239a236669a63ab3801bbf923ef5c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a0/b5/32dd67b69a16d088e533962e5044e51004176a9952419de0370cdaead0f8/mypy-1.14.1-py3-none-any.whl", hash = "sha256:b66a60cc4073aeb8ae00057f9c1f64d49e90f918fbcef9a977eb121da8b8f1d1" }, +] + +[[package]] +name = "mypy" +version = "1.17.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +dependencies = [ + { name = "mypy-extensions", version = "1.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pathspec", marker = "python_full_version >= '3.9'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, + { name = "typing-extensions", version = "4.14.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8e/22/ea637422dedf0bf36f3ef238eab4e455e2a0dcc3082b5cc067615347ab8e/mypy-1.17.1.tar.gz", hash = "sha256:25e01ec741ab5bb3eec8ba9cdb0f769230368a22c959c4937360efb89b7e9f01" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/77/a9/3d7aa83955617cdf02f94e50aab5c830d205cfa4320cf124ff64acce3a8e/mypy-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3fbe6d5555bf608c47203baa3e72dbc6ec9965b3d7c318aa9a4ca76f465bd972" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/83/e8/72e62ff837dd5caaac2b4a5c07ce769c8e808a00a65e5d8f94ea9c6f20ab/mypy-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80ef5c058b7bce08c83cac668158cb7edea692e458d21098c7d3bce35a5d43e7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7d/10/f3f3543f6448db11881776f26a0ed079865926b0c841818ee22de2c6bbab/mypy-1.17.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a580f8a70c69e4a75587bd925d298434057fe2a428faaf927ffe6e4b9a98df" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/06/bf/63e83ed551282d67bb3f7fea2cd5561b08d2bb6eb287c096539feb5ddbc5/mypy-1.17.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd86bb649299f09d987a2eebb4d52d10603224500792e1bee18303bbcc1ce390" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/69/66/68f2eeef11facf597143e85b694a161868b3b006a5fbad50e09ea117ef24/mypy-1.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a76906f26bd8d51ea9504966a9c25419f2e668f012e0bdf3da4ea1526c534d94" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/87/8e3e9c2c8bd0d7e071a89c71be28ad088aaecbadf0454f46a540bda7bca6/mypy-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:e79311f2d904ccb59787477b7bd5d26f3347789c06fcd7656fa500875290264b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/46/cf/eadc80c4e0a70db1c08921dcc220357ba8ab2faecb4392e3cebeb10edbfa/mypy-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad37544be07c5d7fba814eb370e006df58fed8ad1ef33ed1649cb1889ba6ff58" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5d/c1/c869d8c067829ad30d9bdae051046561552516cfb3a14f7f0347b7d973ee/mypy-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:064e2ff508e5464b4bd807a7c1625bc5047c5022b85c70f030680e18f37273a5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/b9/803672bab3fe03cee2e14786ca056efda4bb511ea02dadcedde6176d06d0/mypy-1.17.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70401bbabd2fa1aa7c43bb358f54037baf0586f41e83b0ae67dd0534fc64edfd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/fb/fcdac695beca66800918c18697b48833a9a6701de288452b6715a98cfee1/mypy-1.17.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e92bdc656b7757c438660f775f872a669b8ff374edc4d18277d86b63edba6b8b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7f/37/a932da3d3dace99ee8eb2043b6ab03b6768c36eb29a02f98f46c18c0da0e/mypy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c1fdf4abb29ed1cb091cf432979e162c208a5ac676ce35010373ff29247bcad5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8c/cf/6438a429e0f2f5cab8bc83e53dbebfa666476f40ee322e13cac5e64b79e7/mypy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:ff2933428516ab63f961644bc49bc4cbe42bbffb2cd3b71cc7277c07d16b1a8b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/17/a2/7034d0d61af8098ec47902108553122baa0f438df8a713be860f7407c9e6/mypy-1.17.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:69e83ea6553a3ba79c08c6e15dbd9bfa912ec1e493bf75489ef93beb65209aeb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/14/1f/19e7e44b594d4b12f6ba8064dbe136505cec813549ca3e5191e40b1d3cc2/mypy-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1b16708a66d38abb1e6b5702f5c2c87e133289da36f6a1d15f6a5221085c6403" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/69/baa33927e29e6b4c55d798a9d44db5d394072eef2bdc18c3e2048c9ed1e9/mypy-1.17.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:89e972c0035e9e05823907ad5398c5a73b9f47a002b22359b177d40bdaee7056" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/90/13/f3a89c76b0a41e19490b01e7069713a30949d9a6c147289ee1521bcea245/mypy-1.17.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03b6d0ed2b188e35ee6d5c36b5580cffd6da23319991c49ab5556c023ccf1341" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/23/a1/c4ee79ac484241301564072e6476c5a5be2590bc2e7bfd28220033d2ef8f/mypy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c837b896b37cd103570d776bda106eabb8737aa6dd4f248451aecf53030cdbeb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/89/b8/7409477be7919a0608900e6320b155c72caab4fef46427c5cc75f85edadd/mypy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:665afab0963a4b39dff7c1fa563cc8b11ecff7910206db4b2e64dd1ba25aed19" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/82/aec2fc9b9b149f372850291827537a508d6c4d3664b1750a324b91f71355/mypy-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93378d3203a5c0800c6b6d850ad2f19f7a3cdf1a3701d3416dbf128805c6a6a7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/07/ac/ee93fbde9d2242657128af8c86f5d917cd2887584cf948a8e3663d0cd737/mypy-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:15d54056f7fe7a826d897789f53dd6377ec2ea8ba6f776dc83c2902b899fee81" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5a/68/946a1e0be93f17f7caa56c45844ec691ca153ee8b62f21eddda336a2d203/mypy-1.17.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:209a58fed9987eccc20f2ca94afe7257a8f46eb5df1fb69958650973230f91e6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/0f/478b4dce1cb4f43cf0f0d00fba3030b21ca04a01b74d1cd272a528cf446f/mypy-1.17.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:099b9a5da47de9e2cb5165e581f158e854d9e19d2e96b6698c0d64de911dd849" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/70/afa5850176379d1b303f992a828de95fc14487429a7139a4e0bdd17a8279/mypy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ffadfbe6994d724c5a1bb6123a7d27dd68fc9c059561cd33b664a79578e14" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/f9/4a83e1c856a3d9c8f6edaa4749a4864ee98486e9b9dbfbc93842891029c2/mypy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:9a2b7d9180aed171f033c9f2fc6c204c1245cf60b0cb61cf2e7acc24eea78e0a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/56/79c2fac86da57c7d8c48622a05873eaab40b905096c33597462713f5af90/mypy-1.17.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:15a83369400454c41ed3a118e0cc58bd8123921a602f385cb6d6ea5df050c733" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4d/c3/adabe6ff53638e3cad19e3547268482408323b1e68bf082c9119000cd049/mypy-1.17.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:55b918670f692fc9fba55c3298d8a3beae295c5cded0a55dccdc5bbead814acd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/c5/2e234c22c3bdeb23a7817af57a58865a39753bde52c74e2c661ee0cfc640/mypy-1.17.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:62761474061feef6f720149d7ba876122007ddc64adff5ba6f374fda35a018a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ab/26/c13c130f35ca8caa5f2ceab68a247775648fdcd6c9a18f158825f2bc2410/mypy-1.17.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c49562d3d908fd49ed0938e5423daed8d407774a479b595b143a3d7f87cdae6a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/82/df/c7d79d09f6de8383fe800521d066d877e54d30b4fb94281c262be2df84ef/mypy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:397fba5d7616a5bc60b45c7ed204717eaddc38f826e3645402c426057ead9a91" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/98/3d5a48978b4f708c55ae832619addc66d677f6dc59f3ebad71bae8285ca6/mypy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:9d6b20b97d373f41617bd0708fd46aa656059af57f2ef72aa8c7d6a2b73b74ed" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/cb/673e3d34e5d8de60b3a61f44f80150a738bff568cd6b7efb55742a605e98/mypy-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5d1092694f166a7e56c805caaf794e0585cabdbf1df36911c414e4e9abb62ae9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/d0/fe1895836eea3a33ab801561987a10569df92f2d3d4715abf2cfeaa29cb2/mypy-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79d44f9bfb004941ebb0abe8eff6504223a9c1ac51ef967d1263c6572bbebc99" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/f3/514aa5532303aafb95b9ca400a31054a2bd9489de166558c2baaeea9c522/mypy-1.17.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b01586eed696ec905e61bd2568f48740f7ac4a45b3a468e6423a03d3788a51a8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ab/c3/c0805f0edec96fe8e2c048b03769a6291523d509be8ee7f56ae922fa3882/mypy-1.17.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43808d9476c36b927fbcd0b0255ce75efe1b68a080154a38ae68a7e62de8f0f8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/45/3e/d646b5a298ada21a8512fa7e5531f664535a495efa672601702398cea2b4/mypy-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:feb8cc32d319edd5859da2cc084493b3e2ce5e49a946377663cc90f6c15fb259" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/14/55/e13d0dcd276975927d1f4e9e2ec4fd409e199f01bdc671717e673cc63a22/mypy-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d7598cf74c3e16539d4e2f0b8d8c318e00041553d83d4861f87c7a72e95ac24d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1d/f3/8fcd2af0f5b806f6cf463efaffd3c9548a28f84220493ecd38d127b6b66d/mypy-1.17.1-py3-none-any.whl", hash = "sha256:a9f52c0351c21fe24c21d8c0eb1f62967b262d6729393397b6f443c3b773c3b9" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505" }, +] + +[[package]] +name = "packaging" +version = "24.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ee/b5/b43a27ac7472e1818c4bafd44430e69605baefe1f34440593e0332ec8b4d/packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484" }, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08" }, +] + +[[package]] +name = "platformdirs" +version = "4.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "typing-extensions", version = "4.7.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/31/28/e40d24d2e2eb23135f8533ad33d582359c7825623b1e022f9d460def7c05/platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/31/16/70be3b725073035aa5fc3229321d06e22e73e3e09f6af78dcfdf16c7636c/platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b" }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb" }, +] + +[[package]] +name = "platformdirs" +version = "4.3.8" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4" }, +] + +[[package]] +name = "pluggy" +version = "1.2.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "importlib-metadata", version = "6.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8a/42/8f2833655a29c4e9cb52ee8a2be04ceac61bcff4a680fb338cbd3d1e322d/pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/32/4a79112b8b87b21450b066e102d6608907f4c885ed7b04c3fdb085d4d6ae/pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849" }, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" }, +] + +[[package]] +name = "pyproject-api" +version = "1.5.3" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "packaging", version = "24.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tomli", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f7/70/a63493ea5066b32053f80fdc24fae7c5a2fc65d8f01a1883b30fd850aa84/pyproject_api-1.5.3.tar.gz", hash = "sha256:ffb5b2d7cad43f5b2688ab490de7c4d3f6f15e0b819cb588c4b771567c9729eb" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/05/53/b225115e177eb54664ede5b68a23d6806d9890baa8ee66b8d87f0bdb6346/pyproject_api-1.5.3-py3-none-any.whl", hash = "sha256:14cf09828670c7b08842249c1f28c8ee6581b872e893f81b62d5465bec41502f" }, +] + +[[package]] +name = "pyproject-api" +version = "1.8.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/19/441e0624a8afedd15bbcce96df1b80479dd0ff0d965f5ce8fde4f2f6ffad/pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ba/f4/3c4ddfcc0c19c217c6de513842d286de8021af2f2ab79bbb86c00342d778/pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228" }, +] + +[[package]] +name = "pyproject-api" +version = "1.9.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +dependencies = [ + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/fd/437901c891f58a7b9096511750247535e891d2d5a5a6eefbc9386a2b41d5/pyproject_api-1.9.1.tar.gz", hash = "sha256:43c9918f49daab37e302038fc1aed54a8c7a91a9fa935d00b9a485f37e0f5335" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/e6/c293c06695d4a3ab0260ef124a74ebadba5f4c511ce3a4259e976902c00b/pyproject_api-1.9.1-py3-none-any.whl", hash = "sha256:7d6238d92f8962773dd75b5f0c4a6a27cce092a14b623b811dba656f3b628948" }, +] + +[[package]] +name = "pyproject-hooks" +version = "1.2.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913" }, +] + +[[package]] +name = "pytest" +version = "7.4.4" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version < '3.8' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.8'" }, + { name = "importlib-metadata", version = "6.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "iniconfig", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "packaging", version = "24.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pluggy", version = "1.2.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tomli", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/80/1f/9d8e98e4133ffb16c90f3b405c43e38d3abb715bb5d7a63a5a684f7e46a3/pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8" }, +] + +[[package]] +name = "pytest" +version = "8.3.5" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version == '3.8.*' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version == '3.8.*'" }, + { name = "iniconfig", version = "2.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pluggy", version = "1.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820" }, +] + +[[package]] +name = "pytest" +version = "8.4.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, + { name = "iniconfig", version = "2.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pluggy", version = "1.6.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pygments", marker = "python_full_version >= '3.9'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7" }, +] + +[[package]] +name = "python-dotenv" +version = "0.21.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f5/d7/d548e0d5a68b328a8d69af833a861be415a17cb15ce3d8f0cd850073d2e1/python-dotenv-0.21.1.tar.gz", hash = "sha256:1c93de8f636cde3ce377292818d0e440b6e45a82f215c3744979151fa8151c49" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/62/f19d1e9023aacb47241de3ab5a5d5fedf32c78a71a9e365bb2153378c141/python_dotenv-0.21.1-py3-none-any.whl", hash = "sha256:41e12e0318bebc859fcc4d97d4db8d20ad21721a6aa5047dd59f090391cb549a" }, +] + +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a" }, +] + +[[package]] +name = "python-dotenv" +version = "1.1.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc" }, +] + +[[package]] +name = "ruff" +version = "0.12.7" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a1/81/0bd3594fa0f690466e41bd033bdcdf86cba8288345ac77ad4afbe5ec743a/ruff-0.12.7.tar.gz", hash = "sha256:1fc3193f238bc2d7968772c82831a4ff69252f673be371fb49663f0068b7ec71" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/d2/6cb35e9c85e7a91e8d22ab32ae07ac39cc34a71f1009a6f9e4a2a019e602/ruff-0.12.7-py3-none-linux_armv6l.whl", hash = "sha256:76e4f31529899b8c434c3c1dede98c4483b89590e15fb49f2d46183801565303" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/63/5b/a4136b9921aa84638f1a6be7fb086f8cad0fde538ba76bda3682f2599a2f/ruff-0.12.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:789b7a03e72507c54fb3ba6209e4bb36517b90f1a3569ea17084e3fd295500fb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a8/c9/3e24a8472484269b6b1821794141f879c54645a111ded4b6f58f9ab0705f/ruff-0.12.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2e1c2a3b8626339bb6369116e7030a4cf194ea48f49b64bb505732a7fce4f4e3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/7c/458dd25deeb3452c43eaee853c0b17a1e84169f8021a26d500ead77964fd/ruff-0.12.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32dec41817623d388e645612ec70d5757a6d9c035f3744a52c7b195a57e03860" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7f/8b/658798472ef260ca050e400ab96ef7e85c366c39cf3dfbef4d0a46a528b6/ruff-0.12.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47ef751f722053a5df5fa48d412dbb54d41ab9b17875c6840a58ec63ff0c247c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a8/86/9c2336f13b2a3326d06d39178fd3448dcc7025f82514d1b15816fe42bfe8/ruff-0.12.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a828a5fc25a3efd3e1ff7b241fd392686c9386f20e5ac90aa9234a5faa12c423" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/76/69/df73f65f53d6c463b19b6b312fd2391dc36425d926ec237a7ed028a90fc1/ruff-0.12.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5726f59b171111fa6a69d82aef48f00b56598b03a22f0f4170664ff4d8298efb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/58/1e/de6cda406d99fea84b66811c189b5ea139814b98125b052424b55d28a41c/ruff-0.12.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74e6f5c04c4dd4aba223f4fe6e7104f79e0eebf7d307e4f9b18c18362124bccd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6f/ae/625d46d5164a6cc9261945a5e89df24457dc8262539ace3ac36c40f0b51e/ruff-0.12.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d0bfe4e77fba61bf2ccadf8cf005d6133e3ce08793bbe870dd1c734f2699a3e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/55/bf/9cb1ea5e3066779e42ade8d0cd3d3b0582a5720a814ae1586f85014656b6/ruff-0.12.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06bfb01e1623bf7f59ea749a841da56f8f653d641bfd046edee32ede7ff6c606" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/55/7f/7ead2663be5627c04be83754c4f3096603bf5e99ed856c7cd29618c691bd/ruff-0.12.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e41df94a957d50083fd09b916d6e89e497246698c3f3d5c681c8b3e7b9bb4ac8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/17/40/a95352ea16edf78cd3a938085dccc55df692a4d8ba1b3af7accbe2c806b0/ruff-0.12.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4000623300563c709458d0ce170c3d0d788c23a058912f28bbadc6f905d67afa" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4d/74/633b04871c669e23b8917877e812376827c06df866e1677f15abfadc95cb/ruff-0.12.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:69ffe0e5f9b2cf2b8e289a3f8945b402a1b19eff24ec389f45f23c42a3dd6fb5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/be/34/c3ef2d7799c9778b835a76189c6f53c179d3bdebc8c65288c29032e03613/ruff-0.12.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a07a5c8ffa2611a52732bdc67bf88e243abd84fe2d7f6daef3826b59abbfeda4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/77/ab/aca2e756ad7b09b3d662a41773f3edcbd262872a4fc81f920dc1ffa44541/ruff-0.12.7-py3-none-win32.whl", hash = "sha256:c928f1b2ec59fb77dfdf70e0419408898b63998789cc98197e15f560b9e77f77" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/71/26d45a5042bc71db22ddd8252ca9d01e9ca454f230e2996bb04f16d72799/ruff-0.12.7-py3-none-win_amd64.whl", hash = "sha256:9c18f3d707ee9edf89da76131956aba1270c6348bfee8f6c647de841eac7194f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4c/9b/0b8aa09817b63e78d94b4977f18b1fcaead3165a5ee49251c5d5c245bb2d/ruff-0.12.7-py3-none-win_arm64.whl", hash = "sha256:dfce05101dbd11833a0776716d5d1578641b7fddb537fe7fa956ab85d1769b69" }, +] + +[[package]] +name = "setuptools" +version = "68.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dc/98/5f896af066c128669229ff1aa81553ac14cfb3e5e74b6b44594132b8540e/setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/42/be1c7bbdd83e1bfb160c94b9cafd8e25efc7400346cf7ccdbdb452c467fa/setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f" }, +] + +[[package]] +name = "setuptools" +version = "75.3.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5c/01/771ea46cce201dd42cff043a5eea929d1c030fb3d1c2ee2729d02ca7814c/setuptools-75.3.2.tar.gz", hash = "sha256:3c1383e1038b68556a382c1e8ded8887cd20141b0eb5708a6c8d277de49364f5" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/15/65/3f0dba35760d902849d39d38c0a72767794b1963227b69a587f8a336d08c/setuptools-75.3.2-py3-none-any.whl", hash = "sha256:90ab613b6583fc02d5369cbca13ea26ea0e182d1df2d943ee9cbe81d4c61add9" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922" }, +] + +[[package]] +name = "splunk-sdk" +source = { editable = "." } +dependencies = [ + { name = "deprecation" }, + { name = "python-dotenv", version = "0.21.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "python-dotenv", version = "1.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "python-dotenv", version = "1.1.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] + +[package.dev-dependencies] +build = [ + { name = "build", version = "1.1.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "build", version = "1.2.2.post1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "build", version = "1.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pytest", version = "7.4.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pytest", version = "8.3.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pytest", version = "8.4.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "setuptools", version = "68.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "setuptools", version = "75.3.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "setuptools", version = "80.9.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "tox", version = "4.8.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tox", version = "4.25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tox", version = "4.28.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +dev = [ + { name = "build", version = "1.1.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "build", version = "1.2.2.post1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "build", version = "1.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mypy", version = "1.4.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "mypy", version = "1.14.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "mypy", version = "1.17.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pytest", version = "7.4.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pytest", version = "8.3.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pytest", version = "8.4.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "ruff" }, + { name = "setuptools", version = "68.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "setuptools", version = "75.3.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "setuptools", version = "80.9.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "tox", version = "4.8.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tox", version = "4.25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tox", version = "4.28.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +lint = [ + { name = "mypy", version = "1.4.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "mypy", version = "1.14.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "mypy", version = "1.17.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "ruff" }, +] +test = [ + { name = "pytest", version = "7.4.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pytest", version = "8.3.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pytest", version = "8.4.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "tox", version = "4.8.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tox", version = "4.25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tox", version = "4.28.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] + +[package.metadata] +requires-dist = [ + { name = "deprecation" }, + { name = "python-dotenv" }, +] + +[package.metadata.requires-dev] +build = [ + { name = "build" }, + { name = "pytest" }, + { name = "setuptools" }, + { name = "tox" }, +] +dev = [ + { name = "build" }, + { name = "mypy" }, + { name = "pytest" }, + { name = "ruff" }, + { name = "setuptools" }, + { name = "tox" }, +] +lint = [ + { name = "mypy" }, + { name = "ruff" }, +] +test = [ + { name = "pytest" }, + { name = "tox" }, +] + +[[package]] +name = "tomli" +version = "2.0.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc" }, +] + +[[package]] +name = "tomli" +version = "2.2.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc" }, +] + +[[package]] +name = "tox" +version = "4.8.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "cachetools", version = "5.5.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "chardet", marker = "python_full_version < '3.8'" }, + { name = "colorama", marker = "python_full_version < '3.8'" }, + { name = "filelock", version = "3.12.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "importlib-metadata", version = "6.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "packaging", version = "24.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "platformdirs", version = "4.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pluggy", version = "1.2.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pyproject-api", version = "1.5.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "tomli", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "typing-extensions", version = "4.7.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "virtualenv", version = "20.26.6", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/21/8a0d95e6a502c6a0be81c583af9c11066bf1f4e6eeb6551ee8b6f4c7292d/tox-4.8.0.tar.gz", hash = "sha256:2adacf435b12ccf10b9dfa9975d8ec0afd7cbae44d300463140d2117b968037b" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/0c/9ad67a4f8ed18c2619b6b8c41cea4c99e7617d5d712670ab4193d439f1f8/tox-4.8.0-py3-none-any.whl", hash = "sha256:4991305a56983d750a0d848a34242be290452aa88d248f1bf976e4036ee8b213" }, +] + +[[package]] +name = "tox" +version = "4.25.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "cachetools", version = "5.5.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "chardet", marker = "python_full_version == '3.8.*'" }, + { name = "colorama", marker = "python_full_version == '3.8.*'" }, + { name = "filelock", version = "3.16.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pluggy", version = "1.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pyproject-api", version = "1.8.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "virtualenv", version = "20.32.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/87/692478f0a194f1cad64803692642bd88c12c5b64eee16bf178e4a32e979c/tox-4.25.0.tar.gz", hash = "sha256:dd67f030317b80722cf52b246ff42aafd3ed27ddf331c415612d084304cf5e52" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f9/38/33348de6fc4b1afb3d76d8485c8aecbdabcfb3af8da53d40c792332e2b37/tox-4.25.0-py3-none-any.whl", hash = "sha256:4dfdc7ba2cc6fdc6688dde1b21e7b46ff6c41795fb54586c91a3533317b5255c" }, +] + +[[package]] +name = "tox" +version = "4.28.4" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +dependencies = [ + { name = "cachetools", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "chardet", marker = "python_full_version >= '3.9'" }, + { name = "colorama", marker = "python_full_version >= '3.9'" }, + { name = "filelock", version = "3.18.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "platformdirs", version = "4.3.8", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pluggy", version = "1.6.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyproject-api", version = "1.9.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, + { name = "typing-extensions", version = "4.14.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, + { name = "virtualenv", version = "20.32.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cf/01/321c98e3cc584fd101d869c85be2a8236a41a84842bc6af5c078b10c2126/tox-4.28.4.tar.gz", hash = "sha256:b5b14c6307bd8994ff1eba5074275826620325ee1a4f61316959d562bfd70b9d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/54/564a33093e41a585e2e997220986182c037bc998abf03a0eb4a7a67c4eff/tox-4.28.4-py3-none-any.whl", hash = "sha256:8d4ad9ee916ebbb59272bb045e154a10fa12e3bbdcf94cc5185cbdaf9b241f99" }, +] + +[[package]] +name = "typed-ast" +version = "1.5.5" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f9/7e/a424029f350aa8078b75fd0d360a787a273ca753a678d1104c5fa4f3072a/typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/07/5defe18d4fc16281cd18c4374270abc430c3d852d8ac29b5db6599d45cfe/typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a0/5c/e379b00028680bfcd267d845cf46b60e76d8ac6f7009fd440d6ce030cc92/typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3b/99/5cc31ef4f3c80e1ceb03ed2690c7085571e3fbf119cbd67a111ec0b6622f/typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e2/ed/b9b8b794b37b55c9247b1e8d38b0361e8158795c181636d34d6c11b506e7/typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/59/dbbbe5a0e91c15d14a0896b539a5ed01326b0d468e75c1a33274d128d2d1/typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/90/f0/0956d925f87bd81f6e0f8cf119eac5e5c8f4da50ca25bb9f5904148d4611/typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/17/4bdece9795da6f3345c4da5667ac64bc25863617f19c28d81f350f515be6/typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/75/53/b685e10da535c7b3572735f8bea0d4abb35a04722a7d44ca9c163a0cf822/typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/96/fd/fc8ccf19fc16a40a23e7c7802d0abc78c1f38f1abb6e2447c474f8a076d8/typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bf/9a/598e47f2c3ecd19d7f1bb66854d0d3ba23ffd93c846448790a92524b0a8d/typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/ca/765e8bf8b24d0ed7b9fc669f6826c5bc3eb7412fc765691f59b83ae195b2/typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d9/3c/4af750e6c673a0dd6c7b9f5b5e5ed58ec51a2e4e744081781c664d369dfa/typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/03/8d/d0a4d1e060e1e8dda2408131a0cc7633fc4bc99fca5941dcb86c461dfe01/typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/90/83/f28d2c912cd010a09b3677ac69d23181045eb17e358914ab739b7fdee530/typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d5/00/635353c31b71ed307ab020eff6baed9987da59a1b2ba489f885ecbe293b8/typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/01/95/11be104446bb20212a741d30d40eab52a9cfc05ea34efa074ff4f7c16983/typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/32/f1/75bd58fb1410cb72fbc6e8adf163015720db2c38844b46a9149c5ff6bf38/typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/47/97/0bb4dba688a58ff9c08e63b39653e4bcaa340ce1bb9c1d58163e5c2c66f1/typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a8/cd/9a867f5a96d83a9742c43914e10d3a2083d8fe894ab9bf60fd467c6c497f/typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/eb/06/73ca55ee5303b41d08920de775f02d2a3e1e59430371f5adf7fbb1a21127/typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/e3/88b65e46643006592f39e0fdef3e29454244a9fdaa52acfb047dc68cae6a/typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/15/e0/182bdd9edb6c6a1c068cecaa87f58924a817f2807a0b0d940f578b3328df/typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/09/bba083f2c11746288eaf1859e512130420405033de84189375fe65d839ba/typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/31/f3/38839df509b04fb54205e388fc04b47627377e0ad628870112086864a441/typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/45/1e/aa5f1dae4b92bc665ae9a655787bb2fe007a881fa2866b0408ce548bb24c/typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/88/71a1c249c01fbbd66f9f28648f8249e737a7fe19056c1a78e7b3b9250eb1/typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/1e/19f53aad3984e351e6730e4265fde4b949a66c451e10828fdbc4dfb050f1/typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/88/6e7f36f5fab6fbf0586a2dd866ac337924b7d4796a4d1b2b04443a864faf/typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/71/30/09d27e13824495547bcc665bd07afc593b22b9484f143b27565eae4ccaac/typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/07/3d/564308b7a432acb1f5399933cbb1b376a1a64d2544b90f6ba91894674260/typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ea/f4/262512d14f777ea3666a089e2675a9b1500a85b8329a36de85d63433fb0e/typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a1/25/b3ccb948166d309ab75296ac9863ebe2ff209fbc063f1122a2d3979e47c3/typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1c/09/012da182242f168bb5c42284297dcc08dc0a1b3668db5b3852aec467f56f/typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/30/bd/c815051404c4293265634d9d3e292f04fcf681d0502a9484c38b8f224d04/typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155" }, +] + +[[package]] +name = "typing-extensions" +version = "4.7.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3c/8b/0111dd7d6c1478bf83baa1cab85c686426c7a6274119aceb2bd9d35395ad/typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36" }, +] + +[[package]] +name = "typing-extensions" +version = "4.13.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76" }, +] + +[[package]] +name = "virtualenv" +version = "20.26.6" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "distlib", marker = "python_full_version < '3.8'" }, + { name = "filelock", version = "3.12.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "importlib-metadata", version = "6.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "platformdirs", version = "4.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3f/40/abc5a766da6b0b2457f819feab8e9203cbeae29327bd241359f866a3da9d/virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/59/90/57b8ac0c8a231545adc7698c64c5a36fa7cd8e376c691b9bde877269f2eb/virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2" }, +] + +[[package]] +name = "virtualenv" +version = "20.32.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "distlib", marker = "python_full_version >= '3.8'" }, + { name = "filelock", version = "3.16.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "filelock", version = "3.18.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "platformdirs", version = "4.3.8", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a9/96/0834f30fa08dca3738614e6a9d42752b6420ee94e58971d702118f7cfd30/virtualenv-20.32.0.tar.gz", hash = "sha256:886bf75cadfdc964674e6e33eb74d787dff31ca314ceace03ca5810620f4ecf0" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5c/c6/f8f28009920a736d0df434b52e9feebfb4d702ba942f15338cb4a83eafc1/virtualenv-20.32.0-py3-none-any.whl", hash = "sha256:2c310aecb62e5aa1b06103ed7c2977b81e042695de2697d01017ff0f1034af56" }, +] + +[[package]] +name = "zipp" +version = "3.15.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/27/f0ac6b846684cecce1ee93d32450c45ab607f65c2e0255f0092032d91f07/zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/fa/c9e82bbe1af6266adf08afb563905eb87cab83fde00a0a08963510621047/zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556" }, +] + +[[package]] +name = "zipp" +version = "3.20.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350" }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.9'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e" }, +]