From 96fe5f8a43bc5d5cf2c5edaced3cbab6af278ffa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 02:17:16 +0000 Subject: [PATCH 01/30] Bump actions/setup-python Bumps [actions/setup-python](https://github.com/actions/setup-python) from 9322b3ca74000aeb2c01eb777b646334015ddd72 to 65b071217a8539818fdb8b54561bcbae40380a54. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/9322b3ca74000aeb2c01eb777b646334015ddd72...65b071217a8539818fdb8b54561bcbae40380a54) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 65b071217a8539818fdb8b54561bcbae40380a54 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7073688d6..c59511c2e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - name: Set up Python - uses: actions/setup-python@9322b3ca74000aeb2c01eb777b646334015ddd72 + uses: actions/setup-python@65b071217a8539818fdb8b54561bcbae40380a54 with: python-version: 3.7 - name: Install dependencies diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4a895c54b..4fc1640f8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Run docker compose run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python - uses: actions/setup-python@9322b3ca74000aeb2c01eb777b646334015ddd72 + uses: actions/setup-python@65b071217a8539818fdb8b54561bcbae40380a54 with: python-version: ${{ matrix.python-version }} - name: Install tox From 87d76dea5e451ede33ffd6f5da072cb03df7d61a Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 27 Aug 2025 12:19:23 +0200 Subject: [PATCH 02/30] Add space before username in restart required message --- splunklib/client.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/splunklib/client.py b/splunklib/client.py index 72cefc262..9b42985c3 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -604,9 +604,7 @@ def restart(self, timeout=None): :type timeout: ``integer`` """ msg = { - "value": "Restart requested by " - + self.username - + "via the Splunk SDK for Python" + "value": f"Restart requested by {self.username} via the Splunk SDK for Python" } # This message will be deleted once the server actually restarts. self.messages.create(name="restart_required", **msg) From be871aab47630587c911f006d1c54b1a1c7e4b4d Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Mon, 25 Aug 2025 12:04:49 +0200 Subject: [PATCH 03/30] Always sleep while restarting The /services/server/control/restart endpoint does not stop the API immediately. As a result, a login() call may still succeed just before the restart takes effect. This change introduces an additional sleep to prevent a burst of requests from reaching the server while it is in the process of restarting. --- splunklib/client.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/splunklib/client.py b/splunklib/client.py index 72cefc262..0707ede38 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -618,7 +618,15 @@ def restart(self, timeout=None): while datetime.now() - start < diff: try: self.login() - if not self.restart_required: + if self.restart_required: + # Prevent a burst of requests from bombarding Splunk. + # Splunk does not stop the API immediately when /services/server/control/restart + # responds, thus the login call (above) will still succeed until the server + # is actually stopped. Based on the presence of restart_required message, + # that we have added before calling restart, we know that the server did not stop yet. + sleep(1) + continue + else: return result except Exception as e: sleep(1) From 58ea7d74dc902e05a21ca7ea4b2d271dcb092e15 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Mon, 1 Sep 2025 11:51:26 +0200 Subject: [PATCH 04/30] Test macros use directly in a SPL query Currently we do not have a test that uses macros directly in SPL. This change adds such test. --- tests/integration/test_macro.py | 111 ++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/tests/integration/test_macro.py b/tests/integration/test_macro.py index 52debc571..a247f3b32 100755 --- a/tests/integration/test_macro.py +++ b/tests/integration/test_macro.py @@ -15,10 +15,12 @@ # under the License. from __future__ import absolute_import +from splunklib.binding import HTTPError from tests import testlib import logging import splunklib.client as client +from splunklib import results import pytest @@ -153,6 +155,115 @@ def test_acl_fails_without_owner(self): ) +class TestMacroSPL(testlib.SDKTestCase): + macro_name = "SDKTestMacro" + + def setUp(self): + testlib.SDKTestCase.setUp(self) + self.clean() + + def tearDown(self): + testlib.SDKTestCase.setUp(self) + self.clean() + + def clean(self): + for macro in self.service.macros: + if macro.name.startswith(self.macro_name): + self.service.macros.delete(macro.name) + + def test_use_macro_in_search(self): + self.service.macros.create(self.macro_name, 'eval test="123"') + + stream = self.service.jobs.oneshot( + f"| makeresults count=1 | `{self.macro_name}`", + output_mode="json", + ) + + result = results.JSONResultsReader(stream) + out = list(result) + + self.assertTrue(len(out) == 1) + self.assertEqual(out[0]["test"], "123") + + def test_use_macro_in_search_with_single_arg(self): + # Macros with arguments must contain the amount of arguments in parens, + # otherwise a macro is not going to work. + macro_name = self.macro_name + "(1)" + + self.service.macros.create(macro_name, 'eval test="$value$"', args="value") + stream = self.service.jobs.oneshot( + f"| makeresults count=1 | `{self.macro_name}(12)`", + output_mode="json", + ) + + result = results.JSONResultsReader(stream) + out = list(result) + + self.assertTrue(len(out) == 1) + self.assertEqual(out[0]["test"], "12") + + def test_use_macro_in_search_with_multiple_args(self): + # Macros with arguments must contain the amount of arguments in parens, + # otherwise a macro is not going to work. + macro_name = self.macro_name + "(2)" + + self.service.macros.create( + macro_name, 'eval test="$value$", test2="$value2$"', args="value,value2" + ) + stream = self.service.jobs.oneshot( + f"| makeresults count=1 | `{self.macro_name}(12, 34)`", + output_mode="json", + ) + + result = results.JSONResultsReader(stream) + out = list(result) + + self.assertTrue(len(out) == 1) + self.assertEqual(out[0]["test"], "12") + self.assertEqual(out[0]["test2"], "34") + + def test_use_macro_in_search_validation_success(self): + macro_name = self.macro_name + "(2)" + + self.service.macros.create( + macro_name, + 'eval test="$value$", test2="$value2$"', + args="value,value2", + validation="value < value2", + ) + + stream = self.service.jobs.oneshot( + f"| makeresults count=1 | `{self.macro_name}(12, 34)`", + output_mode="json", + ) + + result = results.JSONResultsReader(stream) + out = list(result) + + self.assertTrue(len(out) == 1) + self.assertEqual(out[0]["test"], "12") + self.assertEqual(out[0]["test2"], "34") + + def test_use_macro_in_search_validation_failure(self): + macro_name = self.macro_name + "(2)" + + self.service.macros.create( + macro_name, + 'eval test="$value$", test2="$value2$"', + args="value,value2", + validation="value < value2", + errormsg="value must be smaller that value2", + ) + + def query(): + self.service.jobs.oneshot( + f"| makeresults count=1 | `{self.macro_name}(34, 12)`", + output_mode="json", + ) + + self.assertRaisesRegex(HTTPError, "value must be smaller that value2", query) + + if __name__ == "__main__": try: import unittest2 as unittest From b0c4129e1363b4e351677ea78c9155f3518d4c81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 18:20:01 +0200 Subject: [PATCH 05/30] Bump actions/setup-python (#657) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 65b071217a8539818fdb8b54561bcbae40380a54 to 3d1e2d2ca0a067f27da6fec484fce7f5256def85. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/65b071217a8539818fdb8b54561bcbae40380a54...3d1e2d2ca0a067f27da6fec484fce7f5256def85) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 3d1e2d2ca0a067f27da6fec484fce7f5256def85 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c59511c2e..d0fd9cae5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - name: Set up Python - uses: actions/setup-python@65b071217a8539818fdb8b54561bcbae40380a54 + uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 with: python-version: 3.7 - name: Install dependencies diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4fc1640f8..b8855c0a7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Run docker compose run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python - uses: actions/setup-python@65b071217a8539818fdb8b54561bcbae40380a54 + uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 with: python-version: ${{ matrix.python-version }} - name: Install tox From febd1013b848ee7307576879a04de5750bb6ddb1 Mon Sep 17 00:00:00 2001 From: "Scott Odle (Splunk)" <134433803+sodle-splunk@users.noreply.github.com> Date: Mon, 1 Sep 2025 10:18:06 -0600 Subject: [PATCH 06/30] Update release workflow to build wheel package (#656) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d0fd9cae5..d53f72fd2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: - name: Install dependencies run: pip install twine - name: Build package - run: python setup.py sdist + run: python setup.py sdist bdist_wheel - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d with: From 62acb2540a7e92ceeaae6e59f52446e2a1d7ed87 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Mon, 1 Sep 2025 13:40:48 +0200 Subject: [PATCH 07/30] Add privileges macros test --- tests/integration/test_macro.py | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tests/integration/test_macro.py b/tests/integration/test_macro.py index a247f3b32..580613176 100755 --- a/tests/integration/test_macro.py +++ b/tests/integration/test_macro.py @@ -264,6 +264,60 @@ def query(): self.assertRaisesRegex(HTTPError, "value must be smaller that value2", query) +# This test makes sure that the endpoint we use for macros (configs/conf-macros) +# does not require admin privileges and can be used by normal users. +class TestPrivileges(testlib.SDKTestCase): + macro_name = "SDKTestMacro" + username = "SDKTestMacroUser".lower() + password = "SDKTestMacroUserPassword!" + + def setUp(self): + testlib.SDKTestCase.setUp(self) + self.cleanUsers() + + self.service.users.create( + username=self.username, password=self.password, roles=["user"] + ) + + self.service.logout() + kwargs = self.opts.kwargs.copy() + kwargs["username"] = self.username + kwargs["password"] = self.password + self.service = client.connect(**kwargs) + + self.cleanMacros() + + def tearDown(self): + testlib.SDKTestCase.tearDown(self) + self.cleanMacros() + self.service = client.connect(**self.opts.kwargs) + self.cleanUsers() + + def cleanUsers(self): + for user in self.service.users: + if user.name == self.username: + self.service.users.delete(self.username) + + def cleanMacros(self): + for macro in self.service.macros: + if macro.name == self.macro_name: + self.service.macros.delete(self.macro_name) + + def test_create_macro_no_admin(self): + self.service.macros.create(self.macro_name, 'eval test="123"') + + stream = self.service.jobs.oneshot( + f"| makeresults count=1 | `{self.macro_name}`", + output_mode="json", + ) + + result = results.JSONResultsReader(stream) + out = list(result) + + self.assertTrue(len(out) == 1) + self.assertEqual(out[0]["test"], "123") + + if __name__ == "__main__": try: import unittest2 as unittest From f83af551eb4c50a6b04891dbfea1f7b3a335af75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20J=C4=99drecki?= Date: Tue, 2 Sep 2025 22:10:02 +0200 Subject: [PATCH 08/30] Modernize project to use `pyproject.toml`, review .gitignore and untrack any ignored files, update README (#660) * Add pyproject.toml * Add a properly fleshed-out .gitignore file * Add .vscode to .gitignore * Remove pytest from deps * Remove tox.ini * Simplify .gitignore a bit * Remove XLSX file * Remove test report generation, clean up tox config, remove setuptools from dependencies * Update release workflow to use pyproject.toml * Format Markdown files * Add CD workflow for Test PyPI * Remove .gitattributes as we don't store any binary files that use Git LFS * Clean up Makefile * Remove .pylintrc * Remove scripts/ * Remove tests/README.md * Update README --- .gitattributes | 1 - .github/ISSUE_TEMPLATE/bug_report.md | 20 +- .github/ISSUE_TEMPLATE/custom.md | 9 +- .github/ISSUE_TEMPLATE/feature_request.md | 7 +- .github/PULL_REQUEST_TEMPLATE/pr_template.md | 9 +- .github/workflows/cd.yml | 28 + .github/workflows/fossa.yml | 1 + .github/workflows/release.yml | 24 +- .github/workflows/test.yml | 2 +- .gitignore | 297 ++- .pylintrc | 235 --- Commands.conf.spec.xlsx | Bin 22530 -> 0 bytes MANIFEST.in | 1 - Makefile | 75 +- README.md | 337 ++- pyproject.toml | 89 + scripts/build-env.py | 119 -- scripts/templates/env.template | 16 - scripts/test_specific.sh | 4 - setup.py | 43 - tests/README.md | 50 - tox.ini | 47 - uv.lock | 1956 ++++++++++++++++++ 23 files changed, 2551 insertions(+), 819 deletions(-) delete mode 100644 .gitattributes create mode 100644 .github/workflows/cd.yml delete mode 100644 .pylintrc delete mode 100644 Commands.conf.spec.xlsx delete mode 100644 MANIFEST.in create mode 100644 pyproject.toml delete mode 100644 scripts/build-env.py delete mode 100644 scripts/templates/env.template delete mode 100644 scripts/test_specific.sh delete mode 100755 setup.py delete mode 100644 tests/README.md delete mode 100644 tox.ini create mode 100644 uv.lock diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index c5f9eef75..000000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -tests/searchcommands/recordings/** binary diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e36085909..cacde968b 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,9 +11,10 @@ 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 '....' +2. Click on '...' +3. Scroll down to '...' 4. See error **Expected behavior** @@ -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/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 000000000..d8df8f43c --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,28 @@ +name: CD +on: [workflow_dispatch] + +jobs: + test-pypi-deploy: + name: Deploy to Test PyPI + runs-on: ubuntu-latest + permissions: + id-token: write + environment: + name: splunk-test-pypi + steps: + - name: Checkout source + uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 + - name: Set up Python + uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 + with: + python-version: 3.9 + - name: Install dependencies + run: pip install build + - name: Build package + run: python -m build + - name: Publish package to Test PyPI + uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d + with: + user: __token__ + password: ${{ secrets.TEST_PYPI_PASSWORD }} + repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/fossa.yml b/.github/workflows/fossa.yml index 94ad93728..5ded8d274 100644 --- a/.github/workflows/fossa.yml +++ b/.github/workflows/fossa.yml @@ -1,5 +1,6 @@ name: Fossa OSS Scan on: [push] + jobs: fossa-scan: uses: splunk/oss-scanning-public/.github/workflows/oss-scan.yml@main diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d53f72fd2..382e82d6a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,25 +5,28 @@ on: jobs: publish: - name: Deploy Release to PyPI - # Last version with Python 3.7 binaries available - runs-on: ubuntu-22.04 + name: Deploy release to PyPI + runs-on: ubuntu-latest + permissions: + id-token: write + environment: + name: splunk-pypi steps: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - name: Set up Python uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 with: - python-version: 3.7 + python-version: 3.9 - name: Install dependencies - run: pip install twine + run: pip install build - name: Build package - run: python setup.py sdist bdist_wheel + run: python -m build - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d with: user: __token__ - password: ${{ secrets.pypi_password }} + password: ${{ secrets.PYPI_PASSWORD }} - name: Install tox run: pip install tox - name: Generate API docs @@ -35,10 +38,3 @@ jobs: with: name: python_sdk_docs path: docs/_build/html - # Test upload - # - name: Publish package to TestPyPI - # uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d - # 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 b8855c0a7..4f27fe9d2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,4 +32,4 @@ jobs: - name: Install tox run: pip install tox - name: Test Execution - run: tox -e py + run: tox -e py -- ./tests diff --git a/.gitignore b/.gitignore index 5a7bf5b06..a7aaa576d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,281 @@ -*.pyc -*.swp -*.idea -*.DS_Store* -*coverage_html_report* -.coverage -.coverage.* -.python-version -.vscode -__stdout__ -docs/_build +# Created by https://www.toptal.com/developers/gitignore/api/windows,macos,linux,pycharm+all,python +# Edit at https://www.toptal.com/developers/gitignore?templates=windows,macos,linux,pycharm+all,python + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### PyCharm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +.idea/ + +# CMake +cmake-build-*/ + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python build/ -proxypid +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg MANIFEST -coverage_report -Test Results*.html + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: *.log -splunk_sdk.egg-info/ -dist/ -*.observed +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ venv/ -.venv/ -.tox -test-reports/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### Python Patch ### +# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration +poetry.toml + +# ruff +.ruff_cache/ + +# LSP config files +pyrightconfig.json + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/windows,macos,linux,pycharm+all,python + +.vscode/ +docs/_build/ \ No newline at end of file diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 1f71be2e2..000000000 --- a/.pylintrc +++ /dev/null @@ -1,235 +0,0 @@ -[MASTER] - -# Python code to execute, usually for sys.path manipulation such as -# pygtk.require(). -#init-hook= - -# Profiled execution. -profile=no - -# Add to the black list. It should be a base name, not a -# path. You may set this option multiple times. -ignore=CVS - -# Pickle collected data for later comparisons. -persistent=yes - -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= - - -[MESSAGES CONTROL] - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time. -#enable= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). -disable=E1103,C0111,C0321,R0903,R0904,W0122,W0142,W0703 - - -[REPORTS] - -# Set the output format. Available formats are text, parseable, colorized, msvs -# (visual studio) and html -output-format=text - -# Include message's id in output -include-ids=yes - -# Put messages in a separate file for each module / package specified on the -# command line instead of printing them on stdout. Reports (if any) will be -# written in a file name "pylint_global.[txt|html]". -files-output=no - -# Tells whether to display a full report or only the messages -reports=no - -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Add a comment according to your evaluation note. This is used by the global -# evaluation report (RP0004). -comment=no - - -[BASIC] - -# Required attributes for module, separated by a comma -required-attributes= - -# List of builtins function names that should not be used, separated by a comma -bad-functions=map,filter,apply,input - -# Regular expression which should only match correct module names -module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ - -# Regular expression which should only match correct module level names -const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ - -# Regular expression which should only match correct class names -class-rgx=[A-Z_][a-zA-Z0-9]+$ - -# Regular expression which should only match correct function names -function-rgx=[a-z_][a-z0-9_]{2,30}$ - -# Regular expression which should only match correct method names -method-rgx=[a-z_][a-z0-9_]{2,30}$ - -# Regular expression which should only match correct instance attribute names -attr-rgx=[a-z_][a-z0-9_]{2,30}$ - -# Regular expression which should only match correct argument names -argument-rgx=[a-z_][a-z0-9_]{2,30}$ - -# Regular expression which should only match correct variable names -variable-rgx=[a-z_][a-z0-9_]{0,30}$ - -# Regular expression which should only match correct list comprehension / -# generator expression variable names -inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ - -# Good variable names which should always be accepted, separated by a comma -good-names=i,j,k,ex,Run,_ - -# Bad variable names which should always be refused, separated by a comma -bad-names=foo,bar,baz,toto,tutu,tata - -# Regular expression which should only match functions or classes name which do -# not require a docstring -no-docstring-rgx=__.*__ - - -[FORMAT] - -# Maximum number of characters on a single line. -max-line-length=80 - -# Maximum number of lines in a module -max-module-lines=1000 - -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string=' ' - - -[MISCELLANEOUS] - -# List of note tags to take in consideration, separated by a comma. -notes=FIXME,XXX,TODO,UNDONE - - -[SIMILARITIES] - -# Minimum lines number of a similarity. -min-similarity-lines=4 - -# Ignore comments when computing similarities. -ignore-comments=yes - -# Ignore docstrings when computing similarities. -ignore-docstrings=yes - - -[TYPECHECK] - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# List of classes names for which member attributes should not be checked -# (useful for classes with attributes dynamically set). -ignored-classes=SQLObject - -# When zope mode is activated, add a predefined set of Zope acquired attributes -# to generated-members. -zope=no - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E0201 when accessed. -generated-members=REQUEST,acl_users,aq_parent - - -[VARIABLES] - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# A regular expression matching the beginning of the name of dummy variables -# (i.e. not used). -dummy-variables-rgx=_|dummy - -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. -additional-builtins= - - -[CLASSES] - -# List of interface methods to ignore, separated by a comma. This is used for -# instance to not check methods defines in Zope's Interface base class. -ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by - -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__,__new__,setUp - - -[DESIGN] - -# Maximum number of arguments for function / method -max-args=5 - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore -ignored-argument-names=_.* - -# Maximum number of locals for function / method body -max-locals=15 - -# Maximum number of return / yield for function / method body -max-returns=6 - -# Maximum number of branch for function / method body -max-branchs=12 - -# Maximum number of statements in function / method body -max-statements=50 - -# Maximum number of parents for a class (see R0901). -max-parents=7 - -# Maximum number of attributes for a class (see R0902). -max-attributes=7 - -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 - -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 - - -[IMPORTS] - -# Deprecated modules which should not be used, separated by a comma -deprecated-modules=regsub,string,TERMIOS,Bastion,rexec - -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled) -import-graph= - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= - -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled) -int-import-graph= diff --git a/Commands.conf.spec.xlsx b/Commands.conf.spec.xlsx deleted file mode 100644 index ad846090a0d30b7089abe995b1a8a8b19cf61f26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22530 zcmeFY1A8vrvNjsqwr$&)$&78=wr$SXGq!Epwv!p#PEOu;?eFZh&RXAfe!$*+jiX zj@oo?)>Z_0AV3s306^cz|L^iYSONnolQ!!NFkSG++!$?WwR3n8`eF0J>$uB6<9L2a zsViYLrFrpWw)`44O9mt7AgDEw#+rLi!XI+=>)MtPv|tvQl>^G0sGu4LPKK&U&yCM~ zFH}$wdaM|xwMd>M_T1giOq%Ds3ca(*RPw{e-Qwb9Lue&Vc(hM6+Gd2erfTBw7O>Qb z%kwAEN>ic@_DI|?jM~T8%w9% z1JWA~s}u_|)*8u54)5N6s!d<;0e&H1iMaZ1^*Rnl3bM}oC%2P*#7BHASdruqH{cCc zN|#Yy&iWtc8*MmK{Vn*nfP#wA7@CSjO;)+JS9OqfZ3({uly%r9X0Yr zM@NcrdZJNxXtgD6gEDEfz5;l&0`|5H?B4KPLt4TDAIxA|p{t-?19-EDyJ^e>iV2?3 zBr}MgDX<|QdFVHvzcoj>Z;$h=+J)mCpyjHDc@5bd@Ii_vh6GJ)E|D*&8BVJX>$#u& z?Rsz}_|Zp-cX;eC;M}_WgkjI~$bb7Y41j@`@8FBly=S{bZB7d1^YzirOPhRR0|0z| z0RzbW3-IN<^&Kx0iFRo1u7kbY!6Oo45vK2iCKL{1i zIV@Ajy%IS1BBPWM!FVp}UfRc}uYL@t(HIL6$Egw~CmP^MROxc5ObAmJ$A&u!seWO? zO{aAld+LM>J+t%;;+t)KyTE_P2p)JL0Oog(G6((VB%`)U}<1$Yx$RZ z{6CNZ{PvOG$NtY=IufTX`Waw`t^zv)XT9y?tv4~8JytO8+nnL`a7f{#&-KiGZy%Xy ztraO&NzY4UpWl4M`ojqv)|!sh?Lmws-;vmZ}yiT}$)?0+j8& z8@>8f9KC)torwQH{|QCo_(ejB8JSfy@N{fYe49IuGcGr-lTleEe`wzJOaB~jFs)cE z1*)&D1GEpAQ=KW>Sf^FkZ5rYOSwQ0^ zA#X1FlWB;u31W~&wM}oO?tDW=;S=IavjuOU|C3^w;)E|1eH&hVPyhhurZ{2;gJG)*X9PVl3WJFA=pxzA*zJ^E6woC^Wu#ox@!8+%PTF4Yzb+b9 zs~We!0CKEiERNDKhmx11kUUGVi*^d;M3KO&R`u2~L?twt4-0z4QKV}~v~mIUO|}Aa z%OezB%FU_M9Du|0131LCmpW>}S;V)2$-`Hhq{SMo01PHUUElCfK;x%WunS?;p()xU z=Yg40O=sd2^DC=1NCkEYN9#TIA%<_{9O9I74Lbni3DSLZHe?94aP0Gf( zZ}QtW)!S}(vLF9$rFy73^71vfdc82!X~SA$%MzVQ(7$5d&sgi->BY0+s`I(F9+!uz znm!;=;^#!D(*<6nKFr82!Vq1krbYl=F&XM*C}(_%7Sseh{TRt|Ph%`&SpAaU;Nb-2HcWA&8D4Q9@>=gi%^nnTJQ=FsQeQzxA zfw%y4+`tN^)asX@I$1a6U0XGx2YPXh^U)!ZFstps4VB=;33YU$jWU!Vk0diRPJ&Ax zZm|B zbKy5xSeV3`4$C8{uFEf}aBaSwp%;)Kfft7Pm>2T{?SKM-h}~R1Wf$-7{PgL z=Xpt-@8-jIepj>Nn|a$@hvYC7+m5v6>(1Mui)GHA?J?@fb;XxkE$u0X++Q{@0&SA# zUEKevr4?~>YoePesyuH*znsr{a%8?;oL{{8@;3ZtOYn@#_2kBZH>TUx-rsBPo6*^U zdbGKZX!6IDVf{j$+Eu~p%O#*7w7nQOs!}1Wm(#Zk-v`>JUXKYk2JiBI^E;;&=BadzvpAzWMj-TMeK# zKS2dU=eK+633^XCe6xw@Did8CL9%yl4%`JMKgO+(h3@R6kr%t`RNb-X91vLWw^&K_ z%=A+wVOV-6!Mi@&N$#v|8npTw10W$TjAB;e_ob-bcQP{!&n3R{;2v9Ikk9i`n2UMo z(CrX+^NcM;h^RU=pzbE@O4B zEPUnHd}r2;r1sEu#~V(72i3@3@8SwWJLveVQ}DKYv2IF@!Q4b~Kx{ZGO8^jmG#x$6 z4>vVX*L?gMmPb}aGczp4xJXNhR)gN8mKKvl>On2yw zR_6y3d>up)V+aNc2SI`+K@_9<1w&krp{Mies)#smgEioiK$};o2L*}*NrEOu^h=2V zQ&fyyQ2eiM_OeN7Aw`q7@p~6)${-6>60t^31XTceYZD5jsRRcCVE{~+#_~&RLR7{q z$G{avy+d2-R3ZN#K;fYA5G1H#A&7I*cFLXYt-U_hHfU6F#V#%%pi~xyDHZB@NS$6u zTRChVqYXBOP}YS~`b}{0jTdE)q59H_o{_gOhaWHc&mG)4x4WCi>h9hj_=mF;nvI-# zd4`JKhQ!GIiv%ami^6_6Nr`U5P2%?s4uS``dUO{oOwfe<gfX^H>TXBMh|x4qp_+B1RSX)?rCgurRvm0&*u;i)@6ao?v0 zl-E`x;{H$<)eb_!3sRsBRA&R|Wao`@Le>LEW47uH#&>C!Uvd$%>0ycm^sIJji!8Fa zqHNOmeWArMwlq!fXgUA%p-LcU{bDF5NHGrxu{ggYa5*9C36WH}Xc2r#t`kJvJc06< z?C3S zYExZjGwW2=L6jwqO4Rc?dTvV-l!Z6WYK2YJp7}3#T{EtBGf^0ZrdT#6+&E}LJwsOU z%Al~Qv2S4m-d(HMB=*kmaA%U1wj@SCy)f=BPWq_2<(&|-l_Jzw;DO!AiKEOeLux7+ zzYB%rTiB*~ECF?;GnbgJXt(JVhwnXM4XC&2b&BsG8Zbu%*SD@mm}|-zoRa-u@^dB$ za?*sJfeN#-A6jJ}yFRN%)$zn>EarKY@B>K9ZB<&*X}?0ldTfIRjG zB~yo(;|xs-b!PlQmU=mS-xxZ#b@zp66kUQMUXCXBhfrw{6VNQ4XE28%&YqM;Je*=R z!cX~iT6M`&v(uzag#{I($m%rrgJzUQ)YUy2Qyo50MRtFTb$ctR+)C%6iJm1v;$%1J z{pJD61kZ3?VvZ9+j!sd#CE8Sq_lfagGYgj``F7k2MCLBTM6cW+BFI4`36ew!3Sxwd zTGa*Ce);8&LFcKCJUS6;wCRpP{wc5beNlPMINI>Iv=r9m1*@`X|DQ?rveYj^|NQZ} z7Ik`iE1=*`6{VALR#O!gTrWp)Smr>K8*}cm)5nSIqxIT54~u&PsQ-c-7lV%dLfP$mepbgbi|O*xnc%Zs@Rp2XHkYa_$oOCp}}_6T4~r+iTA(cNOIML z!h;kbjY0CXAGuqq;fL%~V1wExWZ4g6<~@gRI``kV?ES7ddR=jLn}6?4cPeP6uhFpi zMA=Hr8tk`=e=Dn%GSDPDta{|-gt}aMS8HEE=4>iS2{-rw7%2TI>mI) z7ba=gb*v5yiziWqM??Dr5su!PIAdv{|9%D{;Ernv7z>LvW9VJLL(SF@s5G8`mg%=@ z>p95dbL5^U25*qXE*&1Mp)=iy5>Ty;bJ9^Asa=V`biyk}z+l36;;{7nT4eFjXEb)u zeQOc5n-jM4h~BBtWXK||mL3$+$*lR6l>zEn6HlM`&qCmRgyKNw*wJcGI}A>lURoG3 zy<5j9LV+b`pM}FJJ(bD+7^D=YZJ9SzO#fXB!wXWp3^COPIv@TtCQE1M#^!9ZS54Ud&W>Gmh$YfEl6zZpyOzu3{BQH01rbUEvtR{e{@mmeQw;= z!Xn+E4j~=e=Rou}7%74TMUo;;jw&}wpkY{Nb%1n=j7~%0MzY!}FRw{eTJx{nh3q1> z@=)D9hQg+`!WOX24WL>UhX)Q@4V=i7!z#-6Q5ny(GVTk8Lh~h=l$C*o7F7sbGhYBq-wy#Z;c5QW0<0NUn_19S52}x}-anY~YyO)>b01;t67%PyF2O@*C^Tz&5rG1aZs3=J ze>qr=Xgr?6n43whMg@)k8_c}b$YqTk*7}4jCOn3u|9YdjeZBLSRvPfDu-OcuYr&upXRzZ~kIc^My{ZcgVNC#C17jkbr3h3IgRzZ{yAkBn47yND5Y0AG3*WplN?Y2xD?Q%#|Qz# zMaOW=Ii$Ai*+N+m$Z^DK35oE1tNrK@MXW0cptlA4A=iyCDA?j(VEvQ~7&897c2F=O zih2y082SB>+3{{XLyma*yxP&=IjVZt9fD<=eliuKJVzWjwBmamp(RUtLye9#RtD!-fJ~o0OD!-6QM0 zjJ2ueq<5_mn-lot0Rl$<2qD$IY>ppYR@CVsS?`g3otUkAU!IZD+x09*uTLdwJaf7` zZEXjA1sOnUXGcN4zVoo#~7t}6Lb`aYEsH2D%hU1LYjZHO9kOWF8GwXDCEX-4mzsXdd z*CHvbx?hq)&YI^+nY!wB=6#6uIK5CI$!uy)kiLV!-Xig0kcPuE9zt7EnLW5F2vI}6skC7O+b6PoT)h?9g6d^yW<(R^u&JD} zEyo998aysN3d|nhASzPZq~uEYHE z<~GDCI59lAO^egEDZ@HZ6waKzqWXZ+bb|Ym3`?M-r_WaU8OUIG0gm0}ly<{s_9LVz zIV_U(f};$SpXdBVUKuih=Yp8Iyb>}#NIzht;8mc(!mz$H-g^`$NUWSO;7vTKQ)uidpp04DG z?wZpE;_-cP)yr3(k*n6&m=B>IF6;+Dm~ZiGmIRY_Q%szh5ZXe&!rFQGgGJsB6aX7+B4kqJIJ*DgJ3(*Zkcvh z$fsjSyC+d9PlWcPmi(FKKD^*N|C(Xol|brqdVH50EPdD5KD<6;h&PNm`r|fShk~kp z*|!oDvg)O>7IUrKghV>XL4+1xC$YXd|3@XQ_Ec*WNvdl}ayPa_weY0Ah3a?DR*) zPY3m-eCo66kO!3|f0v9h{@4nB(Br$>pA3j5JAuTh!+vg%qdSd2s1?e7Zn) zDAfgaHtbZ2vFPw{*!aS)dlIkX$S2nUSUa=hcV-^%%%Swm&%>jyf5H3T6H^!K zfD?`134AZ4|7&83>9538qMEd0J_kal?cyhR#2ZFnctVSnY_zo1QH`=S@i-6S+Dy@J60W*J&jk)|` zst9?auhNlDJ)YklpkorvCaJT8IDhO$3~=I}m3HEnNl=c$0>5Y`sg`QINdljdBBl^5 z_hp9%OPaJ^-fNC@;|3EM9Cq?kQFJae_{U7I)FbP|LP0bLUR}z%0PI0~FY0;r(J`ye zP;Sm2)Q}<`IgS4G!^>~nAU&LfzClWjyT|)CwdkSrVoUbgTC%QfR2L_JTW&y}&zc?VhJPxN(6>2eH)uLDEMPZuDa&Zk3X9 z*a_;Ei3=|S7oQF7_>FonZ^i^Ugv{?|m&I%1l>jNR94;G`kf*NJ;$@shk&M7nqW-(m zO)t5;PkA@+W+Xdg|AZVZn1B>g3md7MwASsd#vn~83i&@&0qP2rb>0NF?$KNQJZm;K)X z>*cwzAZu0w`?kUgra4U_lc<4412Yu{M^IT~E27P*<+2W4Op6ox-)5fV0z6NSL5;Fa zu#nzt$mO2E)3Wrt>UG0PE!`?hcZKi~qIw+);T^hWua+G|(rCvk&|rnE9|{AS7#eH< zf40dExLK;DrE2;W1QFaXm!X&Kd7PsZc^GXo+RlY`Lh9I?%Sc5nHFZuJTfy$FQ0xAP zre=vO;%i(Y&!q~UCgF+PP4pljMJLyr-K0a!T#&3ID|}rdGN_(G{PI6$q)toN59G=2 zLlZj#K6fK&5>^OTJR@Fs|82+N!RAWoB_2n9iI}+QkFd2tvBl5GuMC%qndx~j92cyK zI7T_va#nEtPVN?ZTQc^i6t@GYxcW&TexEpk{**XO*c9`JkS?+=$JAg-=vA1*;lLjf zxFx>(sxcp5m5&t9B`HNQiuN?e8sLTJ( z#Q#lPR>VuoeiL>fS7Ps>Bd+l-1VJ-%+GGXV@-Kjd_WVEiBr;)NuONj5sKK;6>h3h$ zKSmxs?oMgA^$PghAW7-{a+iDWyOOTuwzW3^@(ViT+1wHthPLS4k;5Zz8 zbqdelV>Jt2;l4WM1-oq-;#fYIF}9bj7{vFy{3sIFxt)O9V_8~^SL14NHAolqj_@@| zlr+G}+!TF?SLFw0#K#K1@)&jeTsKpZWGciT=b|Es*|lUdaEV#`&u&5#Y-a!XTV?|P zf3o}AS^PtGapMxgj0ho5-~70Vt%C;$qPYya$g#>PaMWlf^r0x3^~E|iwFJDjY|2MQfyma>LRpQeNLuMLFxov;KX<*KLDwDb#4+8SeZSxaear zkE9}TK2(mrz1H2HX(c|mg=}RW_Mdq5L#i#Y$ygWo0>iq{Oo?1Qj>jX3g^pGZ!T{ju zllURwuxFwnvNItu4z_rTxcMW#-fd=@cu>;d#!9h2n`Sk9HRH^>+iCn=bV|8 zd7W7ZK007#?0<2Q!uxvgVXE5E4w6W3z#{NV=#VFht^n7Ph1EL`b|rC$do1Qc6fcdlj2%7(eL3UgoY)>b?R8QZO(2b(>q+rReg+Wtq8tVr7Y0$+iV!SR8 zMRP>bIg~UpY9X`aSl6T4){|snKRxBmxQCm3?^kDy*W%(}mrB#s$amuExdKwLExqK4 zGqGlchR1XXPWygT+GjUE4DD~-+uc5C`yXRNZh)?kawq@*B2oYVlz$jZM>Bl~VN1~58Y9EUE2EH_6YECiM$7yA@yXQ-?ga*l76wOm7Ik%Df0QmBDg1sVr~kU$*Yh}E zxNk{CE7yuZzR}ir{{sa*+NFuYk1HE-audY26DyWXobr>=Xh2_PO_MVf>iwHEYS@|x zj;tJuB#x_&D4ZpZlgxNrIlOYfOETa6q2GtLzjS({RjBZDwZ5P;=b^D7pb4dhR4U2% zTKH{Z7{xTQc8*?*ifNrg)}4LsV^y>AUBzlDhE@UjC*{UtX-(lfQ>+5{*JA(Lk)t5= z&%OgD6-QG2Cu5}@di6A+mO{$;A6k<7lC)8WDKesLIuWEmaItfXF?c5a>z~1khxP3v zr|M-)%0W3wZNH$+Jw*>%9SczqMF@){VhVFA5x0pFrbM7A7qpCqB<3;`6=euORD@1C zXo5PDux2rKz4187k)fnM#kSDrEY$c1qE@(rO0b~MKVuF#P&~sOW}T@L9?=v@3Zt0f zJxy(O>k?G=Y$$j2-g?Go*0KePpTbv7`s%p38Pi3ctR$akWIqG6>zI(+CaMUz9oSn! zfZ0OM5OSr_D~VH)G({m)3vJ`*LCfs$VXG-fyeRfCtPxP2Y74{!k~c&tfneqYB$a+7 z(pg^O$lOwIaIkr79W@BcxLUuzYV+Ro6Mj1J2p)!y8N9ebNXH#97n+t_H%n~s-Y`lq z5`{nkcGP(i&V>h<{>mg|+hwY|A4_CwKmnv5@eHyP6i0wlT5}a>QFUi z>fARy2IMvn-0?wXOoJo87{cqYr~N}G*kK4Q;Rl&9U-L^gu=MNGpl z4UL89FVmZYkt&U!8~_)p#Je5-LqNL$Ts4KjiwD;Ci*!hQ8wf6o?)rDjnkdOODkV}_ zZyg)IRgc_(JqF@1%+{B>70^yn#Ly*`Kvy!2{9MJtI#EP`a@?vasJVFOa-KATleUGd zY-~n8NLVC*uCSHD{fPjmD0VtV&Sad6cjgozU_EUfOjXSZEF%r6B0^A@k}w4_L+w~`jz-|Bz1H&qRnQ6-nJ^)Z0<--f z#&4#)8xH*U_{MHg^6LYZerydmz!%33IRE)|uY~wGI2zspgmh}gUDL4^Irr;>8Lxc(d1UcWLQ>M5-$k9PDddwrgNzj#ZZ1s3~e)_(5@wOV3 zvtZ@&7+XKDTRmk`|8t=kvFK(HIgPc_GcQm*n`ueOkj;@f?O@R2@MoQ=sm*+cK9fEi zfzoZ6+wCaIeHiOC6UIKG$MH)haGDf~GzSfa)ij92uWIlyFbW#y&1UZf^4~1^CSqX) z+T%PV_Vp_T(?Jdyr>W%cAo1xYDXf}7bbUtRzzBkVO!ZfUm8r-YKePX%vf%keQ*vcMNt^JKdJ~qG`>asS=<^{HLx^l%`=qxR1NGhjCHpy5h zxQlv^I;cvYfuSta6#d15(iSnhO-D_gT;I23+jY!Si0SbgwRQgYsJ54D75 z7EoxG**{2h5=o#waI$6r0s=H22qM=(_3+DQW9G&W834rBO8Odm|?vGtif zj`tSZ-NqOW$Y<#CxH+F#SM6nQCc7hM9X5)!!xO3@OkEaZ?)NoCr6QV^=<;G{r5e0C z^nehGxBP=4`MTnTaes-^k3vvPG=uQ!L(#h---iV-O%0+y2veNe*?Z+-Gpk6(>p?n< z6R7;zr1H-3SkPc9Rp^ zJNgEz=%*V)eAX%{z&IdfXA#Srkw~984>zdD@Y_NjNgwEu$}j5i=aq%T!GdmU1OH6X z#~;Ha5KR>=74e1xUYo@=O)%+!V%Open6$1ZBcR$0?CoVse!g0l{x^?{17u6~j$)e- zDnB-&1lUe1i6BSKX-NWJl^~{O#p7B(1Z+AI?ioN}bR3R8tAMtEH4Hale#r)Q3vU!G zwC&2-$(5#QUi7kMP?rQS3_bfzip!`@djycV>yh0XpB~IEM3{B11e4~@GY z#a)~T4pf5pN2$iod@MbbbY@l$oniifA8+N=1!bf1d#BN4!=X}crQyNE$O!Z-1^IkC z&r{DE4XgQ%kYIiu=>)?Hv6|a^e&j?@dNM(XCL^3`<{cs=dU>$KBg-=MEO~ifzI187 z2`L1GHGc1xRl>IshzsbL{rof;i4PB@arA$CPM0A}uIK(_>G<4vEs!9X3gZrOEoRD5DQ?(_VQrO`H%q($&qnBTgaR_invtgE!(!UP~4Tin;tB3C_ym4IJ(CU zd91fIT5pi&E0&f3S=ZL}Uz3B5g?E5wE<0Ps&`O8A`4N3zqyxD1dTjyP6 zbNo-(YRF@Gx|>zEn;rhV4g*b=t^;o~$O_ z;SACA$DaaX6fnyRI_uS^8Rw7CFwYl18{6@;U~E4k%<>*3U&W`EKrM^96upFLU_K^i zmzE#oY9AuG9Jq9OI*4qb#ice?dinjWt^Fz?efC*C@c(0QON%~PnG5zE+{yp|!2VZo z>*Q`_{C8A)uBB`Ho$d7HKj{MA<0X~TTc;X5owISGcJ?f{lxB zMBgvR{(F2kK+N7L37I}WFQ}>FN7v3^hxTLU(W}gZR=50;9C?W?YEdKTO)16iBAh`3 zz9!T9+-Fa8X%uNfR=gv~wHzZWU7V1L!YSG$1%0KnLOJ7yDY77%+Ty@m8<9k7Z8|eqIRzl(S`mYdH4Mu8Q#)6$8a3u( zL$sm4guDce4;#dK9+$}`!9|(OnTRNib5cNcXkOU!sh=|yhkE2>L?L6)SYjdAMOg>+ zB`^f_YB1KVAcwk|f|CmLA^HUU0E?=FSS{h+#ferqm0R{hSBL+Jd$+_M1=BZufhOUzA$ zY?e%I6~2AuPvrr_Hxth1CqJv7#n0!bdYn0q{cGpy$Ts!U_%-E3x5#%9Iq8aboAGgY z1t0Zo|MF=3xAg`2$F+miC!8dh$Kjc%Z}eyS&3sh0$$MgCjmgJt3opwvhS$WW-zxu0 z^$@h7Z`8-%XB+w!bXy!=nS9#(zpGE;>}iMe;oU#GEkmswR}GH#OJv@6emFD*_*?|4 zisMNxJ|taS=UY!fcr<(6Q<4r<)63z^gQ0Ht@rvNKJ|owS!U0+C;~p$Sm_GIZmw+RN z%1iNR&)7Y~^a$6ArF(9tWV~J$jB=>QBjHV=#+uwzJCviMw{+#5No|9&mW9Y^XCVrm zZEd6$W_6!n90g0Z6szv5(^^a24Uk zYrxLMKJY4Ci`{-(>QnuJp9HvK?QJZx~#yTqswSu8(;v$aGBGOtoJ;U+4iqybif+e-m*D$j%tgXYl&QIiQH?6 zJZp)(^Zea*WPBY#E;m1a6Zsrjr!@F(TYBbwoUFr{`Mx%7uV!~$*gO_Jq2Ap6Q-emi z`Im-z1O0akM8KDLq(2Yc#)Y32z@lD>UX6vJQXGyiQAxfez!G-k&X2=SmU*5#wtwW(-)a3-1(S?1HBTZQ$}TwBLFSqh&yt^!)24?~ti2;Te(r zx1`F>Fx8L}s(om6OUfh(0`!4+U|1DqMK^1G;y6X_bTp0Si`LJcU5GGcp){UYi2=?q zF~#D6UtDM(VoO=RLY9np@KPXftCe&>0gw{;torcn_`{E%FVGU#T)^4+V-KkO@?>gJ z7a#Q#2X|Nie9fdFvHrG}+B>x$PsJyp;~BEdwswq}Ixz2!C@^$^CzAx%)y3@W_2aqh z9iPRBzoiH{(jfA{JOitIm60IyRg{t{gSxkiqc4WWX=5*lo8)j2uu+Ptg6iQf*H;eCNW^8Rt|M&XuiRI_&lD63F2wmvMz66iI)#^xx*@(cC zX-KX225OQ}I2GC#=nO9%1QnW`spAd(fkfu>Qh+)imq1}3IZc*Xp_(~b9X=$LD(bOWI7REV&sx%^dfZz zsV}ge1={k33-_kS=rn*GMnI8DGS#%GZQ<7M>k7Z~1DY$DN_ESYXQ;12%rw>Y3m3=6 zUxQ4n1fHv@z10iJ*w~S9TYfZMoPo9t>|9yK;I;y2-8_L;+UnXiEpEUP7?Y1CGi$k> zI=!7iFr4kX!PNj>g(^M86k#DuZTCpRzf0X~llQ>2?g4WAVW`syS*J!3LJ7QO44KdeD*x3py@B@lAZ^p%S;tkG8u#K2bV7KK~r=*5`-v;rr~1O;LWY=J&cCpU!^s|0SpxuH*Icr`c3i$Lrzb zYMb}5haCh@Y1ca)DcmLjxS?NhW)fp4DHCSkh2j;m2o6-nuQ}9Nl@#v!5rY}ON?L1w z6IqVOtLH2qJf@;O9E0*y{lz4ntA}<^ zF%O#sv^&b1E3h1Q-D*?Vddf?~Hr^W@64F2I=QE#v3}*FyTwiIdF@AA{#kHmyDIcNh zFj2)`n}UC_VIRk-=no0}NnF5Jl}sOG;m+GO@5pFHbV`)XyPJ++&T1m|7aj6m^UI_( z6LHix|BXO|L9+~Me6PrM%)F~!c#e#-OV31(OTJEojlx>uITnHYjJWIPTdrLjzL-@6 zWJTkg0`4TP!c}qO4Ed7vtFcET{B=L+i4-387}PWO7GM4Ft$}>23;~r18~H1$`*tYY z_ao~24lSQMXLpT=TnSlE>v{KLN9-#?V=L8Y%vMtAD_VWv2#@O-7*G=?8t_^k|M9#@ zSG(Gt5HQFpzC5Z`X*)P?&&{Z~S{k)sqyw$K4l}$A|74tfYf&Yr%Jww23=g>4Bw>Tb zLE<;JQZCzMtBHHej5L?JnRpYsrNQK?jx7Uc>P4;k*0RNDvmy$vvLvcNcvI!T&_dSS zdchfZ|D+WC^X0n!jzG-thRq8aKKn?WSK8K+nKi2ToiH_Y&RFWIa_ntsAu}XxyydLv z^hE(qZ3twv1p9|R(ccWISn9=_wN?h|tj%g6a2mZ9jR(<8~&im<9*^UL5u(b?im^2WsXwZt03jSalbbWp1d($dDG-yNtbxK|MnfW7YxWNvE z5}VxV{__6VKFmDOpThzZY!o&mp|B#SLJYDJR%e=Zg{t?ceNaoT&@&<`BdVIHTmi0= zRnuMWG1d+QP82A~uuw<@4CKc1z4VR~3{-of_*xhmB)fBWb?t0jhZ~*Cu1zviitsU} zR(oh>CTGV`M4YMv96xbrGMF^$SjlX^J65S&oBm@57j%!m@>K$n_Mwx@zQDKbzZS7` z7l?`{sH8im3`-=2F6PPV*EP)7&|9FsiW+fvPwOIh(Dthk-CSwf{JbvQA;r<*=1X{PH<5zG>UNCx|YK4q=*V2-lnN1s)RFNfX&z+@Qz;@LSnbTaSxXMS*bKLUs z>GYVK-Ref6B>itpfZ@BoXFv9re&~Q^#L!Za87+VPM@sHp24f!kyY}?)`}aM|<*zwz zhPE~~#)eMjwl;qc_bTE9ZTlEtg0B)D@$)v!SKuI&ty>8i#!296+Qqf7W;v8IRj#j0 z_2yF>_HBGzZaYm|HL`@O$)wJS7helgErX5n@0=I$zk<3^#f=P0E&}YO99r6II-}MfDGdrz;(K3O{0_fk#F+sB)TH~ zpbjALVGAL+)C$wpy!KNm_rf%)o1xOrkTbj7_XG_01@Po5;+VtjXV}GJ(n^y~y2)%7 zZ|oZ0j7Adh!x=WRC!W;k4tz)?c0IM$zEtli3>;awu}$*Jt8kz$#4mWi`4sEg_?o1b1clJO2$LhVjCQOkviMQl3gJ;Su}8$SE7c%(;HA|42te ze1?D;yO*ONnI~jL{%!lD#YOO|3q$xhUU%=*_w;|v-(l}>E#iEqUdBwB zNw@JkKL6uvkPmo!w$N`?rupvuFLKjK-{3p{L;v^Y?|BSC3hOd`0w`YWH~4ICbk_25 z2pU3i3qPWBp8=_PgQXwm&hcz~ugoQDDQ1VWveI~&Jwx)dRIGrfBrOf_oQ0-(XspO4 znGW&qPL#8mWBZJR)PWhd1CR3m+!}=KDFPBV-Z1JCq6HFMN1~eTayJ18v$r~H5a4by zT?Yfly`TbEpgQ%}pqmlGnleSYr!W({um>Y+qk+l9m7m&;wRnSeFDuS*23o{zp@ghZ@}qy z1S%`8Vx|S%bWB_ixvc>VWH}nJknZ-1S+{J7)$0lOU2%o=1OsjSY-Xih)>kNam?{2~ zvzW+#pS-8jTR&>;sZVu{%GA1qvNc<`E&06GJuSY23$hC5rf z?eXi+f2WV{DKB zsL?E9I&cGcO%JS?9)hT{=Uba{JliL`nAh*x;e31d*G$nHeHHeJruZAW_`VgFOEAx> zKkJrviITf)*4(^POG>xn9PVZK_+u)u7n0TB)bDUh%5~dK2kMl|k0x_A?DRvgNl)%s z_lLgA^$z0}PDdVwP3B7CD8?4I*duLLgBqh`+mejWLn6MB-t{W4c%Ilg<9scBH z`AGNEY(Q=RnJ4d|)6?B( zS7)TQKQyz(O(FAYqOjM#ve?#qnxlM#qALF;l zM^4Om%ysUm)D!B@(Ufhsniahf@7lL?_-H_$u79o#dcBIpRnN}5q)sU79CIp7Fo6rsn_`cWCC=<^uD#>~nCO95WO2TQMa#SZcVLD%Lj9!9_iZ1o+78E{$h(fp8 z45?p1%1SF|ctbFX* zvst`N74y`*m%yJMBHw~waO57!)^{!DK9Ct+OSE6gvBsIj$T1i`yhe?-mD$*#)6FB2 zuZ@zXdh4l}H1o4NmIkz^3YD@W1{oz;RpbnFQe;DR1^g%2e z$HB|P1FFmA%QT0D`3I9HIK+bOsJ7ylo{{*NtR(3@)_nM~h&k3)$9AzkqrV?@jkO1r z6l@WDHqqDI*E&3tsqT%l|8Nw2Pg*#vaJtOD0`J~`C^Lseu(7l8WK`r=JZgr5ZBX!1 zDz8RxW0egy<2A3w=b;J)>jFjxO^0Z?2-9xjB+tPXCHrE-xb_oU3to^CsNGRr|FOj} z?kG%8q_Cu9(}io3u22Fq5=9VTsh`Xu)@+YKDe zq}dDf)wns$O|oyJsRxg>)sFWzbmTf%Sd<-Z8!}7@<9Kx8y7vw-ML&V`PX2>=uLaZ5 zUg=We0a9vzZVXIo8pRuOPdgf?5zfbk`W%s04qemw-NVgibs$IE5h{@eSf4p)4kz|s zXvZO*^>Z#o9kczGK@5r!%c6zv4nmO>x`T8zUJ>tKo~TPTEBaIvKygvRxav>kAZiz{ z_ohxc&M;aF{rxztKfBXpT#>QDx0`5|4~QMTr#?;ZXXXBIv9RG-#x6&{MBPx0rkp}L zC)cZLpNvLCvWu9njeUVu23KnHhG94HJL8(Fni6FLNY##m!KxBf(QY28CQju7GJ(2k zFV<^(sk7j)6pm~Wn%wwZQKI$*fiU=m_}WTPZ`Yd=6=s@Ub;FxUWIvXP*;_!XEv%bsDmGJaT7=$HBg^wozw2SSup*@DKGfb zm`hHgvSu8IW?MP$4fF|tZBl}4BUb12V(i}LlESJa!z5H|rOzGFZa`eT+|`pW{516& zcmLirs}Adytrgf~>NQkgLt3|E# zv?@AdiQd>uOdgi9M18L;HoZK-6IW4*MUC0SWoKXdiqVkkNn!71V98N~w=O=WjqCNF zTf$Gzj-67Ev~Ij7SXY2nDeEz&bMaBiLr&Zl@~oejSC|g+lw5H39wJ<7pIY-wyM6a) zjW2YK|EL8cv@+Uo@S>3aA8tT4`{xxL-vr(NHyC^|ULXvg9>cz8&sR&lJr=`;%)w1u zJl$?3?eCbPyC@;+LI^xhrZ~kNHzYaD=kot$m*3$U)3624iYbh=7?-npd*LH5XP2ss zWsdM(I;&zb`I?Aak=#oziP*v#>^hB)(qy@!yUs&L%vAphW*5HCUSz&#>3l%-onDLR z%ZpX_)!$%ao<3xI#^KAaSzSCCJ$imarBRn;wmWNt116pAt>QNJh^kV-z2qge(rY`( zGQH_@sc}BfUqu8wvw8I3p2(zsMUAqH!`B6lD#fX^?%Z^XmP2CZNxUQ~>qseW#9d*J zcTvBI@uycy$DhRi@!+$s2(qpPZEfON+8N0w5re1j9764l3FX_@XC#%#ex+V$QzRWL zEq%#8ncoFjHTU>xLzJuLXnZ(NutK+oce#%2gPGuPQ5$4DR(j~>-qG#pnd$Gof7Ddc zw)4yXs7IHroNLn|VTjH;T2g5&e{B9X-_)oJosY{S5-Xb$6gaG1De`B>{M@clH`3g6 zHDGncxu3!xTL$Eut*Ac-3RjomS}7FgW_riJDar+Mz^Y3y$sekI3DjT$#bA9KSWM*q zSNu!08;}C7MuaH?qD;!~)+T}=a8(lw8ic&5e~x8kbC@F+NC6iNz?2p#kh13T0T2jg z(Zj%XP>Sv9W~~6iIrShA%r=LCJGTAKV9eZe5Co?B!k|SA6ZA{sFGv9MDPTg+&Sk>C z*%hD^e0&8<@9tts!G~EO0G#220rmP!05IPN>Q_%|!D`6CAwZ4}Fv$g~!I=bD-?L}A z`QW?)NB~1xn2=z!-2RmTE~o~BI9UD0_?Q1@I>;aaj5c6Gpb3)z#~Z#X@cx=C&^d=$ zNv6xkveH!tTLL}rPr*0QjK>|4=~Kivm&Q%>liDGLh/dev/null` -COMMITHASH := `git rev-parse --short HEAD 2>/dev/null` -DATE := `date "+%FT%T%z"` +RESET_COLOR=\033[0m +GREEN_COLOR=\033[32;01m CONTAINER_NAME := 'splunk' -.PHONY: all -all: test - -init: - @echo "$(ATTN_COLOR)==> init $(NO_COLOR)" - .PHONY: docs docs: - @echo "$(ATTN_COLOR)==> docs $(NO_COLOR)" + @echo "$(GREEN_COLOR)==> docs $(RESET_COLOR)" @rm -rf ./docs/_build @tox -e docs @cd ./docs/_build/html && zip -r ../docs_html.zip . -x ".*" -x "__MACOSX" @@ -33,58 +13,37 @@ docs: .PHONY: test test: - @echo "$(ATTN_COLOR)==> test $(NO_COLOR)" - @tox -e py37,py39 - -.PHONY: test_specific -test_specific: - @echo "$(ATTN_COLOR)==> test_specific $(NO_COLOR)" - @sh ./scripts/test_specific.sh + @echo "$(GREEN_COLOR)==> test $(RESET_COLOR)" + @tox -e py -- ./tests -.PHONY: test_smoke -test_smoke: - @echo "$(ATTN_COLOR)==> test_smoke $(NO_COLOR)" - @tox -e py37,py39 -- -m smoke - -.PHONY: test_no_app -test_no_app: - @echo "$(ATTN_COLOR)==> test_no_app $(NO_COLOR)" - @tox -e py37,py39 -- -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" - -.PHONY: env -env: - @echo "$(ATTN_COLOR)==> env $(NO_COLOR)" - @echo "To make a .env:" - @echo " [SPLUNK_INSTANCE_JSON] | python scripts/build-env.py" +.PHONY: test-unit +test: + @echo "$(GREEN_COLOR)==> test $(RESET_COLOR)" + @tox -e py -- ./tests/unit -.PHONY: env_default -env_default: - @echo "$(ATTN_COLOR)==> env_default $(NO_COLOR)" - @python scripts/build-env.py +.PHONY: test-integration +test: + @echo "$(GREEN_COLOR)==> test $(RESET_COLOR)" + @tox -e py -- ./tests/integration ./tests/system .PHONY: up up: - @echo "$(ATTN_COLOR)==> up $(NO_COLOR)" + @echo "$(GREEN_COLOR)==> up $(RESET_COLOR)" @docker-compose up -d .PHONY: remove remove: - @echo "$(ATTN_COLOR)==> rm $(NO_COLOR)" + @echo "$(GREEN_COLOR)==> rm $(RESET_COLOR)" @docker-compose rm -f -s .PHONY: wait_up wait_up: - @echo "$(ATTN_COLOR)==> wait_up $(NO_COLOR)" + @echo "$(GREEN_COLOR)==> wait_up $(RESET_COLOR)" @for i in `seq 0 180`; do if docker exec -it $(CONTAINER_NAME) /sbin/checkstate.sh &> /dev/null; then break; fi; printf "\rWaiting for Splunk for %s seconds..." $$i; sleep 1; done .PHONY: down down: - @echo "$(ATTN_COLOR)==> down $(NO_COLOR)" + @echo "$(GREEN_COLOR)==> down $(RESET_COLOR)" @docker-compose stop .PHONY: start diff --git a/README.md b/README.md index 74325c3fe..8649ee050 100644 --- a/README.md +++ b/README.md @@ -1,159 +1,89 @@ -[![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) - -[Reference Docs](https://dev.splunk.com/enterprise/reference) - -# The Splunk Enterprise Software Development Kit for Python +# Splunk Enterprise SDK for Python -#### Version 2.1.1 +[![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) +![License](https://img.shields.io/badge/license-Apache%202.0-informational.svg) The Splunk Enterprise Software Development Kit (SDK) for Python contains library code designed to enable developers to build applications using the Splunk platform. -The Splunk platform is a search engine and analytic environment that uses a distributed map-reduce architecture to efficiently index, search, and process large time-varying data sets. - -The Splunk platform is popular with system administrators for aggregation and monitoring of IT machine data, security, compliance, and a wide variety of other scenarios that share a requirement to efficiently index, search, analyze, and generate real-time notifications from large volumes of time-series data. +Splunk is a search engine and analytic environment that uses a distributed map-reduce architecture to efficiently index, search, and process large time-varying data sets. -The Splunk developer platform enables developers to take advantage of the same technology used by the Splunk platform to build exciting new applications. - -## 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. +## Getting started ### Requirements -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 compatibility -* Splunk Enterprise 9.2 or 8.2 +Splunk Enterprise SDK for Python is tested only with Python 3.7, 3.9 and 3.13. Latest version is always recommended. - The Splunk Enterprise SDK for Python has been tested with Splunk Enterprise 9.2, 8.2 and 8.1 +#### Splunk Enterprise - 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). +This SDK is only tested with Splunk versions supported in the [Splunk Software Support Policy](https://www.splunk.com/en_us/legal/splunk-software-support-policy.html) -* Splunk Enterprise SDK for Python +[Go here](http://www.splunk.com/download) to get Splunk Enterprise. - 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). +For more information, see the Splunk Enterprise [Installation Manual](https://docs.splunk.com/Documentation/Splunk/latest/Installation). -### Install the SDK +### Installing the SDK -Use the following commands to install the Splunk Enterprise SDK for Python libraries. However, it's not necessary to install the libraries to run the unit tests from the SDK. +[uv](https://docs.astral.sh/uv/) is our tool of choice for development. Usually that means creating a project with `uv init` and installing the SDK with `uv add splunk-sdk`. When in doubt, consult `uv` docs. -Use `pip`: +If you prefer not using `uv`, the standard Python package installation method still works: - [sudo] pip install splunk-sdk +```sh +python -m venv .venv +source .venv/bin/activate +python -m pip install splunk-sdk +``` -Install the Python egg: +#### Create an .env file (optional) - [sudo] pip install --egg splunk-sdk +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 authentication. For convenience during development, you can store these arguments as key-value pairs in a `.env` file. -Install the sources you cloned from GitHub: +A file called `.env.template` exists in the root of this repository. Duplicate it as `.env`, then adjust it to your match your environment. - [sudo] python setup.py install +> **WARNING:** The `.env` file isn't part of the Splunk platform. This is **not** the place for production credentials! -## Testing Quickstart +### SDK usage examples -You'll need `docker` and `docker-compose` to get up and running using this method. +The easiest and most effective way of learning how to use this library should be reading through the apps in our test suite, as well as the [splunk-app-examples](https://github.com/splunk/splunk-app-examples) repository. They show how to programmatically interact with the Splunk platform in a variety of scenarios - from basic metadata retrieval, one-shot searching and managing saved searches to building complete applications with modular inputs and custom search commands. -``` -make up SPLUNK_VERSION=9.2 -make wait_up -make test -make down -``` +For details, see the [examples using the Splunk Enterprise SDK for Python](https://dev.splunk.com/enterprise/docs/devtools/python/sdk-python/examplespython) on the Splunk Developer Portal, as well as the [Splunk Enterprise SDK for Python Reference](http://docs.splunk.com/Documentation/PythonSDK) -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: +#### Connecting to a Splunk Enterprise instance - export PYTHONPATH=~/splunk-sdk-python +##### Using a username/password combo -### 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) -``` -#### Using bearer token -```python -import splunklib.client as client -service = client.connect(host=, splunkToken=, autologin=True) +service = client.connect(host=, username=, password=, autologin=True) ``` -#### Using session key +##### Using a bearer token + ```python import splunklib.client as client -service = client.connect(host=, token=, autologin=True) -``` -### -#### Update a .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. - -here is an example of .env file: - - # Splunk Enterprise host (default: localhost) - host=localhost - # Splunk Enterprise admin port (default: 8089) - port=8089 - # Splunk Enterprise username - username=admin - # Splunk Enterprise password - password=changed! - # Access scheme (default: https) - scheme=https - # Your version of Splunk Enterprise - version=9.2 - # Bearer token for authentication - #splunkToken= - # Session key for authentication - #token= - -#### SDK examples - -Examples for the Splunk Enterprise SDK for Python are located in the [splunk-app-examples](https://github.com/splunk/splunk-app-examples) repository. For details, see the [Examples using the Splunk Enterprise SDK for Python](https://dev.splunk.com/enterprise/docs/devtools/python/sdk-python/examplespython) on the Splunk Developer Portal. - -#### Run the unit tests - -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 +service = client.connect(host=, splunkToken=, autologin=True) +``` -You can also run individual test files, which are located in **/splunk-sdk-python/tests**. To run a specific test, enter: +##### Using a session key - make test_specific +```python +import splunklib.client as client -The test suite uses Python's standard library, the built-in `unittest` library, `pytest`, and `tox`. +service = client.connect(host=, token=, autologin=True) +``` ->**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. +### Customization -## Repository +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. +If you're having issues with field retention, make sure to use `add_field(record, fieldname, value)` method from SearchCommand to add a new field and value to the record. -| 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 -Do ```python class CustomStreamingCommand(StreamingCommand): def stream(self, records): @@ -163,7 +93,8 @@ class CustomStreamingCommand(StreamingCommand): yield record ``` -Don't +#### Don't + ```python class CustomStreamingCommand(StreamingCommand): def stream(self, records): @@ -172,11 +103,16 @@ class CustomStreamingCommand(StreamingCommand): 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 comma-separated key=value pairs (mentioned in below example). + + Do + ```python @Configuration() class GeneratorTest(GeneratingCommand): @@ -186,6 +122,7 @@ class GeneratorTest(GeneratingCommand): ``` Don't + ```python @Configuration() class GeneratorTest(GeneratingCommand): @@ -194,58 +131,89 @@ class GeneratorTest(GeneratingCommand): 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. -```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"] -``` +### Access metadata of Modular Inputs app example + +- In `stream_events()` one 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, an InputDefinition`object data is used + server_host = inputs.metadata["server_host"] + server_uri = inputs.metadata["server_uri"] + 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. + +##### Getting Splunk instance metadata + +```python +def get_metadata(self): + # [...] other code + + # Access service object that can be used to connect Splunk Service + service = self.service + # Getting Splunk Service Info + info = service.info +``` + +#### 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 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 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 ``` - +### Running the test suite -#### 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 +This repo contains a collection of unit and integration tests. + +#### Unit tests + +To run both unit and integration tests: + +```sh +make test +``` + +#### Integration tests + +> NOTE: Before running the integration tests, 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 suite against a production instance of Splunk! It will run just fine with the free Splunk license. + +##### Prerequisites + +- `docker`/`podman` +- `tox` + +```sh +SPLUNK_VERSION=latest && make start ``` +### Optional: Set up logging for splunklib -### 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 +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. + +> Optionally, you can also provide a custom log and date format string. When in doubt, always refer to the source code. ```python import logging @@ -261,52 +229,49 @@ The [CHANGELOG](CHANGELOG.md) contains a description of changes for each version ### Branches -The **master** branch represents a stable and released version of the SDK. -To learn about our branching model, see [Branching Model](https://github.com/splunk/splunk-sdk-python/wiki/Branching-Model) on GitHub. +The `master` branch represents a stable and released version of the SDK. +`develop` is where development between releases is happening. + +To learn more about our branching model, see [Branching Model](https://github.com/splunk/splunk-sdk-python/wiki/Branching-Model) on GitHub. ## 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) +- [E-mail](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) ### 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). +We welcome all 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). ### 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. - - 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). +- 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. - We would also like to know why you modified the core library, so please send feedback to _devinfo@splunk.com_. +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). -* File any issues on [GitHub](https://github.com/splunk/splunk-sdk-python/issues). +- 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). -### Contact Us + We would also like to know why you modified the core library, so please send feedback to . -You can reach the Splunk Developer Platform team at _devinfo@splunk.com_. +- File any issues on [GitHub](https://github.com/splunk/splunk-sdk-python/issues). -## License +### Contact us -The Splunk Enterprise Software Development Kit for Python is licensed under the Apache License 2.0. See [LICENSE](LICENSE) for details. +You can reach the Splunk Developer Platform team at . diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..80045f5e0 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,89 @@ +[project.urls] +homepage = "https://pypi.org/project/splunk-sdk" +documentation = "https://docs.splunk.com/Documentation/PythonSDK/2.1.1" +issues = "https://github.com/splunk/splunk-sdk-python/issues" +changelog = "https://github.com/splunk/splunk-sdk-python/blob/master/CHANGELOG.md" +source = "https://github.com/splunk/splunk-sdk-python.git" +download = "https://github.com/splunk/splunk-sdk-python/releases/latest" + +[project] +name = "splunk-sdk" +dynamic = ["version"] +description = "Splunk Software Development Kit for Python" +readme = "README.md" +requires-python = ">=3.7" +license = { text = "Apache-2.0" } +authors = [{ name = "Splunk, Inc.", email = "devinfo@splunk.com" }] +classifiers = [ + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.13", + "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"] +lint = ["mypy", "ruff"] +build = ["build", "twine"] +dev = [ + { include-group = "test" }, + { include-group = "lint" }, + { include-group = "build" }, +] + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +packages = ["splunklib", "splunklib.modularinput", "splunklib.searchcommands"] + +[tool.setuptools.dynamic] +version = { attr = "splunklib.__version__" } + +# https://docs.astral.sh/ruff/configuration/ +[tool.ruff.lint] +fixable = ["ALL"] +select = [ + "F", # pyflakes + "E", # pycodestyle + "I", # isort + "ANN", # flake8 type annotations + "RUF", # ruff-specific rules +] + +# ! TODO: Migrate to new config paradigm +# https://tox.wiki/en/latest/config.html#pyproject-toml-ini +[tool.tox] +legacy_tox_ini = """ +[tox] +envlist = docs,py{37,39,313} +skipsdist = {env:TOXBUILD:false} + +[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 --cov --cov-config=.coveragerc} {posargs} + +[testenv:docs] +description = Build the static HTML docs +basepython = python3.9 +deps = sphinx >= 1.7.5, < 2 + jinja2 < 3.1.0 +commands = make -C docs/ html +""" diff --git a/scripts/build-env.py b/scripts/build-env.py deleted file mode 100644 index 7a2703833..000000000 --- a/scripts/build-env.py +++ /dev/null @@ -1,119 +0,0 @@ -# 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. - -#!/usr/bin/env python - -import sys -import json -import urllib.parse -import os -from pathlib import Path -from string import Template - -DEFAULT_CONFIG = { - "host": "localhost", - "port": "8089", - "username": "admin", - "password": "changed!", - "scheme": "https", - "version": "8.0", -} - -DEFAULT_ENV_PATH = os.path.join( - os.path.dirname(os.path.realpath(__file__)), "..", ".env" -) - -ENV_TEMPLATE_PATH = os.path.join( - os.path.dirname(os.path.realpath(__file__)), "templates/env.template" -) - - -# { -# "server_roles": { -# "standalone": [ -# { -# "host": "10.224.106.158", -# "ports": { -# "8089/tcp": "10.224.106.158:55759", -# }, -# "splunk": { -# "user_roles": { -# "admin": { -# "password": "Chang3d!", -# "username": "admin" -# } -# }, -# "version": "8.1.0", -# "web_url": "http://10.224.106.158:55761" -# } -# } -# ] -# } -# } -def build_config(json_string): - try: - spec_config = json.loads(json_string) - - server_config = spec_config["server_roles"]["standalone"][0] - splunk_config = server_config["splunk"] - - host, port = parse_hostport(server_config["ports"]["8089/tcp"]) - - return { - "host": host, - "port": port, - "username": splunk_config["user_roles"]["admin"]["username"], - "password": splunk_config["user_roles"]["admin"]["password"], - "version": splunk_config["version"], - } - except Exception as e: - raise ValueError("Invalid configuration JSON string") from e - - -# Source: https://stackoverflow.com/a/53172593 -def parse_hostport(host_port): - # urlparse() and urlsplit() insists on absolute URLs starting with "//" - result = urllib.parse.urlsplit("//" + host_port) - return result.hostname, result.port - - -def run(variable, env_path=None): - # read JSON from input - # parse the JSON - input_config = build_config(variable) if variable else DEFAULT_CONFIG - - config = {**DEFAULT_CONFIG, **input_config} - - # build a env file - with open(ENV_TEMPLATE_PATH, "r") as f: - template = Template(f.read()) - - env_string = template.substitute(config) - env_path = DEFAULT_ENV_PATH if env_path is None else env_path - # if no env, dry-run - if not env_path: - print(env_string) - return - - # write the .env file - with open(env_path, "w") as f: - f.write(env_string) - - -if sys.stdin.isatty(): - DATA = None -else: - DATA = sys.stdin.read() - -run(DATA, sys.argv[1] if len(sys.argv) > 1 else None) diff --git a/scripts/templates/env.template b/scripts/templates/env.template deleted file mode 100644 index ac9ebe5c7..000000000 --- a/scripts/templates/env.template +++ /dev/null @@ -1,16 +0,0 @@ -# Splunk host (default: localhost) -host=$host -# Splunk admin port (default: 8089) -port=$port -# Splunk username -username=$username -# Splunk password -password=$password -# Access scheme (default: https) -scheme=$scheme -# Your version of Splunk (default: 6.2) -version=$version -# Bearer token for authentication -#splunkToken= -# Session key for authentication -#token= \ No newline at end of file diff --git a/scripts/test_specific.sh b/scripts/test_specific.sh deleted file mode 100644 index 9f751530e..000000000 --- a/scripts/test_specific.sh +++ /dev/null @@ -1,4 +0,0 @@ -echo "To run a specific test:" -echo " tox -e py37,py39 [test_file_path]::[TestClassName]::[test_method]" -echo "For Example, To run 'test_autologin' testcase from 'test_service.py' file run" -echo " tox -e py37 -- tests/test_service.py::ServiceTestCase::test_autologin" 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/tests/README.md b/tests/README.md deleted file mode 100644 index da02228c7..000000000 --- a/tests/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# 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. - -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 -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: - - python test_role.py - -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 -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. - -To install it, use easy_install: - - easy_install coverage - -Or use pip: - - pip install coverage - -To generate a report of the code coverage of the unit test suite, open a command -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 -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 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..033055fe4 --- /dev/null +++ b/uv.lock @@ -0,0 +1,1956 @@ +version = 1 +revision = 3 +requires-python = ">=3.7" +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", + "python_full_version < '3.8'", +] + +[[package]] +name = "backports-tarfile" +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/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34" }, +] + +[[package]] +name = "bleach" +version = "6.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "six", marker = "python_full_version < '3.8'" }, + { name = "webencodings", marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7e/e6/d5f220ca638f6a25557a611860482cb6e54b2d97f0332966b1b005742e1f/bleach-6.0.0.tar.gz", hash = "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ac/e2/dfcab68c9b2e7800c8f06b85c76e5f978d05b195a958daa9b1dda54a1db6/bleach-6.0.0-py3-none-any.whl", hash = "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4" }, +] + +[[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.10'", + "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.2.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9d/61/e4fad8155db4a04bfb4734c7c8ff0882f078f24294d42798b3568eb63bff/cachetools-6.2.0.tar.gz", hash = "sha256:38b328c0889450f05f5e120f56ab68c8abaf424e1275522b138ffc93253f7e32" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6c/56/3124f61d37a7a4e7cc96afc5492c78ba0cb551151e530b54669ddd1436ef/cachetools-6.2.0-py3-none-any.whl", hash = "sha256:1c76a8960c0041fcc21097e357f882197c79da0dbff766e7317890a65d7d8ba6" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +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/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5" }, +] + +[[package]] +name = "cffi" +version = "1.15.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "pycparser", version = "2.21", 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/2b/a8/050ab4f0c3d4c1b8aaa805f70e26e84d0e27004907c5b8ecc1d31815f92a/cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ed/a3/c5f01988ddb70a187c3e6112152e01696188c9f8a4fa4c68aa330adbb179/cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/41/19da352d341963d29a33bdb28433ba94c05672fb16155f794fad3fd907b0/cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/af/da/9441d56d7dd19d07dcc40a2a5031a1f51c82a27cee3705edf53dadcac398/cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/aa/02/ab15b3aa572759df752491d5fa0f74128cd14e002e8e3257c1ab1587810b/cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/89/c34caf63029fb7628ec2ebd5c88ae0c9bd17db98c812e4065a4d020ca41f/cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/32/bd/d0809593f7976828f06a492716fbcbbfb62798bbf60ea1f65200b8d49901/cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0e/65/0d7b5dad821ced4dcd43f96a362905a68ce71e6b5f5cfd2fada867840582/cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/10/72/617ee266192223a38b67149c830bd9376b69cf3551e1477abc72ff23ef8e/cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/91/bc/b7723c2fe7a22eee71d7edf2102cd43423d5f95ff3932ebaa2f82c7ec8d0/cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5d/4e/4e0bb5579b01fdbfd4388bd1eb9394a989e1336203a4b7f700d887b233c1/cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/37/5a/c37631a86be838bdd84cc0259130942bf7e6e32f70f4cab95f479847fb91/cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/71/d7/0fe0d91b0bbf610fb7254bb164fa8931596e660d62e90fb6289b7ee27b09/cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d3/56/3e94aa719ae96eeda8b68b3ec6e347e0a23168c6841dc276ccdcdadc9f32/cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/0b/3b09a755ddb977c167e6d209a7536f6ade43bb0654bad42e08df1406b8e4/cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/1a/e1ee5bed11d8b6540c05a8e3c32448832d775364d4461dd6497374533401/cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d3/e1/e55ca2e0dd446caa2cc8f73c2b98879c04a1f4064ac529e1836683ca58b8/cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2e/7a/68c35c151e5b7a12650ecc12fdfb85211aa1da43e9924598451c4a0a3839/cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/93/d0/2e2b27ea2f69b0ec9e481647822f8f77f5fc23faca2dd00d1ff009940eb7/cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/c6/df826563f55f7e9dd9a1d3617866282afa969fe0d57decffa1911f416ed8/cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c1/25/16a082701378170559bb1d0e9ef2d293cece8dc62913d79351beb34c5ddf/cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/df/02/aef53d4aa43154b829e9707c8c60bab413cd21819c4a36b0d7aaa83e2a61/cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/79/4b/33494eb0adbcd884656c48f6db0c98ad8a5c678fb8fb5ed41ab546b04d8c/cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/8b/06f30caa03b5b3ac006de4f93478dbd0239e2a16566d81a106c322dc4f79/cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/85/1f/a3c533f8d377da5ca7edb4f580cc3edc1edbebc45fac8bb3ae60f1176629/cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/77/b7/d3618d612be01e184033eab90006f8ca5b5edafd17bf247439ea4e167d8a/cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a9/ba/e082df21ebaa9cb29f2c4e1d7e49a29b90fcd667d43632c6674a16d65382/cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/af/cb/53b7bba75a18372d57113ba934b27d0734206c283c1dfcc172347fbd9f76/cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2d/86/3ca57cddfa0419f6a95d1c8478f8f622ba597e3581fd501bbb915b20eb75/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/26/7b3a73ab7d82a64664c7c4ea470e4ec4a3c73bb4f02575c543a41e272de5/cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/ff/ab939e2c7b3f40d851c0f7192c876f1910f3442080c9c846532993ec3cef/cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3" }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "pycparser", version = "2.22", 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/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/de/cc/4635c320081c78d6ffc2cab0a76025b691a91204f4aa317d568ff9280a2d/cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b6/7b/3b2b250f3aab91abe5f8a51ada1b717935fdaec53f790ad4100fe2ec64d1/cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d3/48/1b9283ebbf0ec065148d8de05d647a986c5f22586b18120020452fff8f5d/cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/40/87/3b8452525437b40f39ca7ff70276679772ee7e8b394934ff60e63b7b090c/cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/fb/4da72871d177d63649ac449aec2e8a29efe0274035880c7af59101ca2232/cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/5b/f1523dd545f92f7df468e5f653ffa4df30ac222f3c884e51e139878f1cb5/cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/93/7e547ab4105969cc8c93b38a667b82a835dd2cc78f3a7dad6130cfd41e1d/cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/56/c4/a308f2c332006206bb511de219efeff090e9d63529ba0a77aae72e82248b/cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/5b/b63681518265f2f4060d2b60755c1c77ec89e5e045fc3773b72735ddaad5/cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/19/b51af9f4a4faa4a8ac5a0e5d5c2522dcd9703d07fac69da34a36c4d960d3/cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ed/65/25a8dc32c53bf5b7b6c2686b42ae2ad58743f7ff644844af7cdb29b49361/cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/42/7a/9d086fab7c66bd7c4d0f27c57a1b6b068ced810afc498cc8c49e0088661c/cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/63/1785ced118ce92a993b0ec9e0d0ac8dc3e5dbfbcaa81135be56c69cabbb6/cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/74/06/90b8a44abf3556599cdec107f7290277ae8901a58f75e6fe8f970cd72418/cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bd/62/a1f468e5708a70b1d86ead5bab5520861d9c7eacce4a885ded9faa7729c3/cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/95/b34462f3ccb09c2594aa782d90a90b045de4ff1f70148ee79c69d37a0a5a/cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fc/fc/a1e4bebd8d680febd29cf6c8a40067182b64f00c7d105f8f26b5bc54317b/cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e6/c3/21cab7a6154b6a5ea330ae80de386e7665254835b9e98ecc1340b3a7de9a/cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e" }, +] + +[[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 = "charset-normalizer" +version = "3.4.3" +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/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d6/98/f3b8013223728a99b908c9344da3aa04ee6e3fa235f19409033eda92fb78/charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/21/40/5188be1e3118c82dcb7c2a5ba101b783822cfb413a0268ed3be0468532de/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/37/60/5d0d74bc1e1380f0b72c327948d9c2aca14b46a9efd87604e724260f384c/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/85/9a/d891f63722d9158688de58d050c59dc3da560ea7f04f4c53e769de5140f5/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/65/1a/7425c952944a6521a9cfa7e675343f83fd82085b8af2b1373a2409c683dc/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f0/c9/a2c9c2a355a8594ce2446085e2ec97fd44d323c684ff32042e2a6b718e1d/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3b/38/20a1f44e4851aa1c9105d6e7110c9d020e093dfa5836d712a5f074a12bf7/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a4/fa/384d2c0f57edad03d7bec3ebefb462090d8905b4ff5a2d2525f3bb711fac/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/33/9e/eca49d35867ca2db336b6ca27617deed4653b97ebf45dfc21311ce473c37/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2a/91/26c3036e62dfe8de8061182d33be5025e2424002125c9500faff74a6735e/charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e2/c6/f05db471f81af1fa01839d44ae2a8bfeec8d2a8b4590f16c4e7393afd323/charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7f/b5/991245018615474a60965a7c9cd2b4efbaabd16d582a5547c47ee1c7730b/charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/2a/ae245c41c06299ec18262825c1569c5d3298fc920e4ddf56ab011b417efd/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/a4/b3b6c76e7a635748c4421d2b92c7b8f90a432f98bda5082049af37ffc8e3/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e2/e6/63bb0e10f90a8243c5def74b5b105b3bbbfb3e7bb753915fe333fb0c11ea/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/87/df/b7737ff046c974b183ea9aa111b74185ac8c3a326c6262d413bd5a1b8c69/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/61/f1/190d9977e0084d3f1dc169acd060d479bbbc71b90bf3e7bf7b9927dec3eb/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4c/92/27dbe365d34c68cfe0ca76f1edd70e8705d82b378cb54ebbaeabc2e3029d/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/99/04/baae2a1ea1893a01635d475b9261c889a18fd48393634b6270827869fa34/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2f/36/77da9c6a328c54d17b960c89eccacfab8271fdaaa228305330915b88afa9/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/d4/9eb4ff2c167edbbf08cdd28e19078bf195762e9bd63371689cab5ecd3d0d/charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f4/9c/996a4a028222e7761a96634d1820de8a744ff4327a00ada9c8942033089b/charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/82/63a45bfc36f73efe46731a3a71cb84e2112f7e0b049507025ce477f0f052/charset_normalizer-3.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/52/8b0c6c3e53f7e546a5e49b9edb876f379725914e1130297f3b423c7b71c5/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/59/c0/a74f3bd167d311365e7973990243f32c35e7a94e45103125275b9e6c479f/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1a/79/ae516e678d6e32df2e7e740a7be51dc80b700e2697cb70054a0f1ac2c955/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/bd/ef9c88464b126fa176f4ef4a317ad9b6f4d30b2cffbc43386062367c3e2c/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7a/03/cbb6fac9d3e57f7e07ce062712ee80d80a5ab46614684078461917426279/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/d1/f9d141c893ef5d4243bc75c130e95af8fd4bc355beff06e9b1e941daad6e/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c5/35/9c99739250742375167bc1b1319cd1cec2bf67438a70d84b2e1ec4c9daa3/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/50/10/c117806094d2c956ba88958dab680574019abc0c02bcf57b32287afca544/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/61/c5/dc3ba772489c453621ffc27e8978a98fe7e41a93e787e5e5bde797f1dddb/charset_normalizer-3.4.3-cp38-cp38-win32.whl", hash = "sha256:ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/05/35/bb59b1cd012d7196fc81c2f5879113971efc226a63812c9cf7f89fe97c40/charset_normalizer-3.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/ca/9a0983dd5c8e9733565cf3db4df2b0a2e9a82659fd8aa2a868ac6e4a991f/charset_normalizer-3.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/39/c6/99271dc37243a4f925b09090493fb96c9333d7992c6187f5cfe5312008d2/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e4/69/132eab043356bba06eb333cc2cc60c6340857d0a2e4ca6dc2b51312886b3/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/9a/914d294daa4809c57667b77470533e65def9c0be1ef8b4c1183a99170e9d/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/a8/6f5bcf1bcf63cb45625f7c5cadca026121ff8a6c8a3256d8d8cd59302663/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/72/d3d0e9592f4e504f9dea08b8db270821c909558c353dc3b457ed2509f2fb/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/20/30/5f64fe3981677fe63fa987b80e6c01042eb5ff653ff7cec1b7bd9268e54e/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/ef/dd08b2cac9284fd59e70f7d97382c33a3d0a926e45b15fc21b3308324ffd/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/45/8c/dcef87cfc2b3f002a6478f38906f9040302c68aebe21468090e39cde1445/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/63/86/9cbd533bd37883d467fcd1bd491b3547a3532d0fbb46de2b99feeebf185e/charset_normalizer-3.4.3-cp39-cp39-win32.whl", hash = "sha256:16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/d6/7e805c8e5c46ff9729c49950acc4ee0aeb55efb8b3a56687658ad10c3216/charset_normalizer-3.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a" }, +] + +[[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 = "cryptography" +version = "45.0.7" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "cffi", version = "1.15.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8' and platform_python_implementation != 'PyPy'" }, + { name = "cffi", version = "1.17.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8' and platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/59/aa/e947693ab08674a2663ed2534cd8d345cf17bf6a1facf99273e8ec8986dc/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a20e442e917889d1a6b3c570c9e3fa2fdc398c20868abcea268ea33c024c4083" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/06/09b6f6a2fc43474a32b8fe259038eef1500ee3d3c141599b57ac6c57612c/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:258e0dff86d1d891169b5af222d362468a9570e2532923088658aa866eb11130" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/f2/c166af87e95ce6ae6d38471a7e039d3a0549c2d55d74e059680162052824/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d97cf502abe2ab9eff8bd5e4aca274da8d06dd3ef08b759a8d6143f4ad65d4b4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/16/b9/e96e0b6cb86eae27ea51fa8a3151535a18e66fe7c451fa90f7f89c85f541/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:c987dad82e8c65ebc985f5dae5e74a3beda9d0a2a4daf8a1115f3772b59e5141" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/16/ce/5f6ff59ea9c7779dba51b84871c19962529bdcc12e1a6ea172664916c550/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:06ce84dc14df0bf6ea84666f958e6080cdb6fe1231be2a51f3fc1267d9f3fb34" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/13/b3cfbd257ac96da4b88b46372e662009b7a16833bfc5da33bb97dd5631ae/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d0c5c6bac22b177bf8da7435d9d27a6834ee130309749d162b26c3105c0795a9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1c/c5/8c59d6b7c7b439ba4fc8d0cab868027fd095f215031bc123c3a070962912/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:2f641b64acc00811da98df63df7d59fd4706c0df449da71cb7ac39a0732b40ae" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/55/32/05385c86d6ca9ab0b4d5bb442d2e3d85e727939a11f3e163fc776ce5eb40/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:f5414a788ecc6ee6bc58560e85ca624258a55ca434884445440a810796ea0e0b" }, +] + +[[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 = "docutils" +version = "0.20.1" +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/1f/53/a5da4f2c5739cf66290fac1431ee52aff6851c7c8ffd8264f13affd7bcdd/docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/87/f238c0670b94533ac0353a4e2a1a771a0cc73277b88bff23d3ae35a256c1/docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6" }, +] + +[[package]] +name = "docutils" +version = "0.22" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e9/86/5b41c32ecedcfdb4c77b28b6cb14234f252075f8cdb254531727a35547dd/docutils-0.22.tar.gz", hash = "sha256:ba9d57750e92331ebe7c08a1bbf7a7f8143b86c476acd51528b042216a6aad0f" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/57/8db39bc5f98f042e0153b1de9fb88e1a409a33cda4dd7f723c2ed71e01f6/docutils-0.22-py3-none-any.whl", hash = "sha256:4ed966a0e96a0477d852f7af31bdcb3adc049fbb35ccba358c2ea8a03287615e" }, +] + +[[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.19.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d" }, +] + +[[package]] +name = "id" +version = "1.5.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "requests", version = "2.32.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "requests", version = "2.32.5", 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/22/11/102da08f88412d875fa2f1a9a469ff7ad4c874b0ca6fed0048fe385bdb3d/id-1.5.0.tar.gz", hash = "sha256:292cb8a49eacbbdbce97244f47a97b4c62540169c976552e497fd57df0734c1d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/cb/18326d2d89ad3b0dd143da971e77afd1e6ca6674f1b1c3df4b6bec6279fc/id-1.5.0-py3-none-any.whl", hash = "sha256:f1434e1cef91f2cbb8a4ec64663d5a23b9ed43ef44c4c957d02583d61714c658" }, +] + +[[package]] +name = "idna" +version = "3.10" +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/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" }, +] + +[[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.10'", + "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 = "importlib-resources" +version = "5.12.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.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/4e/a2/3cab1de83f95dd15297c15bdc04d50902391d707247cada1f021bbfe2149/importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/71/c13ea695a4393639830bf96baea956538ba7a9d06fcce7cef10bfff20f72/importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a" }, +] + +[[package]] +name = "importlib-resources" +version = "6.4.5" +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/98/be/f3e8c6081b684f176b761e6a2fef02a0be939740ed6f54109a2951d806f3/importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/6a/4604f9ae2fa62ef47b9de2fa5ad599589d28c9fd1d335f32759813dfa91e/importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.2.3" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "more-itertools", version = "9.1.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/bf/02/a956c9bfd2dfe60b30c065ed8e28df7fcf72b292b861dca97e951c145ef6/jaraco.classes-3.2.3.tar.gz", hash = "sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/28/220d3ae0829171c11e50dded4355d17824d60895285631d7eb9dee0ab5e5/jaraco.classes-3.2.3-py3-none-any.whl", hash = "sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "more-itertools", version = "10.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "more-itertools", version = "10.7.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/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "backports-tarfile", marker = "python_full_version >= '3.8' and python_full_version < '3.12'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "more-itertools", version = "10.5.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/ab/23/9894b3df5d0a6eb44611c36aec777823fc2e07740dabbd0b810e19594013/jaraco_functools-4.1.0.tar.gz", hash = "sha256:70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/4f/24b319316142c44283d7540e76c7b5a6dbd5db623abd86bb7b3491c21018/jaraco.functools-4.1.0-py3-none-any.whl", hash = "sha256:ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.3.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "more-itertools", version = "10.7.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/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8" }, +] + +[[package]] +name = "jeepney" +version = "0.9.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/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683" }, +] + +[[package]] +name = "keyring" +version = "24.1.1" +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'" }, + { name = "importlib-resources", version = "5.12.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "jaraco-classes", version = "3.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "jeepney", marker = "python_full_version < '3.8' and sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "python_full_version < '3.8' and sys_platform == 'win32'" }, + { name = "secretstorage", marker = "python_full_version < '3.8' and sys_platform == 'linux'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/25/17/9745959c3482eed095db21a459572808c2f735bcbf55adb93afcf9c605c7/keyring-24.1.1.tar.gz", hash = "sha256:3d44a48fa9a254f6c72879d7c88604831ebdaac6ecb0b214308b02953502c510" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c5/9e/9517ad9978abfd2c579c0f7bd6ff3c549b5e0ea8a0e7ad345879c83a5b87/keyring-24.1.1-py3-none-any.whl", hash = "sha256:bc402c5e501053098bcbd149c4ddbf8e36c6809e572c2d098d4961e88d4c270d" }, +] + +[[package]] +name = "keyring" +version = "25.5.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 = "8.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "importlib-resources", version = "6.4.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "jaraco-classes", version = "3.4.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "jaraco-context", marker = "python_full_version == '3.8.*'" }, + { name = "jaraco-functools", version = "4.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "jeepney", marker = "python_full_version == '3.8.*' and sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "python_full_version == '3.8.*' and sys_platform == 'win32'" }, + { name = "secretstorage", marker = "python_full_version == '3.8.*' and sys_platform == 'linux'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/24/64447b13df6a0e2797b586dad715766d756c932ce8ace7f67bd384d76ae0/keyring-25.5.0.tar.gz", hash = "sha256:4c753b3ec91717fe713c4edd522d625889d8973a349b0e582622f49766de58e6" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/32/c9/353c156fa2f057e669106e5d6bcdecf85ef8d3536ce68ca96f18dc7b6d6f/keyring-25.5.0-py3-none-any.whl", hash = "sha256:e67f8ac32b04be4714b42fe84ce7dad9c40985b9ca827c592cc303e7c26d9741" }, +] + +[[package]] +name = "keyring" +version = "25.6.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { 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.12'" }, + { name = "jaraco-classes", version = "3.4.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "jaraco-context", marker = "python_full_version >= '3.9'" }, + { name = "jaraco-functools", version = "4.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "jeepney", marker = "python_full_version >= '3.9' and sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, + { name = "secretstorage", marker = "python_full_version >= '3.9' and sys_platform == 'linux'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd" }, +] + +[[package]] +name = "markdown-it-py" +version = "2.2.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "mdurl", 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/e4/c0/59bd6d0571986f72899288a95d9d6178d0eebd70b6650f1bb3f0da90f8f7/markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bf/25/2d88e8feee8e055d015343f9b86e370a1ccbec546f2865c98397aaef24af/markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30" }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.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 = "mdurl", marker = "python_full_version >= '3.8' and python_full_version < '3.10'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "mdurl", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147" }, +] + +[[package]] +name = "mdurl" +version = "0.1.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/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8" }, +] + +[[package]] +name = "more-itertools" +version = "9.1.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/2e/d0/bea165535891bd1dcb5152263603e902c0ec1f4c9a2e152cc4adff6b3a38/more-itertools-9.1.0.tar.gz", hash = "sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/85/01/e2678ee4e0d7eed4fd6be9e5b043fff9d22d245d06c8c91def8ced664189/more_itertools-9.1.0-py3-none-any.whl", hash = "sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3" }, +] + +[[package]] +name = "more-itertools" +version = "10.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/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz", hash = "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl", hash = "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef" }, +] + +[[package]] +name = "more-itertools" +version = "10.7.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/a0/834b0cebabbfc7e311f30b46c8188790a37f89fc8d756660346fe5abfd09/more_itertools-10.7.0.tar.gz", hash = "sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/9f/7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594/more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e" }, +] + +[[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.10'", + "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.15.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/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.10'", + "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 = "nh3" +version = "0.3.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/c3/a4/96cff0977357f60f06ec4368c4c7a7a26cccfe7c9fcd54f5378bf0428fd3/nh3-0.3.0.tar.gz", hash = "sha256:d8ba24cb31525492ea71b6aac11a4adac91d828aadeff7c4586541bf5dc34d2f" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/11/340b7a551916a4b2b68c54799d710f86cf3838a4abaad8e74d35360343bb/nh3-0.3.0-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:a537ece1bf513e5a88d8cff8a872e12fe8d0f42ef71dd15a5e7520fecd191bbb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/7f/7c6b8358cf1222921747844ab0eef81129e9970b952fcb814df417159fb9/nh3-0.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c915060a2c8131bef6a29f78debc29ba40859b6dbe2362ef9e5fd44f11487c2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/63/da/c5fd472b700ba37d2df630a9e0d8cc156033551ceb8b4c49cc8a5f606b68/nh3-0.3.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba0caa8aa184196daa6e574d997a33867d6d10234018012d35f86d46024a2a95" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4c/3c/cba7b26ccc0ef150c81646478aa32f9c9535234f54845603c838a1dc955c/nh3-0.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:80fe20171c6da69c7978ecba33b638e951b85fb92059259edd285ff108b82a6d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f3/ba/59e204d90727c25b253856e456ea61265ca810cda8ee802c35f3fadaab00/nh3-0.3.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e90883f9f85288f423c77b3f5a6f4486375636f25f793165112679a7b6363b35" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/10/71/2fb1834c10fab6d9291d62c95192ea2f4c7518bd32ad6c46aab5d095cb87/nh3-0.3.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:0649464ac8eee018644aacbc103874ccbfac80e3035643c3acaab4287e36e7f5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/33/c1/8f8ccc2492a000b6156dce68a43253fcff8b4ce70ab4216d08f90a2ac998/nh3-0.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1adeb1062a1c2974bc75b8d1ecb014c5fd4daf2df646bbe2831f7c23659793f9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2f/d6/f1c6e091cbe8700401c736c2bc3980c46dca770a2cf6a3b48a175114058e/nh3-0.3.0-cp313-cp313t-win32.whl", hash = "sha256:7275fdffaab10cc5801bf026e3c089d8de40a997afc9e41b981f7ac48c5aa7d5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/23/1e/80a8c517655dd40bb13363fc4d9e66b2f13245763faab1a20f1df67165a7/nh3-0.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:423201bbdf3164a9e09aa01e540adbb94c9962cc177d5b1cbb385f5e1e79216e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/e0/af86d2a974c87a4ba7f19bc3b44a8eaa3da480de264138fec82fe17b340b/nh3-0.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:16f8670201f7e8e0e05ed1a590eb84bfa51b01a69dd5caf1d3ea57733de6a52f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/e0/cf1543e798ba86d838952e8be4cb8d18e22999be2a24b112a671f1c04fd6/nh3-0.3.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:ec6cfdd2e0399cb79ba4dcffb2332b94d9696c52272ff9d48a630c5dca5e325a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5c/86/a96b1453c107b815f9ab8fac5412407c33cc5c7580a4daf57aabeb41b774/nh3-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5e7185599f89b0e391e2f29cc12dc2e206167380cea49b33beda4891be2fe1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/33/11e7273b663839626f714cb68f6eb49899da5a0d9b6bc47b41fe870259c2/nh3-0.3.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:389d93d59b8214d51c400fb5b07866c2a4f79e4e14b071ad66c92184fec3a392" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/1b/b15bd1ce201a1a610aeb44afd478d55ac018b4475920a3118ffd806e2483/nh3-0.3.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e9e6a7e4d38f7e8dda9edd1433af5170c597336c1a74b4693c5cb75ab2b30f2a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8f/14/079670fb2e848c4ba2476c5a7a2d1319826053f4f0368f61fca9bb4227ae/nh3-0.3.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7852f038a054e0096dac12b8141191e02e93e0b4608c4b993ec7d4ffafea4e49" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/e5/ac7fc565f5d8bce7f979d1afd68e8cb415020d62fa6507133281c7d49f91/nh3-0.3.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af5aa8127f62bbf03d68f67a956627b1bd0469703a35b3dad28d0c1195e6c7fb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/39/2c/6394301428b2017a9d5644af25f487fa557d06bc8a491769accec7524d9a/nh3-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f416c35efee3e6a6c9ab7716d9e57aa0a49981be915963a82697952cba1353e1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4e/9a/344b9f9c4bd1c2413a397f38ee6a3d5db30f1a507d4976e046226f12b297/nh3-0.3.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:37d3003d98dedca6cd762bf88f2e70b67f05100f6b949ffe540e189cc06887f9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/66/3f/cd37f76c8ca277b02a84aa20d7bd60fbac85b4e2cbdae77cb759b22de58b/nh3-0.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:634e34e6162e0408e14fb61d5e69dbaea32f59e847cfcfa41b66100a6b796f62" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ee/db/7aa11b44bae4e7474feb1201d8dee04fabe5651c7cb51409ebda94a4ed67/nh3-0.3.0-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:b0612ccf5de8a480cf08f047b08f9d3fecc12e63d2ee91769cb19d7290614c23" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/03/03f79f7e5178eb1ad5083af84faff471e866801beb980cc72943a4397368/nh3-0.3.0-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c7a32a7f0d89f7d30cb8f4a84bdbd56d1eb88b78a2434534f62c71dac538c450" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/55/1974bcc16884a397ee699cebd3914e1f59be64ab305533347ca2d983756f/nh3-0.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3f1b4f8a264a0c86ea01da0d0c390fe295ea0bcacc52c2103aca286f6884f518" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c9/50/76936ec021fe1f3270c03278b8af5f2079038116b5d0bfe8538ffe699d69/nh3-0.3.0-cp38-abi3-win32.whl", hash = "sha256:6d68fa277b4a3cf04e5c4b84dd0c6149ff7d56c12b3e3fab304c525b850f613d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8c/ae/324b165d904dc1672eee5f5661c0a68d4bab5b59fbb07afb6d8d19a30b45/nh3-0.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:bae63772408fd63ad836ec569a7c8f444dd32863d0c67f6e0b25ebbd606afa95" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/76/3165e84e5266d146d967a6cc784ff2fbf6ddd00985a55ec006b72bc39d5d/nh3-0.3.0-cp38-abi3-win_arm64.whl", hash = "sha256:d97d3efd61404af7e5721a0e74d81cdbfc6e5f97e11e731bb6d090e30a7b62b2" }, +] + +[[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.10'", + "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 = "pkginfo" +version = "1.10.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/2f/72/347ec5be4adc85c182ed2823d8d1c7b51e13b9a6b0c1aae59582eca652df/pkginfo-1.10.0.tar.gz", hash = "sha256:5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097" }, +] + +[[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.10'", + "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.10'", + "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 = "pycparser" +version = "2.21" +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/5e/0b/95d387f5f4433cb0f53ff7ad859bd2c6051051cebbb564f139a999ab46de/pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9" }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" }, +] + +[[package]] +name = "pygments" +version = "2.17.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/55/59/8bccf4157baf25e4aa5a0bb7fa3ba8600907de105ebc22b0c78cfbf6f565/pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +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.10'", + "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 = "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.10'", + "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 = "pywin32-ctypes" +version = "0.2.3" +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/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8" }, +] + +[[package]] +name = "readme-renderer" +version = "37.3" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "bleach", marker = "python_full_version < '3.8'" }, + { name = "docutils", version = "0.20.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pygments", version = "2.17.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/81/c3/d20152fcd1986117b898f66928938f329d0c91ddc47f081c58e64e0f51dc/readme_renderer-37.3.tar.gz", hash = "sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/52/fd8a77d6f0a9ddeb26ed8fb334e01ac546106bf0c5b8e40dc826c5bd160f/readme_renderer-37.3-py3-none-any.whl", hash = "sha256:f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343" }, +] + +[[package]] +name = "readme-renderer" +version = "43.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "docutils", version = "0.20.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "nh3", marker = "python_full_version == '3.8.*'" }, + { name = "pygments", version = "2.19.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/fe/b5/536c775084d239df6345dccf9b043419c7e3308bc31be4c7882196abc62e/readme_renderer-43.0.tar.gz", hash = "sha256:1818dd28140813509eeed8d62687f7cd4f7bad90d4db586001c5dc09d4fde311" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/45/be/3ea20dc38b9db08387cf97997a85a7d51527ea2057d71118feb0aa8afa55/readme_renderer-43.0-py3-none-any.whl", hash = "sha256:19db308d86ecd60e5affa3b2a98f017af384678c63c88e5d4556a380e674f3f9" }, +] + +[[package]] +name = "readme-renderer" +version = "44.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "docutils", version = "0.22", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "nh3", marker = "python_full_version >= '3.9'" }, + { name = "pygments", version = "2.19.2", 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/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz", hash = "sha256:8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl", hash = "sha256:2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151" }, +] + +[[package]] +name = "requests" +version = "2.31.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "certifi", marker = "python_full_version < '3.8'" }, + { name = "charset-normalizer", marker = "python_full_version < '3.8'" }, + { name = "idna", marker = "python_full_version < '3.8'" }, + { name = "urllib3", version = "2.0.7", 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/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f" }, +] + +[[package]] +name = "requests" +version = "2.32.4" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "certifi", marker = "python_full_version == '3.8.*'" }, + { name = "charset-normalizer", marker = "python_full_version == '3.8.*'" }, + { name = "idna", marker = "python_full_version == '3.8.*'" }, + { name = "urllib3", version = "2.2.3", 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/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "certifi", marker = "python_full_version >= '3.9'" }, + { name = "charset-normalizer", marker = "python_full_version >= '3.9'" }, + { name = "idna", marker = "python_full_version >= '3.9'" }, + { name = "urllib3", version = "2.5.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/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "requests", version = "2.31.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "requests", version = "2.32.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "requests", version = "2.32.5", 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/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06" }, +] + +[[package]] +name = "rfc3986" +version = "2.0.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/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd" }, +] + +[[package]] +name = "rich" +version = "13.8.1" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "markdown-it-py", version = "2.2.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pygments", version = "2.17.2", 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'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/92/76/40f084cb7db51c9d1fa29a7120717892aeda9a7711f6225692c957a93535/rich-13.8.1.tar.gz", hash = "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/11/dadb85e2bd6b1f1ae56669c3e1f0410797f9605d752d68fb47b77f525b31/rich-13.8.1-py3-none-any.whl", hash = "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06" }, +] + +[[package]] +name = "rich" +version = "14.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8' and python_full_version < '3.10'" }, + { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pygments", version = "2.19.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/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f" }, +] + +[[package]] +name = "ruff" +version = "0.12.10" +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/3b/eb/8c073deb376e46ae767f4961390d17545e8535921d2f65101720ed8bd434/ruff-0.12.10.tar.gz", hash = "sha256:189ab65149d11ea69a2d775343adf5f49bb2426fc4780f65ee33b423ad2e47f9" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/e7/560d049d15585d6c201f9eeacd2fd130def3741323e5ccf123786e0e3c95/ruff-0.12.10-py3-none-linux_armv6l.whl", hash = "sha256:8b593cb0fb55cc8692dac7b06deb29afda78c721c7ccfed22db941201b7b8f7b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/b0/ad2464922a1113c365d12b8f80ed70fcfb39764288ac77c995156080488d/ruff-0.12.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ebb7333a45d56efc7c110a46a69a1b32365d5c5161e7244aaf3aa20ce62399c1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d7/f1/97f509b4108d7bae16c48389f54f005b62ce86712120fd8b2d8e88a7cb49/ruff-0.12.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d59e58586829f8e4a9920788f6efba97a13d1fa320b047814e8afede381c6839" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/ad/44f606d243f744a75adc432275217296095101f83f966842063d78eee2d3/ruff-0.12.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:822d9677b560f1fdeab69b89d1f444bf5459da4aa04e06e766cf0121771ab844" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/06/1f/ed6c265e199568010197909b25c896d66e4ef2c5e1c3808caf461f6f3579/ruff-0.12.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b4a64f4062a50c75019c61c7017ff598cb444984b638511f48539d3a1c98db" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/63/c5/b21cde720f54a1d1db71538c0bc9b73dee4b563a7dd7d2e404914904d7f5/ruff-0.12.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6f4064c69d2542029b2a61d39920c85240c39837599d7f2e32e80d36401d6e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/02/9e/39369e6ac7f2a1848f22fb0b00b690492f20811a1ac5c1fd1d2798329263/ruff-0.12.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:059e863ea3a9ade41407ad71c1de2badfbe01539117f38f763ba42a1206f7559" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e3/03/5da8cad4b0d5242a936eb203b58318016db44f5c5d351b07e3f5e211bb89/ruff-0.12.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bef6161e297c68908b7218fa6e0e93e99a286e5ed9653d4be71e687dff101cf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/19/dd7273b69bf7f93a070c9cec9494a94048325ad18fdcf50114f07e6bf417/ruff-0.12.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4f1345fbf8fb0531cd722285b5f15af49b2932742fc96b633e883da8d841896b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/1d/b4207ec35e7babaee62c462769e77457e26eb853fbdc877af29417033333/ruff-0.12.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f68433c4fbc63efbfa3ba5db31727db229fa4e61000f452c540474b03de52a9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/00/58f7b873b21114456e880b75176af3490d7a2836033779ca42f50de3b47a/ruff-0.12.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:141ce3d88803c625257b8a6debf4a0473eb6eed9643a6189b68838b43e78165a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/8c/9e6660007fb10189ccb78a02b41691288038e51e4788bf49b0a60f740604/ruff-0.12.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f3fc21178cd44c98142ae7590f42ddcb587b8e09a3b849cbc84edb62ee95de60" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/4c/6d092bb99ea9ea6ebda817a0e7ad886f42a58b4501a7e27cd97371d0ba54/ruff-0.12.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7d1a4e0bdfafcd2e3e235ecf50bf0176f74dd37902f241588ae1f6c827a36c56" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/59/80/d982c55e91df981f3ab62559371380616c57ffd0172d96850280c2b04fa8/ruff-0.12.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:e67d96827854f50b9e3e8327b031647e7bcc090dbe7bb11101a81a3a2cbf1cc9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/37/63a9c788bbe0b0850611669ec6b8589838faf2f4f959647f2d3e320383ae/ruff-0.12.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ae479e1a18b439c59138f066ae79cc0f3ee250712a873d00dbafadaad9481e5b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/47/d4/1aaa7fb201a74181989970ebccd12f88c0fc074777027e2a21de5a90657e/ruff-0.12.10-py3-none-win32.whl", hash = "sha256:9de785e95dc2f09846c5e6e1d3a3d32ecd0b283a979898ad427a9be7be22b266" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/14/2ad38fd4037daab9e023456a4a40ed0154e9971f8d6aed41bdea390aabd9/ruff-0.12.10-py3-none-win_amd64.whl", hash = "sha256:7837eca8787f076f67aba2ca559cefd9c5cbc3a9852fd66186f4201b87c1563e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/3c/21cf283d67af33a8e6ed242396863af195a8a6134ec581524fd22b9811b6/ruff-0.12.10-py3-none-win_arm64.whl", hash = "sha256:cc138cc06ed9d4bfa9d667a65af7172b47840e1a98b02ce7011c391e54635ffc" }, +] + +[[package]] +name = "secretstorage" +version = "3.3.3" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99" }, +] + +[[package]] +name = "six" +version = "1.17.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/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274" }, +] + +[[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 = "twine", version = "4.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, +] +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 = "ruff" }, + { 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'" }, + { name = "twine", version = "4.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, +] +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 = "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 = "twine" }, +] +dev = [ + { name = "build" }, + { name = "mypy" }, + { name = "ruff" }, + { name = "tox" }, + { name = "twine" }, +] +lint = [ + { name = "mypy" }, + { name = "ruff" }, +] +test = [{ 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.10'", + "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.34.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.10'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "cachetools", version = "6.2.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.19.1", 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.15.0", 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.34.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 = "twine" +version = "4.0.2" +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'" }, + { name = "keyring", version = "24.1.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pkginfo", marker = "python_full_version < '3.8'" }, + { name = "readme-renderer", version = "37.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "requests", version = "2.31.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "requests-toolbelt", marker = "python_full_version < '3.8'" }, + { name = "rfc3986", marker = "python_full_version < '3.8'" }, + { name = "rich", version = "13.8.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "urllib3", version = "2.0.7", 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/b7/1a/a7884359429d801cd63c2c5512ad0a337a509994b0e42d9696d4778d71f6/twine-4.0.2.tar.gz", hash = "sha256:9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/38/a3f27a9e8ce45523d7d1e28c09e9085b61a98dab15d35ec086f36a44b37c/twine-4.0.2-py3-none-any.whl", hash = "sha256:929bc3c280033347a00f847236564d1c52a3e61b1ac2516c97c48f3ceab756d8" }, +] + +[[package]] +name = "twine" +version = "6.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "id", marker = "python_full_version >= '3.8'" }, + { 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 = "importlib-metadata", version = "8.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "keyring", version = "25.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*' and platform_machine != 'ppc64le' and platform_machine != 's390x'" }, + { name = "keyring", version = "25.6.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and platform_machine != 'ppc64le' and platform_machine != 's390x'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "readme-renderer", version = "43.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "readme-renderer", version = "44.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests", version = "2.32.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "requests", version = "2.32.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests-toolbelt", marker = "python_full_version >= '3.8'" }, + { name = "rfc3986", marker = "python_full_version >= '3.8'" }, + { name = "rich", version = "14.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "urllib3", version = "2.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "urllib3", version = "2.5.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/c8/a2/6df94fc5c8e2170d21d7134a565c3a8fb84f9797c1dd65a5976aaf714418/twine-6.1.0.tar.gz", hash = "sha256:be324f6272eff91d07ee93f251edf232fc647935dd585ac003539b42404a8dbd" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7c/b6/74e927715a285743351233f33ea3c684528a0d374d2e43ff9ce9585b73fe/twine-6.1.0-py3-none-any.whl", hash = "sha256:a47f973caf122930bf0fbbf17f80b83bc1602c9ce393c7845f289a3001dc5384" }, +] + +[[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.15.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" }, +] + +[[package]] +name = "urllib3" +version = "2.0.7" +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/af/47/b215df9f71b4fdba1025fc05a77db2ad243fa0926755a52c5e71659f4e3c/urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d2/b2/b157855192a68541a91ba7b2bbcb91f1b4faa51f8bae38d8005c034be524/urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e" }, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +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/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc" }, +] + +[[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.34.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", + "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.19.1", 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'" }, + { 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.15.0", 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/1c/14/37fcdba2808a6c615681cd216fecae00413c9dab44fb2e57805ecf3eaee3/virtualenv-20.34.0.tar.gz", hash = "sha256:44815b2c9dee7ed86e387b842a84f20b93f7f417f95886ca1996a72a4138eb1a" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/76/06/04c8e804f813cf972e3262f3f8584c232de64f0cde9f703b46cf53a45090/virtualenv-20.34.0-py3-none-any.whl", hash = "sha256:341f5afa7eee943e4984a9207c025feedd768baff6753cd660c857ceb3e36026" }, +] + +[[package]] +name = "webencodings" +version = "0.5.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/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78" }, +] + +[[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.10'", + "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" }, +] From 10b6ca02a79afa09306f46ddd2f483d69d01b61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20J=C4=99drecki?= Date: Fri, 5 Sep 2025 16:06:12 +0200 Subject: [PATCH 09/30] Update version to 2.2.0 alpha, fix Trusted Publishing (#663) * Update version string to 2.2.0 alpha * Fix broken Trusted Publishing for both environments * Change cd.yml to pre-release.yml --- .github/workflows/{cd.yml => pre-release.yml} | 2 -- .github/workflows/release.yml | 3 --- splunklib/__init__.py | 2 +- 3 files changed, 1 insertion(+), 6 deletions(-) rename .github/workflows/{cd.yml => pre-release.yml} (90%) diff --git a/.github/workflows/cd.yml b/.github/workflows/pre-release.yml similarity index 90% rename from .github/workflows/cd.yml rename to .github/workflows/pre-release.yml index d8df8f43c..1d4b85b1b 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/pre-release.yml @@ -23,6 +23,4 @@ jobs: - name: Publish package to Test PyPI uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d with: - user: __token__ - password: ${{ secrets.TEST_PYPI_PASSWORD }} repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 382e82d6a..07b82e165 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,9 +24,6 @@ jobs: run: python -m build - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d - with: - user: __token__ - password: ${{ secrets.PYPI_PASSWORD }} - name: Install tox run: pip install tox - name: Generate API docs diff --git a/splunklib/__init__.py b/splunklib/__init__.py index 3dca1c4c9..84c4a061b 100644 --- a/splunklib/__init__.py +++ b/splunklib/__init__.py @@ -32,5 +32,5 @@ def setup_logging( logging.basicConfig(level=level, format=log_format, datefmt=date_format) -__version_info__ = (2, 1, 1) +__version_info__ = (2, 2, 0, "alpha") __version__ = ".".join(map(str, __version_info__)) From fd4946304d178779504be2a2fd87fdebdc32600f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:47:22 +0200 Subject: [PATCH 10/30] Bump actions/setup-python (#666) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3d1e2d2ca0a067f27da6fec484fce7f5256def85 to e797f83bcb11b83ae66e0230d6156d7c80228e7c. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/3d1e2d2ca0a067f27da6fec484fce7f5256def85...e797f83bcb11b83ae66e0230d6156d7c80228e7c) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: e797f83bcb11b83ae66e0230d6156d7c80228e7c dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 1d4b85b1b..114c97921 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - name: Set up Python - uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: python-version: 3.9 - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07b82e165..e4a6ece83 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - name: Set up Python - uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: python-version: 3.9 - name: Install dependencies diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f27fe9d2..6aaffa897 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Run docker compose run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python - uses: actions/setup-python@3d1e2d2ca0a067f27da6fec484fce7f5256def85 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: python-version: ${{ matrix.python-version }} - name: Install tox From af4da92a7dc1b36601ce185af466ab70ea04a3bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 11:01:15 +0200 Subject: [PATCH 11/30] Bump pypa/gh-action-pypi-publish (#665) Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from d417ba7e7683fa9104c42abe611c1f2c93c0727d to ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e. - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/d417ba7e7683fa9104c42abe611c1f2c93c0727d...ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e) --- updated-dependencies: - dependency-name: pypa/gh-action-pypi-publish dependency-version: ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 114c97921..62f59f9d8 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -21,6 +21,6 @@ jobs: - name: Build package run: python -m build - name: Publish package to Test PyPI - uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d + uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e with: repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e4a6ece83..bf10590a3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: - name: Build package run: python -m build - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@d417ba7e7683fa9104c42abe611c1f2c93c0727d + uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e - name: Install tox run: pip install tox - name: Generate API docs From 76e3722989c0b3ed7da16a8e8ce99085655bda31 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Tue, 9 Sep 2025 13:31:47 +0200 Subject: [PATCH 12/30] Give Splunk some more time after a restart (#668) We still observe the CI failing because our test suite restarts Splunk. This change adds a workaround a sleep to let Splunk settle after a restart. --- tests/integration/test_app.py | 2 +- tests/integration/test_service.py | 13 +++++++------ tests/testlib.py | 23 ++++++++++++++--------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/tests/integration/test_app.py b/tests/integration/test_app.py index 52aceafe9..85b5c8d0b 100755 --- a/tests/integration/test_app.py +++ b/tests/integration/test_app.py @@ -40,7 +40,7 @@ def setUp(self): else: logging.debug(f"App {self.app_name} already exists. Skipping creation.") if self.service.restart_required: - self.service.restart(120) + self.restart_splunk() def tearDown(self): super().tearDown() diff --git a/tests/integration/test_service.py b/tests/integration/test_service.py index 971764c0e..2c94faf96 100755 --- a/tests/integration/test_service.py +++ b/tests/integration/test_service.py @@ -27,7 +27,7 @@ class ServiceTestCase(testlib.SDKTestCase): def test_autologin(self): service = client.connect(autologin=True, **self.opts.kwargs) - self.service.restart(timeout=120) + self.restart_splunk() reader = service.jobs.oneshot("search index=internal | head 1") self.assertIsNotNone(reader) @@ -128,7 +128,7 @@ def test_parse_fail(self): def test_restart(self): service = client.connect(**self.opts.kwargs) - self.service.restart(timeout=300) + self.restart_splunk() service.login() # Make sure we are awake def test_read_outputs_with_type(self): @@ -139,11 +139,11 @@ def test_read_outputs_with_type(self): self.assertTrue("tcp", entity.content.type) if service.restart_required: - self.restartSplunk() + self.restart_splunk() service = client.connect(**self.opts.kwargs) client.Entity(service, "data/outputs/tcp/syslog/" + name).delete() if service.restart_required: - self.restartSplunk() + self.restart_splunk() def test_splunk_version(self): service = client.connect(**self.opts.kwargs) @@ -259,7 +259,7 @@ def test_autologin_with_cookie(self): **self.opts.kwargs, ) self.assertTrue(service.has_cookies()) - self.service.restart(timeout=120) + testlib.restart_splunk(self.service) reader = service.jobs.oneshot("search index=internal | head 1") self.assertIsNotNone(reader) @@ -351,7 +351,8 @@ def test_update_settings(self): settings.refresh() updated = settings["sessionTimeout"] self.assertEqual(updated, original) - self.restartSplunk() + if self.service.restart_required: + self.restart_splunk() class TestTrailing(unittest.TestCase): diff --git a/tests/testlib.py b/tests/testlib.py index 4dfc463d8..010c4ac2c 100644 --- a/tests/testlib.py +++ b/tests/testlib.py @@ -76,6 +76,14 @@ def wait(predicate, timeout=60, pause_time=0.5): logging.debug("wait finished after %s seconds", datetime.now() - start) +def restart_splunk(service: client.Service): + service.restart(timeout=120) + # Give Splunk some additional time. In our test suite, a subsequent + # restart shortly after the initial restart can cause Splunk to crash + # and fail to start. + sleep(15) + + class SDKTestCase(unittest.TestCase): restart_already_required = False installedApps = [] @@ -138,6 +146,9 @@ def check_entity(self, entity): continue raise + def restart_splunk(self): + restart_splunk(self.service) + def clear_restart_message(self): """Tell Splunk to forget that it needs to be restarted. @@ -175,7 +186,7 @@ def install_app_from_collection(self, name): if he.status == 400: raise IOError(f"App {name} not found in app collection") if self.service.restart_required: - self.service.restart(120) + self.restart_splunk() self.installedApps.append(name) def app_collection_installed(self): @@ -221,12 +232,6 @@ def pathInApp(self, appName, pathComponents): appPath = separator.join([splunkHome, "etc", "apps", appName] + pathComponents) return appPath - def restartSplunk(self, timeout=240): - if self.service.restart_required: - self.service.restart(timeout) - else: - raise NoRestartRequiredError() - @classmethod def setUpClass(cls): cls.opts = parse([], {}, ".env") @@ -234,7 +239,7 @@ def setUpClass(cls): # Before we start, make sure splunk doesn't need a restart. service = client.connect(**cls.opts.kwargs) if service.restart_required: - service.restart(timeout=120) + self.restart_splunk() def setUp(self): unittest.TestCase.setUp(self) @@ -244,7 +249,7 @@ def setUp(self): # and restart. That way we'll be sane for the rest of # the test. if self.service.restart_required: - self.restartSplunk() + self.restart_splunk() logging.debug( "Connected to splunkd version %s", ".".join(str(x) for x in self.service.splunk_version), From c710f47efad51fd921003c91c51ec2b86bf2b18c Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 10 Sep 2025 09:07:11 +0200 Subject: [PATCH 13/30] Resolve warnings emitted by tests (#667) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For the vast majority of warnings, I have simply added a skip, since we cannot remove tests for deprecated APIs. See: https://docs.python.org/3.6/library/warnings.html#temporarily-suppressing-warnings Additionally, to eliminate warnings caused by invalid test classes, I renamed two classes to avoid using the “TestNAME” pattern, as such names are automatically recognized as test classes. --- splunklib/results.py | 2 +- tests/integration/test_job.py | 69 ++++++++++--------- tests/integration/test_results.py | 9 ++- tests/unit/searchcommands/test_decorators.py | 4 +- .../unit/searchcommands/test_internals_v2.py | 16 +++-- .../searchcommands/test_search_command.py | 14 ++-- 6 files changed, 68 insertions(+), 46 deletions(-) diff --git a/splunklib/results.py b/splunklib/results.py index 8eed6fe2c..763e8f22d 100644 --- a/splunklib/results.py +++ b/splunklib/results.py @@ -148,7 +148,7 @@ def read(self, n=None): @deprecation.deprecated( - details="Use the JSONResultsReader function instead in conjuction with the 'output_mode' query param set to 'json'" + details="Use the JSONResultsReader function instead in conjunction with the 'output_mode' query param set to 'json'" ) class ResultsReader: """This class returns dictionaries and Splunk messages from an XML results diff --git a/tests/integration/test_job.py b/tests/integration/test_job.py index 7c781be3d..fc93b3f09 100755 --- a/tests/integration/test_job.py +++ b/tests/integration/test_job.py @@ -30,6 +30,7 @@ from splunklib.binding import _log_duration, HTTPError import pytest +import warnings class TestUtilities(testlib.SDKTestCase): @@ -446,22 +447,25 @@ def test_results_reader(self): test_dir = Path(__file__).parent data_file = test_dir / "data" / "results.xml" with io.open(str(data_file), mode="br") as input: - reader = results.ResultsReader(input) - self.assertFalse(reader.is_preview) - N_results = 0 - N_messages = 0 - for r in reader: - from collections import OrderedDict - - self.assertTrue( - isinstance(r, OrderedDict) or isinstance(r, results.Message) - ) - if isinstance(r, OrderedDict): - N_results += 1 - elif isinstance(r, results.Message): - N_messages += 1 - self.assertEqual(N_results, 4999) - self.assertEqual(N_messages, 2) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + + reader = results.ResultsReader(input) + self.assertFalse(reader.is_preview) + N_results = 0 + N_messages = 0 + for r in reader: + from collections import OrderedDict + + self.assertTrue( + isinstance(r, OrderedDict) or isinstance(r, results.Message) + ) + if isinstance(r, OrderedDict): + N_results += 1 + elif isinstance(r, results.Message): + N_messages += 1 + self.assertEqual(N_results, 4999) + self.assertEqual(N_messages, 2) def test_results_reader_with_streaming_results(self): # Run jobs.export("search index=_internal | stats count", @@ -470,21 +474,24 @@ def test_results_reader_with_streaming_results(self): test_dir = Path(__file__).parent data_file = test_dir / "data" / "streaming_results.xml" with io.open(str(data_file), "br") as input: - reader = results.ResultsReader(input) - N_results = 0 - N_messages = 0 - for r in reader: - from collections import OrderedDict - - self.assertTrue( - isinstance(r, OrderedDict) or isinstance(r, results.Message) - ) - if isinstance(r, OrderedDict): - N_results += 1 - elif isinstance(r, results.Message): - N_messages += 1 - self.assertEqual(N_results, 3) - self.assertEqual(N_messages, 3) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + + reader = results.ResultsReader(input) + N_results = 0 + N_messages = 0 + for r in reader: + from collections import OrderedDict + + self.assertTrue( + isinstance(r, OrderedDict) or isinstance(r, results.Message) + ) + if isinstance(r, OrderedDict): + N_results += 1 + elif isinstance(r, results.Message): + N_messages += 1 + self.assertEqual(N_results, 3) + self.assertEqual(N_messages, 3) def test_xmldtd_filter(self): s = results._XMLDTDFilter( diff --git a/tests/integration/test_results.py b/tests/integration/test_results.py index 5e82cb676..6d72b5ec6 100755 --- a/tests/integration/test_results.py +++ b/tests/integration/test_results.py @@ -20,6 +20,7 @@ from time import sleep from tests import testlib from splunklib import results +import warnings class ResultsTestCase(testlib.SDKTestCase): @@ -169,9 +170,11 @@ def test_read_raw_field_with_segmentation(self): self.assert_parsed_results_equals(xml_text, expected_results) def assert_parsed_results_equals(self, xml_text, expected_results): - results_reader = results.ResultsReader(BytesIO(xml_text.encode("utf-8"))) - actual_results = list(results_reader) - self.assertEqual(expected_results, actual_results) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + results_reader = results.ResultsReader(BytesIO(xml_text.encode("utf-8"))) + actual_results = list(results_reader) + self.assertEqual(expected_results, actual_results) if __name__ == "__main__": diff --git a/tests/unit/searchcommands/test_decorators.py b/tests/unit/searchcommands/test_decorators.py index a14c21959..1ac657b74 100755 --- a/tests/unit/searchcommands/test_decorators.py +++ b/tests/unit/searchcommands/test_decorators.py @@ -31,7 +31,7 @@ @Configuration() -class TestSearchCommand(SearchCommand): +class SearchCommandForTests(SearchCommand): boolean = Option( doc=""" **Syntax:** **boolean=**** @@ -399,7 +399,7 @@ def test_option(self): 'show_configuration="f"', ] - command = TestSearchCommand() + command = SearchCommandForTests() options = command.options options.reset() diff --git a/tests/unit/searchcommands/test_internals_v2.py b/tests/unit/searchcommands/test_internals_v2.py index 97dfefd35..03255c07b 100755 --- a/tests/unit/searchcommands/test_internals_v2.py +++ b/tests/unit/searchcommands/test_internals_v2.py @@ -19,6 +19,7 @@ import os import random import sys +import warnings import pytest from sys import float_info @@ -185,10 +186,14 @@ def test_record_writer_with_random_data(self, save_recording=False): writer.write_metric(name, metric) self.assertEqual(writer._chunk_count, 0) - self.assertEqual(writer._record_count, 31) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", PendingDeprecationWarning) + self.assertEqual(writer._total_record_count, 0) + self.assertEqual(writer._record_count, 31) + self.assertEqual(writer.pending_record_count, 31) self.assertGreater(writer._buffer.tell(), 0) - self.assertEqual(writer._total_record_count, 0) self.assertEqual(writer.committed_record_count, 0) fieldnames.sort() writer._fieldnames.sort() @@ -204,12 +209,15 @@ def test_record_writer_with_random_data(self, save_recording=False): writer.flush(finished=True) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", PendingDeprecationWarning) + self.assertEqual(writer._record_count, 0) + self.assertEqual(writer._total_record_count, 31) + self.assertEqual(writer._chunk_count, 1) - self.assertEqual(writer._record_count, 0) self.assertEqual(writer.pending_record_count, 0) self.assertEqual(writer._buffer.tell(), 0) self.assertEqual(writer._buffer.getvalue(), "") - self.assertEqual(writer._total_record_count, 31) self.assertEqual(writer.committed_record_count, 31) self.assertRaises(AssertionError, writer.flush, finished=True, partial=True) diff --git a/tests/unit/searchcommands/test_search_command.py b/tests/unit/searchcommands/test_search_command.py index 9491df125..6bd289447 100755 --- a/tests/unit/searchcommands/test_search_command.py +++ b/tests/unit/searchcommands/test_search_command.py @@ -20,6 +20,7 @@ import os import logging +import warnings from io import TextIOWrapper @@ -49,7 +50,7 @@ def build_command_input(getinfo_metadata, execute_metadata, execute_body): @Configuration() -class TestCommand(SearchCommand): +class CommandForTests(SearchCommand): required_option_1 = Option(require=True) required_option_2 = Option(require=True) @@ -160,7 +161,7 @@ def test_process_scpv2(self): ifile = build_command_input(getinfo_metadata, execute_metadata, execute_body) - command = TestCommand() + command = CommandForTests() result = BytesIO() argv = ["some-external-search-command.py"] @@ -184,8 +185,8 @@ def test_process_scpv2(self): self.assertEqual(command.required_option_2, "value_2") expected = ( - "chunked 1.0,68,0\n" - '{"inspector":{"messages":[["INFO","test command configuration: "]]}}' + "chunked 1.0,79,0\n" + '{"inspector":{"messages":[["INFO","commandfortests command configuration: "]]}}' "chunked 1.0,17,32\n" '{"finished":true}test,__mv_test\r\n' "data,\r\n" @@ -206,7 +207,10 @@ def test_process_scpv2(self): self.assertEqual([], command.fieldnames) command_metadata = command.metadata - input_header = command.input_header + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + input_header = command.input_header self.assertIsNone(input_header["allowStream"]) self.assertEqual( From 29461cfc4b45778e75a304aefb3feb91c3aea369 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Thu, 11 Sep 2025 10:15:39 +0200 Subject: [PATCH 14/30] Document `key_file`, `cert_file`, `context` params. (#672) --- splunklib/binding.py | 28 ++++++++++++++++++++++------ splunklib/client.py | 22 ++++++++++++++++++---- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/splunklib/binding.py b/splunklib/binding.py index d8cf9121c..80aeafab7 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -484,6 +484,12 @@ class Context: :type verify: ``Boolean`` :param self_signed_certificate: Specifies if self signed certificate is used :type self_signed_certificate: ``Boolean`` + :param `key_file`: Path to a PEM-encoded private key. + :type key_file: ``string`` + :param `cert_file`: Path to a PEM-encoded X509 certificate chain. + :type cert_file: ``string`` + :param `context`: Custom SSLContext used with the HTTPSConnection, requires verify=True. + :type context: ``SSLContext`` :param sharing: The sharing mode for the namespace (the default is "user"). :type sharing: "global", "system", "app", or "user" :param owner: The owner context of the namespace (optional, the default is "None"). @@ -1093,6 +1099,16 @@ def connect(**kwargs): :type scheme: "https" or "http" :param owner: The owner context of the namespace (the default is "None"). :type owner: ``string`` + :param verify: Enable (True) or disable (False) SSL verification for https connections. + :type verify: ``Boolean`` + :param self_signed_certificate: Specifies if self signed certificate is used + :type self_signed_certificate: ``Boolean`` + :param `key_file`: Path to a PEM-encoded private key. + :type key_file: ``string`` + :param `cert_file`: Path to a PEM-encoded X509 certificate chain. + :type cert_file: ``string`` + :param `context`: Custom SSLContext used with the HTTPSConnection, requires verify=True. + :type context: ``SSLContext`` :param app: The app context of the namespace (the default is "None"). :type app: ``string`` :param sharing: The sharing mode for the namespace (the default is "user"). @@ -1505,16 +1521,16 @@ def handler(key_file=None, cert_file=None, timeout=None, verify=False, context=N """This class returns an instance of the default HTTP request handler using the values you provide. - :param `key_file`: A path to a PEM (Privacy Enhanced Mail) formatted file containing your private key (optional). + :param `verify`: Enable (True) or disable (False) SSL verification for https connections. + :type verify: ``Boolean`` + :param `key_file`: Path to a PEM-encoded private key. :type key_file: ``string`` - :param `cert_file`: A path to a PEM (Privacy Enhanced Mail) formatted file containing a certificate chain file (optional). + :param `cert_file`: Path to a PEM-encoded X509 certificate chain. :type cert_file: ``string`` + :param `context`: Custom SSLContext used with the HTTPSConnection, requires verify=True. + :type context: ``SSLContext`` :param `timeout`: The request time-out period, in seconds (optional). :type timeout: ``integer`` or "None" - :param `verify`: Set to False to disable SSL verification on https connections. - :type verify: ``Boolean`` - :param `context`: The SSLContext that can is used with the HTTPSConnection when verify=True is enabled and context is specified - :type context: ``SSLContext` """ def connect(scheme, host, port): diff --git a/splunklib/client.py b/splunklib/client.py index 2c4b3ea8b..a75bf945f 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -314,9 +314,16 @@ def connect(**kwargs): :type port: ``integer`` :param scheme: The scheme for accessing the service (the default is "https"). :type scheme: "https" or "http" - :param verify: Enable (True) or disable (False) SSL verification for - https connections. (optional, the default is True) + :param verify: Enable (True) or disable (False) SSL verification for https connections. :type verify: ``Boolean`` + :param self_signed_certificate: Specifies if self signed certificate is used + :type self_signed_certificate: ``Boolean`` + :param `key_file`: Path to a PEM-encoded private key. + :type key_file: ``string`` + :param `cert_file`: Path to a PEM-encoded X509 certificate chain. + :type cert_file: ``string`` + :param `context`: Custom SSLContext used with the HTTPSConnection, requires verify=True. + :type context: ``SSLContext`` :param `owner`: The owner context of the namespace (optional). :type owner: ``string`` :param `app`: The app context of the namespace (optional). @@ -391,9 +398,16 @@ class Service(_BaseService): :type port: ``integer`` :param scheme: The scheme for accessing the service (the default is "https"). :type scheme: "https" or "http" - :param verify: Enable (True) or disable (False) SSL verification for - https connections. (optional, the default is True) + :param verify: Enable (True) or disable (False) SSL verification for https connections. :type verify: ``Boolean`` + :param self_signed_certificate: Specifies if self signed certificate is used + :type self_signed_certificate: ``Boolean`` + :param `key_file`: Path to a PEM-encoded private key. + :type key_file: ``string`` + :param `cert_file`: Path to a PEM-encoded X509 certificate chain. + :type cert_file: ``string`` + :param `context`: Custom SSLContext used with the HTTPSConnection, requires verify=True. + :type context: ``SSLContext`` :param `owner`: The owner context of the namespace (optional; use "-" for wildcard). :type owner: ``string`` :param `app`: The app context of the namespace (optional; use "-" for wildcard). From 9a97183675bb503642a6c3fac526ac879bfeaf20 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Thu, 11 Sep 2025 12:38:30 +0200 Subject: [PATCH 15/30] Don't specify Host header explicitly (#673) Just let the http lib handle that for us, we shouldn't be doing that here at all. Currently we are not handling punycode (if used) and ports, this way we don't have to care about this and just let the lib do the best thing. --- splunklib/binding.py | 1 - 1 file changed, 1 deletion(-) diff --git a/splunklib/binding.py b/splunklib/binding.py index 80aeafab7..1d0b9722f 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -1559,7 +1559,6 @@ def request(url, message, **kwargs): body = message.get("body", "") head = { "Content-Length": str(len(body)), - "Host": host, "User-Agent": "splunk-sdk-python/%s" % __version__, "Accept": "*/*", "Connection": "Close", From 758b0cbd7524299268178e27cef257346b48f3e3 Mon Sep 17 00:00:00 2001 From: Cecylia Borek Date: Wed, 10 Sep 2025 17:32:19 +0200 Subject: [PATCH 16/30] SDK-21 add deps of test apps into bin/ --- docker-compose.yml | 10 +++++----- tests/system/test_apps/eventing_app/bin/eventingcsc.py | 8 +++----- .../test_apps/generating_app/bin/generatingcsc.py | 7 +++---- .../test_apps/modularinput_app/bin/modularinput.py | 4 +--- .../system/test_apps/reporting_app/bin/reportingcsc.py | 7 +++---- .../system/test_apps/streaming_app/bin/streamingcsc.py | 9 +++------ 6 files changed, 18 insertions(+), 27 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c29a33976..a82d16a7f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,8 +23,8 @@ services: - "./tests/system/test_apps/reporting_app:/opt/splunk/etc/apps/reporting_app" - "./tests/system/test_apps/streaming_app:/opt/splunk/etc/apps/streaming_app" - "./tests/system/test_apps/modularinput_app:/opt/splunk/etc/apps/modularinput_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" - - "./splunklib:/opt/splunk/etc/apps/modularinput_app/lib/splunklib" + - "./splunklib:/opt/splunk/etc/apps/eventing_app/bin/splunklib" + - "./splunklib:/opt/splunk/etc/apps/generating_app/bin/splunklib" + - "./splunklib:/opt/splunk/etc/apps/reporting_app/bin/splunklib" + - "./splunklib:/opt/splunk/etc/apps/streaming_app/bin/splunklib" + - "./splunklib:/opt/splunk/etc/apps/modularinput_app/bin/splunklib" diff --git a/tests/system/test_apps/eventing_app/bin/eventingcsc.py b/tests/system/test_apps/eventing_app/bin/eventingcsc.py index 9f43d2581..c162195f5 100644 --- a/tests/system/test_apps/eventing_app/bin/eventingcsc.py +++ b/tests/system/test_apps/eventing_app/bin/eventingcsc.py @@ -15,15 +15,13 @@ # License for the specific language governing permissions and limitations # under the License. -import os, sys +import sys -sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib")) from splunklib.searchcommands import ( - dispatch, - EventingCommand, Configuration, + EventingCommand, Option, - validators, + dispatch, ) diff --git a/tests/system/test_apps/generating_app/bin/generatingcsc.py b/tests/system/test_apps/generating_app/bin/generatingcsc.py index 42d5aff77..dd69ad245 100644 --- a/tests/system/test_apps/generating_app/bin/generatingcsc.py +++ b/tests/system/test_apps/generating_app/bin/generatingcsc.py @@ -15,15 +15,14 @@ # License for the specific language governing permissions and limitations # under the License. -import os, sys +import sys import time -sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib")) from splunklib.searchcommands import ( - dispatch, - GeneratingCommand, Configuration, + GeneratingCommand, Option, + dispatch, validators, ) diff --git a/tests/system/test_apps/modularinput_app/bin/modularinput.py b/tests/system/test_apps/modularinput_app/bin/modularinput.py index 838b2cf42..755d92d35 100755 --- a/tests/system/test_apps/modularinput_app/bin/modularinput.py +++ b/tests/system/test_apps/modularinput_app/bin/modularinput.py @@ -15,11 +15,9 @@ # under the License. import sys -import os from urllib import parse -sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib")) -from splunklib.modularinput import Scheme, Argument, Script, Event +from splunklib.modularinput import Argument, Event, Scheme, Script class ModularInput(Script): diff --git a/tests/system/test_apps/reporting_app/bin/reportingcsc.py b/tests/system/test_apps/reporting_app/bin/reportingcsc.py index 145df1b13..3a9907119 100644 --- a/tests/system/test_apps/reporting_app/bin/reportingcsc.py +++ b/tests/system/test_apps/reporting_app/bin/reportingcsc.py @@ -15,14 +15,13 @@ # License for the specific language governing permissions and limitations # under the License. -import os, sys +import sys -sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib")) from splunklib.searchcommands import ( - dispatch, - ReportingCommand, Configuration, Option, + ReportingCommand, + dispatch, validators, ) diff --git a/tests/system/test_apps/streaming_app/bin/streamingcsc.py b/tests/system/test_apps/streaming_app/bin/streamingcsc.py index aa92cd456..d3b3ea181 100644 --- a/tests/system/test_apps/streaming_app/bin/streamingcsc.py +++ b/tests/system/test_apps/streaming_app/bin/streamingcsc.py @@ -15,15 +15,12 @@ # License for the specific language governing permissions and limitations # under the License. -import os, sys +import sys -sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib")) from splunklib.searchcommands import ( - dispatch, - StreamingCommand, Configuration, - Option, - validators, + StreamingCommand, + dispatch, ) From 306d3f8235b34dcc02e36d06800a9a54f9dd370f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20J=C4=99drecki?= Date: Mon, 22 Sep 2025 17:11:04 +0200 Subject: [PATCH 17/30] Remove `ResultsReader`, `six` (#670) * Remove deprecated `ResultsReader` and related code * Remove six.py * Remove `__all__` export statement as there's nothing to hide anymore * Remove `deprecation` from `pyproject.toml` * Add `six` as a dependency instead of having it in the repo * Move `six` to `optional-dependencies` --- pyproject.toml | 3 +- splunklib/results.py | 212 +----- splunklib/six.py | 1065 ----------------------------- tests/integration/test_job.py | 71 -- tests/integration/test_results.py | 183 ----- uv.lock | 17 +- 6 files changed, 6 insertions(+), 1545 deletions(-) delete mode 100644 splunklib/six.py delete mode 100755 tests/integration/test_results.py diff --git a/pyproject.toml b/pyproject.toml index 80045f5e0..c56e21423 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,8 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Application Frameworks", ] -dependencies = ["deprecation", "python-dotenv"] +dependencies = ["python-dotenv"] +optional-dependencies = { compat = ["six"] } [dependency-groups] test = ["tox"] diff --git a/splunklib/results.py b/splunklib/results.py index 763e8f22d..7bce883fc 100644 --- a/splunklib/results.py +++ b/splunklib/results.py @@ -32,18 +32,9 @@ print(f"Results are a preview: {reader.is_preview}") """ -from io import BufferedReader, BytesIO - - -import xml.etree.ElementTree as et - -from collections import OrderedDict +from io import BufferedReader from json import loads as json_loads -__all__ = ["ResultsReader", "Message", "JSONResultsReader"] - -import deprecation - class Message: """This class represents informational messages that Splunk interleaves in the results stream. @@ -70,205 +61,6 @@ def __hash__(self): return hash((self.type, self.message)) -class _ConcatenatedStream: - """Lazily concatenate zero or more streams into a stream. - - As you read from the concatenated stream, you get characters from - each stream passed to ``_ConcatenatedStream``, in order. - - **Example**:: - - from StringIO import StringIO - s = _ConcatenatedStream(StringIO("abc"), StringIO("def")) - assert s.read() == "abcdef" - """ - - def __init__(self, *streams): - self.streams = list(streams) - - def read(self, n=None): - """Read at most *n* characters from this stream. - - If *n* is ``None``, return all available characters. - """ - response = b"" - while len(self.streams) > 0 and (n is None or n > 0): - txt = self.streams[0].read(n) - response += txt - if n is not None: - n -= len(txt) - if n is None or n > 0: - del self.streams[0] - return response - - -class _XMLDTDFilter: - """Lazily remove all XML DTDs from a stream. - - All substrings matching the regular expression ]*> are - removed in their entirety from the stream. No regular expressions - are used, however, so everything still streams properly. - - **Example**:: - - from StringIO import StringIO - s = _XMLDTDFilter("") - assert s.read() == "" - """ - - def __init__(self, stream): - self.stream = stream - - def read(self, n=None): - """Read at most *n* characters from this stream. - - If *n* is ``None``, return all available characters. - """ - response = b"" - while n is None or n > 0: - c = self.stream.read(1) - if c == b"": - break - if c == b"<": - c += self.stream.read(1) - if c == b"": - break - else: - response += c - if n is not None: - n -= len(c) - else: - response += c - if n is not None: - n -= 1 - return response - - -@deprecation.deprecated( - details="Use the JSONResultsReader function instead in conjunction with the 'output_mode' query param set to 'json'" -) -class ResultsReader: - """This class returns dictionaries and Splunk messages from an XML results - stream. - - ``ResultsReader`` is iterable, and returns a ``dict`` for results, or a - :class:`Message` object for Splunk messages. This class has one field, - ``is_preview``, which is ``True`` when the results are a preview from a - running search, or ``False`` when the results are from a completed search. - - This function has no network activity other than what is implicit in the - stream it operates on. - - :param `stream`: The stream to read from (any object that supports - ``.read()``). - - **Example**:: - - import results - response = ... # the body of an HTTP response - reader = results.ResultsReader(response) - for result in reader: - if isinstance(result, dict): - print(f"Result: {result}") - elif isinstance(result, results.Message): - print(f"Message: {result}") - print(f"is_preview = {reader.is_preview}") - """ - - # Be sure to update the docstrings of client.Jobs.oneshot, - # client.Job.results_preview and client.Job.results to match any - # changes made to ResultsReader. - # - # This wouldn't be a class, just the _parse_results function below, - # except that you cannot get the current generator inside the - # function creating that generator. Thus it's all wrapped up for - # the sake of one field. - def __init__(self, stream): - # The search/jobs/exports endpoint, when run with - # earliest_time=rt and latest_time=rt streams a sequence of - # XML documents, each containing a result, as opposed to one - # results element containing lots of results. Python's XML - # parsers are broken, and instead of reading one full document - # and returning the stream that follows untouched, they - # destroy the stream and throw an error. To get around this, - # we remove all the DTD definitions inline, then wrap the - # fragments in a fiction element to make the parser happy. - stream = _XMLDTDFilter(stream) - stream = _ConcatenatedStream(BytesIO(b""), stream, BytesIO(b"")) - self.is_preview = None - self._gen = self._parse_results(stream) - - def __iter__(self): - return self - - def __next__(self): - return next(self._gen) - - def _parse_results(self, stream): - """Parse results and messages out of *stream*.""" - result = None - values = None - try: - for event, elem in et.iterparse(stream, events=("start", "end")): - if elem.tag == "results" and event == "start": - # The wrapper element is a . We - # don't care about it except to tell is whether these - # are preview results, or the final results from the - # search. - is_preview = elem.attrib["preview"] == "1" - self.is_preview = is_preview - if elem.tag == "result": - if event == "start": - result = OrderedDict() - elif event == "end": - yield result - result = None - elem.clear() - - elif elem.tag == "field" and result is not None: - # We need the 'result is not None' check because - # 'field' is also the element name in the - # header that gives field order, which is not what we - # want at all. - if event == "start": - values = [] - elif event == "end": - field_name = elem.attrib["k"] - if len(values) == 1: - result[field_name] = values[0] - else: - result[field_name] = values - # Calling .clear() is necessary to let the - # element be garbage collected. Otherwise - # arbitrarily large results sets will use - # arbitrarily large memory intead of - # streaming. - elem.clear() - - elif elem.tag in ("text", "v") and event == "end": - text = "".join(elem.itertext()) - values.append(text) - elem.clear() - - elif elem.tag == "msg": - if event == "start": - msg_type = elem.attrib["type"] - elif event == "end": - text = elem.text if elem.text is not None else "" - yield Message(msg_type, text) - elem.clear() - except SyntaxError as pe: - # This is here to handle the same incorrect return from - # splunk that is described in __init__. - if "no element found" in pe.msg: - return - else: - raise - - class JSONResultsReader: """This class returns dictionaries and Splunk messages from a JSON results stream. @@ -303,7 +95,7 @@ class JSONResultsReader: # except that you cannot get the current generator inside the # function creating that generator. Thus it's all wrapped up for # the sake of one field. - def __init__(self, stream): + def __init__(self, stream) -> None: # The search/jobs/exports endpoint, when run with # earliest_time=rt and latest_time=rt, output_mode=json, streams a sequence of # JSON documents, each containing a result, as opposed to one diff --git a/splunklib/six.py b/splunklib/six.py deleted file mode 100644 index 4d9448111..000000000 --- a/splunklib/six.py +++ /dev/null @@ -1,1065 +0,0 @@ -# Copyright (c) 2010-2020 Benjamin Peterson -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -"""Utilities for writing code that runs on Python 2 and 3""" - -from __future__ import absolute_import - -import functools -import itertools -import operator -import sys -import types - -__author__ = "Benjamin Peterson " -__version__ = "1.14.0" - - -# Useful for very coarse version differentiation. -PY2 = sys.version_info[0] == 2 -PY3 = sys.version_info[0] == 3 -PY34 = sys.version_info[0:2] >= (3, 4) - -if PY3: - string_types = (str,) - integer_types = (int,) - class_types = (type,) - text_type = str - binary_type = bytes - - MAXSIZE = sys.maxsize -else: - string_types = (basestring,) - integer_types = (int, long) - class_types = (type, types.ClassType) - text_type = unicode - binary_type = str - - if sys.platform.startswith("java"): - # Jython always uses 32 bits. - MAXSIZE = int((1 << 31) - 1) - else: - # It's possible to have sizeof(long) != sizeof(Py_ssize_t). - class X(object): - def __len__(self): - return 1 << 31 - - try: - len(X()) - except OverflowError: - # 32-bit - MAXSIZE = int((1 << 31) - 1) - else: - # 64-bit - MAXSIZE = int((1 << 63) - 1) - del X - - -def _add_doc(func, doc): - """Add documentation to a function.""" - func.__doc__ = doc - - -def _import_module(name): - """Import module, returning the module after the last dot.""" - __import__(name) - return sys.modules[name] - - -class _LazyDescr(object): - def __init__(self, name): - self.name = name - - def __get__(self, obj, tp): - result = self._resolve() - setattr(obj, self.name, result) # Invokes __set__. - try: - # This is a bit ugly, but it avoids running this again by - # removing this descriptor. - delattr(obj.__class__, self.name) - except AttributeError: - pass - return result - - -class MovedModule(_LazyDescr): - def __init__(self, name, old, new=None): - super(MovedModule, self).__init__(name) - if PY3: - if new is None: - new = name - self.mod = new - else: - self.mod = old - - def _resolve(self): - return _import_module(self.mod) - - def __getattr__(self, attr): - _module = self._resolve() - value = getattr(_module, attr) - setattr(self, attr, value) - return value - - -class _LazyModule(types.ModuleType): - def __init__(self, name): - super(_LazyModule, self).__init__(name) - self.__doc__ = self.__class__.__doc__ - - def __dir__(self): - attrs = ["__doc__", "__name__"] - attrs += [attr.name for attr in self._moved_attributes] - return attrs - - # Subclasses should override this - _moved_attributes = [] - - -class MovedAttribute(_LazyDescr): - def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): - super(MovedAttribute, self).__init__(name) - if PY3: - if new_mod is None: - new_mod = name - self.mod = new_mod - if new_attr is None: - if old_attr is None: - new_attr = name - else: - new_attr = old_attr - self.attr = new_attr - else: - self.mod = old_mod - if old_attr is None: - old_attr = name - self.attr = old_attr - - def _resolve(self): - module = _import_module(self.mod) - return getattr(module, self.attr) - - -class _SixMetaPathImporter(object): - """ - A meta path importer to import six.moves and its submodules. - - This class implements a PEP302 finder and loader. It should be compatible - with Python 2.5 and all existing versions of Python3 - """ - - def __init__(self, six_module_name): - self.name = six_module_name - self.known_modules = {} - - def _add_module(self, mod, *fullnames): - for fullname in fullnames: - self.known_modules[self.name + "." + fullname] = mod - - def _get_module(self, fullname): - return self.known_modules[self.name + "." + fullname] - - def find_module(self, fullname, path=None): - if fullname in self.known_modules: - return self - return None - - def __get_module(self, fullname): - try: - return self.known_modules[fullname] - except KeyError: - raise ImportError("This loader does not know module " + fullname) - - def load_module(self, fullname): - try: - # in case of a reload - return sys.modules[fullname] - except KeyError: - pass - mod = self.__get_module(fullname) - if isinstance(mod, MovedModule): - mod = mod._resolve() - else: - mod.__loader__ = self - sys.modules[fullname] = mod - return mod - - def is_package(self, fullname): - """ - Return true, if the named module is a package. - - We need this method to get correct spec objects with - Python 3.4 (see PEP451) - """ - return hasattr(self.__get_module(fullname), "__path__") - - def get_code(self, fullname): - """Return None - - Required, if is_package is implemented""" - self.__get_module(fullname) # eventually raises ImportError - return None - - get_source = get_code # same as get_code - - -_importer = _SixMetaPathImporter(__name__) - - -class _MovedItems(_LazyModule): - """Lazy loading of moved objects""" - - __path__ = [] # mark as package - - -_moved_attributes = [ - MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), - MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), - MovedAttribute( - "filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse" - ), - MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), - MovedAttribute("intern", "__builtin__", "sys"), - MovedAttribute("map", "itertools", "builtins", "imap", "map"), - MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), - MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), - MovedAttribute("getoutput", "commands", "subprocess"), - MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute( - "reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload" - ), - MovedAttribute("reduce", "__builtin__", "functools"), - MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), - MovedAttribute("StringIO", "StringIO", "io"), - MovedAttribute("UserDict", "UserDict", "collections"), - MovedAttribute("UserList", "UserList", "collections"), - MovedAttribute("UserString", "UserString", "collections"), - MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), - MovedAttribute( - "zip_longest", "itertools", "itertools", "izip_longest", "zip_longest" - ), - MovedModule("builtins", "__builtin__"), - MovedModule("configparser", "ConfigParser"), - MovedModule( - "collections_abc", - "collections", - "collections.abc" if sys.version_info >= (3, 3) else "collections", - ), - MovedModule("copyreg", "copy_reg"), - MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), - MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"), - MovedModule( - "_dummy_thread", - "dummy_thread", - "_dummy_thread" if sys.version_info < (3, 9) else "_thread", - ), - MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), - MovedModule("http_cookies", "Cookie", "http.cookies"), - MovedModule("html_entities", "htmlentitydefs", "html.entities"), - MovedModule("html_parser", "HTMLParser", "html.parser"), - MovedModule("http_client", "httplib", "http.client"), - MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), - MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"), - MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), - MovedModule( - "email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart" - ), - MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), - MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), - MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), - MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), - MovedModule("cPickle", "cPickle", "pickle"), - MovedModule("queue", "Queue"), - MovedModule("reprlib", "repr"), - MovedModule("socketserver", "SocketServer"), - MovedModule("_thread", "thread", "_thread"), - MovedModule("tkinter", "Tkinter"), - MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), - MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), - MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), - MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), - MovedModule("tkinter_tix", "Tix", "tkinter.tix"), - MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), - MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), - MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), - MovedModule("tkinter_colorchooser", "tkColorChooser", "tkinter.colorchooser"), - MovedModule("tkinter_commondialog", "tkCommonDialog", "tkinter.commondialog"), - MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), - MovedModule("tkinter_font", "tkFont", "tkinter.font"), - MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), - MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", "tkinter.simpledialog"), - MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), - MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), - MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), - MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), - MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), - MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), -] -# Add windows specific modules. -if sys.platform == "win32": - _moved_attributes += [ - MovedModule("winreg", "_winreg"), - ] - -for attr in _moved_attributes: - setattr(_MovedItems, attr.name, attr) - if isinstance(attr, MovedModule): - _importer._add_module(attr, "moves." + attr.name) -del attr - -_MovedItems._moved_attributes = _moved_attributes - -moves = _MovedItems(__name__ + ".moves") -_importer._add_module(moves, "moves") - - -class Module_six_moves_urllib_parse(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_parse""" - - -_urllib_parse_moved_attributes = [ - MovedAttribute("ParseResult", "urlparse", "urllib.parse"), - MovedAttribute("SplitResult", "urlparse", "urllib.parse"), - MovedAttribute("parse_qs", "urlparse", "urllib.parse"), - MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), - MovedAttribute("urldefrag", "urlparse", "urllib.parse"), - MovedAttribute("urljoin", "urlparse", "urllib.parse"), - MovedAttribute("urlparse", "urlparse", "urllib.parse"), - MovedAttribute("urlsplit", "urlparse", "urllib.parse"), - MovedAttribute("urlunparse", "urlparse", "urllib.parse"), - MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), - MovedAttribute("quote", "urllib", "urllib.parse"), - MovedAttribute("quote_plus", "urllib", "urllib.parse"), - MovedAttribute("unquote", "urllib", "urllib.parse"), - MovedAttribute("unquote_plus", "urllib", "urllib.parse"), - MovedAttribute( - "unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes" - ), - MovedAttribute("urlencode", "urllib", "urllib.parse"), - MovedAttribute("splitquery", "urllib", "urllib.parse"), - MovedAttribute("splittag", "urllib", "urllib.parse"), - MovedAttribute("splituser", "urllib", "urllib.parse"), - MovedAttribute("splitvalue", "urllib", "urllib.parse"), - MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), - MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), - MovedAttribute("uses_params", "urlparse", "urllib.parse"), - MovedAttribute("uses_query", "urlparse", "urllib.parse"), - MovedAttribute("uses_relative", "urlparse", "urllib.parse"), -] -for attr in _urllib_parse_moved_attributes: - setattr(Module_six_moves_urllib_parse, attr.name, attr) -del attr - -Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes - -_importer._add_module( - Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), - "moves.urllib_parse", - "moves.urllib.parse", -) - - -class Module_six_moves_urllib_error(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_error""" - - -_urllib_error_moved_attributes = [ - MovedAttribute("URLError", "urllib2", "urllib.error"), - MovedAttribute("HTTPError", "urllib2", "urllib.error"), - MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), -] -for attr in _urllib_error_moved_attributes: - setattr(Module_six_moves_urllib_error, attr.name, attr) -del attr - -Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes - -_importer._add_module( - Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), - "moves.urllib_error", - "moves.urllib.error", -) - - -class Module_six_moves_urllib_request(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_request""" - - -_urllib_request_moved_attributes = [ - MovedAttribute("urlopen", "urllib2", "urllib.request"), - MovedAttribute("install_opener", "urllib2", "urllib.request"), - MovedAttribute("build_opener", "urllib2", "urllib.request"), - MovedAttribute("pathname2url", "urllib", "urllib.request"), - MovedAttribute("url2pathname", "urllib", "urllib.request"), - MovedAttribute("getproxies", "urllib", "urllib.request"), - MovedAttribute("Request", "urllib2", "urllib.request"), - MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), - MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), - MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), - MovedAttribute("BaseHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), - MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), - MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), - MovedAttribute("FileHandler", "urllib2", "urllib.request"), - MovedAttribute("FTPHandler", "urllib2", "urllib.request"), - MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), - MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), - MovedAttribute("urlretrieve", "urllib", "urllib.request"), - MovedAttribute("urlcleanup", "urllib", "urllib.request"), - MovedAttribute("URLopener", "urllib", "urllib.request"), - MovedAttribute("FancyURLopener", "urllib", "urllib.request"), - MovedAttribute("proxy_bypass", "urllib", "urllib.request"), - MovedAttribute("parse_http_list", "urllib2", "urllib.request"), - MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"), -] -for attr in _urllib_request_moved_attributes: - setattr(Module_six_moves_urllib_request, attr.name, attr) -del attr - -Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes - -_importer._add_module( - Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), - "moves.urllib_request", - "moves.urllib.request", -) - - -class Module_six_moves_urllib_response(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_response""" - - -_urllib_response_moved_attributes = [ - MovedAttribute("addbase", "urllib", "urllib.response"), - MovedAttribute("addclosehook", "urllib", "urllib.response"), - MovedAttribute("addinfo", "urllib", "urllib.response"), - MovedAttribute("addinfourl", "urllib", "urllib.response"), -] -for attr in _urllib_response_moved_attributes: - setattr(Module_six_moves_urllib_response, attr.name, attr) -del attr - -Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes - -_importer._add_module( - Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), - "moves.urllib_response", - "moves.urllib.response", -) - - -class Module_six_moves_urllib_robotparser(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_robotparser""" - - -_urllib_robotparser_moved_attributes = [ - MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), -] -for attr in _urllib_robotparser_moved_attributes: - setattr(Module_six_moves_urllib_robotparser, attr.name, attr) -del attr - -Module_six_moves_urllib_robotparser._moved_attributes = ( - _urllib_robotparser_moved_attributes -) - -_importer._add_module( - Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), - "moves.urllib_robotparser", - "moves.urllib.robotparser", -) - - -class Module_six_moves_urllib(types.ModuleType): - """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" - - __path__ = [] # mark as package - parse = _importer._get_module("moves.urllib_parse") - error = _importer._get_module("moves.urllib_error") - request = _importer._get_module("moves.urllib_request") - response = _importer._get_module("moves.urllib_response") - robotparser = _importer._get_module("moves.urllib_robotparser") - - def __dir__(self): - return ["parse", "error", "request", "response", "robotparser"] - - -_importer._add_module( - Module_six_moves_urllib(__name__ + ".moves.urllib"), "moves.urllib" -) - - -def add_move(move): - """Add an item to six.moves.""" - setattr(_MovedItems, move.name, move) - - -def remove_move(name): - """Remove item from six.moves.""" - try: - delattr(_MovedItems, name) - except AttributeError: - try: - del moves.__dict__[name] - except KeyError: - raise AttributeError("no such move, %r" % (name,)) - - -if PY3: - _meth_func = "__func__" - _meth_self = "__self__" - - _func_closure = "__closure__" - _func_code = "__code__" - _func_defaults = "__defaults__" - _func_globals = "__globals__" -else: - _meth_func = "im_func" - _meth_self = "im_self" - - _func_closure = "func_closure" - _func_code = "func_code" - _func_defaults = "func_defaults" - _func_globals = "func_globals" - - -try: - advance_iterator = next -except NameError: - - def advance_iterator(it): - return it.next() - - -next = advance_iterator - - -try: - callable = callable -except NameError: - - def callable(obj): - return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) - - -if PY3: - - def get_unbound_function(unbound): - return unbound - - create_bound_method = types.MethodType - - def create_unbound_method(func, cls): - return func - - Iterator = object -else: - - def get_unbound_function(unbound): - return unbound.im_func - - def create_bound_method(func, obj): - return types.MethodType(func, obj, obj.__class__) - - def create_unbound_method(func, cls): - return types.MethodType(func, None, cls) - - class Iterator(object): - def next(self): - return type(self).__next__(self) - - callable = callable -_add_doc( - get_unbound_function, """Get the function out of a possibly unbound function""" -) - - -get_method_function = operator.attrgetter(_meth_func) -get_method_self = operator.attrgetter(_meth_self) -get_function_closure = operator.attrgetter(_func_closure) -get_function_code = operator.attrgetter(_func_code) -get_function_defaults = operator.attrgetter(_func_defaults) -get_function_globals = operator.attrgetter(_func_globals) - - -if PY3: - - def iterkeys(d, **kw): - return iter(d.keys(**kw)) - - def itervalues(d, **kw): - return iter(d.values(**kw)) - - def iteritems(d, **kw): - return iter(d.items(**kw)) - - def iterlists(d, **kw): - return iter(d.lists(**kw)) - - viewkeys = operator.methodcaller("keys") - - viewvalues = operator.methodcaller("values") - - viewitems = operator.methodcaller("items") -else: - - def iterkeys(d, **kw): - return d.iterkeys(**kw) - - def itervalues(d, **kw): - return d.itervalues(**kw) - - def iteritems(d, **kw): - return d.iteritems(**kw) - - def iterlists(d, **kw): - return d.iterlists(**kw) - - viewkeys = operator.methodcaller("viewkeys") - - viewvalues = operator.methodcaller("viewvalues") - - viewitems = operator.methodcaller("viewitems") - -_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") -_add_doc(itervalues, "Return an iterator over the values of a dictionary.") -_add_doc(iteritems, "Return an iterator over the (key, value) pairs of a dictionary.") -_add_doc( - iterlists, "Return an iterator over the (key, [values]) pairs of a dictionary." -) - - -if PY3: - - def b(s): - return s.encode("latin-1") - - def u(s): - return s - - unichr = chr - import struct - - int2byte = struct.Struct(">B").pack - del struct - byte2int = operator.itemgetter(0) - indexbytes = operator.getitem - iterbytes = iter - import io - - StringIO = io.StringIO - BytesIO = io.BytesIO - del io - _assertCountEqual = "assertCountEqual" - if sys.version_info[1] <= 1: - _assertRaisesRegex = "assertRaisesRegexp" - _assertRegex = "assertRegexpMatches" - _assertNotRegex = "assertNotRegexpMatches" - else: - _assertRaisesRegex = "assertRaisesRegex" - _assertRegex = "assertRegex" - _assertNotRegex = "assertNotRegex" -else: - - def b(s): - return s - - # Workaround for standalone backslash - - def u(s): - return unicode(s.replace(r"\\", r"\\\\"), "unicode_escape") - - unichr = unichr - int2byte = chr - - def byte2int(bs): - return ord(bs[0]) - - def indexbytes(buf, i): - return ord(buf[i]) - - iterbytes = functools.partial(itertools.imap, ord) - import StringIO - - StringIO = BytesIO = StringIO.StringIO - _assertCountEqual = "assertItemsEqual" - _assertRaisesRegex = "assertRaisesRegexp" - _assertRegex = "assertRegexpMatches" - _assertNotRegex = "assertNotRegexpMatches" -_add_doc(b, """Byte literal""") -_add_doc(u, """Text literal""") - - -def assertCountEqual(self, *args, **kwargs): - return getattr(self, _assertCountEqual)(*args, **kwargs) - - -def assertRaisesRegex(self, *args, **kwargs): - return getattr(self, _assertRaisesRegex)(*args, **kwargs) - - -def assertRegex(self, *args, **kwargs): - return getattr(self, _assertRegex)(*args, **kwargs) - - -def assertNotRegex(self, *args, **kwargs): - return getattr(self, _assertNotRegex)(*args, **kwargs) - - -if PY3: - exec_ = getattr(moves.builtins, "exec") - - def reraise(tp, value, tb=None): - try: - if value is None: - value = tp() - if value.__traceback__ is not tb: - raise value.with_traceback(tb) - raise value - finally: - value = None - tb = None - -else: - - def exec_(_code_, _globs_=None, _locs_=None): - """Execute code in a namespace.""" - if _globs_ is None: - frame = sys._getframe(1) - _globs_ = frame.f_globals - if _locs_ is None: - _locs_ = frame.f_locals - del frame - elif _locs_ is None: - _locs_ = _globs_ - exec("""exec _code_ in _globs_, _locs_""") - - exec_("""def reraise(tp, value, tb=None): - try: - raise tp, value, tb - finally: - tb = None -""") - - -if sys.version_info[:2] > (3,): - exec_("""def raise_from(value, from_value): - try: - raise value from from_value - finally: - value = None -""") -else: - - def raise_from(value, from_value): - raise value - - -print_ = getattr(moves.builtins, "print", None) -if print_ is None: - - def print_(*args, **kwargs): - """The new-style print function for Python 2.4 and 2.5.""" - fp = kwargs.pop("file", sys.stdout) - if fp is None: - return - - def write(data): - if not isinstance(data, basestring): - data = str(data) - # If the file has an encoding, encode unicode with it. - if ( - isinstance(fp, file) - and isinstance(data, unicode) - and fp.encoding is not None - ): - errors = getattr(fp, "errors", None) - if errors is None: - errors = "strict" - data = data.encode(fp.encoding, errors) - fp.write(data) - - want_unicode = False - sep = kwargs.pop("sep", None) - if sep is not None: - if isinstance(sep, unicode): - want_unicode = True - elif not isinstance(sep, str): - raise TypeError("sep must be None or a string") - end = kwargs.pop("end", None) - if end is not None: - if isinstance(end, unicode): - want_unicode = True - elif not isinstance(end, str): - raise TypeError("end must be None or a string") - if kwargs: - raise TypeError("invalid keyword arguments to print()") - if not want_unicode: - for arg in args: - if isinstance(arg, unicode): - want_unicode = True - break - if want_unicode: - newline = unicode("\n") - space = unicode(" ") - else: - newline = "\n" - space = " " - if sep is None: - sep = space - if end is None: - end = newline - for i, arg in enumerate(args): - if i: - write(sep) - write(arg) - write(end) - - -if sys.version_info[:2] < (3, 3): - _print = print_ - - def print_(*args, **kwargs): - fp = kwargs.get("file", sys.stdout) - flush = kwargs.pop("flush", False) - _print(*args, **kwargs) - if flush and fp is not None: - fp.flush() - - -_add_doc(reraise, """Reraise an exception.""") - -if sys.version_info[0:2] < (3, 4): - # This does exactly the same what the :func:`py3:functools.update_wrapper` - # function does on Python versions after 3.2. It sets the ``__wrapped__`` - # attribute on ``wrapper`` object and it doesn't raise an error if any of - # the attributes mentioned in ``assigned`` and ``updated`` are missing on - # ``wrapped`` object. - def _update_wrapper( - wrapper, - wrapped, - assigned=functools.WRAPPER_ASSIGNMENTS, - updated=functools.WRAPPER_UPDATES, - ): - for attr in assigned: - try: - value = getattr(wrapped, attr) - except AttributeError: - continue - else: - setattr(wrapper, attr, value) - for attr in updated: - getattr(wrapper, attr).update(getattr(wrapped, attr, {})) - wrapper.__wrapped__ = wrapped - return wrapper - - _update_wrapper.__doc__ = functools.update_wrapper.__doc__ - - def wraps( - wrapped, - assigned=functools.WRAPPER_ASSIGNMENTS, - updated=functools.WRAPPER_UPDATES, - ): - return functools.partial( - _update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated - ) - - wraps.__doc__ = functools.wraps.__doc__ - -else: - wraps = functools.wraps - - -def with_metaclass(meta, *bases): - """Create a base class with a metaclass.""" - - # This requires a bit of explanation: the basic idea is to make a dummy - # metaclass for one level of class instantiation that replaces itself with - # the actual metaclass. - class metaclass(type): - def __new__(cls, name, this_bases, d): - if sys.version_info[:2] >= (3, 7): - # This version introduced PEP 560 that requires a bit - # of extra care (we mimic what is done by __build_class__). - resolved_bases = types.resolve_bases(bases) - if resolved_bases is not bases: - d["__orig_bases__"] = bases - else: - resolved_bases = bases - return meta(name, resolved_bases, d) - - @classmethod - def __prepare__(cls, name, this_bases): - return meta.__prepare__(name, bases) - - return type.__new__(metaclass, "temporary_class", (), {}) - - -def add_metaclass(metaclass): - """Class decorator for creating a class with a metaclass.""" - - def wrapper(cls): - orig_vars = cls.__dict__.copy() - slots = orig_vars.get("__slots__") - if slots is not None: - if isinstance(slots, str): - slots = [slots] - for slots_var in slots: - orig_vars.pop(slots_var) - orig_vars.pop("__dict__", None) - orig_vars.pop("__weakref__", None) - if hasattr(cls, "__qualname__"): - orig_vars["__qualname__"] = cls.__qualname__ - return metaclass(cls.__name__, cls.__bases__, orig_vars) - - return wrapper - - -def ensure_binary(s, encoding="utf-8", errors="strict"): - """Coerce **s** to six.binary_type. - - For Python 2: - - `unicode` -> encoded to `str` - - `str` -> `str` - - For Python 3: - - `str` -> encoded to `bytes` - - `bytes` -> `bytes` - """ - if isinstance(s, text_type): - return s.encode(encoding, errors) - elif isinstance(s, binary_type): - return s - else: - raise TypeError("not expecting type '%s'" % type(s)) - - -def ensure_str(s, encoding="utf-8", errors="strict"): - """Coerce *s* to `str`. - - For Python 2: - - `unicode` -> encoded to `str` - - `str` -> `str` - - For Python 3: - - `str` -> `str` - - `bytes` -> decoded to `str` - """ - if not isinstance(s, (text_type, binary_type)): - raise TypeError("not expecting type '%s'" % type(s)) - if PY2 and isinstance(s, text_type): - s = s.encode(encoding, errors) - elif PY3 and isinstance(s, binary_type): - s = s.decode(encoding, errors) - return s - - -def ensure_text(s, encoding="utf-8", errors="strict"): - """Coerce *s* to six.text_type. - - For Python 2: - - `unicode` -> `unicode` - - `str` -> `unicode` - - For Python 3: - - `str` -> `str` - - `bytes` -> decoded to `str` - """ - if isinstance(s, binary_type): - return s.decode(encoding, errors) - elif isinstance(s, text_type): - return s - else: - raise TypeError("not expecting type '%s'" % type(s)) - - -def python_2_unicode_compatible(klass): - """ - A class decorator that defines __unicode__ and __str__ methods under Python 2. - Under Python 3 it does nothing. - - To support Python 2 and 3 with a single code base, define a __str__ method - returning text and apply this decorator to the class. - """ - if PY2: - if "__str__" not in klass.__dict__: - raise ValueError( - "@python_2_unicode_compatible cannot be applied " - "to %s because it doesn't define __str__()." % klass.__name__ - ) - klass.__unicode__ = klass.__str__ - klass.__str__ = lambda self: self.__unicode__().encode("utf-8") - return klass - - -# Complete the moves implementation. -# This code is at the end of this module to speed up module loading. -# Turn this module into a package. -__path__ = [] # required for PEP 302 and PEP 451 -__package__ = __name__ # see PEP 366 @ReservedAssignment -if globals().get("__spec__") is not None: - __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable -# Remove other six meta path importers, since they cause problems. This can -# happen if six is removed from sys.modules and then reloaded. (Setuptools does -# this for some reason.) -if sys.meta_path: - for i, importer in enumerate(sys.meta_path): - # Here's some real nastiness: Another "instance" of the six module might - # be floating around. Therefore, we can't use isinstance() to check for - # the six meta path importer, since the other six instance will have - # inserted an importer with different class. - if ( - type(importer).__name__ == "_SixMetaPathImporter" - and importer.name == __name__ - ): - del sys.meta_path[i] - break - del i, importer -# Finally, add the importer to the meta path import hook. -sys.meta_path.append(_importer) - -import warnings - - -def deprecated(message): - def deprecated_decorator(func): - def deprecated_func(*args, **kwargs): - warnings.warn( - "{} is a deprecated function. {}".format(func.__name__, message), - category=DeprecationWarning, - stacklevel=2, - ) - warnings.simplefilter("default", DeprecationWarning) - return func(*args, **kwargs) - - return deprecated_func - - return deprecated_decorator diff --git a/tests/integration/test_job.py b/tests/integration/test_job.py index fc93b3f09..47b8f8e0b 100755 --- a/tests/integration/test_job.py +++ b/tests/integration/test_job.py @@ -439,76 +439,5 @@ def test_v1_job_fallback(self): self.assertEqual(n_events, n_preview, n_results) -class TestResultsReader(unittest.TestCase): - def test_results_reader(self): - # Run jobs.export("search index=_internal | stats count", - # earliest_time="rt", latest_time="rt") and you get a - # streaming sequence of XML fragments containing results. - test_dir = Path(__file__).parent - data_file = test_dir / "data" / "results.xml" - with io.open(str(data_file), mode="br") as input: - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - - reader = results.ResultsReader(input) - self.assertFalse(reader.is_preview) - N_results = 0 - N_messages = 0 - for r in reader: - from collections import OrderedDict - - self.assertTrue( - isinstance(r, OrderedDict) or isinstance(r, results.Message) - ) - if isinstance(r, OrderedDict): - N_results += 1 - elif isinstance(r, results.Message): - N_messages += 1 - self.assertEqual(N_results, 4999) - self.assertEqual(N_messages, 2) - - def test_results_reader_with_streaming_results(self): - # Run jobs.export("search index=_internal | stats count", - # earliest_time="rt", latest_time="rt") and you get a - # streaming sequence of XML fragments containing results. - test_dir = Path(__file__).parent - data_file = test_dir / "data" / "streaming_results.xml" - with io.open(str(data_file), "br") as input: - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - - reader = results.ResultsReader(input) - N_results = 0 - N_messages = 0 - for r in reader: - from collections import OrderedDict - - self.assertTrue( - isinstance(r, OrderedDict) or isinstance(r, results.Message) - ) - if isinstance(r, OrderedDict): - N_results += 1 - elif isinstance(r, results.Message): - N_messages += 1 - self.assertEqual(N_results, 3) - self.assertEqual(N_messages, 3) - - def test_xmldtd_filter(self): - s = results._XMLDTDFilter( - BytesIO( - b"""Other stuf ab""" - ) - ) - self.assertEqual(s.read(), b"Other stuf ab") - - def test_concatenated_stream(self): - s = results._ConcatenatedStream( - BytesIO(b"This is a test "), BytesIO(b"of the emergency broadcast system.") - ) - self.assertEqual(s.read(3), b"Thi") - self.assertEqual(s.read(20), b"s is a test of the e") - self.assertEqual(s.read(), b"mergency broadcast system.") - - if __name__ == "__main__": unittest.main() diff --git a/tests/integration/test_results.py b/tests/integration/test_results.py deleted file mode 100755 index 6d72b5ec6..000000000 --- a/tests/integration/test_results.py +++ /dev/null @@ -1,183 +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. - -import io -from io import BytesIO - -from time import sleep -from tests import testlib -from splunklib import results -import warnings - - -class ResultsTestCase(testlib.SDKTestCase): - def test_read_from_empty_result_set(self): - job = self.service.jobs.create("search index=_internal_does_not_exist | head 2") - while not job.is_done(): - sleep(0.5) - self.assertEqual( - 0, - len( - list( - results.JSONResultsReader( - io.BufferedReader(job.results(output_mode="json")) - ) - ) - ), - ) - - def test_read_normal_results(self): - xml_text = """ - - - - -series -sum(kb) - - - - base lispy: [ AND ] - search context: user='admin', app='search', bs-pathname='/some/path' - - - - twitter - - - 14372242.758775 - - - - - splunkd - - - 267802.333926 - - - - - flurry - - - 12576.454102 - - - - - splunkd_access - - - 5979.036338 - - - - - splunk_web_access - - - 5838.935649 - - - -""".strip() - expected_results = [ - results.Message("DEBUG", "base lispy: [ AND ]"), - results.Message( - "DEBUG", - "search context: user='admin', app='search', bs-pathname='/some/path'", - ), - { - "series": "twitter", - "sum(kb)": "14372242.758775", - }, - { - "series": "splunkd", - "sum(kb)": "267802.333926", - }, - { - "series": "flurry", - "sum(kb)": "12576.454102", - }, - { - "series": "splunkd_access", - "sum(kb)": "5979.036338", - }, - { - "series": "splunk_web_access", - "sum(kb)": "5838.935649", - }, - ] - - self.assert_parsed_results_equals(xml_text, expected_results) - - def test_read_raw_field(self): - xml_text = """ - - - - -_raw - - - - 07-13-2012 09:27:27.307 -0700 INFO Metrics - group=search_concurrency, system total, active_hist_searches=0, active_realtime_searches=0 - - -""".strip() - expected_results = [ - { - "_raw": "07-13-2012 09:27:27.307 -0700 INFO Metrics - group=search_concurrency, system total, active_hist_searches=0, active_realtime_searches=0", - }, - ] - - self.assert_parsed_results_equals(xml_text, expected_results) - - def test_read_raw_field_with_segmentation(self): - xml_text = """ - - - - -_raw - - - - 07-13-2012 09:27:27.307 -0700 INFO Metrics - group=search_concurrency, system total, active_hist_searches=0, active_realtime_searches=0 - - -""".strip() - expected_results = [ - { - "_raw": "07-13-2012 09:27:27.307 -0700 INFO Metrics - group=search_concurrency, system total, active_hist_searches=0, active_realtime_searches=0", - }, - ] - - self.assert_parsed_results_equals(xml_text, expected_results) - - def assert_parsed_results_equals(self, xml_text, expected_results): - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - results_reader = results.ResultsReader(BytesIO(xml_text.encode("utf-8"))) - actual_results = list(results_reader) - self.assertEqual(expected_results, actual_results) - - -if __name__ == "__main__": - import unittest - - unittest.main() diff --git a/uv.lock b/uv.lock index 033055fe4..4eeb38811 100644 --- a/uv.lock +++ b/uv.lock @@ -368,19 +368,6 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/55/32/05385c86d6ca9ab0b4d5bb442d2e3d85e727939a11f3e163fc776ce5eb40/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:f5414a788ecc6ee6bc58560e85ca624258a55ca434884445440a810796ea0e0b" }, ] -[[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" @@ -1501,10 +1488,10 @@ wheels = [ 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'" }, + { name = "six" }, ] [package.dev-dependencies] @@ -1543,8 +1530,8 @@ test = [ [package.metadata] requires-dist = [ - { name = "deprecation" }, { name = "python-dotenv" }, + { name = "six" }, ] [package.metadata.requires-dev] From 150b1f39d7f8cb4e58cfb3bf58424f63d8696439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20J=C4=99drecki?= Date: Fri, 26 Sep 2025 17:13:12 +0200 Subject: [PATCH 18/30] Replace `tox` with `pytest` and `Makefile`, cleanup in `docs/Makefile` (#669) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove unused code from docs Makefile * Fix missing backtick in docstring * Remove tox * Add programmatic year setting in docs * Move python version string to env, use dependency groups in pre-release.yml * Sync pre-release.yml to release.yml * Add "Python 3 Only" classifier * Update missed deps installation statement in test.yml * Run linter on CHANGELOG.md, fix typos * Capitalize some terms in CHANGELOG * Add unfortunate workaround for deps installation in Python 3.7 in CI * Unify naming in GH Action workflows * Fix missing dependencies in test suite 🤦 * Use latest release of splunk-app-collection * Separate .PHONY-ies as they look better; Update README.md * uv.lock * More cleanup in `Makefile`s * Fix "Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`." * Refactor README * Refactor README #2 * Finish cleanup in Makefile * Spruce up example app names etc. * Separate app dependency install for Python 3.7 and the rest * Rewrite installation section in README * Drop `deprecation` from dependencies in test.yml * PR review changes * Another README refactor * Run `mbake` on `Makefile`s * Pin dependencies in `pyproject.toml` wherever possible * Adjust details in README * Retires -> retries * Last adjustments to README * Adjust docstring in client.py * PR review adjustments --- .coveragerc | 1 - .github/workflows/pre-release.yml | 18 +- .github/workflows/release.yml | 30 +- .github/workflows/test.yml | 18 +- CHANGELOG.md | 604 +++--- Makefile | 70 +- README.md | 208 +- docker-compose.yml | 2 +- docs/Makefile | 162 +- docs/conf.py | 6 +- pyproject.toml | 44 +- splunklib/binding.py | 6 +- splunklib/client.py | 8 +- .../test_apps/eventing_app/bin/eventingcsc.py | 4 +- .../test_apps/eventing_app/default/app.conf | 4 +- .../generating_app/bin/generatingcsc.py | 2 +- .../test_apps/generating_app/default/app.conf | 4 +- .../modularinput_app/bin/modularinput.py | 5 + .../modularinput_app/default/app.conf | 12 +- .../reporting_app/bin/reportingcsc.py | 12 +- .../test_apps/reporting_app/default/app.conf | 4 +- .../test_apps/streaming_app/default/app.conf | 4 +- tests/system/test_csc_apps.py | 16 +- uv.lock | 1758 +++++++++++++---- 24 files changed, 1924 insertions(+), 1078 deletions(-) diff --git a/.coveragerc b/.coveragerc index 2116a46da..a7cba45f3 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,4 +1,3 @@ [run] omit = - .tox/* tests/* diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 62f59f9d8..e51050b1f 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -1,9 +1,11 @@ -name: CD +name: Publish SDK to Test PyPI on: [workflow_dispatch] +env: + PYTHON_VERSION: 3.9 + jobs: - test-pypi-deploy: - name: Deploy to Test PyPI + publish-sdk-test-pypi: runs-on: ubuntu-latest permissions: id-token: write @@ -12,15 +14,15 @@ jobs: steps: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - - name: Set up Python + - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: - python-version: 3.9 + python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies - run: pip install build - - name: Build package + run: python -m pip install . --group build + - name: Build packages for distribution run: python -m build - - name: Publish package to Test PyPI + - name: Publish packages to Test PyPI uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e with: repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bf10590a3..ef553b003 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,11 +1,13 @@ -name: Release +name: Publish SDK to PyPI on: release: types: [published] +env: + PYTHON_VERSION: 3.9 + jobs: - publish: - name: Deploy release to PyPI + publish-sdk-pypi: runs-on: ubuntu-latest permissions: id-token: write @@ -14,24 +16,20 @@ jobs: steps: - name: Checkout source uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - - name: Set up Python + - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: - python-version: 3.9 + python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies - run: pip install build - - name: Build package + run: python -m pip install . --group release + - name: Build packages for distribution run: python -m build - - name: Publish package to PyPI + - name: Publish packages to PyPI uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e - - name: Install tox - run: pip install tox - - name: Generate API docs - run: | - rm -rf ./docs/_build - tox -e docs - - name: Docs Upload + - name: Generate API reference + run: make -C ./docs html + - name: Upload docs artifact uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8 with: - name: python_sdk_docs + name: python-sdk-docs path: docs/_build/html diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6aaffa897..1e3bce034 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,7 +2,7 @@ name: Python CI on: [push, workflow_dispatch] jobs: - build: + run-test-suite: runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -23,13 +23,17 @@ jobs: steps: - name: Checkout code uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 - - name: Run docker compose + - name: Launch Splunk Docker instance run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - - name: Setup Python + - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: python-version: ${{ matrix.python-version }} - - name: Install tox - run: pip install tox - - name: Test Execution - run: tox -e py -- ./tests + - name: (Python 3.7) Install dependencies + if: ${{ matrix.python-version == '3.7' }} + run: python -m pip install python-dotenv pytest + - name: (Python >= 3.9) Install dependencies + if: ${{ matrix.python-version != '3.7' }} + run: python -m pip install . --group test + - name: Run entire test suite + run: python -m pytest ./tests diff --git a/CHANGELOG.md b/CHANGELOG.md index 2514e95a8..a32186226 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,283 +3,310 @@ ## Version 2.1.1 ### Changes -* [#623](https://github.com/splunk/splunk-sdk-python/pull/623/) Additional logging in custom search commands -* [#622](https://github.com/splunk/splunk-sdk-python/pull/622/) Check if developer added custom map method in reporting command -* Code reformatting and linting, improvements to github acitons + +- [#623](https://github.com/splunk/splunk-sdk-python/pull/623/) Additional logging in Custom Search Commands +- [#622](https://github.com/splunk/splunk-sdk-python/pull/622/) Check if developer added custom map method in reporting command +- Code reformatting and linting, improvements to GitHub Actions ## 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 `Context` 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.7 and 3.9 +- 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 @@ -289,10 +316,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 initialization. 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 @@ -300,189 +327,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 @@ -492,10 +518,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 stream-like, so that it can be wrapped in an io.BufferedReader to realize a significant performance gain. - *Example usage* + _Example usage_ ``` import io @@ -525,7 +551,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. @@ -538,13 +564,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 @@ -559,7 +585,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. @@ -567,93 +593,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: @@ -661,46 +687,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 returning 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 @@ -709,60 +736,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 @@ -784,16 +809,16 @@ Previously, entity state values where retrieved with a call to `Entity.read` which would issue a round-trip to the server and return a dictionary of values corresponding to the entity `content` field and, in a similar way, a call to `Entity.readmeta` would issue in a round-trip and return a dictionary -contianing entity metadata values. +containing entity metadata values. 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. @@ -802,7 +827,7 @@ and updates the local, cached state record. entire state record and not just the content field. Note that `read` does not update the cached state record. The `read` method is basically a thin wrapper over the corresponding HTTP GET that returns a parsed entity state -record instaed of the raw HTTP response. +record instead of the raw HTTP response. The entity _callable_ returns the `content` field as before, but now returns the value from the local state cache instead of issuing a round-trip as it @@ -819,11 +844,15 @@ refreshing the entity. The `update` and action methods are all designed to support a _fluent_ style of programming, so for example you can write: - entity.update(attr=value).refresh() +```python +entity.update(attr=value).refresh() +``` And - entity.disable().refresh() +```python +entity.disable().refresh() +``` An important benefit and one of the primary motivations for this change is that iterating a collection of entities now results in a single round-trip @@ -854,31 +883,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 +- #### 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/Makefile b/Makefile index fe439c79a..8f2a1f41a 100644 --- a/Makefile +++ b/Makefile @@ -1,56 +1,48 @@ -RESET_COLOR=\033[0m -GREEN_COLOR=\033[32;01m - -CONTAINER_NAME := 'splunk' +CONTAINER_NAME := "splunk" .PHONY: docs docs: - @echo "$(GREEN_COLOR)==> docs $(RESET_COLOR)" - @rm -rf ./docs/_build - @tox -e docs - @cd ./docs/_build/html && zip -r ../docs_html.zip . -x ".*" -x "__MACOSX" - @echo "$(ATTN_COLOR)==> Docs pages can be found at ./docs/_build/html, docs bundle available at ./docs/_build/docs_html.zip" + @make -C ./docs html .PHONY: test test: - @echo "$(GREEN_COLOR)==> test $(RESET_COLOR)" - @tox -e py -- ./tests + @python -m pytest ./tests .PHONY: test-unit -test: - @echo "$(GREEN_COLOR)==> test $(RESET_COLOR)" - @tox -e py -- ./tests/unit +test-unit: + @python -m pytest ./tests/unit .PHONY: test-integration -test: - @echo "$(GREEN_COLOR)==> test $(RESET_COLOR)" - @tox -e py -- ./tests/integration ./tests/system +test-integration: + @python -m pytest ./tests/integration ./tests/system -.PHONY: up -up: - @echo "$(GREEN_COLOR)==> up $(RESET_COLOR)" +.PHONY: docker-up +docker-up: @docker-compose up -d -.PHONY: remove -remove: - @echo "$(GREEN_COLOR)==> rm $(RESET_COLOR)" - @docker-compose rm -f -s - -.PHONY: wait_up -wait_up: - @echo "$(GREEN_COLOR)==> wait_up $(RESET_COLOR)" - @for i in `seq 0 180`; do if docker exec -it $(CONTAINER_NAME) /sbin/checkstate.sh &> /dev/null; then break; fi; printf "\rWaiting for Splunk for %s seconds..." $$i; sleep 1; done - -.PHONY: down -down: - @echo "$(GREEN_COLOR)==> down $(RESET_COLOR)" +.PHONY: docker-ensure-up +docker-ensure-up: + @for i in `seq 0 180`; do \ + if docker exec -it $(CONTAINER_NAME) /bin/bash -c "/sbin/checkstate.sh &> /dev/null"; then \ + break; \ + fi; \ + printf "\rWaiting for Splunk for %s seconds..." $$i; \ + sleep 1; \ + done + +.PHONY: docker-start +docker-start: docker-up docker-ensure-up + +.PHONY: docker-down +docker-down: @docker-compose stop -.PHONY: start -start: up wait_up +.PHONY: docker-restart +docker-restart: docker-down docker-start -.PHONY: restart -restart: down start +.PHONY: docker-remove +docker-remove: + @docker-compose rm -f -s -.PHONY: refresh -refresh: remove start +.PHONY: docker-refresh +docker-refresh: docker-remove docker-start \ No newline at end of file diff --git a/README.md b/README.md index 8649ee050..6a2b8a43b 100644 --- a/README.md +++ b/README.md @@ -3,47 +3,47 @@ [![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) ![License](https://img.shields.io/badge/license-Apache%202.0-informational.svg) -The Splunk Enterprise Software Development Kit (SDK) for Python contains library code designed to enable developers to build applications using the Splunk platform. +The [Splunk Enterprise](https://www.splunk.com/en_us/products/splunk-enterprise.html) Software Development Kit (SDK) for Python is intended to be the primary way for developers to communicate with the Splunk platform's REST API. -Splunk is a search engine and analytic environment that uses a distributed map-reduce architecture to efficiently index, search, and process large time-varying data sets. +You may be asking: + +- [What are Splunk apps?](https://help.splunk.com/en/splunk-enterprise/administer/admin-manual/10.0/meet-splunk-apps/apps-and-add-ons) +- [What can Splunk apps do?](https://dev.splunk.com/enterprise/docs/developapps/extensionpoints) +- [How do I write Splunk apps?](https://dev.splunk.com/enterprise/docs/welcome) +- [Where does the SDK fit in all this?](https://dev.splunk.com/enterprise/docs/devtools/python/sdk-python/) +- What's the difference between `import splunklib` and `import splunk`? + - This repo contains `splunklib`. `splunk` is an internal library bundled with the Splunk platform. ## Getting started -### Requirements +### Pre-requirements -#### Python compatibility +#### Python -Splunk Enterprise SDK for Python is tested only with Python 3.7, 3.9 and 3.13. Latest version is always recommended. +Please use the latest Python version supported when developing. Splunk Enterprise SDK for Python is tested with Python 3.9 and 3.13. #### Splunk Enterprise -This SDK is only tested with Splunk versions supported in the [Splunk Software Support Policy](https://www.splunk.com/en_us/legal/splunk-software-support-policy.html) +This SDK is only tested with Splunk Enterprise versions supported in the [Splunk Software Support Policy](https://www.splunk.com/en_us/legal/splunk-software-support-policy.html). [Go here](http://www.splunk.com/download) to get Splunk Enterprise. -For more information, see the Splunk Enterprise [Installation Manual](https://docs.splunk.com/Documentation/Splunk/latest/Installation). - ### Installing the SDK -[uv](https://docs.astral.sh/uv/) is our tool of choice for development. Usually that means creating a project with `uv init` and installing the SDK with `uv add splunk-sdk`. When in doubt, consult `uv` docs. +Using `pip` is the easiest way to pull the SDK into your project. `poetry` and `uv` should work just as well. A project-specific virtualenv is recommended. -If you prefer not using `uv`, the standard Python package installation method still works: +In your app's project folder: ```sh python -m venv .venv source .venv/bin/activate -python -m pip install splunk-sdk +python -m pip install splunk-sdk --target bin/ ``` -#### Create an .env file (optional) - -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 authentication. For convenience during development, you can store these arguments as key-value pairs in a `.env` file. - -A file called `.env.template` exists in the root of this repository. Duplicate it as `.env`, then adjust it to your match your environment. - -> **WARNING:** The `.env` file isn't part of the Splunk platform. This is **not** the place for production credentials! +Install your dependencies into `bin/` if bundling with an app, otherwise you can skip it. +[See docs](https://dev.splunk.com/enterprise/docs/developapps/createapps/appanatomy/) on more details about packaging additional dependencies with your app. -### SDK usage examples +### Using SDK in apps The easiest and most effective way of learning how to use this library should be reading through the apps in our test suite, as well as the [splunk-app-examples](https://github.com/splunk/splunk-app-examples) repository. They show how to programmatically interact with the Splunk platform in a variety of scenarios - from basic metadata retrieval, one-shot searching and managing saved searches to building complete applications with modular inputs and custom search commands. @@ -75,140 +75,132 @@ import splunklib.client as client service = client.connect(host=, token=, autologin=True) ``` -### Customization +#### Creating Custom Search Commands -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. -If you're having issues with field retention, make sure to use `add_field(record, fieldname, value)` method from SearchCommand to add a new field and value to the record. +TODO: Link docs about this - +##### Accessing instance metadata in CSCs -#### Do +- The `service` metadata object is created from the `splunkd` URI and session key passed to the command invocation the search results info file and is available in `MyCommand`.`generate`/`transform`/`stream`/`reduce` methods depending on the Custom Search Command. ```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 +from splunklib.searchcommands import StreamingCommand + +class MyCommand(StreamingCommand): + def get_metadata(self): + # Access instance metadata + service = self.service + # Access Splunk service info + info = service.info + # [...] ``` -#### Don't +##### Field retention in CSC -```python +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. +If you're having issues with field retention, make sure to use `add_field(record, fieldname, value)` method from `SearchCommand` to add a new field and value to the record. + +```diff class CustomStreamingCommand(StreamingCommand): def stream(self, records): for index, record in enumerate(records): if index % 1 == 0: - record["odd_record"] = "true" +- record["odd_record"] = "true" ++ self.add_field(record, "odd_record", "true") yield record ``` -### Customization for Generating Custom Search Command +##### Using a helper method to generate events properly - 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 comma-separated key=value pairs (mentioned in below example). - - - -Do +- Make sure to use `gen_record()` method from `SearchCommand` to add a new record and pass event data as comma-separated key=value pairs (mentioned in below example). -```python +```diff @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) +- yield {'_time': time.time(), 'one': 1} +- yield {'_time': time.time(), 'two': 2} ++ yield self.gen_record(_time=time.time(), one=1) ++ yield self.gen_record(_time=time.time(), two=2) + ``` -Don't +#### Modular Inputs Example App + +[Go here](https://help.splunk.com/en/splunk-enterprise/developing-views-and-apps-for-splunk-web/10.0/modular-inputs/modular-inputs-basic-example) to find out more about setting up a Modular Input. + +#### Accessing instance metadata in scripts + +- The `service` metadata object is created from the `splunkd` URI and session key passed to the command invocation on the modular input stream respectively, and is available as soon as the `.stream_events()` method is called. ```python -@Configuration() -class GeneratorTest(GeneratingCommand): - def generate(self): - yield {'_time': time.time(), 'one': 1} - yield {'_time': time.time(), 'two': 2} +from splunklib.modularinput import Script + +class MyScript(Script): + def stream_events(self, inputs, ew): + # Access instance metadata + service = self.service + # Access Splunk service info + info = service.info + # [...] ``` -### Access metadata of Modular Inputs app example +#### Accessing Modular Inputs' metadata -- In `stream_events()` one 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()` you can access Modular Input app metadata from `InputDefinition` object +- See the [Modular Input App example](https://github.com/splunk/splunk-app-examples/blob/master/modularinputs/python/github_commits/bin/github_commits.py) 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, an InputDefinition`object data is used + # Access the modular input app's metadata (like server_host, server_uri, etc) from `InputDefinition` object server_host = inputs.metadata["server_host"] server_uri = inputs.metadata["server_uri"] 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. - -##### Getting Splunk instance metadata - -```python -def get_metadata(self): - # [...] other code +### Contributions - # Access service object that can be used to connect Splunk Service - service = self.service - # Getting Splunk Service Info - info = service.info -``` +We welcome all 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). -#### Modular Inputs app +#### Testing -- 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. +This repository contains both unit and integration tests. The latter need `docker`/`podman` to work. - ```python - def stream_events(self, inputs, ew): - # other code +##### Create an `.env` file - # access service object that can be used to connect Splunk Service - service = self.service - # to get Splunk Service Info - info = service.info - ``` - -### Running the test suite - -This repo contains a collection of unit and integration tests. +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 authentication. For convenience during development, you can store these arguments as key-value pairs in a `.env` file. -#### Unit tests +A file called `.env.template` exists in the root of this repository. Duplicate it as `.env`, then adjust it to your match your environment. -To run both unit and integration tests: +> **WARNING:** The `.env` file isn't part of the Splunk platform. This is **not** the place for production credentials! ```sh +# Run entire test suite: make test +# Run only the unit tests: +make test-unit ``` -#### Integration tests +##### Integration tests > NOTE: Before running the integration tests, 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 suite against a production instance of Splunk! It will run just fine with the free Splunk license. - -##### Prerequisites - -- `docker`/`podman` -- `tox` - ```sh -SPLUNK_VERSION=latest && make start +# This command starts a Splunk Docker container +# and waits until it reaches an operational state. +SPLUNK_VERSION=latest make docker-start + +# Run the integration tests: +make test-integration ``` -### Optional: Set up logging for splunklib +> Do not run the test suite against a production instance of Splunk! It will run just fine with the free Splunk license. + +### Setting 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. @@ -223,17 +215,6 @@ from splunklib import setup_logging setup_logging(logging.DEBUG) ``` -### Changelog - -The [CHANGELOG](CHANGELOG.md) contains a description of changes for each version of the SDK. For the latest version, see the [CHANGELOG.md](https://github.com/splunk/splunk-sdk-python/blob/master/CHANGELOG.md) on GitHub. - -### Branches - -The `master` branch represents a stable and released version of the SDK. -`develop` is where development between releases is happening. - -To learn more about our branching model, see [Branching Model](https://github.com/splunk/splunk-sdk-python/wiki/Branching-Model) on GitHub. - ## Documentation and resources | Resource | Description | @@ -255,11 +236,6 @@ Stay connected with other developers building on the Splunk platform. - [Community Slack](https://splunk-usergroups.slack.com/app_redirect?channel=appdev) - [Splunk Answers](https://community.splunk.com/t5/Splunk-Development/ct-p/developer-tools) -### Contributions - -We welcome all 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). - ### 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. @@ -268,10 +244,10 @@ If you are not covered under an existing maintenance/support agreement, you can - 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 . + We would also like to know why you modified the core library, so please send feedback to [devinfo@splunk.com](mailto:devinfo@splunk.com). - File any issues on [GitHub](https://github.com/splunk/splunk-sdk-python/issues). ### Contact us -You can reach the Splunk Developer Platform team at . +You can reach the Splunk Developer Platform team at [devinfo@splunk.com](mailto:devinfo@splunk.com). diff --git a/docker-compose.yml b/docker-compose.yml index a82d16a7f..f2c52522d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: - 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/download/v1.1.0/sdkappcollection.tgz + - SPLUNK_APPS_URL=https://github.com/splunk/sdk-app-collection/releases/latest/download/sdkappcollection.tgz ports: - "8000:8000" - "8088:8088" diff --git a/docs/Makefile b/docs/Makefile index 0e566ae72..10ece5c7d 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,156 +1,18 @@ -# Makefile for Sphinx documentation +# +# Makefile for Sphinx docs generation # -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" +SPHINXBUILD = sphinx-build +BUILDDIR = ./_build +HTMLDIR = ${BUILDDIR}/html -clean: - -rm -rf $(BUILDDIR)/* +# Internal variables +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees . +.PHONY: html html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - sh munge_links.sh $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - sh munge_links.sh $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - sh munge_links.sh $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @rm -rf $(BUILDDIR) + @$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(HTMLDIR) + @sh munge_links.sh $(HTMLDIR) @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SplunkPythonSDK.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SplunkPythonSDK.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/SplunkPythonSDK" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SplunkPythonSDK" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." + @echo "Build finished. HTML pages available at docs/$(HTMLDIR)." \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 650e63cca..25c60a3df 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -11,7 +11,7 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys, os +from datetime import datetime import splunklib @@ -33,7 +33,7 @@ templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = ".rst" +source_suffix = {".rst": "restructuredtext"} # The encoding of source files. # source_encoding = 'utf-8-sig' @@ -43,7 +43,7 @@ # General information about the project. project = "Splunk SDK for Python" -copyright = "2024, Splunk Inc" +copyright = f"{datetime.now().year}, Splunk Inc." # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/pyproject.toml b/pyproject.toml index c56e21423..a24a09b75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,8 +14,10 @@ readme = "README.md" requires-python = ">=3.7" license = { text = "Apache-2.0" } authors = [{ name = "Splunk, Inc.", email = "devinfo@splunk.com" }] +keywords = ["splunk", "sdk"] classifiers = [ "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.13", @@ -27,17 +29,21 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Application Frameworks", ] -dependencies = ["python-dotenv"] -optional-dependencies = { compat = ["six"] } +dependencies = ["python-dotenv>=0.21.1"] +optional-dependencies = { compat = ["six>=1.17.0"] } [dependency-groups] -test = ["tox"] -lint = ["mypy", "ruff"] -build = ["build", "twine"] +build = ["build>=1.1.1", "twine>=4.0.2"] +# Can't pin `sphinx` otherwise installation fails on python>=3.7 +docs = ["sphinx", "jinja2>=3.1.6"] +lint = ["mypy>=1.4.1", "ruff>=0.13.1"] +test = ["pytest>=7.4.4", "pytest-cov>=4.1.0"] +release = [{ include-group = "build" }, { include-group = "docs" }] dev = [ { include-group = "test" }, { include-group = "lint" }, { include-group = "build" }, + { include-group = "docs" }, ] [build-system] @@ -60,31 +66,3 @@ select = [ "ANN", # flake8 type annotations "RUF", # ruff-specific rules ] - -# ! TODO: Migrate to new config paradigm -# https://tox.wiki/en/latest/config.html#pyproject-toml-ini -[tool.tox] -legacy_tox_ini = """ -[tox] -envlist = docs,py{37,39,313} -skipsdist = {env:TOXBUILD:false} - -[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 --cov --cov-config=.coveragerc} {posargs} - -[testenv:docs] -description = Build the static HTML docs -basepython = python3.9 -deps = sphinx >= 1.7.5, < 2 - jinja2 < 3.1.0 -commands = make -C docs/ html -""" diff --git a/splunklib/binding.py b/splunklib/binding.py index 1d0b9722f..4785309d1 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -510,9 +510,9 @@ class Context: :type splunkToken: ``string`` :param headers: List of extra HTTP headers to send (optional). :type headers: ``list`` of 2-tuples. - :param retires: Number of retries for each HTTP connection (optional, the default is 0). - NOTE THAT THIS MAY INCREASE THE NUMBER OF ROUND TRIP CONNECTIONS TO THE SPLUNK SERVER AND BLOCK THE - CURRENT THREAD WHILE RETRYING. + :param retries: Number of retries for each HTTP connection (optional, the default is 0). + NOTE: THIS MAY INCREASE THE NUMBER OF ROUNDTRIP CONNECTIONS + TO THE SPLUNK SERVER AND BLOCK THE CURRENT THREAD WHILE RETRYING. :type retries: ``int`` :param retryDelay: How long to wait between connection attempts if `retries` > 0 (optional, defaults to 10s). :type retryDelay: ``int`` (in seconds) diff --git a/splunklib/client.py b/splunklib/client.py index a75bf945f..2ce9a90d5 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -344,8 +344,8 @@ def connect(**kwargs): :type username: ``string`` :param `password`: The password for the Splunk account. :type password: ``string`` - :param retires: Number of retries for each HTTP connection (optional, the default is 0). - NOTE THAT THIS MAY INCREASE THE NUMBER OF ROUND TRIP CONNECTIONS TO THE SPLUNK SERVER. + :param retries: Number of retries for each HTTP connection (optional, the default is 0). + NOTE: THIS MAY INCREASE THE NUMBER OF ROUNDTRIP CONNECTIONS TO THE SPLUNK SERVER. :type retries: ``int`` :param retryDelay: How long to wait between connection attempts if `retries` > 0 (optional, defaults to 10s). :type retryDelay: ``int`` (in seconds) @@ -424,8 +424,8 @@ class Service(_BaseService): :param `password`: The password, which is used to authenticate the Splunk instance. :type password: ``string`` - :param retires: Number of retries for each HTTP connection (optional, the default is 0). - NOTE THAT THIS MAY INCREASE THE NUMBER OF ROUND TRIP CONNECTIONS TO THE SPLUNK SERVER. + :param retries: Number of retries for each HTTP connection (optional, the default is 0). + NOTE: THIS MAY INCREASE THE NUMBER OF ROUNDTRIP CONNECTIONS TO THE SPLUNK SERVER. :type retries: ``int`` :param retryDelay: How long to wait between connection attempts if `retries` > 0 (optional, defaults to 10s). :type retryDelay: ``int`` (in seconds) diff --git a/tests/system/test_apps/eventing_app/bin/eventingcsc.py b/tests/system/test_apps/eventing_app/bin/eventingcsc.py index c162195f5..94cfee895 100644 --- a/tests/system/test_apps/eventing_app/bin/eventingcsc.py +++ b/tests/system/test_apps/eventing_app/bin/eventingcsc.py @@ -28,8 +28,8 @@ @Configuration() class EventingCSC(EventingCommand): """ - The eventingapp command filters records from the events stream returning only those for which the status is same - as search query. + The `eventingcsc` command filters records from the events stream + returning only those for which the status is same as search query. Example: diff --git a/tests/system/test_apps/eventing_app/default/app.conf b/tests/system/test_apps/eventing_app/default/app.conf index 5ecf83514..16c6d2745 100644 --- a/tests/system/test_apps/eventing_app/default/app.conf +++ b/tests/system/test_apps/eventing_app/default/app.conf @@ -7,10 +7,10 @@ is_configured = 0 [ui] is_visible = 1 -label = Eventing App +label = [EXAMPLE] Eventing CSC App [launcher] -description = Eventing custom search commands example +description = Example app for eventing Custom Search Commands version = 1.0.0 author = Splunk diff --git a/tests/system/test_apps/generating_app/bin/generatingcsc.py b/tests/system/test_apps/generating_app/bin/generatingcsc.py index dd69ad245..e4d03f6bf 100644 --- a/tests/system/test_apps/generating_app/bin/generatingcsc.py +++ b/tests/system/test_apps/generating_app/bin/generatingcsc.py @@ -30,7 +30,7 @@ @Configuration() class GeneratingCSC(GeneratingCommand): """ - The generatingapp command generates a specific number of records. + The `generatingcsc` command generates a specific number of records. Example: diff --git a/tests/system/test_apps/generating_app/default/app.conf b/tests/system/test_apps/generating_app/default/app.conf index 8a3b21507..5b6d2f0b5 100644 --- a/tests/system/test_apps/generating_app/default/app.conf +++ b/tests/system/test_apps/generating_app/default/app.conf @@ -7,10 +7,10 @@ is_configured = 0 [ui] is_visible = 1 -label = Generating App +label = [EXAMPLE] Generating CSC App [launcher] -description = Generating custom search commands example +description = Example app for generating Custom Search Commands version = 1.0.0 author = Splunk diff --git a/tests/system/test_apps/modularinput_app/bin/modularinput.py b/tests/system/test_apps/modularinput_app/bin/modularinput.py index 755d92d35..ee525faf2 100755 --- a/tests/system/test_apps/modularinput_app/bin/modularinput.py +++ b/tests/system/test_apps/modularinput_app/bin/modularinput.py @@ -21,6 +21,11 @@ class ModularInput(Script): + """ + This app provides an example of a modular input that + can be used in Settings => Data inputs => Local inputs => modularinput + """ + endpoint_arg = "endpoint" def get_scheme(self): diff --git a/tests/system/test_apps/modularinput_app/default/app.conf b/tests/system/test_apps/modularinput_app/default/app.conf index 4a67e44bf..809d96fee 100644 --- a/tests/system/test_apps/modularinput_app/default/app.conf +++ b/tests/system/test_apps/modularinput_app/default/app.conf @@ -1,14 +1,18 @@ +# +# Splunk app configuration file +# + [install] is_configured = 0 [ui] is_visible = 1 -label = Modular Input test app +label = [EXAMPLE] Modular Input Test App [launcher] -author=Splunk -description=Modular input test app -version = 1.0 +description = Example app for Modular Inputs +version = 1.0.0 +author = Splunk [package] check_for_updates = false diff --git a/tests/system/test_apps/reporting_app/bin/reportingcsc.py b/tests/system/test_apps/reporting_app/bin/reportingcsc.py index 3a9907119..f676e691d 100644 --- a/tests/system/test_apps/reporting_app/bin/reportingcsc.py +++ b/tests/system/test_apps/reporting_app/bin/reportingcsc.py @@ -29,13 +29,17 @@ @Configuration(requires_preop=True) class ReportingCSC(ReportingCommand): """ - The reportingapp command returns a count of students having higher total marks than cutoff marks. + The `reportingcsc` command returns a count of students + having higher total marks than cutoff marks. Example: + ``` + | makeresults count=10 + | eval math=random()%100, eng=random()%100, cs=random()%100 + | reportingcsc cutoff=150 math eng cs + ``` - ``| makeresults count=10 | eval math=random()%100, eng=random()%100, cs=random()%100 | reportingcsc cutoff=150 math eng cs`` - - returns a count of students out of 10 having a higher total marks than cutoff. + Returns a count of students out of 10 having a higher total marks than cutoff. """ cutoff = Option(require=True, validate=validators.Integer(0)) diff --git a/tests/system/test_apps/reporting_app/default/app.conf b/tests/system/test_apps/reporting_app/default/app.conf index c812fb3d4..ffa586304 100644 --- a/tests/system/test_apps/reporting_app/default/app.conf +++ b/tests/system/test_apps/reporting_app/default/app.conf @@ -7,10 +7,10 @@ is_configured = 0 [ui] is_visible = 1 -label = Reporting App +label = [EXAMPLE] Reporting CSC App [launcher] -description = Reporting custom search commands example +description = Example app for reporting Custom Search Commands version = 1.0.0 author = Splunk diff --git a/tests/system/test_apps/streaming_app/default/app.conf b/tests/system/test_apps/streaming_app/default/app.conf index a057ed9c1..287c570c4 100644 --- a/tests/system/test_apps/streaming_app/default/app.conf +++ b/tests/system/test_apps/streaming_app/default/app.conf @@ -7,10 +7,10 @@ is_configured = 0 [ui] is_visible = 1 -label = Streaming App +label = [EXAMPLE] Streaming CSC App [launcher] -description = Streaming custom search commands example +description = Example app for streaming Custom Search Commands version = 1.0.0 author = Splunk diff --git a/tests/system/test_csc_apps.py b/tests/system/test_csc_apps.py index 2b71afe8a..e269be9df 100755 --- a/tests/system/test_csc_apps.py +++ b/tests/system/test_csc_apps.py @@ -59,8 +59,8 @@ def test_metadata(self): self.assertEqual(content.author, "Splunk") self.assertEqual(content.configured, "0") - self.assertEqual(content.description, "Eventing custom search commands example") - self.assertEqual(content.label, "Eventing App") + self.assertEqual(content.label, "[EXAMPLE] Eventing CSC App") + self.assertEqual(content.description, "Example app for eventing Custom Search Commands") self.assertEqual(content.version, "1.0.0") self.assertEqual(content.visible, "1") @@ -135,10 +135,10 @@ def test_metadata(self): self.assertEqual(content.author, "Splunk") self.assertEqual(content.configured, "0") + self.assertEqual(content.label, "[EXAMPLE] Generating CSC App") self.assertEqual( - content.description, "Generating custom search commands example" + content.description, "Example app for generating Custom Search Commands" ) - self.assertEqual(content.label, "Generating App") self.assertEqual(content.version, "1.0.0") self.assertEqual(content.visible, "1") @@ -189,10 +189,10 @@ def test_metadata(self): self.assertEqual(content.author, "Splunk") self.assertEqual(content.configured, "0") + self.assertEqual(content.label, "[EXAMPLE] Reporting CSC App") self.assertEqual( - content.description, "Reporting custom search commands example" + content.description, "Example app for reporting Custom Search Commands" ) - self.assertEqual(content.label, "Reporting App") self.assertEqual(content.version, "1.0.0") self.assertEqual(content.visible, "1") @@ -267,10 +267,10 @@ def test_metadata(self): self.assertEqual(content.author, "Splunk") self.assertEqual(content.configured, "0") + self.assertEqual(content.label, "[EXAMPLE] Streaming CSC App") self.assertEqual( - content.description, "Streaming custom search commands example" + content.description, "Example app for streaming Custom Search Commands" ) - self.assertEqual(content.label, "Streaming App") self.assertEqual(content.version, "1.0.0") self.assertEqual(content.visible, "1") diff --git a/uv.lock b/uv.lock index 4eeb38811..ebef68d66 100644 --- a/uv.lock +++ b/uv.lock @@ -2,12 +2,84 @@ version = 1 revision = 3 requires-python = ">=3.7" resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", "python_full_version < '3.8'", ] +[[package]] +name = "alabaster" +version = "0.7.13" +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/94/71/a8ee96d1fd95ca04a0d2e2d9c4081dac4c2d2b12f7ddb899c8cb9bfd1532/alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/88/c7083fc61120ab661c5d0b82cb77079fc1429d3f913a456c1c82cf4658f7/alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3" }, +] + +[[package]] +name = "alabaster" +version = "0.7.16" +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/c9/3e/13dd8e5ed9094e734ac430b5d0eb4f2bb001708a8b7856cbf8e084e001ba/alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92" }, +] + +[[package]] +name = "alabaster" +version = "1.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b" }, +] + +[[package]] +name = "babel" +version = "2.14.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "pytz", marker = "python_full_version < '3.8'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e2/80/cfbe44a9085d112e983282ee7ca4c00429bc4d1ce86ee5f4e60259ddff7f/Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0d/35/4196b21041e29a42dc4f05866d0c94fa26c9da88ce12c38c2265e42c82fb/Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287" }, +] + +[[package]] +name = "babel" +version = "2.17.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "pytz", marker = "python_full_version == '3.8.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2" }, +] + [[package]] name = "backports-tarfile" version = "1.2.0" @@ -73,7 +145,8 @@ name = "build" version = "1.3.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ @@ -88,32 +161,6 @@ 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.2.0" -source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] -sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9d/61/e4fad8155db4a04bfb4734c7c8ff0882f078f24294d42798b3568eb63bff/cachetools-6.2.0.tar.gz", hash = "sha256:38b328c0889450f05f5e120f56ab68c8abaf424e1275522b138ffc93253f7e32" } -wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6c/56/3124f61d37a7a4e7cc96afc5492c78ba0cb551151e530b54669ddd1436ef/cachetools-6.2.0-py3-none-any.whl", hash = "sha256:1c76a8960c0041fcc21097e357f882197c79da0dbff766e7317890a65d7d8ba6" }, -] - [[package]] name = "certifi" version = "2025.8.3" @@ -172,12 +219,10 @@ name = "cffi" version = "1.17.1" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] dependencies = [ - { name = "pycparser", version = "2.22", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "pycparser", version = "2.23", 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/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824" } wheels = [ @@ -227,12 +272,69 @@ wheels = [ ] [[package]] -name = "chardet" -version = "5.2.0" +name = "cffi" +version = "2.0.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" }, +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "pycparser", version = "2.23", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and implementation_name != 'PyPy'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9b/13/c92e36358fbcc39cf0962e83223c9522154ee8630e1df7c0b3a39a8124e2/cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/15/12/a7a79bd0df4c3bff744b2d7e52cc1b68d5e7e427b384252c42366dc1ecbc/cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/ad/5c51c1c7600bdd7ed9a24a203ec255dccdd0ebf4527f7b922a0bde2fb6ed/cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/32/f2/81b63e288295928739d715d00952c8c6034cb6c6a516b17d37e0c8be5600/cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1f/74/cc4096ce66f5939042ae094e2e96f53426a979864aa1f96a621ad128be27/cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e8/be/f6424d1dc46b1091ffcc8964fa7c0ab0cd36839dd2761b49c90481a6ba1b/cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f7/e0/dda537c2309817edf60109e39265f24f24aa7f050767e22c98c53fe7f48b/cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/e7/7c769804eb75e4c4b35e658dba01de1640a351a9653c3d49ca89d16ccc91/cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322" }, ] [[package]] @@ -330,13 +432,298 @@ 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 = "coverage" +version = "7.2.7" +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/45/8b/421f30467e69ac0e414214856798d4bc32da1336df745e49e49ae5c1e2a8/coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/01/24/be01e62a7bce89bcffe04729c540382caa5a06bee45ae42136c93e2499f5/coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3d/80/7060a445e1d2c9744b683dc935248613355657809d6c6b2716cdf4ca4766/coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/9d/926fce7e03dbfc653104c2d981c0fa71f0572a9ebd344d24c573bd6f7c4f/coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/3a/67f5d18f911abf96857f6f7e4df37ca840e38179e2cc9ab6c0b9c3380f19/coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/bd/1b2331e3a04f4cc9b7b332b1dd0f3a1261dfc4114f8479bebfcc2afee9e8/coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/86/3dbf9be43f8bf6a5ca28790a713e18902b2d884bc5fa9512823a81dff601/coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/91/e8/469ed808a782b9e8305a08bad8c6fa5f8e73e093bda6546c5aec68275bff/coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/8f/4fad1c2ba98104425009efd7eaa19af9a7c797e92d40cd2ec026fa1f58cb/coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/4e/d4e46a214ae857be3d7dc5de248ba43765f60daeb1ab077cb6c1536c7fba/coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1f/e9/d6730247d8dec2a3dddc520ebe11e2e860f0f98cee3639e23de6cf920255/coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c6/fa/529f55c9a1029c840bcc9109d5a15ff00478b7ff550a1ae361f8745f8ad5/coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/d7/cd8fe689b5743fffac516597a1222834c42b80686b99f5b44ef43ccc2a43/coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8c/95/16eed713202406ca0a37f8ac259bbf144c9d24f9b8097a8e6ead61da2dbb/coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c1/49/4d487e2ad5d54ed82ac1101e467e8994c09d6123c91b2a962145f3d262c2/coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/cd/3ce94ad9d407a052dc2a74fbeb1c7947f442155b28264eb467ee78dea812/coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8f/a8/12cc7b261f3082cc299ab61f677f7e48d93e35ca5c3c2f7241ed5525ccea/coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/fa/43b55101f75a5e9115259e8be70ff9279921cb6b17f04c34a5702ff9b1f7/coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/68/5f/d2bd0f02aa3c3e0311986e625ccf97fdc511b52f4f1a063e4f37b624772f/coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ba/92/69c0722882643df4257ecc5437b83f4c17ba9e67f15dc6b77bad89b6982e/coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/96/c12ed0dfd4ec587f3739f53eb677b9007853fd486ccb0e7d5512a27bab2e/coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/d5/52fa1891d1802ab2e1b346d37d349cb41cdd4fd03f724ebbf94e80577687/coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/df/6765898d54ea20e3197a26d26bb65b084deefadd77ce7de946b9c96dfdc5/coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/15/81/b108a60bc758b448c151e5abceed027ed77a9523ecbc6b8a390938301841/coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/61/90/c76b9462f39897ebd8714faf21bc985b65c4e1ea6dff428ea9dc711ed0dd/coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/d6/8cba3bf346e8b1a4fb3f084df7d8cea25a6b6c56aaca1f2e53829be17e9e/coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6e/ea/4a252dc77ca0605b23d477729d139915e753ee89e4c9507630e12ad64a80/coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/5c/d9760ac497c41f9c4841f5972d0edf05d50cad7814e86ee7d133ec4a0ac8/coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/69/8c/26a95b08059db1cbb01e4b0e6d40f2e9debb628c6ca86b78f625ceaf9bab/coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/00/14b00a0748e9eda26e97be07a63cc911108844004687321ddcc213be956c/coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/80/d7/67937c80b8fd4c909fdac29292bc8b35d9505312cff6bcab41c53c5b1df6/coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7a/05/084864fa4bbf8106f44fb72a56e67e0cd372d3bf9d893be818338c81af5d/coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/a2/6fa66a50e6e894286d79a3564f42bd54a9bd27049dc0a63b26d9924f0aa3/coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e2/c0/73f139794c742840b9ab88e2e17fe14a3d4668a166ff95d812ac66c0829d/coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/03/ec/6f30b4e0c96ce03b0e64aec46b4af2a8c49b70d1b5d0d69577add757b946/coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/c1/2f6c1b6f01a0996c9e067a9c780e1824351dbe17faae54388a4477e6d86f/coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/d6/53e999ec1bf7498ca4bc5f3b8227eb61db39068d2de5dcc359dec5601b5a/coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e9/40/383305500d24122dbed73e505a4d6828f8f3356d1f68ab6d32c781754b81/coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0e/bc/7e3a31534fabb043269f14fb64e2bb2733f85d4cf39e5bbc71357c57553a/coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c6/fc/be19131010930a6cf271da48202c8cc1d3f971f68c02fb2d3a78247f43dc/coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/28/d7/9a8de57d87f4bbc6f9a6a5ded1eaac88a89bf71369bb935dac3c0cf2893e/coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/e4/e6182e4697665fb594a7f4e4f27cb3a4dd00c2e3d35c5c706765de8c7866/coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7b/e3/f552d5871943f747165b92a924055c5d6daa164ae659a13f9018e22f3990/coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/55/49f65ccdd4dfd6d5528e966b28c37caec64170c725af32ab312889d2f857/coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0d/31/340428c238eb506feb96d4fb5c9ea614db1149517f22cc7ab8c6035ef6d9/coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dd/ce/97c1dd6592c908425622fe7f31c017d11cf0421729b09101d4de75bcadc8/coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/de/a3/5a98dc9e239d0dc5f243ef5053d5b1bdcaa1dee27a691dfc12befeccf878/coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4a/fb/78986d3022e5ccf2d4370bc43a5fef8374f092b3c21d32499dee8e30b7b6/coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c3/1c/6b3c9c363fb1433c79128e0d692863deb761b1b78162494abb9e5c328bc0/coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/da/495944ebf0ad246235a6bd523810d9f81981f9b81c6059ba1f56e943abe0/coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/0c/3dfeeb1006c44b911ee0ed915350db30325d01808525ae7cc8d57643a2ce/coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/61/af/5964b8d7d9a5c767785644d9a5a63cacba9a9c45cc42ba06d25895ec87be/coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d9/1d/cd467fceb62c371f9adb1d739c92a05d4e550246daa90412e711226bd320/coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/57/e4f8ad64d84ca9e759d783a052795f62a9f9111585e46068845b1cb52c2b/coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/8b/b0d9fe727acae907fa7f1c8194ccb6fe9d02e1c3e9001ecf74c741f86110/coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/66/2e/c99fe1f6396d93551aa352c75410686e726cd4ea104479b9af1af22367ce/coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/e9/88747b40c8fb4a783b40222510ce6d66170217eb05d7f46462c36b4fa8cc/coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/d5/a8e276bc005e42114468d4fe03e0a9555786bc51cbfe0d20827a46c1565a/coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a9/0c/4a848ae663b47f1195abcb09a951751dd61f80b503303b9b9d768e0fd321/coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/fb/b3b1d7887e1ea25a9608b0776e480e4bbc303ca95a31fd585555ec4fff5a/coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, +] + +[[package]] +name = "coverage" +version = "7.6.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/f7/08/7e37f82e4d1aead42a7443ff06a1e406aabf7302c4f00a546e4b320b994c/coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7e/61/eb7ce5ed62bacf21beca4937a90fe32545c91a3c8a42a30c6616d48fc70d/coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7d/73/041928e434442bd3afde5584bdc3f932fb4562b1597629f537387cec6f3d/coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/c8/6ca52b5147828e45ad0242388477fdb90df2c6cbb9a441701a12b3c71bc8/coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d5/da/9ac2b62557f4340270942011d6efeab9833648380109e897d48ab7c1035d/coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/23/9e2c114d0178abc42b6d8d5281f651a8e6519abfa0ef460a00a91f80879d/coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/7e/a0230756fb133343a52716e8b855045f13342b70e48e8ad41d8a0d60ab98/coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/28/7c/3753c8b40d232b1e5eeaed798c875537cf3cb183fb5041017c1fdb7ec14e/coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/57/e3/818a2b2af5b7573b4b82cf3e9f137ab158c90ea750a8f053716a32f20f06/coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/fb/4532b0b0cefb3f06d201648715e03b0feb822907edab3935112b61b885e2/coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5a/25/af337cc7421eca1c187cc9c315f0a755d48e755d2853715bfe8c418a45fa/coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/5f/67af7d60d7e8ce61a4e2ddcd1bd5fb787180c8d0ae0fbd073f903b3dd95d/coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/0e/e52332389e057daa2e03be1fbfef25bb4d626b37d12ed42ae6281d0a274c/coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/aa/cd/766b45fb6e090f20f8927d9c7cb34237d41c73a939358bc881883fd3a40d/coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/70/6c/a9ccd6fe50ddaf13442a1e2dd519ca805cbe0f1fcd377fba6d8339b98ccb/coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/14/6f/8351b465febb4dbc1ca9929505202db909c5a635c6fdf33e089bbc3d7d85/coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/68/3c/289b81fa18ad72138e6d78c4c11a82b5378a312c0e467e2f6b495c260907/coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ed/1c/aa1efa6459d822bd72c4abc0b9418cf268de3f60eeccd65dc4988553bd8d/coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fb/c8/521c698f2d2796565fe9c789c2ee1ccdae610b3aa20b9b2ef980cc253640/coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7d/30/033e663399ff17dca90d793ee8a2ea2890e7fdf085da58d82468b4220bf7/coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/20/05/0d1ccbb52727ccdadaa3ff37e4d2dc1cd4d47f0c3df9eb58d9ec8508ca88/coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7e/d4/300fc921dff243cd518c7db3a4c614b7e4b2431b0d1145c1e274fd99bd70/coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/ab/6bf00de5327ecb8db205f9ae596885417a31535eeda6e7b99463108782e1/coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/92/8f/2ead05e735022d1a7f3a0a683ac7f737de14850395a826192f0288703472/coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/ef/94043e478201ffa85b8ae2d2c79b4081e5a1b73438aafafccf3e9bafb6b5/coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1f/0f/c890339dd605f3ebc269543247bdd43b703cce6825b5ed42ff5f2d6122c7/coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/04/7fd7b39ec7372a04efb0f70c70e35857a99b6a9188b5205efb4c77d6a57a/coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ed/bf/73ce346a9d32a09cf369f14d2a06651329c984e106f5992c89579d25b27e/coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/86/74/1dc7a20969725e917b1e07fe71a955eb34bc606b938316bcc799f228374b/coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b6/e9/d9cc3deceb361c491b81005c668578b0dfa51eed02cd081620e9a62f24ec/coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/47/c8/5a2e41922ea6740f77d555c4d47544acd7dc3f251fe14199c09c0f5958d3/coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8c/f9/9aa4dfb751cb01c949c990d136a0f92027fbcc5781c6e921df1cb1563f20/coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b9/67/e1413d5a8591622a46dd04ff80873b04c849268831ed5c304c16433e7e30/coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/14/5b/9dec847b305e44a5634d0fb8498d135ab1d88330482b74065fcec0622224/coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7b/b7/35760a67c168e29f454928f51f970342d23cf75a2bb0323e0f07334c85f3/coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f7/95/d2fd31f1d638df806cae59d7daea5abf2b15b5234016a5ebb502c2f3f7ee/coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6e/bd/110689ff5752b67924efd5e2aedf5190cbbe245fc81b8dec1abaffba619d/coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d3/a8/08d7b38e6ff8df52331c83130d0ab92d9c9a8b5462f9e99c9f051a4ae206/coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d6/6a/9cf96839d3147d55ae713eb2d877f4d777e7dc5ba2bce227167d0118dfe8/coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/74/e4/7ff20d6a0b59eeaab40b3140a71e38cf52547ba21dbcf1d79c5a32bba61b/coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/35/59/1812f08a85b57c9fdb6d0b383d779e47b6f643bc278ed682859512517e83/coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9c/15/08913be1c59d7562a3e39fce20661a98c0a3f59d5754312899acc6cb8a2d/coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/ae/b5d58dff26cade02ada6ca612a76447acd69dccdbb3a478e9e088eb3d4b9/coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/d7/62095e355ec0613b08dfb19206ce3033a0eedb6f4a67af5ed267a8800642/coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7c/1e/c2967cb7991b112ba3766df0d9c21de46b476d103e32bb401b1b2adf3380/coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8b/61/a7a6a55dd266007ed3b1df7a3386a0d760d014542d72f7c2c6938483b7bd/coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/fa/13a6f56d72b429f56ef612eb3bc5ce1b75b7ee12864b3bd12526ab794847/coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/75/06/0429c652aa0fb761fc60e8c6b291338c9173c6aa0f4e40e1902345b42830/coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/52/76/1766bb8b803a88f93c3a2d07e30ffa359467810e5cbc68e375ebe6906efb/coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/66/8b/f54f8db2ae17188be9566e8166ac6df105c1c611e25da755738025708d54/coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/b0/e0dca6da9170aefc07515cce067b97178cefafb512d00a87a1c717d2efd5/coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/d0/d9e3d554e38beea5a2e22178ddb16587dbcbe9a1ef3211f55733924bf7fa/coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/ea/cab2dc248d9f45b2b7f9f1f596a4d75a435cb364437c61b51d2eb33ceb0e/coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/6f/f82f9a500c7c5722368978a5390c418d2a4d083ef955309a8748ecaa8920/coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a6/94/d3055aa33d4e7e733d8fa309d9adf147b4b06a82c1346366fc15a2b1d5fa/coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e4/6e/885bcd787d9dd674de4a7d8ec83faf729534c63d05d51d45d4fa168f7102/coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f4/63/df50120a7744492710854860783d6819ff23e482dee15462c9a833cc428a/coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/5d/9d0acfcded2b3e9ce1c7923ca52ccc00c78a74e112fc2aee661125b7843b/coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/56/50abf070cb3cd9b1dd32f2c88f083aab561ecbffbcd783275cb51c17f11d/coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/25/ee/b4c246048b8485f85a2426ef4abab88e48c6e80c74e964bea5cd4cd4b115/coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5c/1c/96cf86b70b69ea2b12924cdf7cabb8ad10e6130eab8d767a1099fbd2a44f/coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/d3/d54c5aa83268779d54c86deb39c1c4566e5d45c155369ca152765f8db413/coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a5/fe/137d5dca72e4a258b1bc17bb04f2e0196898fe495843402ce826a7419fe3/coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/78/5b/a0a796983f3201ff5485323b225d7c8b74ce30c11f456017e23d8e8d1945/coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4e/e1/76089d6a5ef9d68f018f65411fcdaaeb0141b504587b901d74e8587606ad/coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/6f/eef79b779a540326fee9520e5542a8b428cc3bfa8b7c8f1022c1ee4fc66c/coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/75/e1/656d65fb126c29a494ef964005702b012f3498db1a30dd562958e85a4049/coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/68/6a/45f108f137941a4a1238c85f28fd9d048cc46b5466d6b8dda3aba1bb9d4f/coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9b/e7/47b809099168b8b8c72ae311efc3e88c8d8a1162b3ba4b8da3cfcdb85743/coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/52/80/052222ba7058071f905435bad0ba392cc12006380731c37afaf3fe749b88/coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b8/d8/1b92e0b3adcf384e98770a00ca095da1b5f7b483e6563ae4eb5e935d24a1/coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a5/2b/0354ed096bca64dc8e32a7cbcae28b34cb5ad0b1fe2125d6d99583313ac0/coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, +] + +[[package]] +name = "coverage" +version = "7.10.7" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/26/d22c300112504f5f9a9fd2297ce33c35f3d353e4aeb987c8419453b2a7c2/coverage-7.10.7.tar.gz", hash = "sha256:f4ab143ab113be368a3e9b795f9cd7906c5ef407d6173fe9675a902e1fffc239" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e5/6c/3a3f7a46888e69d18abe3ccc6fe4cb16cccb1e6a2f99698931dafca489e6/coverage-7.10.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fc04cc7a3db33664e0c2d10eb8990ff6b3536f6842c9590ae8da4c614b9ed05a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/03/94/952d30f180b1a916c11a56f5c22d3535e943aa22430e9e3322447e520e1c/coverage-7.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e201e015644e207139f7e2351980feb7040e6f4b2c2978892f3e3789d1c125e5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/50/2b/9e0cf8ded1e114bcd8b2fd42792b57f1c4e9e4ea1824cde2af93a67305be/coverage-7.10.7-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:240af60539987ced2c399809bd34f7c78e8abe0736af91c3d7d0e795df633d17" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/20/d0384ac06a6f908783d9b6aa6135e41b093971499ec488e47279f5b846e6/coverage-7.10.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8421e088bc051361b01c4b3a50fd39a4b9133079a2229978d9d30511fd05231b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/83/5c283cff3d41285f8eab897651585db908a909c572bdc014bcfaf8a8b6ae/coverage-7.10.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6be8ed3039ae7f7ac5ce058c308484787c86e8437e72b30bf5e88b8ea10f3c87" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/22/02eb98fdc5ff79f423e990d877693e5310ae1eab6cb20ae0b0b9ac45b23b/coverage-7.10.7-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e28299d9f2e889e6d51b1f043f58d5f997c373cc12e6403b90df95b8b047c13e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b4/bc/25c83bcf3ad141b32cd7dc45485ef3c01a776ca3aa8ef0a93e77e8b5bc43/coverage-7.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c4e16bd7761c5e454f4efd36f345286d6f7c5fa111623c355691e2755cae3b9e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3c/b7/95574702888b58c0928a6e982038c596f9c34d52c5e5107f1eef729399b5/coverage-7.10.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b1c81d0e5e160651879755c9c675b974276f135558cf4ba79fee7b8413a515df" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/47/b6/40095c185f235e085df0e0b158f6bd68cc6e1d80ba6c7721dc81d97ec318/coverage-7.10.7-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:606cc265adc9aaedcc84f1f064f0e8736bc45814f15a357e30fca7ecc01504e0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/50/4aea0556da7a4b93ec9168420d170b55e2eb50ae21b25062513d020c6861/coverage-7.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:10b24412692df990dbc34f8fb1b6b13d236ace9dfdd68df5b28c2e39cafbba13" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/28/ea1a84a60828177ae3b100cb6723838523369a44ec5742313ed7db3da160/coverage-7.10.7-cp310-cp310-win32.whl", hash = "sha256:b51dcd060f18c19290d9b8a9dd1e0181538df2ce0717f562fff6cf74d9fc0b5b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fc/1a/a81d46bbeb3c3fd97b9602ebaa411e076219a150489bcc2c025f151bd52d/coverage-7.10.7-cp310-cp310-win_amd64.whl", hash = "sha256:3a622ac801b17198020f09af3eaf45666b344a0d69fc2a6ffe2ea83aeef1d807" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d2/5d/c1a17867b0456f2e9ce2d8d4708a4c3a089947d0bec9c66cdf60c9e7739f/coverage-7.10.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a609f9c93113be646f44c2a0256d6ea375ad047005d7f57a5c15f614dc1b2f59" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/f0/514dcf4b4e3698b9a9077f084429681bf3aad2b4a72578f89d7f643eb506/coverage-7.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:65646bb0359386e07639c367a22cf9b5bf6304e8630b565d0626e2bdf329227a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/20/f6/9626b81d17e2a4b25c63ac1b425ff307ecdeef03d67c9a147673ae40dc36/coverage-7.10.7-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5f33166f0dfcce728191f520bd2692914ec70fac2713f6bf3ce59c3deacb4699" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/ef/bd8e719c2f7417ba03239052e099b76ea1130ac0cbb183ee1fcaa58aaff3/coverage-7.10.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:35f5e3f9e455bb17831876048355dca0f758b6df22f49258cb5a91da23ef437d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a5/b6/bf054de41ec948b151ae2b79a55c107f5760979538f5fb80c195f2517718/coverage-7.10.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4da86b6d62a496e908ac2898243920c7992499c1712ff7c2b6d837cc69d9467e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/e5/3860756aa6f9318227443c6ce4ed7bf9e70bb7f1447a0353f45ac5c7974b/coverage-7.10.7-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6b8b09c1fad947c84bbbc95eca841350fad9cbfa5a2d7ca88ac9f8d836c92e23" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/0f/bd08bd042854f7fd07b45808927ebcce99a7ed0f2f412d11629883517ac2/coverage-7.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4376538f36b533b46f8971d3a3e63464f2c7905c9800db97361c43a2b14792ab" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8e/a7/4777b14de4abcc2e80c6b1d430f5d51eb18ed1d75fca56cbce5f2db9b36e/coverage-7.10.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:121da30abb574f6ce6ae09840dae322bef734480ceafe410117627aa54f76d82" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/34/72/17d082b00b53cd45679bad682fac058b87f011fd8b9fe31d77f5f8d3a4e4/coverage-7.10.7-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:88127d40df529336a9836870436fc2751c339fbaed3a836d42c93f3e4bd1d0a2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/7a/92367572eb5bdd6a84bfa278cc7e97db192f9f45b28c94a9ca1a921c3577/coverage-7.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ba58bbcd1b72f136080c0bccc2400d66cc6115f3f906c499013d065ac33a4b61" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2f/88/a23cc185f6a805dfc4fdf14a94016835eeb85e22ac3a0e66d5e89acd6462/coverage-7.10.7-cp311-cp311-win32.whl", hash = "sha256:972b9e3a4094b053a4e46832b4bc829fc8a8d347160eb39d03f1690316a99c14" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/ef/0b510a399dfca17cec7bc2f05ad8bd78cf55f15c8bc9a73ab20c5c913c2e/coverage-7.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:a7b55a944a7f43892e28ad4bc0561dfd5f0d73e605d1aa5c3c976b52aea121d2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/7f/023657f301a276e4ba1850f82749bc136f5a7e8768060c2e5d9744a22951/coverage-7.10.7-cp311-cp311-win_arm64.whl", hash = "sha256:736f227fb490f03c6488f9b6d45855f8e0fd749c007f9303ad30efab0e73c05a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/13/e4/eb12450f71b542a53972d19117ea5a5cea1cab3ac9e31b0b5d498df1bd5a/coverage-7.10.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7bb3b9ddb87ef7725056572368040c32775036472d5a033679d1fa6c8dc08417" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/37/66/593f9be12fc19fb36711f19a5371af79a718537204d16ea1d36f16bd78d2/coverage-7.10.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:18afb24843cbc175687225cab1138c95d262337f5473512010e46831aa0c2973" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/66/80/4c49f7ae09cafdacc73fbc30949ffe77359635c168f4e9ff33c9ebb07838/coverage-7.10.7-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:399a0b6347bcd3822be369392932884b8216d0944049ae22925631a9b3d4ba4c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a6/90/a64aaacab3b37a17aaedd83e8000142561a29eb262cede42d94a67f7556b/coverage-7.10.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:314f2c326ded3f4b09be11bc282eb2fc861184bc95748ae67b360ac962770be7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/2e/2dda59afd6103b342e096f246ebc5f87a3363b5412609946c120f4e7750d/coverage-7.10.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c41e71c9cfb854789dee6fc51e46743a6d138b1803fab6cb860af43265b42ea6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/dc/8d8119c9051d50f3119bb4a75f29f1e4a6ab9415cd1fa8bf22fcc3fb3b5f/coverage-7.10.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc01f57ca26269c2c706e838f6422e2a8788e41b3e3c65e2f41148212e57cd59" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/98/b3/edaff9c5d79ee4d4b6d3fe046f2b1d799850425695b789d491a64225d493/coverage-7.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a6442c59a8ac8b85812ce33bc4d05bde3fb22321fa8294e2a5b487c3505f611b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/11/25/9a0728564bb05863f7e513e5a594fe5ffef091b325437f5430e8cfb0d530/coverage-7.10.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:78a384e49f46b80fb4c901d52d92abe098e78768ed829c673fbb53c498bef73a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e0/fd/ca2650443bfbef5b0e74373aac4df67b08180d2f184b482c41499668e258/coverage-7.10.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5e1e9802121405ede4b0133aa4340ad8186a1d2526de5b7c3eca519db7bb89fb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/79/f692f125fb4299b6f963b0745124998ebb8e73ecdfce4ceceb06a8c6bec5/coverage-7.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d41213ea25a86f69efd1575073d34ea11aabe075604ddf3d148ecfec9e1e96a1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5e/75/61b9bbd6c7d24d896bfeec57acba78e0f8deac68e6baf2d4804f7aae1f88/coverage-7.10.7-cp312-cp312-win32.whl", hash = "sha256:77eb4c747061a6af8d0f7bdb31f1e108d172762ef579166ec84542f711d90256" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ca/f3/3bf7905288b45b075918d372498f1cf845b5b579b723c8fd17168018d5f5/coverage-7.10.7-cp312-cp312-win_amd64.whl", hash = "sha256:f51328ffe987aecf6d09f3cd9d979face89a617eacdaea43e7b3080777f647ba" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5c/44/3e32dbe933979d05cf2dac5e697c8599cfe038aaf51223ab901e208d5a62/coverage-7.10.7-cp312-cp312-win_arm64.whl", hash = "sha256:bda5e34f8a75721c96085903c6f2197dc398c20ffd98df33f866a9c8fd95f4bf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/94/b765c1abcb613d103b64fcf10395f54d69b0ef8be6a0dd9c524384892cc7/coverage-7.10.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:981a651f543f2854abd3b5fcb3263aac581b18209be49863ba575de6edf4c14d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/4f/732fff31c119bb73b35236dd333030f32c4bfe909f445b423e6c7594f9a2/coverage-7.10.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:73ab1601f84dc804f7812dc297e93cd99381162da39c47040a827d4e8dafe63b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/87/02/ae7e0af4b674be47566707777db1aa375474f02a1d64b9323e5813a6cdd5/coverage-7.10.7-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a8b6f03672aa6734e700bbcd65ff050fd19cddfec4b031cc8cf1c6967de5a68e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/77/8c6d22bf61921a59bce5471c2f1f7ac30cd4ac50aadde72b8c48d5727902/coverage-7.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10b6ba00ab1132a0ce4428ff68cf50a25efd6840a42cdf4239c9b99aad83be8b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/20/b6ea4f69bbb52dac0aebd62157ba6a9dddbfe664f5af8122dac296c3ee15/coverage-7.10.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c79124f70465a150e89340de5963f936ee97097d2ef76c869708c4248c63ca49" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f9/28/4831523ba483a7f90f7b259d2018fef02cb4d5b90bc7c1505d6e5a84883c/coverage-7.10.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:69212fbccdbd5b0e39eac4067e20a4a5256609e209547d86f740d68ad4f04911" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/9f/4331142bc98c10ca6436d2d620c3e165f31e6c58d43479985afce6f3191c/coverage-7.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7ea7c6c9d0d286d04ed3541747e6597cbe4971f22648b68248f7ddcd329207f0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/60/bda83b96602036b77ecf34e6393a3836365481b69f7ed7079ab85048202b/coverage-7.10.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b9be91986841a75042b3e3243d0b3cb0b2434252b977baaf0cd56e960fe1e46f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5f/af/152633ff35b2af63977edd835d8e6430f0caef27d171edf2fc76c270ef31/coverage-7.10.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:b281d5eca50189325cfe1f365fafade89b14b4a78d9b40b05ddd1fc7d2a10a9c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9d/71/d92105d122bd21cebba877228990e1646d862e34a98bb3374d3fece5a794/coverage-7.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:99e4aa63097ab1118e75a848a28e40d68b08a5e19ce587891ab7fd04475e780f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/9e/9fdb08f4bf476c912f0c3ca292e019aab6712c93c9344a1653986c3fd305/coverage-7.10.7-cp313-cp313-win32.whl", hash = "sha256:dc7c389dce432500273eaf48f410b37886be9208b2dd5710aaf7c57fd442c698" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/b1/a75fd25df44eab52d1931e89980d1ada46824c7a3210be0d3c88a44aaa99/coverage-7.10.7-cp313-cp313-win_amd64.whl", hash = "sha256:cac0fdca17b036af3881a9d2729a850b76553f3f716ccb0360ad4dbc06b3b843" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/14/3a/d720d7c989562a6e9a14b2c9f5f2876bdb38e9367126d118495b89c99c37/coverage-7.10.7-cp313-cp313-win_arm64.whl", hash = "sha256:4b6f236edf6e2f9ae8fcd1332da4e791c1b6ba0dc16a2dc94590ceccb482e546" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/22/e04514bf2a735d8b0add31d2b4ab636fc02370730787c576bb995390d2d5/coverage-7.10.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a0ec07fd264d0745ee396b666d47cef20875f4ff2375d7c4f58235886cc1ef0c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/11/0b/91128e099035ece15da3445d9015e4b4153a6059403452d324cbb0a575fa/coverage-7.10.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd5e856ebb7bfb7672b0086846db5afb4567a7b9714b8a0ebafd211ec7ce6a15" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8b/51/66420081e72801536a091a0c8f8c1f88a5c4bf7b9b1bdc6222c7afe6dc9b/coverage-7.10.7-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f57b2a3c8353d3e04acf75b3fed57ba41f5c0646bbf1d10c7c282291c97936b4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5d/22/9b8d458c2881b22df3db5bb3e7369e63d527d986decb6c11a591ba2364f7/coverage-7.10.7-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1ef2319dd15a0b009667301a3f84452a4dc6fddfd06b0c5c53ea472d3989fbf0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f7/08/16bee2c433e60913c610ea200b276e8eeef084b0d200bdcff69920bd5828/coverage-7.10.7-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83082a57783239717ceb0ad584de3c69cf581b2a95ed6bf81ea66034f00401c0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/20/9d/e53eb9771d154859b084b90201e5221bca7674ba449a17c101a5031d4054/coverage-7.10.7-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:50aa94fb1fb9a397eaa19c0d5ec15a5edd03a47bf1a3a6111a16b36e190cff65" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/b0/69bc7050f8d4e56a89fb550a1577d5d0d1db2278106f6f626464067b3817/coverage-7.10.7-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2120043f147bebb41c85b97ac45dd173595ff14f2a584f2963891cbcc3091541" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/4b/2514b060dbd1bc0aaf23b852c14bb5818f244c664cb16517feff6bb3a5ab/coverage-7.10.7-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2fafd773231dd0378fdba66d339f84904a8e57a262f583530f4f156ab83863e6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/78/7ba2175007c246d75e496f64c06e94122bdb914790a1285d627a918bd271/coverage-7.10.7-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:0b944ee8459f515f28b851728ad224fa2d068f1513ef6b7ff1efafeb2185f999" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/b3/fac9f7abbc841409b9a410309d73bfa6cfb2e51c3fada738cb607ce174f8/coverage-7.10.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4b583b97ab2e3efe1b3e75248a9b333bd3f8b0b1b8e5b45578e05e5850dfb2c2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ee/51/a03bec00d37faaa891b3ff7387192cef20f01604e5283a5fabc95346befa/coverage-7.10.7-cp313-cp313t-win32.whl", hash = "sha256:2a78cd46550081a7909b3329e2266204d584866e8d97b898cd7fb5ac8d888b1a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/22/3cf25d614e64bf6d8e59c7c669b20d6d940bb337bdee5900b9ca41c820bb/coverage-7.10.7-cp313-cp313t-win_amd64.whl", hash = "sha256:33a5e6396ab684cb43dc7befa386258acb2d7fae7f67330ebb85ba4ea27938eb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/49/a1/00164f6d30d8a01c3c9c48418a7a5be394de5349b421b9ee019f380df2a0/coverage-7.10.7-cp313-cp313t-win_arm64.whl", hash = "sha256:86b0e7308289ddde73d863b7683f596d8d21c7d8664ce1dee061d0bcf3fbb4bb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/23/9c/5844ab4ca6a4dd97a1850e030a15ec7d292b5c5cb93082979225126e35dd/coverage-7.10.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b06f260b16ead11643a5a9f955bd4b5fd76c1a4c6796aeade8520095b75de520" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f0/89/673f6514b0961d1f0e20ddc242e9342f6da21eaba3489901b565c0689f34/coverage-7.10.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:212f8f2e0612778f09c55dd4872cb1f64a1f2b074393d139278ce902064d5b32" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/05/e8/261cae479e85232828fb17ad536765c88dd818c8470aca690b0ac6feeaa3/coverage-7.10.7-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3445258bcded7d4aa630ab8296dea4d3f15a255588dd535f980c193ab6b95f3f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/82/62/14ed6546d0207e6eda876434e3e8475a3e9adbe32110ce896c9e0c06bb9a/coverage-7.10.7-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bb45474711ba385c46a0bfe696c695a929ae69ac636cda8f532be9e8c93d720a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/49/07f00db9ac6478e4358165a08fb41b469a1b053212e8a00cb02f0d27a05f/coverage-7.10.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:813922f35bd800dca9994c5971883cbc0d291128a5de6b167c7aa697fcf59360" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/59/c5201c62dbf165dfbc91460f6dbbaa85a8b82cfa6131ac45d6c1bfb52deb/coverage-7.10.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:93c1b03552081b2a4423091d6fb3787265b8f86af404cff98d1b5342713bdd69" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/07/ae/5920097195291a51fb00b3a70b9bbd2edbfe3c84876a1762bd1ef1565ebc/coverage-7.10.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cc87dd1b6eaf0b848eebb1c86469b9f72a1891cb42ac7adcfbce75eadb13dd14" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b9/3c/a815dde77a2981f5743a60b63df31cb322c944843e57dbd579326625a413/coverage-7.10.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:39508ffda4f343c35f3236fe8d1a6634a51f4581226a1262769d7f970e73bffe" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/aa/99/f5cdd8421ea656abefb6c0ce92556709db2265c41e8f9fc6c8ae0f7824c9/coverage-7.10.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:925a1edf3d810537c5a3abe78ec5530160c5f9a26b1f4270b40e62cc79304a1e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c3/7a/e9a2da6a1fc5d007dd51fca083a663ab930a8c4d149c087732a5dbaa0029/coverage-7.10.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2c8b9a0636f94c43cd3576811e05b89aa9bc2d0a85137affc544ae5cb0e4bfbd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/5b/0b5799aa30380a949005a353715095d6d1da81927d6dbed5def2200a4e25/coverage-7.10.7-cp314-cp314-win32.whl", hash = "sha256:b7b8288eb7cdd268b0304632da8cb0bb93fadcfec2fe5712f7b9cc8f4d487be2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/b0/e802fbb6eb746de006490abc9bb554b708918b6774b722bb3a0e6aa1b7de/coverage-7.10.7-cp314-cp314-win_amd64.whl", hash = "sha256:1ca6db7c8807fb9e755d0379ccc39017ce0a84dcd26d14b5a03b78563776f681" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9e/e8/71d0c8e374e31f39e3389bb0bd19e527d46f00ea8571ec7ec8fd261d8b44/coverage-7.10.7-cp314-cp314-win_arm64.whl", hash = "sha256:097c1591f5af4496226d5783d036bf6fd6cd0cbc132e071b33861de756efb880" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/09/9a5608d319fa3eba7a2019addeacb8c746fb50872b57a724c9f79f146969/coverage-7.10.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a62c6ef0d50e6de320c270ff91d9dd0a05e7250cac2a800b7784bae474506e63" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f5/6f/f58d46f33db9f2e3647b2d0764704548c184e6f5e014bef528b7f979ef84/coverage-7.10.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9fa6e4dd51fe15d8738708a973470f67a855ca50002294852e9571cdbd9433f2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/74/5c/183ffc817ba68e0b443b8c934c8795553eb0c14573813415bd59941ee165/coverage-7.10.7-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8fb190658865565c549b6b4706856d6a7b09302c797eb2cf8e7fe9dabb043f0d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/48/71a8abe9c1ad7e97548835e3cc1adbf361e743e9d60310c5f75c9e7bf847/coverage-7.10.7-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:affef7c76a9ef259187ef31599a9260330e0335a3011732c4b9effa01e1cd6e0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/84/fd/193a8fb132acfc0a901f72020e54be5e48021e1575bb327d8ee1097a28fd/coverage-7.10.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e16e07d85ca0cf8bafe5f5d23a0b850064e8e945d5677492b06bbe6f09cc699" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b1/8f/74ecc30607dd95ad50e3034221113ccb1c6d4e8085cc761134782995daae/coverage-7.10.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:03ffc58aacdf65d2a82bbeb1ffe4d01ead4017a21bfd0454983b88ca73af94b9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/55/79ff53a769f20d71b07023ea115c9167c0bb56f281320520cf64c5298a96/coverage-7.10.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1b4fd784344d4e52647fd7857b2af5b3fbe6c239b0b5fa63e94eb67320770e0f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/e2/dac66c140009b61ac3fc13af673a574b00c16efdf04f9b5c740703e953c0/coverage-7.10.7-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0ebbaddb2c19b71912c6f2518e791aa8b9f054985a0769bdb3a53ebbc765c6a1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/f1/f48f645e3f33bb9ca8a496bc4a9671b52f2f353146233ebd7c1df6160440/coverage-7.10.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a2d9a3b260cc1d1dbdb1c582e63ddcf5363426a1a68faa0f5da28d8ee3c722a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/3b/8442618972c51a7affeead957995cfa8323c0c9bcf8fa5a027421f720ff4/coverage-7.10.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a3cc8638b2480865eaa3926d192e64ce6c51e3d29c849e09d5b4ad95efae5399" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b2/dc/101f3fa3a45146db0cb03f5b4376e24c0aac818309da23e2de0c75295a91/coverage-7.10.7-cp314-cp314t-win32.whl", hash = "sha256:67f8c5cbcd3deb7a60b3345dffc89a961a484ed0af1f6f73de91705cc6e31235" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4c/a1/74c51803fc70a8a40d7346660379e144be772bab4ac7bb6e6b905152345c/coverage-7.10.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e1ed71194ef6dea7ed2d5cb5f7243d4bcd334bfb63e59878519be558078f848d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/65/f116a6d2127df30bcafbceef0302d8a64ba87488bf6f73a6d8eebf060873/coverage-7.10.7-cp314-cp314t-win_arm64.whl", hash = "sha256:7fe650342addd8524ca63d77b2362b02345e5f1a093266787d210c70a50b471a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/ad/d1c25053764b4c42eb294aae92ab617d2e4f803397f9c7c8295caa77a260/coverage-7.10.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fff7b9c3f19957020cac546c70025331113d2e61537f6e2441bc7657913de7d3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/52/2f/b9f9daa39b80ece0b9548bbb723381e29bc664822d9a12c2135f8922c22b/coverage-7.10.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bc91b314cef27742da486d6839b677b3f2793dfe52b51bbbb7cf736d5c29281c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dd/6e/30d006c3b469e58449650642383dddf1c8fb63d44fdf92994bfd46570695/coverage-7.10.7-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:567f5c155eda8df1d3d439d40a45a6a5f029b429b06648235f1e7e51b522b396" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/49/8a070782ce7e6b94ff6a0b6d7c65ba6bc3091d92a92cef4cd4eb0767965c/coverage-7.10.7-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2af88deffcc8a4d5974cf2d502251bc3b2db8461f0b66d80a449c33757aa9f40" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/92/1c1c5a9e8677ce56d42b97bdaca337b2d4d9ebe703d8c174ede52dbabd5f/coverage-7.10.7-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7315339eae3b24c2d2fa1ed7d7a38654cba34a13ef19fbcb9425da46d3dc594" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/54/b140edee7257e815de7426d5d9846b58505dffc29795fff2dfb7f8a1c5a0/coverage-7.10.7-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:912e6ebc7a6e4adfdbb1aec371ad04c68854cd3bf3608b3514e7ff9062931d8a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e4/9e/6d6b8295940b118e8b7083b29226c71f6154f7ff41e9ca431f03de2eac0d/coverage-7.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f49a05acd3dfe1ce9715b657e28d138578bc40126760efb962322c56e9ca344b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/db/e5/5e957ca747d43dbe4d9714358375c7546cb3cb533007b6813fc20fce37ad/coverage-7.10.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cce2109b6219f22ece99db7644b9622f54a4e915dad65660ec435e89a3ea7cc3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/45/540fc5cc92536a1b783b7ef99450bd55a4b3af234aae35a18a339973ce30/coverage-7.10.7-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:f3c887f96407cea3916294046fc7dab611c2552beadbed4ea901cbc6a40cc7a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/75/0b/8287b2e5b38c8fe15d7e3398849bb58d382aedc0864ea0fa1820e8630491/coverage-7.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:635adb9a4507c9fd2ed65f39693fa31c9a3ee3a8e6dc64df033e8fdf52a7003f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/1d/29724999984740f0c86d03e6420b942439bf5bd7f54d4382cae386a9d1e9/coverage-7.10.7-cp39-cp39-win32.whl", hash = "sha256:5a02d5a850e2979b0a014c412573953995174743a3f7fa4ea5a6e9a3c5617431" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/11/4b1e6b129943f905ca54c339f343877b55b365ae2558806c1be4f7476ed5/coverage-7.10.7-cp39-cp39-win_amd64.whl", hash = "sha256:c134869d5ffe34547d14e174c866fd8fe2254918cc0a95e99052903bc1543e07" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ec/16/114df1c291c22cac3b0c127a73e0af5c12ed7bbb6558d310429a0ae24023/coverage-7.10.7-py3-none-any.whl", hash = "sha256:f7941f6f2fe6dd6807a1208737b8a0cbcf1cc6d7b07d24998ad2d63590868260" }, +] + +[package.optional-dependencies] +toml = [ + { 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'" }, +] + [[package]] name = "cryptography" version = "45.0.7" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] dependencies = [ { name = "cffi", version = "1.15.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8' and platform_python_implementation != 'PyPy'" }, - { name = "cffi", version = "1.17.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8' and platform_python_implementation != 'PyPy'" }, ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971" } wheels = [ @@ -369,75 +756,112 @@ wheels = [ ] [[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 = "docutils" -version = "0.20.1" +name = "cryptography" +version = "46.0.1" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", - "python_full_version < '3.8'", ] -sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1f/53/a5da4f2c5739cf66290fac1431ee52aff6851c7c8ffd8264f13affd7bcdd/docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" } -wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/87/f238c0670b94533ac0353a4e2a1a771a0cc73277b88bff23d3ae35a256c1/docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6" }, +dependencies = [ + { name = "cffi", version = "1.17.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*' and platform_python_implementation != 'PyPy'" }, + { name = "cffi", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and platform_python_implementation != 'PyPy'" }, + { 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.15.0", 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/a9/62/e3664e6ffd7743e1694b244dde70b43a394f6f7fbcacf7014a8ff5197c73/cryptography-46.0.1.tar.gz", hash = "sha256:ed570874e88f213437f5cf758f9ef26cbfc3f336d889b1e592ee11283bb8d1c7" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/59/9ae689a25047e0601adfcb159ec4f83c0b4149fdb5c3030cc94cd218141d/cryptography-46.0.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0ff483716be32690c14636e54a1f6e2e1b7bf8e22ca50b989f88fa1b2d287080" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/ee/ca6cc9df7118f2fcd142c76b1da0f14340d77518c05b1ebfbbabca6b9e7d/cryptography-46.0.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9873bf7c1f2a6330bdfe8621e7ce64b725784f9f0c3a6a55c3047af5849f920e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7f/a3/0f5296f63815d8e985922b05c31f77ce44787b3127a67c0b7f70f115c45f/cryptography-46.0.1-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0dfb7c88d4462a0cfdd0d87a3c245a7bc3feb59de101f6ff88194f740f72eda6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5d/8c/74fcda3e4e01be1d32775d5b4dd841acaac3c1b8fa4d0774c7ac8d52463d/cryptography-46.0.1-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e22801b61613ebdebf7deb18b507919e107547a1d39a3b57f5f855032dd7cfb8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dc/b8/85d23287baeef273b0834481a3dd55bbed3a53587e3b8d9f0898235b8f91/cryptography-46.0.1-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:757af4f6341ce7a1e47c326ca2a81f41d236070217e5fbbad61bbfe299d55d28" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e5/d3/de61ad5b52433b389afca0bc70f02a7a1f074651221f599ce368da0fe437/cryptography-46.0.1-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f7a24ea78de345cfa7f6a8d3bde8b242c7fac27f2bd78fa23474ca38dfaeeab9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dc/1f/dbd4d6570d84748439237a7478d124ee0134bf166ad129267b7ed8ea6d22/cryptography-46.0.1-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e8776dac9e660c22241b6587fae51a67b4b0147daa4d176b172c3ff768ad736" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ec/fd/ca0a14ce7f0bfe92fa727aacaf2217eb25eb7e4ed513b14d8e03b26e63ed/cryptography-46.0.1-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9f40642a140c0c8649987027867242b801486865277cbabc8c6059ddef16dc8b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/89/6b/09c30543bb93401f6f88fce556b3bdbb21e55ae14912c04b7bf355f5f96c/cryptography-46.0.1-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:449ef2b321bec7d97ef2c944173275ebdab78f3abdd005400cc409e27cd159ab" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/23/9a/38cb01cb09ce0adceda9fc627c9cf98eb890fc8d50cacbe79b011df20f8a/cryptography-46.0.1-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2dd339ba3345b908fa3141ddba4025568fa6fd398eabce3ef72a29ac2d73ad75" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/53/435b5c36a78d06ae0bef96d666209b0ecd8f8181bfe4dda46536705df59e/cryptography-46.0.1-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7411c910fb2a412053cf33cfad0153ee20d27e256c6c3f14d7d7d1d9fec59fd5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/34/0ff0bb2d2c79f25a2a63109f3b76b9108a906dd2a2eb5c1d460b9938adbb/cryptography-46.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9babb7818fdd71394e576cf26c5452df77a355eac1a27ddfa24096665a27f8fd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/df/b7/d4f848aee24ecd1be01db6c42c4a270069a4f02a105d9c57e143daf6cf0f/cryptography-46.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9f2c4cc63be3ef43c0221861177cee5d14b505cd4d4599a89e2cd273c4d3542a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/a5/42fedefc754fd1901e2d95a69815ea4ec8a9eed31f4c4361fcab80288661/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:41c281a74df173876da1dc9a9b6953d387f06e3d3ed9284e3baae3ab3f40883a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/86/a1/cd21174f56e769c831fbbd6399a1b7519b0ff6280acec1b826d7b072640c/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0a17377fa52563d730248ba1f68185461fff36e8bc75d8787a7dd2e20a802b7a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/2f/a8cbfa1c029987ddc746fd966711d4fa71efc891d37fbe9f030fe5ab4eec/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:0d1922d9280e08cde90b518a10cd66831f632960a8d08cb3418922d83fce6f12" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/ae/63a84e6789e0d5a2502edf06b552bcb0fa9ff16147265d5c44a211942abe/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:af84e8e99f1a82cea149e253014ea9dc89f75b82c87bb6c7242203186f465129" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ef/8f/1b9fa8e92bd9cbcb3b7e1e593a5232f2c1e6f9bd72b919c1a6b37d315f92/cryptography-46.0.1-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:ef648d2c690703501714588b2ba640facd50fd16548133b11b2859e8655a69da" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c3/af/bb95db070e73fea3fae31d8a69ac1463d89d1c084220f549b00dd01094a8/cryptography-46.0.1-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:e94eb5fa32a8a9f9bf991f424f002913e3dd7c699ef552db9b14ba6a76a6313b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f5/3b/d8fb17ffeb3a83157a1cc0aa5c60691d062aceecba09c2e5e77ebfc1870c/cryptography-46.0.1-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:534b96c0831855e29fc3b069b085fd185aa5353033631a585d5cd4dd5d40d657" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d9/46/86bc3a05c10c8aa88c8ae7e953a8b4e407c57823ed201dbcba55c4d655f4/cryptography-46.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f9b55038b5c6c47559aa33626d8ecd092f354e23de3c6975e4bb205df128a2a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a8/4e/387e5a21dfd2b4198e74968a541cfd6128f66f8ec94ed971776e15091ac3/cryptography-46.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ec13b7105117dbc9afd023300fb9954d72ca855c274fe563e72428ece10191c0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/56/3e/13ce6eab9ad6eba1b15a7bd476f005a4c1b3f299f4c2f32b22408b0edccf/cryptography-46.0.1-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9ed64e5083fa806709e74fc5ea067dfef9090e5b7a2320a49be3c9df3583a2d8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/67/65dc233c1ddd688073cf7b136b06ff4b84bf517ba5529607c9d79720fc67/cryptography-46.0.1-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:341fb7a26bc9d6093c1b124b9f13acc283d2d51da440b98b55ab3f79f2522ead" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/17/db/d64ae4c6f4e98c3dac5bf35dd4d103f4c7c345703e43560113e5e8e31b2b/cryptography-46.0.1-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6ef1488967e729948d424d09c94753d0167ce59afba8d0f6c07a22b629c557b2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3d/19/5f1eea17d4805ebdc2e685b7b02800c4f63f3dd46cfa8d4c18373fea46c8/cryptography-46.0.1-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7823bc7cdf0b747ecfb096d004cc41573c2f5c7e3a29861603a2871b43d3ef32" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/b5/229ba6088fe7abccbfe4c5edb96c7a5ad547fac5fdd0d40aa6ea540b2985/cryptography-46.0.1-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:f736ab8036796f5a119ff8211deda416f8c15ce03776db704a7a4e17381cb2ef" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/9c/50aa38907b201e74bc43c572f9603fa82b58e831bd13c245613a23cff736/cryptography-46.0.1-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:e46710a240a41d594953012213ea8ca398cd2448fbc5d0f1be8160b5511104a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5a/33/229858f8a5bb22f82468bb285e9f4c44a31978d5f5830bb4ea1cf8a4e454/cryptography-46.0.1-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:84ef1f145de5aee82ea2447224dc23f065ff4cc5791bb3b506615957a6ba8128" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/52/cb/b76b2c87fbd6ed4a231884bea3ce073406ba8e2dae9defad910d33cbf408/cryptography-46.0.1-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9394c7d5a7565ac5f7d9ba38b2617448eba384d7b107b262d63890079fad77ca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/0f/f66125ecf88e4cb5b8017ff43f3a87ede2d064cb54a1c5893f9da9d65093/cryptography-46.0.1-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:ed957044e368ed295257ae3d212b95456bd9756df490e1ac4538857f67531fcc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/22/9f3134ae436b63b463cfdf0ff506a0570da6873adb4bf8c19b8a5b4bac64/cryptography-46.0.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f7de12fa0eee6234de9a9ce0ffcfa6ce97361db7a50b09b65c63ac58e5f22fc7" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/89/39/e6042bcb2638650b0005c752c38ea830cbfbcbb1830e4d64d530000aa8dc/cryptography-46.0.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7fab1187b6c6b2f11a326f33b036f7168f5b996aedd0c059f9738915e4e8f53a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/db/32/6fc7250280920418651640d76cee34d91c1e0601d73acd44364570cf041f/cryptography-46.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:0ca4be2af48c24df689a150d9cd37404f689e2968e247b6b8ff09bff5bcd786f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/32/33/8d5398b2da15a15110b2478480ab512609f95b45ead3a105c9a9c76f9980/cryptography-46.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:13e67c4d3fb8b6bc4ef778a7ccdd8df4cd15b4bcc18f4239c8440891a11245cc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fd/1c/4012edad2a8977ab386c36b6e21f5065974d37afa3eade83a9968cba4855/cryptography-46.0.1-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:15b5fd9358803b0d1cc42505a18d8bca81dabb35b5cfbfea1505092e13a9d96d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/58/a3/257cd5ae677302de8fa066fca9de37128f6729d1e63c04dd6a15555dd450/cryptography-46.0.1-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:e34da95e29daf8a71cb2841fd55df0511539a6cdf33e6f77c1e95e44006b9b46" }, ] [[package]] name = "docutils" -version = "0.22" +version = "0.19" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", + "python_full_version < '3.8'", ] -sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e9/86/5b41c32ecedcfdb4c77b28b6cb14234f252075f8cdb254531727a35547dd/docutils-0.22.tar.gz", hash = "sha256:ba9d57750e92331ebe7c08a1bbf7a7f8143b86c476acd51528b042216a6aad0f" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6b/5c/330ea8d383eb2ce973df34d1239b3b21e91cd8c865d21ff82902d952f91f/docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6" } wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/57/8db39bc5f98f042e0153b1de9fb88e1a409a33cda4dd7f723c2ed71e01f6/docutils-0.22-py3-none-any.whl", hash = "sha256:4ed966a0e96a0477d852f7af31bdcb3adc049fbb35ccba358c2ea8a03287615e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/93/69/e391bd51bc08ed9141ecd899a0ddb61ab6465309f1eb470905c0c8868081/docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc" }, ] [[package]] -name = "filelock" -version = "3.12.2" +name = "docutils" +version = "0.20.1" 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/00/0b/c506e9e44e4c4b6c89fcecda23dc115bf8e7ff7eb127e0cb9c114cbc9a15/filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1f/53/a5da4f2c5739cf66290fac1431ee52aff6851c7c8ffd8264f13affd7bcdd/docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" } 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" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/87/f238c0670b94533ac0353a4e2a1a771a0cc73277b88bff23d3ae35a256c1/docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6" }, ] [[package]] -name = "filelock" -version = "3.16.1" +name = "docutils" +version = "0.21.2" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version == '3.8.*'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", ] -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" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f" } 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" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2" }, ] [[package]] -name = "filelock" -version = "3.19.1" +name = "exceptiongroup" +version = "1.3.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", +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.15.0", 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/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58" } +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/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d" }, + { 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]] @@ -462,6 +886,15 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" }, ] +[[package]] +name = "imagesize" +version = "1.4.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/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b" }, +] + [[package]] name = "importlib-metadata" version = "6.7.0" @@ -498,7 +931,8 @@ 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.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ @@ -539,6 +973,33 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e1/6a/4604f9ae2fa62ef47b9de2fa5ad599589d28c9fd1d335f32759813dfa91e/importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717" }, ] +[[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.11'", + "python_full_version == '3.10.*'", + "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 = "jaraco-classes" version = "3.2.3" @@ -559,13 +1020,14 @@ name = "jaraco-classes" version = "3.4.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] dependencies = [ { name = "more-itertools", version = "10.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, - { name = "more-itertools", version = "10.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "more-itertools", version = "10.8.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/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd" } wheels = [ @@ -604,11 +1066,12 @@ name = "jaraco-functools" version = "4.3.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "more-itertools", version = "10.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "more-itertools", version = "10.8.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/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294" } wheels = [ @@ -624,6 +1087,19 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683" }, ] +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +dependencies = [ + { name = "markupsafe", version = "2.1.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "3.0.2", 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/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" }, +] + [[package]] name = "keyring" version = "24.1.1" @@ -637,7 +1113,7 @@ dependencies = [ { name = "jaraco-classes", version = "3.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, { name = "jeepney", marker = "python_full_version < '3.8' and sys_platform == 'linux'" }, { name = "pywin32-ctypes", marker = "python_full_version < '3.8' and sys_platform == 'win32'" }, - { name = "secretstorage", marker = "python_full_version < '3.8' and sys_platform == 'linux'" }, + { name = "secretstorage", version = "3.3.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8' and sys_platform == 'linux'" }, ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/25/17/9745959c3482eed095db21a459572808c2f735bcbf55adb93afcf9c605c7/keyring-24.1.1.tar.gz", hash = "sha256:3d44a48fa9a254f6c72879d7c88604831ebdaac6ecb0b214308b02953502c510" } wheels = [ @@ -659,7 +1135,7 @@ dependencies = [ { name = "jaraco-functools", version = "4.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, { name = "jeepney", marker = "python_full_version == '3.8.*' and sys_platform == 'linux'" }, { name = "pywin32-ctypes", marker = "python_full_version == '3.8.*' and sys_platform == 'win32'" }, - { name = "secretstorage", marker = "python_full_version == '3.8.*' and sys_platform == 'linux'" }, + { name = "secretstorage", version = "3.3.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*' and sys_platform == 'linux'" }, ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/24/64447b13df6a0e2797b586dad715766d756c932ce8ace7f67bd384d76ae0/keyring-25.5.0.tar.gz", hash = "sha256:4c753b3ec91717fe713c4edd522d625889d8973a349b0e582622f49766de58e6" } wheels = [ @@ -671,7 +1147,8 @@ name = "keyring" version = "25.6.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ @@ -681,7 +1158,8 @@ dependencies = [ { name = "jaraco-functools", version = "4.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jeepney", marker = "python_full_version >= '3.9' and sys_platform == 'linux'" }, { name = "pywin32-ctypes", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, - { name = "secretstorage", marker = "python_full_version >= '3.9' and sys_platform == 'linux'" }, + { name = "secretstorage", version = "3.3.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*' and sys_platform == 'linux'" }, + { name = "secretstorage", version = "3.4.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.10' and sys_platform == 'linux'" }, ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66" } wheels = [ @@ -725,7 +1203,8 @@ name = "markdown-it-py" version = "4.0.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", ] dependencies = [ { name = "mdurl", marker = "python_full_version >= '3.10'" }, @@ -735,6 +1214,150 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147" }, ] +[[package]] +name = "markupsafe" +version = "2.1.5" +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/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e4/54/ad5eb37bf9d51800010a74e4665425831a9db4e7c4e0fde4352e391e808e/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/4a/a4d49415e600bacae038c67f9fecc1d5433b9d3c71a4de6f33537b89654c/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0a/7b/85681ae3c33c385b10ac0f8dd025c30af83c78cec1c37a6aa3b55e67f5ec/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7c/52/2b1b570f6b8b803cef5ac28fdf78c0da318916c7d2fe9402a84d591b394c/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/fe/a36ba8c7ca55621620b2d7c585313efd10729e63ef81e4e61f52330da781/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/60/ae/9c60231cdfda003434e8bd27282b1f4e197ad5a710c14bee8bea8a9ca4f0/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/65/dc/1510be4d179869f5dafe071aecb3f1f41b45d37c02329dfba01ff59e5ac5/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/30/39/8d845dd7d0b0613d86e0ef89549bfb5f61ed781f59af45fc96496e897f3a/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/5c/356a6f62e4f3c5fbf2602b4771376af22a3b16efa74eb8716fb4e328e01e/MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/69/48/acbf292615c65f0604a0c6fc402ce6d8c991276e16c80c46a8f758fbd30c/MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1c/cf/35fe557e53709e93feb65575c93927942087e9b97213eabc3fe9d5b25a55/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/40/2e73e7d532d030b1e41180807a80d564eda53babaf04d65e15c1cf897e40/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/18/46/5dca760547e8c59c5311b332f70605d24c99d1303dd9a6e1fc3ed0d73561/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6d/c5/27febe918ac36397919cd4a67d5579cbbfa8da027fa1238af6285bb368ea/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/0b/23f4b2470accb53285c613a3ab9ec19dc944eaf53592cb6d9e2af8aa24cc/MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/96/0c/620c1fb3661858c0e37eb3cbffd8c6f732a67cd97296f725789679801b31/MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/88/a940e11827ea1c136a34eca862486178294ae841164475b9ab216b80eb8e/MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cb/06/0d28bd178db529c5ac762a625c335a9168a7a23f280b4db9c95e97046145/MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4a/1d/c4f5016f87ced614eacc7d5fb85b25bcc0ff53e8f058d069fc8cbfdc3c7a/MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b3/fb/c18b8c9fbe69e347fdbf782c6478f1bc77f19a830588daa224236678339b/MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2f/69/30d29adcf9d1d931c75001dd85001adad7374381c9c2086154d9f6445be6/MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/03/63498d05bd54278b6ca340099e5b52ffb9cdf2ee4f2d9b98246337e21689/MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/68/79/11b4fe15124692f8673b603433e47abca199a08ecd2a4851bfbdc97dc62d/MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ed/88/408bdbf292eb86f03201c17489acafae8358ba4e120d92358308c15cea7c/MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6c/4c/3577a52eea1880538c435176bc85e5b3379b7ab442327ccd82118550758f/MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f8/ff/2c942a82c35a49df5de3a630ce0a8456ac2969691b230e530ac12314364c/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4f/14/6f294b9c4f969d0c801a4615e221c1e084722ea6114ab2114189c5b8cbe0/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/d4/fd74714ed30a1dedd0b82427c02fa4deec64f173831ec716da11c51a50aa/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c7/bd/50319665ce81bb10e90d1cf76f9e1aa269ea6f7fa30ab4521f14d122a3df/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4c/6f/f2b0f675635b05f6afd5ea03c094557bdb8622fa8e673387444fe8d8e787/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/e0/393467cf899b34a9d3678e78961c2c8cdf49fb902a959ba54ece01273fb1/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/02/5437e2ad33047290dafced9df741d9efc3e716b75583bbd73a9984f1b6f7/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0e/7d/968284145ffd9d726183ed6237c77938c021abacde4e073020f920e060b2/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bf/f3/ecb00fc8ab02b7beae8699f34db9357ae49d9f21d4d3de6f305f34fa949e/MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/92/21/357205f03514a49b293e214ac39de01fadd0970a6e05e4bf1ddd0ffd0881/MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6c/77/d77701bbef72892affe060cdacb7a2ed7fd68dae3b477a8642f15ad3b132/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d9/a7/1e558b4f78454c8a3a0199292d96159eb4d091f983bc35ef258314fe7269/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6a/18/ae5a258e3401f9b8312f92b028c54d7026a97ec3ab20bfaddbdfa7d8cce8/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0b/cc/48206bd61c5b9d0129f4d75243b156929b04c94c09041321456fd06a876d/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/06/a41c112ab9ffdeeb5f77bc3e331fdadf97fa65e52e44ba31880f4e7f983c/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/02/8c/ab9a463301a50dab04d5472e998acbd4080597abc048166ded5c7aa768c8/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bc/29/9bc18da763496b055d8e98ce476c8e718dcfd78157e17f555ce6dd7d0895/MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/f8/4da07de16f10551ca1f640c92b5f316f9394088b183c6a57183df6de5ae4/MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/ea/9b1530c3fdeeca613faeb0fb5cbcf2389d816072fab72a71b45749ef6062/MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4b/c2/fbdbfe48848e7112ab05e627e718e854d20192b674952d9042ebd8c9e5de/MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f0/25/7a7c6e4dbd4f867d95d94ca15449e91e52856f6ed1905d58ef1de5e211d0/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/8f/f339c98a178f3c1e545622206b40986a4c3307fe39f70ccd3d9df9a9e425/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1a/03/8496a1a78308456dbd50b23a385c69b41f2e9661c67ea1329849a598a8f9/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e6/cf/0a490a4bd363048c3022f2f475c8c05582179bb179defcee4766fb3dcc18/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/a3/34187a78613920dfd3cdf68ef6ce5e99c4f3417f035694074beb8848cd77/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/17/d8/5811082f85bb88410ad7e452263af048d685669bbbfb7b595e8689152498/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7c/31/bd635fb5989440d9365c5e3c47556cfea121c7803f5034ac843e8f37c2f2/MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b3/73/085399401383ce949f727afec55ec3abd76648d04b9f22e1c0e99cb4bec3/MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a" }, +] + [[package]] name = "mdurl" version = "0.1.2" @@ -770,15 +1393,16 @@ wheels = [ [[package]] name = "more-itertools" -version = "10.7.0" +version = "10.8.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] -sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ce/a0/834b0cebabbfc7e311f30b46c8188790a37f89fc8d756660346fe5abfd09/more_itertools-10.7.0.tar.gz", hash = "sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd" } wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/9f/7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594/more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b" }, ] [[package]] @@ -878,10 +1502,11 @@ wheels = [ [[package]] name = "mypy" -version = "1.17.1" +version = "1.18.2" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ @@ -890,45 +1515,45 @@ dependencies = [ { 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.15.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/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" }, +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/77/8f0d0001ffad290cef2f7f216f96c814866248a0b92a722365ed54648e7e/mypy-1.18.2.tar.gz", hash = "sha256:06a398102a5f203d7477b2923dda3634c36727fa5c237d8f859ef90c42a9924b" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/03/6f/657961a0743cff32e6c0611b63ff1c1970a0b482ace35b069203bf705187/mypy-1.18.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c1eab0cf6294dafe397c261a75f96dc2c31bffe3b944faa24db5def4e2b0f77c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/10/e9/420822d4f661f13ca8900f5fa239b40ee3be8b62b32f3357df9a3045a08b/mypy-1.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a780ca61fc239e4865968ebc5240bb3bf610ef59ac398de9a7421b54e4a207e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/aa/73/a05b2bbaa7005f4642fcfe40fb73f2b4fb6bb44229bd585b5878e9a87ef8/mypy-1.18.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:448acd386266989ef11662ce3c8011fd2a7b632e0ec7d61a98edd8e27472225b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4f/01/f6e4b9f0d031c11ccbd6f17da26564f3a0f3c4155af344006434b0a05a9d/mypy-1.18.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f9e171c465ad3901dc652643ee4bffa8e9fef4d7d0eece23b428908c77a76a66" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d7/97/19727e7499bfa1ae0773d06afd30ac66a58ed7437d940c70548634b24185/mypy-1.18.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:592ec214750bc00741af1f80cbf96b5013d81486b7bb24cb052382c19e40b428" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/4f/90dc8c15c1441bf31cf0f9918bb077e452618708199e530f4cbd5cede6ff/mypy-1.18.2-cp310-cp310-win_amd64.whl", hash = "sha256:7fb95f97199ea11769ebe3638c29b550b5221e997c63b14ef93d2e971606ebed" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/88/87/cafd3ae563f88f94eec33f35ff722d043e09832ea8530ef149ec1efbaf08/mypy-1.18.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:807d9315ab9d464125aa9fcf6d84fde6e1dc67da0b6f80e7405506b8ac72bc7f" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0f/e0/1e96c3d4266a06d4b0197ace5356d67d937d8358e2ee3ffac71faa843724/mypy-1.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:776bb00de1778caf4db739c6e83919c1d85a448f71979b6a0edd774ea8399341" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/ef/0c9ba89eb03453e76bdac5a78b08260a848c7bfc5d6603634774d9cd9525/mypy-1.18.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1379451880512ffce14505493bd9fe469e0697543717298242574882cf8cdb8d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1a/52/ec4a061dd599eb8179d5411d99775bec2a20542505988f40fc2fee781068/mypy-1.18.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1331eb7fd110d60c24999893320967594ff84c38ac6d19e0a76c5fd809a84c86" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c4/5f/2cf2ceb3b36372d51568f2208c021870fe7834cf3186b653ac6446511839/mypy-1.18.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ca30b50a51e7ba93b00422e486cbb124f1c56a535e20eff7b2d6ab72b3b2e37" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/7d/2697b930179e7277529eaaec1513f8de622818696857f689e4a5432e5e27/mypy-1.18.2-cp311-cp311-win_amd64.whl", hash = "sha256:664dc726e67fa54e14536f6e1224bcfce1d9e5ac02426d2326e2bb4e081d1ce8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/07/06/dfdd2bc60c66611dd8335f463818514733bc763e4760dee289dcc33df709/mypy-1.18.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:33eca32dd124b29400c31d7cf784e795b050ace0e1f91b8dc035672725617e34" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/14/6a9de6d13a122d5608e1a04130724caf9170333ac5a924e10f670687d3eb/mypy-1.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3c47adf30d65e89b2dcd2fa32f3aeb5e94ca970d2c15fcb25e297871c8e4764" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5f/a9/b29de53e42f18e8cc547e38daa9dfa132ffdc64f7250e353f5c8cdd44bee/mypy-1.18.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d6c838e831a062f5f29d11c9057c6009f60cb294fea33a98422688181fe2893" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/77/ae/6c3d2c7c61ff21f2bee938c917616c92ebf852f015fb55917fd6e2811db2/mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01199871b6110a2ce984bde85acd481232d17413868c9807e95c1b0739a58914" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/4d/31/aec68ab3b4aebdf8f36d191b0685d99faa899ab990753ca0fee60fb99511/mypy-1.18.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a2afc0fa0b0e91b4599ddfe0f91e2c26c2b5a5ab263737e998d6817874c5f7c8" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9f/83/abcb3ad9478fca3ebeb6a5358bb0b22c95ea42b43b7789c7fb1297ca44f4/mypy-1.18.2-cp312-cp312-win_amd64.whl", hash = "sha256:d8068d0afe682c7c4897c0f7ce84ea77f6de953262b12d07038f4d296d547074" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5f/04/7f462e6fbba87a72bc8097b93f6842499c428a6ff0c81dd46948d175afe8/mypy-1.18.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:07b8b0f580ca6d289e69209ec9d3911b4a26e5abfde32228a288eb79df129fcc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/99/5b/61ed4efb64f1871b41fd0b82d29a64640f3516078f6c7905b68ab1ad8b13/mypy-1.18.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ed4482847168439651d3feee5833ccedbf6657e964572706a2adb1f7fa4dfe2e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3c/46/d297d4b683cc89a6e4108c4250a6a6b717f5fa96e1a30a7944a6da44da35/mypy-1.18.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3ad2afadd1e9fea5cf99a45a822346971ede8685cc581ed9cd4d42eaf940986" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/83/45/4798f4d00df13eae3bfdf726c9244bcb495ab5bd588c0eed93a2f2dd67f3/mypy-1.18.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a431a6f1ef14cf8c144c6b14793a23ec4eae3db28277c358136e79d7d062f62d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d7/09/479f7358d9625172521a87a9271ddd2441e1dab16a09708f056e97007207/mypy-1.18.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7ab28cc197f1dd77a67e1c6f35cd1f8e8b73ed2217e4fc005f9e6a504e46e7ba" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/71/cf/ac0f2c7e9d0ea3c75cd99dff7aec1c9df4a1376537cb90e4c882267ee7e9/mypy-1.18.2-cp313-cp313-win_amd64.whl", hash = "sha256:0e2785a84b34a72ba55fb5daf079a1003a34c05b22238da94fcae2bbe46f3544" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5a/0c/7d5300883da16f0063ae53996358758b2a2df2a09c72a5061fa79a1f5006/mypy-1.18.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:62f0e1e988ad41c2a110edde6c398383a889d95b36b3e60bcf155f5164c4fdce" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/50/df/2cffbf25737bdb236f60c973edf62e3e7b4ee1c25b6878629e88e2cde967/mypy-1.18.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8795a039bab805ff0c1dfdb8cd3344642c2b99b8e439d057aba30850b8d3423d" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/be/50/34059de13dd269227fb4a03be1faee6e2a4b04a2051c82ac0a0b5a773c9a/mypy-1.18.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ca1e64b24a700ab5ce10133f7ccd956a04715463d30498e64ea8715236f9c9c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/11/040983fad5132d85914c874a2836252bbc57832065548885b5bb5b0d4359/mypy-1.18.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d924eef3795cc89fecf6bedc6ed32b33ac13e8321344f6ddbf8ee89f706c05cb" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e9/ba/89b2901dd77414dd7a8c8729985832a5735053be15b744c18e4586e506ef/mypy-1.18.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20c02215a080e3a2be3aa50506c67242df1c151eaba0dcbc1e4e557922a26075" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/25/bc/cc98767cffd6b2928ba680f3e5bc969c4152bf7c2d83f92f5a504b92b0eb/mypy-1.18.2-cp314-cp314-win_amd64.whl", hash = "sha256:749b5f83198f1ca64345603118a6f01a4e99ad4bf9d103ddc5a3200cc4614adf" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3f/a6/490ff491d8ecddf8ab91762d4f67635040202f76a44171420bcbe38ceee5/mypy-1.18.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:25a9c8fb67b00599f839cf472713f54249a62efd53a54b565eb61956a7e3296b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/eb/2e/60076fc829645d167ece9e80db9e8375648d210dab44cc98beb5b322a826/mypy-1.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2b9c7e284ee20e7598d6f42e13ca40b4928e6957ed6813d1ab6348aa3f47133" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/97/4a/1e2880a2a5dda4dc8d9ecd1a7e7606bc0b0e14813637eeda40c38624e037/mypy-1.18.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d6985ed057513e344e43a26cc1cd815c7a94602fb6a3130a34798625bc2f07b6" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/00/81/a117f1b73a3015b076b20246b1f341c34a578ebd9662848c6b80ad5c4138/mypy-1.18.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22f27105f1525ec024b5c630c0b9f36d5c1cc4d447d61fe51ff4bd60633f47ac" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/9b/61/b9f48e1714ce87c7bf0358eb93f60663740ebb08f9ea886ffc670cea7933/mypy-1.18.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:030c52d0ea8144e721e49b1f68391e39553d7451f0c3f8a7565b59e19fcb608b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c9/66/b2c0af3b684fa80d1b27501a8bdd3d2daa467ea3992a8aa612f5ca17c2db/mypy-1.18.2-cp39-cp39-win_amd64.whl", hash = "sha256:aa5e07ac1a60a253445797e42b8b2963c9675563a94f11291ab40718b016a7a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/87/e3/be76d87158ebafa0309946c4a73831974d4d6ab4f4ef40c3b53a385a66fd/mypy-1.18.2-py3-none-any.whl", hash = "sha256:22a1748707dd62b58d2ae53562ffc4d7f8bcc727e8ac7cbc69c053ddc874d47e" }, ] [[package]] @@ -948,7 +1573,8 @@ 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.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] @@ -1007,7 +1633,8 @@ name = "packaging" version = "25.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] @@ -1034,46 +1661,6 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097" }, ] -[[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.10'", - "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" @@ -1106,7 +1693,8 @@ name = "pluggy" version = "1.6.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "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" } @@ -1128,16 +1716,17 @@ wheels = [ [[package]] name = "pycparser" -version = "2.22" +version = "2.23" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] -sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2" } wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934" }, ] [[package]] @@ -1157,7 +1746,8 @@ name = "pygments" version = "2.19.2" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] @@ -1167,61 +1757,127 @@ wheels = [ ] [[package]] -name = "pyproject-api" -version = "1.5.3" +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/f7/70/a63493ea5066b32053f80fdc24fae7c5a2fc65d8f01a1883b30fd850aa84/pyproject_api-1.5.3.tar.gz", hash = "sha256:ffb5b2d7cad43f5b2688ab490de7c4d3f6f15e0b819cb588c4b771567c9729eb" } +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/05/53/b225115e177eb54664ede5b68a23d6806d9890baa8ee66b8d87f0bdb6346/pyproject_api-1.5.3-py3-none-any.whl", hash = "sha256:14cf09828670c7b08842249c1f28c8ee6581b872e893f81b62d5465bec41502f" }, + { 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 = "pyproject-api" -version = "1.8.0" +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/bb/19/441e0624a8afedd15bbcce96df1b80479dd0ff0d965f5ce8fde4f2f6ffad/pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496" } +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/ba/f4/3c4ddfcc0c19c217c6de513842d286de8021af2f2ab79bbb86c00342d778/pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228" }, + { 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 = "pyproject-api" -version = "1.9.1" +name = "pytest" +version = "8.4.2" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "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", version = "2.19.2", 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" } +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01" } 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" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79" }, ] [[package]] -name = "pyproject-hooks" -version = "1.2.0" +name = "pytest-cov" +version = "4.1.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" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "coverage", version = "7.2.7", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, extra = ["toml"], marker = "python_full_version < '3.8'" }, + { name = "pytest", version = "7.4.4", 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/7a/15/da3df99fd551507694a9b01f512a2f6cf1254f33601605843c3775f39460/pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6" } 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" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/4b/8b78d126e275efa2379b1c2e09dc52cf70df16fc3b90613ef82531499d73/pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a" }, +] + +[[package]] +name = "pytest-cov" +version = "5.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "coverage", version = "7.6.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, extra = ["toml"], 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.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/74/67/00efc8d11b630c56f15f4ad9c7f9223f1e5ec275aaae3fa9118c6a223ad2/pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/78/3a/af5b4fa5961d9a1e6237b530eb87dd04aea6eb83da09d2a4073d81b54ccf/pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652" }, +] + +[[package]] +name = "pytest-cov" +version = "7.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "coverage", version = "7.10.7", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, extra = ["toml"], 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 = "pytest", version = "8.4.2", 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/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861" }, ] [[package]] @@ -1253,7 +1909,8 @@ 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.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "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" } @@ -1261,6 +1918,15 @@ 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 = "pytz" +version = "2025.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/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00" }, +] + [[package]] name = "pywin32-ctypes" version = "0.2.3" @@ -1279,7 +1945,7 @@ resolution-markers = [ ] dependencies = [ { name = "bleach", marker = "python_full_version < '3.8'" }, - { name = "docutils", version = "0.20.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "docutils", version = "0.19", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, { name = "pygments", version = "2.17.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/81/c3/d20152fcd1986117b898f66928938f329d0c91ddc47f081c58e64e0f51dc/readme_renderer-37.3.tar.gz", hash = "sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273" } @@ -1309,11 +1975,12 @@ name = "readme-renderer" version = "44.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "docutils", version = "0.22", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, { name = "nh3", marker = "python_full_version >= '3.9'" }, { name = "pygments", version = "2.19.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, ] @@ -1363,7 +2030,8 @@ name = "requests" version = "2.32.5" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ @@ -1422,7 +2090,8 @@ name = "rich" version = "14.1.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] @@ -1437,44 +2106,76 @@ wheels = [ ] [[package]] -name = "ruff" -version = "0.12.10" -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/3b/eb/8c073deb376e46ae767f4961390d17545e8535921d2f65101720ed8bd434/ruff-0.12.10.tar.gz", hash = "sha256:189ab65149d11ea69a2d775343adf5f49bb2426fc4780f65ee33b423ad2e47f9" } -wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/e7/560d049d15585d6c201f9eeacd2fd130def3741323e5ccf123786e0e3c95/ruff-0.12.10-py3-none-linux_armv6l.whl", hash = "sha256:8b593cb0fb55cc8692dac7b06deb29afda78c721c7ccfed22db941201b7b8f7b" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d1/b0/ad2464922a1113c365d12b8f80ed70fcfb39764288ac77c995156080488d/ruff-0.12.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ebb7333a45d56efc7c110a46a69a1b32365d5c5161e7244aaf3aa20ce62399c1" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d7/f1/97f509b4108d7bae16c48389f54f005b62ce86712120fd8b2d8e88a7cb49/ruff-0.12.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d59e58586829f8e4a9920788f6efba97a13d1fa320b047814e8afede381c6839" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/ad/44f606d243f744a75adc432275217296095101f83f966842063d78eee2d3/ruff-0.12.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:822d9677b560f1fdeab69b89d1f444bf5459da4aa04e06e766cf0121771ab844" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/06/1f/ed6c265e199568010197909b25c896d66e4ef2c5e1c3808caf461f6f3579/ruff-0.12.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b4a64f4062a50c75019c61c7017ff598cb444984b638511f48539d3a1c98db" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/63/c5/b21cde720f54a1d1db71538c0bc9b73dee4b563a7dd7d2e404914904d7f5/ruff-0.12.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6f4064c69d2542029b2a61d39920c85240c39837599d7f2e32e80d36401d6e" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/02/9e/39369e6ac7f2a1848f22fb0b00b690492f20811a1ac5c1fd1d2798329263/ruff-0.12.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:059e863ea3a9ade41407ad71c1de2badfbe01539117f38f763ba42a1206f7559" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/e3/03/5da8cad4b0d5242a936eb203b58318016db44f5c5d351b07e3f5e211bb89/ruff-0.12.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bef6161e297c68908b7218fa6e0e93e99a286e5ed9653d4be71e687dff101cf" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/19/19/dd7273b69bf7f93a070c9cec9494a94048325ad18fdcf50114f07e6bf417/ruff-0.12.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4f1345fbf8fb0531cd722285b5f15af49b2932742fc96b633e883da8d841896b" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c0/1d/b4207ec35e7babaee62c462769e77457e26eb853fbdc877af29417033333/ruff-0.12.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f68433c4fbc63efbfa3ba5db31727db229fa4e61000f452c540474b03de52a9" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/00/58f7b873b21114456e880b75176af3490d7a2836033779ca42f50de3b47a/ruff-0.12.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:141ce3d88803c625257b8a6debf4a0473eb6eed9643a6189b68838b43e78165a" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/12/8c/9e6660007fb10189ccb78a02b41691288038e51e4788bf49b0a60f740604/ruff-0.12.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f3fc21178cd44c98142ae7590f42ddcb587b8e09a3b849cbc84edb62ee95de60" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/4c/6d092bb99ea9ea6ebda817a0e7ad886f42a58b4501a7e27cd97371d0ba54/ruff-0.12.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7d1a4e0bdfafcd2e3e235ecf50bf0176f74dd37902f241588ae1f6c827a36c56" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/59/80/d982c55e91df981f3ab62559371380616c57ffd0172d96850280c2b04fa8/ruff-0.12.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:e67d96827854f50b9e3e8327b031647e7bcc090dbe7bb11101a81a3a2cbf1cc9" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/37/63a9c788bbe0b0850611669ec6b8589838faf2f4f959647f2d3e320383ae/ruff-0.12.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ae479e1a18b439c59138f066ae79cc0f3ee250712a873d00dbafadaad9481e5b" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/47/d4/1aaa7fb201a74181989970ebccd12f88c0fc074777027e2a21de5a90657e/ruff-0.12.10-py3-none-win32.whl", hash = "sha256:9de785e95dc2f09846c5e6e1d3a3d32ecd0b283a979898ad427a9be7be22b266" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ad/14/2ad38fd4037daab9e023456a4a40ed0154e9971f8d6aed41bdea390aabd9/ruff-0.12.10-py3-none-win_amd64.whl", hash = "sha256:7837eca8787f076f67aba2ca559cefd9c5cbc3a9852fd66186f4201b87c1563e" }, - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/24/3c/21cf283d67af33a8e6ed242396863af195a8a6134ec581524fd22b9811b6/ruff-0.12.10-py3-none-win_arm64.whl", hash = "sha256:cc138cc06ed9d4bfa9d667a65af7172b47840e1a98b02ce7011c391e54635ffc" }, +name = "roman-numerals-py" +version = "3.1.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/30/76/48fd56d17c5bdbdf65609abbc67288728a98ed4c02919428d4f52d23b24b/roman_numerals_py-3.1.0.tar.gz", hash = "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/97/d2cbbaa10c9b826af0e10fdf836e1bf344d9f0abb873ebc34d1f49642d3f/roman_numerals_py-3.1.0-py3-none-any.whl", hash = "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c" }, ] [[package]] -name = "secretstorage" +name = "ruff" +version = "0.13.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/ab/33/c8e89216845615d14d2d42ba2bee404e7206a8db782f33400754f3799f05/ruff-0.13.1.tar.gz", hash = "sha256:88074c3849087f153d4bb22e92243ad4c1b366d7055f98726bc19aa08dc12d51" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f3/41/ca37e340938f45cfb8557a97a5c347e718ef34702546b174e5300dbb1f28/ruff-0.13.1-py3-none-linux_armv6l.whl", hash = "sha256:b2abff595cc3cbfa55e509d89439b5a09a6ee3c252d92020bd2de240836cf45b" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ff/84/ba378ef4129415066c3e1c80d84e539a0d52feb250685091f874804f28af/ruff-0.13.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:4ee9f4249bf7f8bb3984c41bfaf6a658162cdb1b22e3103eabc7dd1dc5579334" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/b6/ec5e4559ae0ad955515c176910d6d7c93edcbc0ed1a3195a41179c58431d/ruff-0.13.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5c5da4af5f6418c07d75e6f3224e08147441f5d1eac2e6ce10dcce5e616a3bae" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/70/d6/cb3e3b4f03b9b0c4d4d8f06126d34b3394f6b4d764912fe80a1300696ef6/ruff-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80524f84a01355a59a93cef98d804e2137639823bcee2931f5028e71134a954e" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/d2/ea/bf60cb46d7ade706a246cd3fb99e4cfe854efa3dfbe530d049c684da24ff/ruff-0.13.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff7f5ce8d7988767dd46a148192a14d0f48d1baea733f055d9064875c7d50389" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2d/3e/05f72f4c3d3a69e65d55a13e1dd1ade76c106d8546e7e54501d31f1dc54a/ruff-0.13.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c55d84715061f8b05469cdc9a446aa6c7294cd4bd55e86a89e572dba14374f8c" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/e7/01b1fc403dd45d6cfe600725270ecc6a8f8a48a55bc6521ad820ed3ceaf8/ruff-0.13.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ac57fed932d90fa1624c946dc67a0a3388d65a7edc7d2d8e4ca7bddaa789b3b0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fa/92/d9e183d4ed6185a8df2ce9faa3f22e80e95b5f88d9cc3d86a6d94331da3f/ruff-0.13.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c366a71d5b4f41f86a008694f7a0d75fe409ec298685ff72dc882f882d532e36" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3b/4a/6ddb1b11d60888be224d721e01bdd2d81faaf1720592858ab8bac3600466/ruff-0.13.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4ea9d1b5ad3e7a83ee8ebb1229c33e5fe771e833d6d3dcfca7b77d95b060d38" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/81/98/3f1d18a8d9ea33ef2ad508f0417fcb182c99b23258ec5e53d15db8289809/ruff-0.13.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0f70202996055b555d3d74b626406476cc692f37b13bac8828acff058c9966a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/8d/86/b6ce62ce9c12765fa6c65078d1938d2490b2b1d9273d0de384952b43c490/ruff-0.13.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:f8cff7a105dad631085d9505b491db33848007d6b487c3c1979dd8d9b2963783" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a1/6e/af7943466a41338d04503fb5a81b2fd07251bd272f546622e5b1599a7976/ruff-0.13.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9761e84255443316a258dd7dfbd9bfb59c756e52237ed42494917b2577697c6a" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3f/97/0249b9a24f0f3ebd12f007e81c87cec6d311de566885e9309fcbac5b24cc/ruff-0.13.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3d376a88c3102ef228b102211ef4a6d13df330cb0f5ca56fdac04ccec2a99700" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/85/0b64693b2c99d62ae65236ef74508ba39c3febd01466ef7f354885e5050c/ruff-0.13.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:cbefd60082b517a82c6ec8836989775ac05f8991715d228b3c1d86ccc7df7dae" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/96/fc/342e9f28179915d28b3747b7654f932ca472afbf7090fc0c4011e802f494/ruff-0.13.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:dd16b9a5a499fe73f3c2ef09a7885cb1d97058614d601809d37c422ed1525317" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/37/54/6177a0dc10bce6f43e392a2192e6018755473283d0cf43cc7e6afc182aea/ruff-0.13.1-py3-none-win32.whl", hash = "sha256:55e9efa692d7cb18580279f1fbb525146adc401f40735edf0aaeabd93099f9a0" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/64/51/c6a3a33d9938007b8bdc8ca852ecc8d810a407fb513ab08e34af12dc7c24/ruff-0.13.1-py3-none-win_amd64.whl", hash = "sha256:3a3fb595287ee556de947183489f636b9f76a72f0fa9c028bdcabf5bab2cc5e5" }, + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/fd/04/afc078a12cf68592345b1e2d6ecdff837d286bac023d7a22c54c7a698c5b/ruff-0.13.1-py3-none-win_arm64.whl", hash = "sha256:c0bae9ffd92d54e03c2bf266f466da0a65e145f298ee5b5846ed435f6a00518a" }, +] + +[[package]] +name = "secretstorage" version = "3.3.3" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", + "python_full_version == '3.8.*'", + "python_full_version < '3.8'", +] dependencies = [ - { name = "cryptography" }, - { name = "jeepney" }, + { name = "cryptography", version = "45.0.7", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "cryptography", version = "46.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8' and python_full_version < '3.10'" }, + { name = "jeepney", marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77" } wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99" }, ] +[[package]] +name = "secretstorage" +version = "3.4.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "cryptography", version = "46.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "jeepney", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/31/9f/11ef35cf1027c1339552ea7bfe6aaa74a8516d8b5caf6e7d338daf54fd80/secretstorage-3.4.0.tar.gz", hash = "sha256:c46e216d6815aff8a8a18706a2fbfd8d53fcbb0dce99301881687a1b0289ef7c" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/91/ff/2e2eed29e02c14a5cb6c57f09b2d5b40e65d6cc71f45b52e0be295ccbc2f/secretstorage-3.4.0-py3-none-any.whl", hash = "sha256:0e3b6265c2c63509fb7415717607e4b2c9ab767b7f344a57473b779ca13bd02e" }, +] + [[package]] name = "six" version = "1.17.0" @@ -1484,6 +2185,337 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274" }, ] +[[package]] +name = "snowballstemmer" +version = "3.0.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/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064" }, +] + +[[package]] +name = "sphinx" +version = "5.3.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version < '3.8'", +] +dependencies = [ + { name = "alabaster", version = "0.7.13", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "babel", version = "2.14.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "colorama", marker = "python_full_version < '3.8' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.19", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "imagesize", 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 = "jinja2", 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 = "pygments", version = "2.17.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "requests", version = "2.31.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "snowballstemmer", marker = "python_full_version < '3.8'" }, + { name = "sphinxcontrib-applehelp", version = "1.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinxcontrib-devhelp", version = "1.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinxcontrib-htmlhelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.8'" }, + { name = "sphinxcontrib-qthelp", version = "1.0.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinxcontrib-serializinghtml", version = "1.1.5", 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/af/b2/02a43597980903483fe5eb081ee8e0ba2bb62ea43a70499484343795f3bf/Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/67/a7/01dd6fd9653c056258d65032aa09a615b5d7b07dd840845a9f41a8860fbc/sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d" }, +] + +[[package]] +name = "sphinx" +version = "7.1.2" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.8.*'", +] +dependencies = [ + { name = "alabaster", version = "0.7.13", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "babel", version = "2.17.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "colorama", marker = "python_full_version == '3.8.*' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.20.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "imagesize", marker = "python_full_version == '3.8.*'" }, + { 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 = "jinja2", 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 = "pygments", version = "2.19.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "requests", version = "2.32.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "snowballstemmer", marker = "python_full_version == '3.8.*'" }, + { name = "sphinxcontrib-applehelp", version = "1.0.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinxcontrib-devhelp", version = "1.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinxcontrib-htmlhelp", version = "2.0.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.8.*'" }, + { name = "sphinxcontrib-qthelp", version = "1.0.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinxcontrib-serializinghtml", version = "1.1.5", 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/dc/01/688bdf9282241dca09fe6e3a1110eda399fa9b10d0672db609e37c2e7a39/sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/48/17/325cf6a257d84751a48ae90752b3d8fe0be8f9535b6253add61c49d0d9bc/sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe" }, +] + +[[package]] +name = "sphinx" +version = "7.4.7" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "alabaster", version = "0.7.16", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "babel", version = "2.17.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "colorama", marker = "python_full_version == '3.9.*' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "imagesize", marker = "python_full_version == '3.9.*'" }, + { 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.*'" }, + { name = "jinja2", 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 = "pygments", version = "2.19.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "requests", version = "2.32.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "snowballstemmer", marker = "python_full_version == '3.9.*'" }, + { name = "sphinxcontrib-applehelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinxcontrib-devhelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinxcontrib-htmlhelp", version = "2.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.9.*'" }, + { name = "sphinxcontrib-qthelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinxcontrib-serializinghtml", version = "2.0.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.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5b/be/50e50cb4f2eff47df05673d361095cafd95521d2a22521b920c67a372dcb/sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0d/ef/153f6803c5d5f8917dbb7f7fcf6d34a871ede3296fa89c2c703f5f8a6c8e/sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239" }, +] + +[[package]] +name = "sphinx" +version = "8.1.3" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "alabaster", version = "1.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "babel", version = "2.17.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "colorama", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "imagesize", marker = "python_full_version == '3.10.*'" }, + { name = "jinja2", marker = "python_full_version == '3.10.*'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "pygments", version = "2.19.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "requests", version = "2.32.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "snowballstemmer", marker = "python_full_version == '3.10.*'" }, + { name = "sphinxcontrib-applehelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinxcontrib-devhelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinxcontrib-htmlhelp", version = "2.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.10.*'" }, + { name = "sphinxcontrib-qthelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinxcontrib-serializinghtml", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "tomli", version = "2.2.1", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2" }, +] + +[[package]] +name = "sphinx" +version = "8.2.3" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", +] +dependencies = [ + { name = "alabaster", version = "1.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "babel", version = "2.17.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "imagesize", marker = "python_full_version >= '3.11'" }, + { name = "jinja2", marker = "python_full_version >= '3.11'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pygments", version = "2.19.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "requests", version = "2.32.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "roman-numerals-py", marker = "python_full_version >= '3.11'" }, + { name = "snowballstemmer", marker = "python_full_version >= '3.11'" }, + { name = "sphinxcontrib-applehelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "sphinxcontrib-devhelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "sphinxcontrib-htmlhelp", version = "2.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.11'" }, + { name = "sphinxcontrib-qthelp", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "sphinxcontrib-serializinghtml", version = "2.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl", hash = "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3" }, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.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/9f/01/ad9d4ebbceddbed9979ab4a89ddb78c9760e74e6757b1880f1b2760e8295/sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/dc/47/86022665a9433d89a66f5911b558ddff69861766807ba685de2e324bd6ed/sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a" }, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.4" +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/32/df/45e827f4d7e7fcc84e853bcef1d836effd762d63ccb86f43ede4e98b478c/sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/06/c1/5e2cafbd03105ce50d8500f9b4e8a6e8d02e22d0475b574c3b3e9451a15f/sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228" }, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "2.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5" }, +] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.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/98/33/dc28393f16385f722c893cb55539c641c9aaec8d1bc1c15b69ce0ac2dbb3/sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c5/09/5de5ed43a521387f18bdf5f5af31d099605c992fd25372b2b9b825ce48ee/sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e" }, +] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "2.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2" }, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +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/eb/85/93464ac9bd43d248e7c74573d58a791d48c475230bcf000df2b2700b9027/sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/63/40/c854ef09500e25f6432dcbad0f37df87fd7046d376272292d8654cc71c95/sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07" }, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +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/b3/47/64cff68ea3aa450c373301e5bebfbb9fce0a3e70aca245fcadd4af06cd75/sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/6e/ee/a1f5e39046cbb5f8bc8fba87d1ddf1c6643fbc9194e58d26e606de4b9074/sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903" }, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.1.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8" }, +] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.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/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178" }, +] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +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/b1/8e/c4846e59f38a5f2b4a0e3b27af38f2fcf904d4bfd82095bf92de0b114ebd/sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/2b/14/05f9206cf4e9cfca1afb5fd224c7cd434dcc3a433d6d9e4e0264d29c6cdb/sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6" }, +] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "2.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb" }, +] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +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/b5/72/835d6fadb9e5d02304cf39b18f93d227cd93abd3c41ebf58e6853eeb1455/sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/c6/77/5464ec50dd0f1c1037e3c93249b040c8fc8078fdda97530eeb02424b6eea/sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd" }, +] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "2.0.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331" }, +] + [[package]] name = "splunk-sdk" source = { editable = "." } @@ -1491,6 +2523,10 @@ dependencies = [ { 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.optional-dependencies] +compat = [ { name = "six" }, ] @@ -1500,57 +2536,110 @@ build = [ { 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 = "twine", version = "4.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, - { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "twine", version = "6.2.0", 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 = "jinja2" }, { 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 = "mypy", version = "1.18.2", 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.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pytest-cov", version = "4.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pytest-cov", version = "5.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pytest-cov", version = "7.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, { name = "ruff" }, - { 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'" }, + { name = "sphinx", version = "5.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinx", version = "7.1.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinx", version = "7.4.7", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinx", version = "8.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, { name = "twine", version = "4.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, - { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "twine", version = "6.2.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] +docs = [ + { name = "jinja2" }, + { name = "sphinx", version = "5.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinx", version = "7.1.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinx", version = "7.4.7", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinx", version = "8.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, ] 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 = "mypy", version = "1.18.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, { name = "ruff" }, ] +release = [ + { 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 = "jinja2" }, + { name = "sphinx", version = "5.3.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "sphinx", version = "7.1.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "sphinx", version = "7.4.7", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "sphinx", version = "8.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "twine", version = "4.0.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "twine", version = "6.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "twine", version = "6.2.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, +] test = [ - { 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'" }, + { 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.2", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pytest-cov", version = "4.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version < '3.8'" }, + { name = "pytest-cov", version = "5.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, + { name = "pytest-cov", version = "7.0.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, ] [package.metadata] requires-dist = [ - { name = "python-dotenv" }, - { name = "six" }, + { name = "python-dotenv", specifier = ">=0.21.1" }, + { name = "six", marker = "extra == 'compat'", specifier = ">=1.17.0" }, ] +provides-extras = ["compat"] [package.metadata.requires-dev] build = [ - { name = "build" }, - { name = "twine" }, + { name = "build", specifier = ">=1.1.1" }, + { name = "twine", specifier = ">=4.0.2" }, ] dev = [ - { name = "build" }, - { name = "mypy" }, - { name = "ruff" }, - { name = "tox" }, - { name = "twine" }, + { name = "build", specifier = ">=1.1.1" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "mypy", specifier = ">=1.4.1" }, + { name = "pytest", specifier = ">=7.4.4" }, + { name = "pytest-cov", specifier = ">=4.1.0" }, + { name = "ruff", specifier = ">=0.13.1" }, + { name = "sphinx" }, + { name = "twine", specifier = ">=4.0.2" }, +] +docs = [ + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "sphinx" }, ] lint = [ - { name = "mypy" }, - { name = "ruff" }, + { name = "mypy", specifier = ">=1.4.1" }, + { name = "ruff", specifier = ">=0.13.1" }, +] +release = [ + { name = "build", specifier = ">=1.1.1" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "sphinx" }, + { name = "twine", specifier = ">=4.0.2" }, +] +test = [ + { name = "pytest", specifier = ">=7.4.4" }, + { name = "pytest-cov", specifier = ">=4.1.0" }, ] -test = [{ name = "tox" }] [[package]] name = "tomli" @@ -1569,7 +2658,8 @@ name = "tomli" version = "2.2.1" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] @@ -1608,83 +2698,6 @@ wheels = [ { 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.34.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.10'", - "python_full_version == '3.9.*'", -] -dependencies = [ - { name = "cachetools", version = "6.2.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.19.1", 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.15.0", 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.34.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 = "twine" version = "4.0.2" @@ -1713,32 +2726,51 @@ name = "twine" version = "6.1.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", "python_full_version == '3.8.*'", ] dependencies = [ - { name = "id", marker = "python_full_version >= '3.8'" }, + { name = "id", marker = "python_full_version == '3.8.*'" }, { 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 = "importlib-metadata", version = "8.7.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "keyring", version = "25.5.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*' and platform_machine != 'ppc64le' and platform_machine != 's390x'" }, - { name = "keyring", version = "25.6.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and platform_machine != 'ppc64le' and platform_machine != 's390x'" }, - { name = "packaging", version = "25.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 = "readme-renderer", version = "43.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, - { name = "readme-renderer", version = "44.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, { name = "requests", version = "2.32.4", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, - { name = "requests", version = "2.32.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "requests-toolbelt", marker = "python_full_version >= '3.8'" }, - { name = "rfc3986", marker = "python_full_version >= '3.8'" }, - { name = "rich", version = "14.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "requests-toolbelt", marker = "python_full_version == '3.8.*'" }, + { name = "rfc3986", marker = "python_full_version == '3.8.*'" }, + { name = "rich", version = "14.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, { name = "urllib3", version = "2.2.3", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version == '3.8.*'" }, - { name = "urllib3", version = "2.5.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/c8/a2/6df94fc5c8e2170d21d7134a565c3a8fb84f9797c1dd65a5976aaf714418/twine-6.1.0.tar.gz", hash = "sha256:be324f6272eff91d07ee93f251edf232fc647935dd585ac003539b42404a8dbd" } wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/7c/b6/74e927715a285743351233f33ea3c684528a0d374d2e43ff9ce9585b73fe/twine-6.1.0-py3-none-any.whl", hash = "sha256:a47f973caf122930bf0fbbf17f80b83bc1602c9ce393c7845f289a3001dc5384" }, ] +[[package]] +name = "twine" +version = "6.2.0" +source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "id", marker = "python_full_version >= '3.9'" }, + { 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.*'" }, + { name = "keyring", version = "25.6.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9' and platform_machine != 'ppc64le' and platform_machine != 's390x'" }, + { name = "packaging", version = "25.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "readme-renderer", version = "44.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests", version = "2.32.5", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests-toolbelt", marker = "python_full_version >= '3.9'" }, + { name = "rfc3986", marker = "python_full_version >= '3.9'" }, + { name = "rich", version = "14.1.0", source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "urllib3", version = "2.5.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/e0/a8/949edebe3a82774c1ec34f637f5dd82d1cf22c25e963b7d63771083bbee5/twine-6.2.0.tar.gz", hash = "sha256:e5ed0d2fd70c9959770dce51c8f39c8945c574e18173a7b81802dab51b4b75cf" } +wheels = [ + { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/3a/7a/882d99539b19b1490cac5d77c67338d126e4122c8276bf640e411650c830/twine-6.2.0-py3-none-any.whl", hash = "sha256:418ebf08ccda9a8caaebe414433b0ba5e25eb5e4a927667122fbe8f829f985d8" }, +] + [[package]] name = "typed-ast" version = "1.5.5" @@ -1810,7 +2842,8 @@ name = "typing-extensions" version = "4.15.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466" } @@ -1847,7 +2880,8 @@ name = "urllib3" version = "2.5.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760" } @@ -1855,47 +2889,6 @@ wheels = [ { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc" }, ] -[[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.34.0" -source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "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.19.1", 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'" }, - { 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.15.0", 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/1c/14/37fcdba2808a6c615681cd216fecae00413c9dab44fb2e57805ecf3eaee3/virtualenv-20.34.0.tar.gz", hash = "sha256:44815b2c9dee7ed86e387b842a84f20b93f7f417f95886ca1996a72a4138eb1a" } -wheels = [ - { url = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/packages/packages/76/06/04c8e804f813cf972e3262f3f8584c232de64f0cde9f703b46cf53a45090/virtualenv-20.34.0-py3-none-any.whl", hash = "sha256:341f5afa7eee943e4984a9207c025feedd768baff6753cd660c857ceb3e36026" }, -] - [[package]] name = "webencodings" version = "0.5.1" @@ -1934,7 +2927,8 @@ name = "zipp" version = "3.23.0" source = { registry = "https://repo.splunkdev.net/artifactory/api/pypi/pypi-test/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", "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" } From bf6ed385000b5961077a346d66c2dc37ce70f966 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 13:50:55 +0200 Subject: [PATCH 19/30] Bump actions/upload-artifact (#676) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from de65e23aa2b7e23d713bb51fbfcb6d502f8667d8 to 2848b2cda0e5190984587ec6bb1f36730ca78d50. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/de65e23aa2b7e23d713bb51fbfcb6d502f8667d8...2848b2cda0e5190984587ec6bb1f36730ca78d50) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 2848b2cda0e5190984587ec6bb1f36730ca78d50 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ef553b003..ddb6b46d5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,7 +29,7 @@ jobs: - name: Generate API reference run: make -C ./docs html - name: Upload docs artifact - uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8 + uses: actions/upload-artifact@2848b2cda0e5190984587ec6bb1f36730ca78d50 with: name: python-sdk-docs path: docs/_build/html From 579fd0b6a03e3685b7abae874dab0d3655a80195 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 5 Nov 2025 09:17:50 +0100 Subject: [PATCH 20/30] Support self.service in ModularInput's validate_input (#682) We get access to the credentials there so lets expose it to users. --- README.md | 2 +- splunklib/modularinput/script.py | 20 ++++++++++--------- .../modularinput_app/bin/modularinput.py | 13 +++++++++++- tests/unit/modularinput/test_script.py | 2 +- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6a2b8a43b..51c7086d9 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ class GeneratorTest(GeneratingCommand): #### Accessing instance metadata in scripts -- The `service` metadata object is created from the `splunkd` URI and session key passed to the command invocation on the modular input stream respectively, and is available as soon as the `.stream_events()` method is called. +- The `service` metadata object is created from the `splunkd` URI and session key passed to the command invocation on the modular input stream respectively, and is available as soon as the `.stream_events()` or `.validate_input()` method is called. ```python from splunklib.modularinput import Script diff --git a/splunklib/modularinput/script.py b/splunklib/modularinput/script.py index 89a08edc2..2192eb721 100644 --- a/splunklib/modularinput/script.py +++ b/splunklib/modularinput/script.py @@ -35,7 +35,8 @@ class Script(metaclass=ABCMeta): """ def __init__(self): - self._input_definition = None + self._server_uri = None + self._session_key = None self._service = None def run(self, args): @@ -63,8 +64,10 @@ def run_script(self, args, event_writer, input_stream): # This script is running as an input. Input definitions will be # passed on stdin as XML, and the script will write events on # stdout and log entries on stderr. - self._input_definition = InputDefinition.parse(input_stream) - self.stream_events(self._input_definition, event_writer) + input_definition = InputDefinition.parse(input_stream) + self._server_uri = input_definition.metadata["server_uri"] + self._session_key = input_definition.metadata["session_key"] + self.stream_events(input_definition, event_writer) event_writer.close() return 0 @@ -83,6 +86,8 @@ def run_script(self, args, event_writer, input_stream): if args[1].lower() == "--validate-arguments": validation_definition = ValidationDefinition.parse(input_stream) + self._server_uri = validation_definition.metadata["server_uri"] + self._session_key = validation_definition.metadata["session_key"] try: self.validate_input(validation_definition) return 0 @@ -119,19 +124,16 @@ def service(self): if self._service is not None: return self._service - if self._input_definition is None: + if self._server_uri is None and self._session_key is None: return None - splunkd_uri = self._input_definition.metadata["server_uri"] - session_key = self._input_definition.metadata["session_key"] - - splunkd = urlsplit(splunkd_uri, allow_fragments=False) + splunkd = urlsplit(self._server_uri, allow_fragments=False) self._service = Service( scheme=splunkd.scheme, host=splunkd.hostname, port=splunkd.port, - token=session_key, + token=self._session_key, ) return self._service diff --git a/tests/system/test_apps/modularinput_app/bin/modularinput.py b/tests/system/test_apps/modularinput_app/bin/modularinput.py index ee525faf2..0b12660d4 100755 --- a/tests/system/test_apps/modularinput_app/bin/modularinput.py +++ b/tests/system/test_apps/modularinput_app/bin/modularinput.py @@ -22,7 +22,7 @@ class ModularInput(Script): """ - This app provides an example of a modular input that + This app provides an example of a modular input that can be used in Settings => Data inputs => Local inputs => modularinput """ @@ -44,18 +44,29 @@ def get_scheme(self): return scheme def validate_input(self, definition): + self.check_service_access() + url = definition.parameters[self.endpoint_arg] parsed = parse.urlparse(url) if parsed.scheme != "https": raise ValueError(f"non-supported scheme {parsed.scheme}") def stream_events(self, inputs, ew): + self.check_service_access() + for input_name, input_item in list(inputs.inputs.items()): event = Event() event.stanza = input_name event.data = "example message" ew.write_event(event) + def check_service_access(self): + # Both validate_input and stream_events should have access to the Splunk + # instance that executed the modular input. + if self.service is None: + raise Exception("self.Service == None") + self.service.info # make sure that we are properly authenticated and self.service works + if __name__ == "__main__": sys.exit(ModularInput().run(sys.argv)) diff --git a/tests/unit/modularinput/test_script.py b/tests/unit/modularinput/test_script.py index 9469048a8..06ae4a5ae 100644 --- a/tests/unit/modularinput/test_script.py +++ b/tests/unit/modularinput/test_script.py @@ -258,7 +258,7 @@ def stream_events(self, inputs, ew): "ERROR Some error - " "Traceback (most recent call last): " ' File "...", line 123, in run_script ' - " self.stream_events(self._input_definition, event_writer) " + " self.stream_events(input_definition, event_writer) " ' File "...", line 123, in stream_events ' ' raise RuntimeError("Some error") ' "RuntimeError: Some error " From 6f0af2d6c50835e6c1e7c3b32a0f1916a9aad944 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 5 Nov 2025 09:20:17 +0100 Subject: [PATCH 21/30] Expose published and author fields (#681) Fixes #619 --- splunklib/client.py | 2 ++ tests/integration/test_job.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/splunklib/client.py b/splunklib/client.py index 2ce9a90d5..0d69773f8 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -279,6 +279,8 @@ def _parse_atom_entry(entry): "fields": metadata.fields, "content": content, "updated": entry.get("updated"), + "published": entry.get("published"), + "author": entry.get("author"), } ) diff --git a/tests/integration/test_job.py b/tests/integration/test_job.py index 47b8f8e0b..6681ceece 100755 --- a/tests/integration/test_job.py +++ b/tests/integration/test_job.py @@ -17,6 +17,7 @@ from io import BytesIO from pathlib import Path from time import sleep +from datetime import datetime import io @@ -438,6 +439,17 @@ def test_v1_job_fallback(self): self.assertTrue(client.PATH_JOBS_V2 in self.job.path) self.assertEqual(n_events, n_preview, n_results) + def test_published_author_fields(self): + jobs = self.service.jobs.list(name=self.job.name) + self.assertEqual(len(jobs), 1) + self.assertEqual(jobs[0].state.author.name, self.service.username) + self.assertIsNotNone(jobs[0].state.published) + datetime.fromisoformat(jobs[0].state.published) # make sure it is parsable + + self.assertEqual(self.job.state.author.name, self.service.username) + self.assertIsNotNone(self.job.state.published) + datetime.fromisoformat(self.job.state.published) # make sure it is parsable + if __name__ == "__main__": unittest.main() From d8f02d0ece27e6c941b88ecb54d42e5492183ded Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Thu, 6 Nov 2025 08:52:00 +0100 Subject: [PATCH 22/30] Deflake test_published_author_fields (#684) Unfortunately sometimes it takes a while until the author field is avail, so we need to workaround that. --- tests/integration/test_job.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/integration/test_job.py b/tests/integration/test_job.py index 6681ceece..95c4f8721 100755 --- a/tests/integration/test_job.py +++ b/tests/integration/test_job.py @@ -440,6 +440,21 @@ def test_v1_job_fallback(self): self.assertEqual(n_events, n_preview, n_results) def test_published_author_fields(self): + def has_author(): + jobs = self.service.jobs.list(name=self.job.name) + return ( + len(jobs) == 1 + and jobs[0].state.author is not None + and jobs[0].state.author.name is not None + ) + + # It takes a while until the author field becomes available after + # creaton of a job, wait until it is available, before running the asserts. + self.assertEventuallyTrue( + has_author, + timeout=5, + ) + jobs = self.service.jobs.list(name=self.job.name) self.assertEqual(len(jobs), 1) self.assertEqual(jobs[0].state.author.name, self.service.username) From dcd31994ae941c28991f449bdd0bfd4aed7c47d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 10:07:43 +0100 Subject: [PATCH 23/30] Bump actions/checkout (#686) Bumps [actions/checkout](https://github.com/actions/checkout) from ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 to 71cf2267d89c5cb81562390fa70a37fa40b1305e. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493...71cf2267d89c5cb81562390fa70a37fa40b1305e) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 71cf2267d89c5cb81562390fa70a37fa40b1305e dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index e51050b1f..92f6895e5 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -13,7 +13,7 @@ jobs: name: splunk-test-pypi steps: - name: Checkout source - uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 + uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ddb6b46d5..7a83e1704 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: name: splunk-pypi steps: - name: Checkout source - uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 + uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1e3bce034..fa829a8f2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: splunk-version: latest steps: - name: Checkout code - uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 + uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e - name: Launch Splunk Docker instance run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python ${{ matrix.python-version }} From b249a0f045df58121c357b245e750e4374f53cd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 10:08:08 +0100 Subject: [PATCH 24/30] Bump actions/upload-artifact (#680) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2848b2cda0e5190984587ec6bb1f36730ca78d50 to 330a01c490aca151604b8cf639adc76d48f6c5d4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/2848b2cda0e5190984587ec6bb1f36730ca78d50...330a01c490aca151604b8cf639adc76d48f6c5d4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 330a01c490aca151604b8cf639adc76d48f6c5d4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7a83e1704..677c73dc7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,7 +29,7 @@ jobs: - name: Generate API reference run: make -C ./docs html - name: Upload docs artifact - uses: actions/upload-artifact@2848b2cda0e5190984587ec6bb1f36730ca78d50 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 with: name: python-sdk-docs path: docs/_build/html From 6d641a33dfc46afcbd0081045d132a7adfa1edc6 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 12 Nov 2025 15:31:28 +0100 Subject: [PATCH 25/30] Support setting string body in the generic `request` method (#683) * Add cre_apps system tests * Support string body in the generic request method Updates #577 --- docker-compose.yml | 1 + splunklib/binding.py | 8 +- tests/system/test_apps/cre_app/bin/execute.py | 50 ++++++ .../system/test_apps/cre_app/default/app.conf | 20 +++ .../test_apps/cre_app/default/restmap.conf | 5 + tests/system/test_cre_apps.py | 142 ++++++++++++++++++ 6 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 tests/system/test_apps/cre_app/bin/execute.py create mode 100644 tests/system/test_apps/cre_app/default/app.conf create mode 100644 tests/system/test_apps/cre_app/default/restmap.conf create mode 100644 tests/system/test_cre_apps.py diff --git a/docker-compose.yml b/docker-compose.yml index f2c52522d..3160978a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,6 +23,7 @@ services: - "./tests/system/test_apps/reporting_app:/opt/splunk/etc/apps/reporting_app" - "./tests/system/test_apps/streaming_app:/opt/splunk/etc/apps/streaming_app" - "./tests/system/test_apps/modularinput_app:/opt/splunk/etc/apps/modularinput_app" + - "./tests/system/test_apps/cre_app:/opt/splunk/etc/apps/cre_app" - "./splunklib:/opt/splunk/etc/apps/eventing_app/bin/splunklib" - "./splunklib:/opt/splunk/etc/apps/generating_app/bin/splunklib" - "./splunklib:/opt/splunk/etc/apps/reporting_app/bin/splunklib" diff --git a/splunklib/binding.py b/splunklib/binding.py index 4785309d1..cddd32e29 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -511,7 +511,7 @@ class Context: :param headers: List of extra HTTP headers to send (optional). :type headers: ``list`` of 2-tuples. :param retries: Number of retries for each HTTP connection (optional, the default is 0). - NOTE: THIS MAY INCREASE THE NUMBER OF ROUNDTRIP CONNECTIONS + NOTE: THIS MAY INCREASE THE NUMBER OF ROUNDTRIP CONNECTIONS TO THE SPLUNK SERVER AND BLOCK THE CURRENT THREAD WHILE RETRYING. :type retries: ``int`` :param retryDelay: How long to wait between connection attempts if `retries` > 0 (optional, defaults to 10s). @@ -938,7 +938,11 @@ def request( str(mask_sensitive_data(dict(all_headers))), mask_sensitive_data(body), ) - if body: + + if isinstance(body, str): + assert method.upper() != "GET", "Unable to set body on GET request" + message = {"method": method, "headers": all_headers, "body": body} + elif body: body = _encode(**body) if method == "GET": diff --git a/tests/system/test_apps/cre_app/bin/execute.py b/tests/system/test_apps/cre_app/bin/execute.py new file mode 100644 index 000000000..6dcf2122c --- /dev/null +++ b/tests/system/test_apps/cre_app/bin/execute.py @@ -0,0 +1,50 @@ +import splunk.rest +import json + + +class Handler(splunk.rest.BaseRestHandler): + def handle_GET(self): + self.response.setHeader("Content-Type", "application/json") + self.response.setHeader("x-foo", "bar") + self.response.status = 200 + self.response.write( + json.dumps( + { + "headers": self.headers(), + "method": "GET", + } + ) + ) + + def handle_DELETE(self): + self.handle_with_payload("DELETE") + + def handle_POST(self): + self.handle_with_payload("POST") + + def handle_PUT(self): + self.handle_with_payload("PUT") + + def handle_PATCH(self): + self.handle_with_payload("PATCH") + + def handle_with_payload(self, method): + self.response.setHeader("Content-Type", "application/json") + self.response.setHeader("x-foo", "bar") + self.response.status = 200 + self.response.write( + json.dumps( + { + "payload": self.request.get("payload"), + "headers": self.headers(), + "method": method, + } + ) + ) + + def headers(self): + return { + k: v + for k, v in self.request.get("headers", {}).items() + if k.lower().startswith("x") + } diff --git a/tests/system/test_apps/cre_app/default/app.conf b/tests/system/test_apps/cre_app/default/app.conf new file mode 100644 index 000000000..3bed3cf95 --- /dev/null +++ b/tests/system/test_apps/cre_app/default/app.conf @@ -0,0 +1,20 @@ +[id] +name = cre_app +version = 0.1.0 + +[package] +id = cre_app +check_for_updates = False + +[install] +is_configured = 0 +state = enabled + +[ui] +is_visible = 1 +label = [EXAMPLE] CRE app + +[launcher] +description = Example app that exposes custom rest endpoints +version = 0.0.1 +author = Splunk diff --git a/tests/system/test_apps/cre_app/default/restmap.conf b/tests/system/test_apps/cre_app/default/restmap.conf new file mode 100644 index 000000000..2d9213910 --- /dev/null +++ b/tests/system/test_apps/cre_app/default/restmap.conf @@ -0,0 +1,5 @@ +[script:execute] +match = /execute +scripttype = python +handler = execute.Handler + diff --git a/tests/system/test_cre_apps.py b/tests/system/test_cre_apps.py new file mode 100644 index 000000000..e1f5c9fbc --- /dev/null +++ b/tests/system/test_cre_apps.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python +# +# Copyright © 2011-2025 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. + +import json +import pytest + +from tests import testlib +from splunklib import results + + +class TestJSONCustomRestEndpointsSpecialMethodHelpers(testlib.SDKTestCase): + app_name = "cre_app" + + def test_GET(self): + resp = self.service.get( + app=self.app_name, + path_segment="execute", + headers=[("x-bar", "baz")], + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "headers": {"x-bar": "baz"}, + "method": "GET", + }, + ) + + def test_POST(self): + body = json.dumps({"foo": "bar"}) + resp = self.service.post( + app=self.app_name, + path_segment="execute", + body=body, + headers=[("x-bar", "baz")], + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "payload": '{"foo": "bar"}', + "headers": {"x-bar": "baz"}, + "method": "POST", + }, + ) + + def test_DELETE(self): + # delete does allow specifying body and custom headers. + resp = self.service.delete( + app=self.app_name, + path_segment="execute", + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "payload": "", + "headers": {}, + "method": "DELETE", + }, + ) + + +class TestJSONCustomRestEndpointGenericRequest(testlib.SDKTestCase): + app_name = "cre_app" + + def test_no_str_body_GET(self): + def with_body(): + self.service.request( + app=self.app_name, method="GET", path_segment="execute", body="str" + ) + + self.assertRaisesRegex( + Exception, "Unable to set body on GET request", with_body + ) + + def test_GET(self): + resp = self.service.request( + app=self.app_name, + method="GET", + path_segment="execute", + headers=[("x-bar", "baz")], + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "headers": {"x-bar": "baz"}, + "method": "GET", + }, + ) + + def test_POST(self): + self.method("POST") + + def test_PUT(self): + self.method("PUT") + + def test_PATCH(self): + if self.service.splunk_version[0] < 10: + self.skipTest("PATCH custom REST endpoints not supported on splunk < 10") + self.method("PATCH") + + def test_DELETE(self): + self.method("DELETE") + + def method(self, method: str): + body = json.dumps({"foo": "bar"}) + resp = self.service.request( + app=self.app_name, + method=method, + path_segment="execute", + body=body, + headers=[("x-bar", "baz")], + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "payload": '{"foo": "bar"}', + "headers": {"x-bar": "baz"}, + "method": method, + }, + ) From 66210ff115e68fa401363ec32a3b5b3158390134 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 00:04:35 +0000 Subject: [PATCH 26/30] Bump actions/setup-python from 6.0.0 to 6.1.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/e797f83bcb11b83ae66e0230d6156d7c80228e7c...83679a892e2d95755f2dac6acb0bfd1e9ac5d548) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 92f6895e5..019d050c2 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout source uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 677c73dc7..c909d9e73 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: - name: Checkout source uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa829a8f2..72be38649 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Launch Splunk Docker instance run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 with: python-version: ${{ matrix.python-version }} - name: (Python 3.7) Install dependencies From f1b5dc04ce4046380a357180c9cd87ece50dacb6 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Fri, 9 Jan 2026 12:21:13 +0100 Subject: [PATCH 27/30] Add patch and put methods to the service (#693) Co-authored-by: Simon Noser --- splunklib/binding.py | 248 ++++++++++++++++++++++++++-- tests/integration/test_binding.py | 266 +++++++++++++++++++++++++++++- tests/system/test_cre_apps.py | 43 ++++- 3 files changed, 536 insertions(+), 21 deletions(-) diff --git a/splunklib/binding.py b/splunklib/binding.py index cddd32e29..064add745 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -862,6 +862,158 @@ def post( response = self.http.post(path, all_headers, **query) return response + @_authentication + @_log_duration + def put( + self, + path_segment, + owner=None, + app=None, + sharing=None, + headers=None, + **query, + ): + """Performs a PUT operation from the REST path segment with the given object, + namespace and query. + + This method is named to match the HTTP method. ``put`` makes at least + one round trip to the server, one additional round trip for each 303 + status returned, and at most two additional round trips if + the ``autologin`` field of :func:`connect` is set to ``True``. + + If *owner*, *app*, and *sharing* are omitted, this method uses the + default :class:`Context` namespace. All other keyword arguments are + included in the URL as query parameters. + + If you provide a ``body`` argument to ``put``, it will be used as the PUT body, + and all other keyword arguments will be passed as GET-style arguments in the URL. + + :raises AuthenticationError: Raised when the ``Context`` object is not + logged in. + :raises HTTPError: Raised when an error occurred in a PUT operation from + *path_segment*. + :param path_segment: A REST path segment. + :type path_segment: ``string`` + :param owner: The owner context of the namespace (optional). + :type owner: ``string`` + :param app: The app context of the namespace (optional). + :type app: ``string`` + :param sharing: The sharing mode of the namespace (optional). + :type sharing: ``string`` + :param headers: List of extra HTTP headers to send (optional). + :type headers: ``list`` of 2-tuples. + :param query: All other keyword arguments, which are used as query + parameters. + :param body: Parameters to be used in the put body. If specified, + any parameters in the query will be applied to the URL instead of + the body. If a dict is supplied, the key-value pairs will be form + encoded. If a string is supplied, the body will be passed through + in the request unchanged. + :type body: ``dict`` or ``str`` + :return: The response from the server. + :rtype: ``dict`` with keys ``body``, ``headers``, ``reason``, + and ``status`` + + **Example**:: + + c = binding.connect(...) + # Call an HTTP endpoint, exposed as Custom Rest Endpoint in a Splunk App. + # PUT /servicesNS/-/app_name/custom_rest_endpoint + c.put( + app="app_name", + path_segment="custom_rest_endpoint", + body=json.dumps({"key": "val"}), + headers=[("Content-Type", "application/json")], + ) + """ + if headers is None: + headers = [] + + path = self.authority + self._abspath( + path_segment, owner=owner, app=app, sharing=sharing + ) + + logger.debug("PUT request to %s (body: %s)", path, mask_sensitive_data(query)) + all_headers = headers + self.additional_headers + self._auth_headers + response = self.http.put(path, all_headers, **query) + return response + + @_authentication + @_log_duration + def patch( + self, + path_segment, + owner=None, + app=None, + sharing=None, + headers=None, + **query, + ): + """Performs a PATCH operation from the REST path segment with the given object, + namespace and query. + + This method is named to match the HTTP method. ``patch`` makes at least + one round trip to the server, one additional round trip for each 303 + status returned, and at most two additional round trips if + the ``autologin`` field of :func:`connect` is set to ``True``. + + If *owner*, *app*, and *sharing* are omitted, this method uses the + default :class:`Context` namespace. All other keyword arguments are + included in the URL as query parameters. + + If you provide a ``body`` argument to ``patch``, it will be used as the PATCH body, + and all other keyword arguments will be passed as GET-style arguments in the URL. + + :raises AuthenticationError: Raised when the ``Context`` object is not + logged in. + :raises HTTPError: Raised when an error occurred in a PATCH operation from + *path_segment*. + :param path_segment: A REST path segment. + :type path_segment: ``string`` + :param owner: The owner context of the namespace (optional). + :type owner: ``string`` + :param app: The app context of the namespace (optional). + :type app: ``string`` + :param sharing: The sharing mode of the namespace (optional). + :type sharing: ``string`` + :param headers: List of extra HTTP headers to send (optional). + :type headers: ``list`` of 2-tuples. + :param query: All other keyword arguments, which are used as query + parameters. + :param body: Parameters to be used in the patch body. If specified, + any parameters in the query will be applied to the URL instead of + the body. If a dict is supplied, the key-value pairs will be form + encoded. If a string is supplied, the body will be passed through + in the request unchanged. + :type body: ``dict`` or ``str`` + :return: The response from the server. + :rtype: ``dict`` with keys ``body``, ``headers``, ``reason``, + and ``status`` + + **Example**:: + + c = binding.connect(...) + # Call an HTTP endpoint, exposed as Custom Rest Endpoint in a Splunk App. + # PATCH /servicesNS/-/app_name/custom_rest_endpoint + c.patch( + app="app_name", + path_segment="custom_rest_endpoint", + body=json.dumps({"key": "val"}), + headers=[("Content-Type", "application/json")], + ) + """ + if headers is None: + headers = [] + + path = self.authority + self._abspath( + path_segment, owner=owner, app=app, sharing=sharing + ) + + logger.debug("PATCH request to %s (body: %s)", path, mask_sensitive_data(query)) + all_headers = headers + self.additional_headers + self._auth_headers + response = self.http.patch(path, all_headers, **query) + return response + @_authentication @_log_duration def request( @@ -1305,6 +1457,40 @@ def __init__( self.retries = retries self.retryDelay = retryDelay + def _prepare_request_body_and_url(self, url, headers, **kwargs): + """Helper function to prepare the request body and URL. + + :param url: The URL. + :type url: ``string`` + :param headers: A list of pairs specifying the headers for the HTTP request. + :type headers: ``list`` + :param kwargs: Additional keyword arguments (optional). + :type kwargs: ``dict`` + :returns: A tuple containing the updated URL, headers, and body. + :rtype: ``tuple`` + """ + if headers is None: + headers = [] + + # We handle GET-style arguments and an unstructured body. This is here + # to support the receivers/stream endpoint. + if "body" in kwargs: + # We only use application/x-www-form-urlencoded if there is no other + # Content-Type header present. This can happen in cases where we + # send requests as application/json, e.g. for KV Store. + if len([x for x in headers if x[0].lower() == "content-type"]) == 0: + headers.append(("Content-Type", "application/x-www-form-urlencoded")) + + body = kwargs.pop("body") + if isinstance(body, dict): + body = _encode(**body).encode("utf-8") + if len(kwargs) > 0: + url = url + UrlEncoded("?" + _encode(**kwargs), skip_encode=True) + else: + body = _encode(**kwargs).encode("utf-8") + + return url, headers, body + def delete(self, url, headers=None, **kwargs): """Sends a DELETE request to a URL. @@ -1379,26 +1565,52 @@ def post(self, url, headers=None, **kwargs): its structure). :rtype: ``dict`` """ - if headers is None: - headers = [] + url, headers, body = self._prepare_request_body_and_url(url, headers, **kwargs) + message = {"method": "POST", "headers": headers, "body": body} + return self.request(url, message) - # We handle GET-style arguments and an unstructured body. This is here - # to support the receivers/stream endpoint. - if "body" in kwargs: - # We only use application/x-www-form-urlencoded if there is no other - # Content-Type header present. This can happen in cases where we - # send requests as application/json, e.g. for KV Store. - if len([x for x in headers if x[0].lower() == "content-type"]) == 0: - headers.append(("Content-Type", "application/x-www-form-urlencoded")) + def put(self, url, headers=None, **kwargs): + """Sends a PUT request to a URL. - body = kwargs.pop("body") - if isinstance(body, dict): - body = _encode(**body).encode("utf-8") - if len(kwargs) > 0: - url = url + UrlEncoded("?" + _encode(**kwargs), skip_encode=True) - else: - body = _encode(**kwargs).encode("utf-8") - message = {"method": "POST", "headers": headers, "body": body} + :param url: The URL. + :type url: ``string`` + :param headers: A list of pairs specifying the headers for the HTTP + response (for example, ``[('Content-Type': 'text/cthulhu'), ('Token': 'boris')]``). + :type headers: ``list`` + :param kwargs: Additional keyword arguments (optional). If the argument + is ``body``, the value is used as the body for the request, and the + keywords and their arguments will be URL encoded. If there is no + ``body`` keyword argument, all the keyword arguments are encoded + into the body of the request in the format ``x-www-form-urlencoded``. + :type kwargs: ``dict`` + :returns: A dictionary describing the response (see :class:`HttpLib` for + its structure). + :rtype: ``dict`` + """ + url, headers, body = self._prepare_request_body_and_url(url, headers, **kwargs) + message = {"method": "PUT", "headers": headers, "body": body} + return self.request(url, message) + + def patch(self, url, headers=None, **kwargs): + """Sends a PATCH request to a URL. + + :param url: The URL. + :type url: ``string`` + :param headers: A list of pairs specifying the headers for the HTTP + response (for example, ``[('Content-Type': 'text/cthulhu'), ('Token': 'boris')]``). + :type headers: ``list`` + :param kwargs: Additional keyword arguments (optional). If the argument + is ``body``, the value is used as the body for the request, and the + keywords and their arguments will be URL encoded. If there is no + ``body`` keyword argument, all the keyword arguments are encoded + into the body of the request in the format ``x-www-form-urlencoded``. + :type kwargs: ``dict`` + :returns: A dictionary describing the response (see :class:`HttpLib` for + its structure). + :rtype: ``dict`` + """ + url, headers, body = self._prepare_request_body_and_url(url, headers, **kwargs) + message = {"method": "PATCH", "headers": headers, "body": body} return self.request(url, message) def request(self, url, message, **kwargs): diff --git a/tests/integration/test_binding.py b/tests/integration/test_binding.py index 4a43c2b05..3e6c4c519 100755 --- a/tests/integration/test_binding.py +++ b/tests/integration/test_binding.py @@ -937,7 +937,31 @@ def handler(url, message, **kwargs): body={"testkey": "testvalue"}, ) - def test_post_with_params_and_no_body(self): + def test_post_with_params_and_body_json(self): + def handler(url, message, **kwargs): + assert ( + url + == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar?extrakey=extraval" + ) + assert message["body"] == '{"testkey": "testvalue"}' + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.post( + "foo/bar", + extrakey="extraval", + owner="testowner", + app="testapp", + body=json.dumps({"testkey": "testvalue"}), + headers=[("Content-Type", "application/json")], + ) + + def test_post_with_urlencoded_params(self): def handler(url, message, **kwargs): assert url == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar" assert message["body"] == b"extrakey=extraval" @@ -952,6 +976,164 @@ def handler(url, message, **kwargs): ctx.post("foo/bar", extrakey="extraval", owner="testowner", app="testapp") +class TestPutWithBodyParam(unittest.TestCase): + def test_put(self): + def handler(url, message, **kwargs): + assert url == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar" + assert message["body"] == b"testkey=testvalue" + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.put( + "foo/bar", owner="testowner", app="testapp", body={"testkey": "testvalue"} + ) + + def test_put_with_params_and_body_form(self): + def handler(url, message, **kwargs): + assert ( + url + == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar?extrakey=extraval" + ) + assert message["body"] == b"testkey=testvalue" + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.put( + "foo/bar", + extrakey="extraval", + owner="testowner", + app="testapp", + body={"testkey": "testvalue"}, + ) + + def test_put_with_params_and_body_json(self): + def handler(url, message, **kwargs): + assert ( + url + == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar?extrakey=extraval" + ) + assert message["body"] == '{"testkey": "testvalue"}' + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.put( + "foo/bar", + extrakey="extraval", + owner="testowner", + app="testapp", + body=json.dumps({"testkey": "testvalue"}), + headers=[("Content-Type", "application/json")], + ) + + def test_put_with_urlencoded_params(self): + def handler(url, message, **kwargs): + assert url == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar" + assert message["body"] == b"extrakey=extraval" + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.put("foo/bar", extrakey="extraval", owner="testowner", app="testapp") + + +class TestPatchWithBodyParam(unittest.TestCase): + def test_patch(self): + def handler(url, message, **kwargs): + assert url == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar" + assert message["body"] == b"testkey=testvalue" + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.patch( + "foo/bar", owner="testowner", app="testapp", body={"testkey": "testvalue"} + ) + + def test_patch_with_params_and_body_form(self): + def handler(url, message, **kwargs): + assert ( + url + == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar?extrakey=extraval" + ) + assert message["body"] == b"testkey=testvalue" + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.patch( + "foo/bar", + extrakey="extraval", + owner="testowner", + app="testapp", + body={"testkey": "testvalue"}, + ) + + def test_patch_with_params_and_body_json(self): + def handler(url, message, **kwargs): + assert ( + url + == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar?extrakey=extraval" + ) + assert message["body"] == '{"testkey": "testvalue"}' + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.patch( + "foo/bar", + extrakey="extraval", + owner="testowner", + app="testapp", + body=json.dumps({"testkey": "testvalue"}), + headers=[("Content-Type", "application/json")], + ) + + def test_patch_with_urlencoded_params(self): + def handler(url, message, **kwargs): + assert url == "https://localhost:8089/servicesNS/testowner/testapp/foo/bar" + assert message["body"] == b"extrakey=extraval" + return splunklib.data.Record( + { + "status": 200, + "headers": [], + } + ) + + ctx = binding.Context(handler=handler) + ctx.patch("foo/bar", extrakey="extraval", owner="testowner", app="testapp") + + def _wrap_handler(func, response_code=200, body=""): def wrapped(handler_self): result = func(handler_self) @@ -1038,5 +1220,87 @@ def check_response(handler): ctx.post("/", foo="bar", body={"baz": "baf", "hep": "cat"}) +class TestFullPut(unittest.TestCase): + def test_put_with_body_urlencoded(self): + def check_response(handler): + length = int(handler.headers.get("content-length", 0)) + body = handler.rfile.read(length) + assert body.decode("utf-8") == "foo=bar" + + with MockServer(PUT=check_response): + ctx = binding.connect(port=9093, scheme="http", token="waffle") + ctx.put("/", foo="bar") + + def test_put_with_body_string(self): + def check_response(handler): + length = int(handler.headers.get("content-length", 0)) + body = handler.rfile.read(length) + assert handler.headers["content-type"] == "application/json" + assert json.loads(body)["baz"] == "baf" + + with MockServer(PUT=check_response): + ctx = binding.connect( + port=9093, + scheme="http", + token="waffle", + headers=[("Content-Type", "application/json")], + ) + ctx.put("/", foo="bar", body='{"baz": "baf"}') + + def test_put_with_body_dict(self): + def check_response(handler): + length = int(handler.headers.get("content-length", 0)) + body = handler.rfile.read(length) + assert ( + handler.headers["content-type"] == "application/x-www-form-urlencoded" + ) + assert ensure_str(body) in ["baz=baf&hep=cat", "hep=cat&baz=baf"] + + with MockServer(PUT=check_response): + ctx = binding.connect(port=9093, scheme="http", token="waffle") + ctx.put("/", foo="bar", body={"baz": "baf", "hep": "cat"}) + + +class TestFullPatch(unittest.TestCase): + def test_patch_with_body_urlencoded(self): + def check_response(handler): + length = int(handler.headers.get("content-length", 0)) + body = handler.rfile.read(length) + assert body.decode("utf-8") == "foo=bar" + + with MockServer(PATCH=check_response): + ctx = binding.connect(port=9093, scheme="http", token="waffle") + ctx.patch("/", foo="bar") + + def test_patch_with_body_string(self): + def check_response(handler): + length = int(handler.headers.get("content-length", 0)) + body = handler.rfile.read(length) + assert handler.headers["content-type"] == "application/json" + assert json.loads(body)["baz"] == "baf" + + with MockServer(PATCH=check_response): + ctx = binding.connect( + port=9093, + scheme="http", + token="waffle", + headers=[("Content-Type", "application/json")], + ) + ctx.patch("/", foo="bar", body='{"baz": "baf"}') + + def test_patch_with_body_dict(self): + def check_response(handler): + length = int(handler.headers.get("content-length", 0)) + body = handler.rfile.read(length) + assert ( + handler.headers["content-type"] == "application/x-www-form-urlencoded" + ) + assert ensure_str(body) in ["baz=baf&hep=cat", "hep=cat&baz=baf"] + + with MockServer(PATCH=check_response): + ctx = binding.connect(port=9093, scheme="http", token="waffle") + ctx.patch("/", foo="bar", body={"baz": "baf", "hep": "cat"}) + + if __name__ == "__main__": unittest.main() diff --git a/tests/system/test_cre_apps.py b/tests/system/test_cre_apps.py index e1f5c9fbc..6632e4848 100644 --- a/tests/system/test_cre_apps.py +++ b/tests/system/test_cre_apps.py @@ -15,10 +15,8 @@ # under the License. import json -import pytest from tests import testlib -from splunklib import results class TestJSONCustomRestEndpointsSpecialMethodHelpers(testlib.SDKTestCase): @@ -59,6 +57,47 @@ def test_POST(self): }, ) + def test_PUT(self): + body = json.dumps({"foo": "bar"}) + resp = self.service.put( + app=self.app_name, + path_segment="execute", + body=body, + headers=[("x-bar", "baz")], + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "payload": '{"foo": "bar"}', + "headers": {"x-bar": "baz"}, + "method": "PUT", + }, + ) + + def test_PATCH(self): + if self.service.splunk_version[0] < 10: + self.skipTest("PATCH custom REST endpoints not supported on splunk < 10") + + body = json.dumps({"foo": "bar"}) + resp = self.service.patch( + app=self.app_name, + path_segment="execute", + body=body, + headers=[("x-bar", "baz")], + ) + self.assertIn(("x-foo", "bar"), resp.headers) + self.assertEqual(resp.status, 200) + self.assertEqual( + json.loads(str(resp.body)), + { + "payload": '{"foo": "bar"}', + "headers": {"x-bar": "baz"}, + "method": "PATCH", + }, + ) + def test_DELETE(self): # delete does allow specifying body and custom headers. resp = self.service.delete( From 5afbf580e1c678d833f82f08ef162fa1151722df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 18:18:38 +0100 Subject: [PATCH 28/30] Bump actions/checkout from 6.pre.beta to 6.0.2 (#696) Bumps [actions/checkout](https://github.com/actions/checkout) from 6.pre.beta to 6.0.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/71cf2267d89c5cb81562390fa70a37fa40b1305e...de0fac2e4500dabe0009e67214ff5f5447ce83dd) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 019d050c2..ab98f505c 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -13,7 +13,7 @@ jobs: name: splunk-test-pypi steps: - name: Checkout source - uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c909d9e73..61a93627f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: name: splunk-pypi steps: - name: Checkout source - uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 72be38649..5b117ff8c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: splunk-version: latest steps: - name: Checkout code - uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Launch Splunk Docker instance run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python ${{ matrix.python-version }} From a0b9c916a7c8c9977a8fedbbb594ff7f5a259d37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 18:42:02 +0100 Subject: [PATCH 29/30] Bump actions/setup-python from 6.1.0 to 6.2.0 (#697) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/83679a892e2d95755f2dac6acb0bfd1e9ac5d548...a309ff8b426b58ec0e2a45f0f869d46889d02405) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index ab98f505c..9c9bfef86 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout source uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61a93627f..46bc07c6a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: - name: Checkout source uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5b117ff8c..3de384521 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Launch Splunk Docker instance run: SPLUNK_VERSION=${{ matrix.splunk-version }} docker compose up -d - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 with: python-version: ${{ matrix.python-version }} - name: (Python 3.7) Install dependencies From f4b451e691f364979e15ea9accfd00a0f9cb550f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20J=C4=99drecki?= Date: Tue, 10 Feb 2026 13:11:12 +0100 Subject: [PATCH 30/30] Adjust top-level comments in all files (#699) * Adjust top-level comments in all files --- docs/conf.py | 2 -- sitecustomize.py | 4 +--- splunklib/__init__.py | 2 +- splunklib/binding.py | 2 +- splunklib/client.py | 2 +- splunklib/data.py | 2 +- splunklib/modularinput/argument.py | 2 +- splunklib/modularinput/event.py | 2 +- splunklib/modularinput/event_writer.py | 2 +- splunklib/modularinput/input_definition.py | 2 +- splunklib/modularinput/scheme.py | 2 +- splunklib/modularinput/script.py | 2 +- splunklib/modularinput/utils.py | 2 +- splunklib/modularinput/validation_definition.py | 2 +- splunklib/results.py | 2 +- splunklib/searchcommands/__init__.py | 4 +--- splunklib/searchcommands/decorators.py | 4 +--- splunklib/searchcommands/environment.py | 4 +--- splunklib/searchcommands/eventing_command.py | 4 +--- splunklib/searchcommands/external_search_command.py | 4 +--- splunklib/searchcommands/generating_command.py | 4 +--- splunklib/searchcommands/internals.py | 4 +--- splunklib/searchcommands/reporting_command.py | 4 +--- splunklib/searchcommands/search_command.py | 6 ++---- splunklib/searchcommands/streaming_command.py | 4 +--- splunklib/searchcommands/validators.py | 4 +--- splunklib/utils.py | 2 +- tests/integration/test_app.py | 4 +--- tests/integration/test_binding.py | 4 +--- tests/integration/test_collection.py | 4 +--- tests/integration/test_conf.py | 4 +--- tests/integration/test_event_type.py | 4 +--- tests/integration/test_fired_alert.py | 4 +--- tests/integration/test_index.py | 4 +--- tests/integration/test_input.py | 4 +--- tests/integration/test_job.py | 4 +--- tests/integration/test_kvstore_batch.py | 4 +--- tests/integration/test_kvstore_conf.py | 4 +--- tests/integration/test_kvstore_data.py | 4 +--- tests/integration/test_logger.py | 4 +--- tests/integration/test_macro.py | 4 +--- tests/integration/test_message.py | 4 +--- tests/integration/test_modular_input_kinds.py | 4 +--- tests/integration/test_role.py | 4 +--- tests/integration/test_saved_search.py | 4 +--- tests/integration/test_service.py | 4 +--- tests/integration/test_storage_passwords.py | 4 +--- tests/integration/test_user.py | 4 +--- tests/system/test_apps/eventing_app/bin/eventingcsc.py | 5 +---- tests/system/test_apps/generating_app/bin/generatingcsc.py | 5 +---- tests/system/test_apps/modularinput_app/bin/modularinput.py | 4 +--- tests/system/test_apps/reporting_app/bin/reportingcsc.py | 5 +---- tests/system/test_apps/streaming_app/bin/streamingcsc.py | 5 +---- tests/system/test_cre_apps.py | 4 +--- tests/system/test_csc_apps.py | 4 +--- tests/system/test_modularinput_app.py | 4 +--- tests/testlib.py | 4 +--- tests/unit/modularinput/modularinput_testlib.py | 4 +--- tests/unit/modularinput/test_event.py | 4 +--- tests/unit/modularinput/test_input_definition.py | 4 +--- tests/unit/modularinput/test_scheme.py | 3 +-- tests/unit/modularinput/test_validation_definition.py | 4 +--- tests/unit/searchcommands/__init__.py | 5 +---- tests/unit/searchcommands/test_builtin_options.py | 5 +---- tests/unit/searchcommands/test_configuration_settings.py | 5 +---- tests/unit/searchcommands/test_decorators.py | 5 +---- tests/unit/searchcommands/test_internals_v1.py | 4 +--- tests/unit/searchcommands/test_internals_v2.py | 5 +---- tests/unit/searchcommands/test_search_command.py | 5 +---- tests/unit/searchcommands/test_validators.py | 5 +---- tests/unit/test_data.py | 4 +--- tests/unit/test_utils.py | 4 +--- utils/__init__.py | 2 +- utils/cmdopts.py | 2 +- 74 files changed, 74 insertions(+), 200 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 25c60a3df..20d094dd7 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # Splunk SDK for Python documentation build configuration file, created by # sphinx-quickstart on Fri Apr 13 12:28:15 2012. # diff --git a/sitecustomize.py b/sitecustomize.py index 6a23233ad..965fafbe4 100644 --- a/sitecustomize.py +++ b/sitecustomize.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/__init__.py b/splunklib/__init__.py index 84c4a061b..049193458 100644 --- a/splunklib/__init__.py +++ b/splunklib/__init__.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/binding.py b/splunklib/binding.py index 064add745..78bf7a952 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/client.py b/splunklib/client.py index 0d69773f8..6e9ae0098 100644 --- a/splunklib/client.py +++ b/splunklib/client.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/data.py b/splunklib/data.py index 1f026ed83..2e8d42598 100644 --- a/splunklib/data.py +++ b/splunklib/data.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/argument.py b/splunklib/modularinput/argument.py index 99203ca25..5fca9cd3c 100644 --- a/splunklib/modularinput/argument.py +++ b/splunklib/modularinput/argument.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/event.py b/splunklib/modularinput/event.py index 4d243c753..ad541a5d2 100644 --- a/splunklib/modularinput/event.py +++ b/splunklib/modularinput/event.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/event_writer.py b/splunklib/modularinput/event_writer.py index 51c3cb0fd..4305dcf63 100644 --- a/splunklib/modularinput/event_writer.py +++ b/splunklib/modularinput/event_writer.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/input_definition.py b/splunklib/modularinput/input_definition.py index 9886374ca..1b8410986 100644 --- a/splunklib/modularinput/input_definition.py +++ b/splunklib/modularinput/input_definition.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/scheme.py b/splunklib/modularinput/scheme.py index 76b13a631..a046ccf14 100644 --- a/splunklib/modularinput/scheme.py +++ b/splunklib/modularinput/scheme.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/script.py b/splunklib/modularinput/script.py index 2192eb721..83d395647 100644 --- a/splunklib/modularinput/script.py +++ b/splunklib/modularinput/script.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/utils.py b/splunklib/modularinput/utils.py index 2218c0d27..a8f7af588 100644 --- a/splunklib/modularinput/utils.py +++ b/splunklib/modularinput/utils.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/modularinput/validation_definition.py b/splunklib/modularinput/validation_definition.py index c90dc2aae..a87af1d39 100644 --- a/splunklib/modularinput/validation_definition.py +++ b/splunklib/modularinput/validation_definition.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/results.py b/splunklib/results.py index 7bce883fc..09cbe00ae 100644 --- a/splunklib/results.py +++ b/splunklib/results.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/__init__.py b/splunklib/searchcommands/__init__.py index 94dbbda9e..92cf983f8 100644 --- a/splunklib/searchcommands/__init__.py +++ b/splunklib/searchcommands/__init__.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/decorators.py b/splunklib/searchcommands/decorators.py index 6d2f7a282..505d2a228 100644 --- a/splunklib/searchcommands/decorators.py +++ b/splunklib/searchcommands/decorators.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/environment.py b/splunklib/searchcommands/environment.py index 7f8cb6d3f..96360b001 100644 --- a/splunklib/searchcommands/environment.py +++ b/splunklib/searchcommands/environment.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/eventing_command.py b/splunklib/searchcommands/eventing_command.py index d9f90b780..bf1555dfd 100644 --- a/splunklib/searchcommands/eventing_command.py +++ b/splunklib/searchcommands/eventing_command.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/external_search_command.py b/splunklib/searchcommands/external_search_command.py index cceeb5083..b54b62f50 100644 --- a/splunklib/searchcommands/external_search_command.py +++ b/splunklib/searchcommands/external_search_command.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/generating_command.py b/splunklib/searchcommands/generating_command.py index d2d129316..d02265c48 100644 --- a/splunklib/searchcommands/generating_command.py +++ b/splunklib/searchcommands/generating_command.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/internals.py b/splunklib/searchcommands/internals.py index 40b9107c9..cae74b786 100644 --- a/splunklib/searchcommands/internals.py +++ b/splunklib/searchcommands/internals.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/reporting_command.py b/splunklib/searchcommands/reporting_command.py index 39edebc79..600305104 100644 --- a/splunklib/searchcommands/reporting_command.py +++ b/splunklib/searchcommands/reporting_command.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/search_command.py b/splunklib/searchcommands/search_command.py index 2c4f2ab54..3e101630a 100644 --- a/splunklib/searchcommands/search_command.py +++ b/splunklib/searchcommands/search_command.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 @@ -1230,8 +1228,8 @@ def dispatch( .. code-block:: python :linenos: - #!/usr/bin/env python from splunklib.searchcommands import dispatch, StreamingCommand, Configuration, Option, validators + @Configuration() class SomeStreamingCommand(StreamingCommand): ... diff --git a/splunklib/searchcommands/streaming_command.py b/splunklib/searchcommands/streaming_command.py index 4a2548d37..26574ed45 100644 --- a/splunklib/searchcommands/streaming_command.py +++ b/splunklib/searchcommands/streaming_command.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/searchcommands/validators.py b/splunklib/searchcommands/validators.py index 17cae428e..80fbfb721 100644 --- a/splunklib/searchcommands/validators.py +++ b/splunklib/searchcommands/validators.py @@ -1,6 +1,4 @@ -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/splunklib/utils.py b/splunklib/utils.py index 9b1631dea..c4ae0f91c 100644 --- a/splunklib/utils.py +++ b/splunklib/utils.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_app.py b/tests/integration/test_app.py index 85b5c8d0b..0026cc570 100755 --- a/tests/integration/test_app.py +++ b/tests/integration/test_app.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_binding.py b/tests/integration/test_binding.py index 3e6c4c519..ef16d1c2c 100755 --- a/tests/integration/test_binding.py +++ b/tests/integration/test_binding.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_collection.py b/tests/integration/test_collection.py index baa71a4ac..dbc8e6ea9 100755 --- a/tests/integration/test_collection.py +++ b/tests/integration/test_collection.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_conf.py b/tests/integration/test_conf.py index 248fd53a1..6d424494c 100755 --- a/tests/integration/test_conf.py +++ b/tests/integration/test_conf.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_event_type.py b/tests/integration/test_event_type.py index cacb95736..7b83e1e66 100755 --- a/tests/integration/test_event_type.py +++ b/tests/integration/test_event_type.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_fired_alert.py b/tests/integration/test_fired_alert.py index 803287e08..49cc2ecc1 100755 --- a/tests/integration/test_fired_alert.py +++ b/tests/integration/test_fired_alert.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_index.py b/tests/integration/test_index.py index 5135682ad..a452d9025 100755 --- a/tests/integration/test_index.py +++ b/tests/integration/test_index.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_input.py b/tests/integration/test_input.py index ad5027218..ba99aaf3a 100755 --- a/tests/integration/test_input.py +++ b/tests/integration/test_input.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_job.py b/tests/integration/test_job.py index 95c4f8721..590bd6524 100755 --- a/tests/integration/test_job.py +++ b/tests/integration/test_job.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_kvstore_batch.py b/tests/integration/test_kvstore_batch.py index 5cba9085a..1d67ad0af 100755 --- a/tests/integration/test_kvstore_batch.py +++ b/tests/integration/test_kvstore_batch.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_kvstore_conf.py b/tests/integration/test_kvstore_conf.py index 78e2e67d5..79f60c51f 100755 --- a/tests/integration/test_kvstore_conf.py +++ b/tests/integration/test_kvstore_conf.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright 2011-2020 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_kvstore_data.py b/tests/integration/test_kvstore_data.py index 40c892644..0fa2eef87 100755 --- a/tests/integration/test_kvstore_data.py +++ b/tests/integration/test_kvstore_data.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_logger.py b/tests/integration/test_logger.py index f67d743a2..0bd2af279 100755 --- a/tests/integration/test_logger.py +++ b/tests/integration/test_logger.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_macro.py b/tests/integration/test_macro.py index 580613176..e8fd8b639 100755 --- a/tests/integration/test_macro.py +++ b/tests/integration/test_macro.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright 2011-2015 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_message.py b/tests/integration/test_message.py index b4026a00e..fea376af9 100755 --- a/tests/integration/test_message.py +++ b/tests/integration/test_message.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_modular_input_kinds.py b/tests/integration/test_modular_input_kinds.py index 654a1112b..730808e6f 100755 --- a/tests/integration/test_modular_input_kinds.py +++ b/tests/integration/test_modular_input_kinds.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_role.py b/tests/integration/test_role.py index 768787204..ed41b9838 100755 --- a/tests/integration/test_role.py +++ b/tests/integration/test_role.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_saved_search.py b/tests/integration/test_saved_search.py index 39d3c6517..ca6ce8945 100755 --- a/tests/integration/test_saved_search.py +++ b/tests/integration/test_saved_search.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_service.py b/tests/integration/test_service.py index 2c94faf96..c46323f62 100755 --- a/tests/integration/test_service.py +++ b/tests/integration/test_service.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_storage_passwords.py b/tests/integration/test_storage_passwords.py index c9fbd42c1..2b412c2e6 100644 --- a/tests/integration/test_storage_passwords.py +++ b/tests/integration/test_storage_passwords.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/integration/test_user.py b/tests/integration/test_user.py index 94f525290..6ec4212d4 100755 --- a/tests/integration/test_user.py +++ b/tests/integration/test_user.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_apps/eventing_app/bin/eventingcsc.py b/tests/system/test_apps/eventing_app/bin/eventingcsc.py index 94cfee895..4420ad750 100644 --- a/tests/system/test_apps/eventing_app/bin/eventingcsc.py +++ b/tests/system/test_apps/eventing_app/bin/eventingcsc.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_apps/generating_app/bin/generatingcsc.py b/tests/system/test_apps/generating_app/bin/generatingcsc.py index e4d03f6bf..278ad30c6 100644 --- a/tests/system/test_apps/generating_app/bin/generatingcsc.py +++ b/tests/system/test_apps/generating_app/bin/generatingcsc.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_apps/modularinput_app/bin/modularinput.py b/tests/system/test_apps/modularinput_app/bin/modularinput.py index 0b12660d4..cf032f22b 100755 --- a/tests/system/test_apps/modularinput_app/bin/modularinput.py +++ b/tests/system/test_apps/modularinput_app/bin/modularinput.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python - -# Copyright © 2011-2025 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_apps/reporting_app/bin/reportingcsc.py b/tests/system/test_apps/reporting_app/bin/reportingcsc.py index f676e691d..32eaf262c 100644 --- a/tests/system/test_apps/reporting_app/bin/reportingcsc.py +++ b/tests/system/test_apps/reporting_app/bin/reportingcsc.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_apps/streaming_app/bin/streamingcsc.py b/tests/system/test_apps/streaming_app/bin/streamingcsc.py index d3b3ea181..e1644f827 100644 --- a/tests/system/test_apps/streaming_app/bin/streamingcsc.py +++ b/tests/system/test_apps/streaming_app/bin/streamingcsc.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_cre_apps.py b/tests/system/test_cre_apps.py index 6632e4848..780f5e919 100644 --- a/tests/system/test_cre_apps.py +++ b/tests/system/test_cre_apps.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2025 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_csc_apps.py b/tests/system/test_csc_apps.py index e269be9df..a4a590e71 100755 --- a/tests/system/test_csc_apps.py +++ b/tests/system/test_csc_apps.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/system/test_modularinput_app.py b/tests/system/test_modularinput_app.py index d408601af..a17949863 100644 --- a/tests/system/test_modularinput_app.py +++ b/tests/system/test_modularinput_app.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2025 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/testlib.py b/tests/testlib.py index 010c4ac2c..0e8eef783 100644 --- a/tests/testlib.py +++ b/tests/testlib.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/modularinput/modularinput_testlib.py b/tests/unit/modularinput/modularinput_testlib.py index 5abc1edde..d81942ef4 100644 --- a/tests/unit/modularinput/modularinput_testlib.py +++ b/tests/unit/modularinput/modularinput_testlib.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/modularinput/test_event.py b/tests/unit/modularinput/test_event.py index 4fd8e1771..31968ea7e 100644 --- a/tests/unit/modularinput/test_event.py +++ b/tests/unit/modularinput/test_event.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/modularinput/test_input_definition.py b/tests/unit/modularinput/test_input_definition.py index 7ac617e62..e2c29df70 100644 --- a/tests/unit/modularinput/test_input_definition.py +++ b/tests/unit/modularinput/test_input_definition.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/modularinput/test_scheme.py b/tests/unit/modularinput/test_scheme.py index 6fa3260ce..fc37063f7 100644 --- a/tests/unit/modularinput/test_scheme.py +++ b/tests/unit/modularinput/test_scheme.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/modularinput/test_validation_definition.py b/tests/unit/modularinput/test_validation_definition.py index 53e8426b9..bde82e7be 100644 --- a/tests/unit/modularinput/test_validation_definition.py +++ b/tests/unit/modularinput/test_validation_definition.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/__init__.py b/tests/unit/searchcommands/__init__.py index 1cbd2bb8f..ab42e8921 100644 --- a/tests/unit/searchcommands/__init__.py +++ b/tests/unit/searchcommands/__init__.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_builtin_options.py b/tests/unit/searchcommands/test_builtin_options.py index aa9648372..feabdfe1a 100644 --- a/tests/unit/searchcommands/test_builtin_options.py +++ b/tests/unit/searchcommands/test_builtin_options.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_configuration_settings.py b/tests/unit/searchcommands/test_configuration_settings.py index 9c4f4170f..a74249e6a 100644 --- a/tests/unit/searchcommands/test_configuration_settings.py +++ b/tests/unit/searchcommands/test_configuration_settings.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_decorators.py b/tests/unit/searchcommands/test_decorators.py index 1ac657b74..205782327 100755 --- a/tests/unit/searchcommands/test_decorators.py +++ b/tests/unit/searchcommands/test_decorators.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_internals_v1.py b/tests/unit/searchcommands/test_internals_v1.py index 7ac8e50f8..8e0541805 100755 --- a/tests/unit/searchcommands/test_internals_v1.py +++ b/tests/unit/searchcommands/test_internals_v1.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_internals_v2.py b/tests/unit/searchcommands/test_internals_v2.py index 03255c07b..c55a7e3ff 100755 --- a/tests/unit/searchcommands/test_internals_v2.py +++ b/tests/unit/searchcommands/test_internals_v2.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_search_command.py b/tests/unit/searchcommands/test_search_command.py index 6bd289447..e4b8a8b57 100755 --- a/tests/unit/searchcommands/test_search_command.py +++ b/tests/unit/searchcommands/test_search_command.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/searchcommands/test_validators.py b/tests/unit/searchcommands/test_validators.py index 62e6fcc93..98d831d92 100755 --- a/tests/unit/searchcommands/test_validators.py +++ b/tests/unit/searchcommands/test_validators.py @@ -1,7 +1,4 @@ -#!/usr/bin/env python -# coding=utf-8 -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/test_data.py b/tests/unit/test_data.py index 7fb24f967..54883cd4f 100755 --- a/tests/unit/test_data.py +++ b/tests/unit/test_data.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index c6f826eda..fb9b870b9 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -1,6 +1,4 @@ -#!/usr/bin/env python -# -# Copyright © 2011-2025 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/utils/__init__.py b/utils/__init__.py index 9711f0a25..8ca1fbc71 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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 diff --git a/utils/cmdopts.py b/utils/cmdopts.py index cd0d08a61..3e7316670 100644 --- a/utils/cmdopts.py +++ b/utils/cmdopts.py @@ -1,4 +1,4 @@ -# Copyright © 2011-2024 Splunk, Inc. +# Copyright © 2011-2026 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