From 14448336e137144c4f40c7849ce6879976fbcf76 Mon Sep 17 00:00:00 2001 From: Nick Jones Date: Sat, 16 Nov 2024 19:07:01 +0200 Subject: [PATCH 1/2] Pushing Leonidas for Kubernetes --- .gitignore | 5 + README.md | 17 +- aws-pipeline/codepipeline.tf | 2 +- .../access-secrets-api-server.yml | 38 + .../access-secrets-pod-filesystem.yml | 33 + .../app-creds-configmaps.yml | 39 + .../credential_access/app-creds-env.yml | 41 + ...p_set.yml => add-new-guardduty-ip-set.yml} | 0 .../delete-kubernetes-events.yml | 36 + .../defense_evasion/pod-name-similarity.yml | 40 + ...ip_set.yml => update-guardduty-ip-set.yml} | 0 ...loudtrail.yml => enumerate-cloudtrail.yml} | 0 ...te-iam-getaccountauthorizationdetails.yml} | 0 ...am_groups.yml => enumerate-iam-groups.yml} | 0 ..._iam_users.yml => enumerate-iam-users.yml} | 0 definitions/discovery/enumerate-nodes.yml | 38 + definitions/discovery/enumerate-pods.yml | 35 + .../discovery/enumerate-rbac-permissions.yml | 36 + ...ager.yml => enumerate-secrets-manager.yml} | 0 ...w_logs.yml => enumerate-vpc-flow-logs.yml} | 0 ..._waf_rules.yml => enumerate-waf-rules.yml} | 0 ...etector.yml => get-guardduty-detector.yml} | 0 .../{get_identity.yml => get-identity.yml} | 0 ...ctors.yml => list-guardduty-detectors.yml} | 0 definitions/execution/create-pod.yml | 51 + definitions/execution/exec-into-container.yml | 53 + definitions/execution/sidecar-injection.yml | 57 + definitions/impact/delete-deployment.yml | 43 + ...ete_iam_group.yml => delete-iam-group.yml} | 0 ...e_iam_policy.yml => delete-iam-policy.yml} | 0 ...elete_iam_role.yml => delete-iam-role.yml} | 0 ...elete_iam_user.yml => delete-iam-user.yml} | 0 ... => delete-login-profile-for-iam-user.yml} | 0 definitions/impact/delete-pod.yml | 38 + definitions/impact/delete-serviceaccount.yml | 39 + ...m_user.yml => add-api-key-to-iam-user.yml} | 0 .../{add_iam_user.yml => add-iam-user.yml} | 0 ... => alter-assume-role-policy-document.yml} | 0 ...l => change-current-iam-user-password.yml} | 0 ...ate_iam_group.yml => create-iam-group.yml} | 0 ... => create-login-profile-for-iam-user.yml} | 0 ....yml => create-secrets-manager-secret.yml} | 0 .../persistence/create-serviceaccount.yml | 37 + ... => update-login-profile-for-iam-user.yml} | 2 +- ...to_group.yml => add-iam-user-to-group.yml} | 0 ..._group.yml => add-policy-to-iam-group.yml} | 0 ...am_user.yml => add-policy-to-iam-user.yml} | 0 ...icy_to_role.yml => add-policy-to-role.yml} | 0 ...e.yml => add-role-to-new-ec2-instance.yml} | 0 ...sion.yml => create-iam-policy-version.yml} | 0 ...e_iam_policy.yml => create-iam-policy.yml} | 0 .../privileged-container.yml | 59 + ...yml => set-default-iam-policy-version.yml} | 0 ....yml => update-inline-policy-for-user.yml} | 2 +- .../writeable-hostpath-mount.yml | 66 + docs/api-logging.md | 62 +- docs/deploying-leonidas.md | 62 +- docs/k8s-architecture-svc.png | Bin 0 -> 89906 bytes docs/k8s-architecture.png | Bin 0 -> 60067 bytes docs/using-leonidas.md | 22 +- docs/writing-api-executors.md | 45 +- docs/writing-definitions.md | 122 +- generator/config.yml | 9 +- generator/generator.py | 90 + generator/lib/definitions.py | 133 +- generator/lib/docgen.py | 39 +- generator/lib/kubeapigen.py | 85 + generator/lib/leo_case_gen.py | 11 +- generator/lib/sigmaexport.py | 2 +- generator/poetry.lock | 1732 +++++++++++------ generator/pyproject.toml | 19 +- generator/templates/aws/sigma.jinja2 | 6 +- generator/templates/kube-resources.jinja2 | 56 + .../kube_python_execution_function.jinja2 | 98 + generator/templates/kubernetes/sigma.jinja2 | 34 + .../templates/markdown-kubernetes.jinja2 | 51 + jupyter/img/OF815.png | Bin 0 -> 150371 bytes jupyter/lib/kubeclientlib.py | 36 + jupyter/pyproject.toml | 7 +- jupyter/threat-actors/OF815.ipynb | 282 +++ jupyter/threat-actors/demo-envs/dharma.yml | 108 + leo/pyproject.toml | 6 +- output/docs/index.md | 2 +- output/leonidas/api/api_base.py | 56 +- output/leonidas/api/utils.py | 106 + output/leonidas/pyproject.toml | 8 +- output/mkdocs.yml | 8 +- sigma-pipeline-kubernetes-to-elk.yml | 69 + 88 files changed, 3464 insertions(+), 709 deletions(-) create mode 100644 definitions/credential_access/access-secrets-api-server.yml create mode 100644 definitions/credential_access/access-secrets-pod-filesystem.yml create mode 100644 definitions/credential_access/app-creds-configmaps.yml create mode 100644 definitions/credential_access/app-creds-env.yml rename definitions/defense_evasion/{add_new_guardduty_ip_set.yml => add-new-guardduty-ip-set.yml} (100%) create mode 100644 definitions/defense_evasion/delete-kubernetes-events.yml create mode 100644 definitions/defense_evasion/pod-name-similarity.yml rename definitions/defense_evasion/{update_guardduty_ip_set.yml => update-guardduty-ip-set.yml} (100%) rename definitions/discovery/{enumerate_cloudtrail.yml => enumerate-cloudtrail.yml} (100%) rename definitions/discovery/{enumerate_iam_getaccountauthorizationdetails.yml => enumerate-iam-getaccountauthorizationdetails.yml} (100%) rename definitions/discovery/{enumerate_iam_groups.yml => enumerate-iam-groups.yml} (100%) rename definitions/discovery/{enumerate_iam_users.yml => enumerate-iam-users.yml} (100%) create mode 100644 definitions/discovery/enumerate-nodes.yml create mode 100644 definitions/discovery/enumerate-pods.yml create mode 100644 definitions/discovery/enumerate-rbac-permissions.yml rename definitions/discovery/{enumerate_secrets_manager.yml => enumerate-secrets-manager.yml} (100%) rename definitions/discovery/{enumerate_vpc_flow_logs.yml => enumerate-vpc-flow-logs.yml} (100%) rename definitions/discovery/{enumerate_waf_rules.yml => enumerate-waf-rules.yml} (100%) rename definitions/discovery/{get_guardduty_detector.yml => get-guardduty-detector.yml} (100%) rename definitions/discovery/{get_identity.yml => get-identity.yml} (100%) rename definitions/discovery/{list_guardduty_detectors.yml => list-guardduty-detectors.yml} (100%) create mode 100644 definitions/execution/create-pod.yml create mode 100644 definitions/execution/exec-into-container.yml create mode 100644 definitions/execution/sidecar-injection.yml create mode 100644 definitions/impact/delete-deployment.yml rename definitions/impact/{delete_iam_group.yml => delete-iam-group.yml} (100%) rename definitions/impact/{delete_iam_policy.yml => delete-iam-policy.yml} (100%) rename definitions/impact/{delete_iam_role.yml => delete-iam-role.yml} (100%) rename definitions/impact/{delete_iam_user.yml => delete-iam-user.yml} (100%) rename definitions/impact/{delete_login_profile_for_iam_user.yml => delete-login-profile-for-iam-user.yml} (100%) create mode 100644 definitions/impact/delete-pod.yml create mode 100644 definitions/impact/delete-serviceaccount.yml rename definitions/persistence/{add_api_key_to_iam_user.yml => add-api-key-to-iam-user.yml} (100%) rename definitions/persistence/{add_iam_user.yml => add-iam-user.yml} (100%) rename definitions/persistence/{alter_assume_role_policy_document.yml => alter-assume-role-policy-document.yml} (100%) rename definitions/persistence/{change_current_iam_user_password.yml => change-current-iam-user-password.yml} (100%) rename definitions/persistence/{create_iam_group.yml => create-iam-group.yml} (100%) rename definitions/persistence/{create_login_profile_for_iam_user.yml => create-login-profile-for-iam-user.yml} (100%) rename definitions/persistence/{create_secrets_manager_secret.yml => create-secrets-manager-secret.yml} (100%) create mode 100644 definitions/persistence/create-serviceaccount.yml rename definitions/persistence/{update_login_profile_for_iam_user.yml => update-login-profile-for-iam-user.yml} (91%) rename definitions/privilege_escalation/{add_iam_user_to_group.yml => add-iam-user-to-group.yml} (100%) rename definitions/privilege_escalation/{add_policy_to_iam_group.yml => add-policy-to-iam-group.yml} (100%) rename definitions/privilege_escalation/{add_policy_to_iam_user.yml => add-policy-to-iam-user.yml} (100%) rename definitions/privilege_escalation/{add_policy_to_role.yml => add-policy-to-role.yml} (100%) rename definitions/privilege_escalation/{add_role_to_new_ec2_instance.yml => add-role-to-new-ec2-instance.yml} (100%) rename definitions/privilege_escalation/{create_iam_policy_version.yml => create-iam-policy-version.yml} (100%) rename definitions/privilege_escalation/{create_iam_policy.yml => create-iam-policy.yml} (100%) create mode 100644 definitions/privilege_escalation/privileged-container.yml rename definitions/privilege_escalation/{set_default_iam_policy_version.yml => set-default-iam-policy-version.yml} (100%) rename definitions/privilege_escalation/{update_inline_policy_for_user.yml => update-inline-policy-for-user.yml} (98%) create mode 100644 definitions/privilege_escalation/writeable-hostpath-mount.yml create mode 100644 docs/k8s-architecture-svc.png create mode 100644 docs/k8s-architecture.png create mode 100644 generator/lib/kubeapigen.py create mode 100644 generator/templates/kube-resources.jinja2 create mode 100644 generator/templates/kube_python_execution_function.jinja2 create mode 100644 generator/templates/kubernetes/sigma.jinja2 create mode 100644 generator/templates/markdown-kubernetes.jinja2 create mode 100644 jupyter/img/OF815.png create mode 100644 jupyter/lib/kubeclientlib.py create mode 100644 jupyter/threat-actors/OF815.ipynb create mode 100644 jupyter/threat-actors/demo-envs/dharma.yml create mode 100644 sigma-pipeline-kubernetes-to-elk.yml diff --git a/.gitignore b/.gitignore index 88c5e2f..7afb39f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ output/* .vscode/* +.idea/* +.obsidian/* # Byte-compiled / optimized / DLL files __pycache__/ @@ -148,6 +150,7 @@ cython_debug/ # .tfstate files *.tfstate *.tfstate.* +*lock.hcl # Crash log files crash.log @@ -175,3 +178,5 @@ override.tf.json # Ignore CLI configuration files .terraformrc terraform.rc + +test-files/ diff --git a/README.md b/README.md index 7ec9eac..0648068 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,16 @@ This is the repository containing Leonidas, a framework for executing attacker a * Sigma rules (https://github.com/Neo23x0/sigma) for detection * Documentation - see http://detectioninthe.cloud/ for an example -![Leonidas Architecture](./docs/architecture.png?raw=true "Leonidas Architecture") +The project was originally designed for use in AWS environments, with the following architecture: + +![Leonidas Architecture](./docs/architecture.png) +In 2024, Leonidas was extended to support Kubernetes environments. Its resources can be deployed within the target cluster, as per the following architecture: +![Leonidas K8S Architecture](./docs/k8s-architecture.png) ## Deploying the API -The API is deployed via an AWS-native CI/CD pipeline. Instructions for this can be found at [Deploying Leonidas](./docs/deploying-leonidas.md). +The API is deployed into an AWS account via an AWS-native CI/CD pipeline, and into a Kubernetes cluster using auto-generated YAML manifests. +Instructions for both environments can be found at [Deploying Leonidas](./docs/deploying-leonidas.md). ## Using the API @@ -39,10 +44,10 @@ The documentation is generated as follows: This will produce markdown versions of the documentation available at `output/docs`. This can be uploaded to an existing markdown-based documentation system, or the following can be used to create a prettified HTML version of the docs: -* `cd output` +* `cd ../output` * `mkdocs build` -This will create a `output/site` folder containing the HTML site. It is also possible to view this locally by running `mkdocs serve` in the same folder. +This will create an `output/site` folder containing the HTML site. It is also possible to view this locally by running `mkdocs serve` in the same folder. ## Writing Definitions @@ -86,6 +91,10 @@ detection: Project built and maintained by Nick Jones ( [NJonesUK](https://github.com/NJonesUK) / [@nojonesuk](https://twitter.com/nojonesuk)). +Kubernetes support added by Leo Tsaousis ( [@laripping](https://github.com/LAripping) ). + +Special thanks also to Mohit Gupta ( @[Skybound1](https://github.com/Skybound1) ) for his invaluable contribution. + This project drew ideas and inspiration from a range of sources, including: * [Pacu](https://github.com/RhinoSecurityLabs/pacu) diff --git a/aws-pipeline/codepipeline.tf b/aws-pipeline/codepipeline.tf index 6233eb1..d0cbdfb 100644 --- a/aws-pipeline/codepipeline.tf +++ b/aws-pipeline/codepipeline.tf @@ -17,7 +17,7 @@ resource "aws_iam_role" "codepipeline_role" { # CodePipeline policy needed to use CodeCommit and CodeBuild resource "aws_iam_role_policy" "attach_codepipeline_policy" { - name = "odepipeline-policy" + name = "codepipeline-policy" role = aws_iam_role.codepipeline_role.id policy = < leonidas-manifests.yml` - Create the manifest of Kubernetes resources Leonidas needs, including the RBAC policy + - by default, this command assumes cluster-wide operation and generates a cluster role. To specify explicitly whether Leonidas should be granted namespaced or cluster-wide permissions, set the `--role/--clusterrole` flag +6. `kubectl -f leonidas-manifests.yml apply` - Create the Leonidas resources in the cluster. This might take a minute. +7. `kubectl port-forward deployment/leonidas-deployment 5000:5000` - Expose the Flask web service on http://localhost:5000 so that it can be accessed by clients such as `leo`, Jupyter notebooks, or just `curl`. Note that if you chose to deploy Leonidas into a namespace other than the default, you will need to also provide the `-n ` flag here + +### Removing Leonidas from a cluster +To clean up all Leonidas-related resources after use, simply run +`kubectl -f leonidas-manifests.yml delete` + +### Generating an RBAC Policy for the API + +The generator utility allows generation of only the RBAC policy needed by Leonidas, without the other Kubernetes resources. This can be done using the `rbac-policy` command. + +Leonidas can be configured to run with cluster-wide permissions, or limited within a specific namespace. In practice, this means that the service account the application is running as can be assigned either a `ClusterRole`, or a namespace-scoped `Role`. In the latter scenario, cluster-wide permissions specified by test cases are ignored. See [Writing Definitions](writing-definitions.md) on how this is specified. Depending on the mode of operation desired, the RBAC policy is generated as follows: + +```bash +# Cluster-wide operation +$ poetry run ./generator.py rbac-policy > ../policy.yml +Generating ClusterRole with 20 permissions + +# Namespace-scoped operation +# set the target namespace in generator/config.yml +$ poetry run ./generator.py rbac-policy --role > ../policy.yml +Generating Role with 16 permissions (ignored 4 clusterwide permissions) +``` + ## Running the Leonidas API Locally -It is possible to build and run the Leonidas AWS API locally for development purposes. To do this: +It is possible to build and run the Leonidas Python API locally for development purposes. To do this: * `cd generator` -* `poetry install` -* `poetry run ./generator.py generate-aws-api` +* `poetry install` +* `poetry run ./generator.py generate-aws-api` and/or `generate-kube-api` * `cd ../output/leonidas` +* `poetry install` * `poetry run python leonidas.py` -This will spawn the API listening at http://127.0.0.1:5000. By default, this uses whichever AWS credentials are configured as the default profile in `~/.aws/config`. This can be overridden by supplying a role ARN to assume, or access keys to use, as part of the requests to the API. +This will spawn the API listening at http://127.0.0.1:5000. By default, this uses whichever AWS credentials are configured as the default profile in `~/.aws/config`, and whichever Kubernetes credentials found in the default Kubeconfig. These can be overridden by supplying a role ARN to assume, access keys, JWT tokens or TLS client certificates to use for requests to the API. + + diff --git a/docs/k8s-architecture-svc.png b/docs/k8s-architecture-svc.png new file mode 100644 index 0000000000000000000000000000000000000000..ca088d76d526dee6c9cd0159a942c5e25f5aea88 GIT binary patch literal 89906 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 II;Vst0DkGq`2YX_ literal 0 HcmV?d00001 diff --git a/docs/k8s-architecture.png b/docs/k8s-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..dcef5a0045621026457dae551583dfcf3d5363bc GIT binary patch literal 60067 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�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.0.0", markers = "python_version < \"3.11\""} +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] -[package.dependencies.typed-ast] -python = "<3.8" -version = ">=1.4.0,<2.0" +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] -[package.dependencies.typing-extensions] -python = "<3.10" -version = ">=3.10" +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] -category = "main" -description = "Classes Without Boilerplate" -name = "attrs" +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "21.4.0" +python-versions = ">=3.8" +files = [ + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, +] + +[package.dependencies] +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [package.extras] -dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] -category = "main" -description = "The uncompromising code formatter." name = "black" +version = "19.10b0" +description = "The uncompromising code formatter." optional = false python-versions = ">=3.6" -version = "19.10b0" +files = [ + {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, + {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, +] [package.dependencies] appdirs = "*" @@ -62,328 +90,1050 @@ typed-ast = ">=1.4.0" d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] [[package]] -category = "main" -description = "Composable command line interface toolkit" +name = "certifi" +version = "2024.8.30" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, +] + +[[package]] name = "click" +version = "7.1.2" +description = "Composable command line interface toolkit" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "7.1.2" +files = [ + {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, + {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, +] [[package]] -category = "main" -description = "Cross-platform colored terminal text." -marker = "sys_platform == \"win32\"" name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "0.4.4" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "dill" +version = "0.3.9" +description = "serialize all of Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"}, + {file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"}, +] + +[package.extras] +graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] + +[[package]] +name = "docker" +version = "6.1.3" +description = "A Python library for the Docker Engine API." +optional = false +python-versions = ">=3.7" +files = [ + {file = "docker-6.1.3-py3-none-any.whl", hash = "sha256:aecd2277b8bf8e506e484f6ab7aec39abe0038e29fa4a6d3ba86c3fe01844ed9"}, + {file = "docker-6.1.3.tar.gz", hash = "sha256:aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20"}, +] + +[package.dependencies] +packaging = ">=14.0" +pywin32 = {version = ">=304", markers = "sys_platform == \"win32\""} +requests = ">=2.26.0" +urllib3 = ">=1.26.0" +websocket-client = ">=0.32.0" + +[package.extras] +ssh = ["paramiko (>=2.4.3)"] [[package]] -category = "main" -description = "Copy your docs directly to the gh-pages branch." name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." optional = false python-versions = "*" -version = "2.0.2" +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] [package.dependencies] python-dateutil = ">=2.8.1" [package.extras] -dev = ["twine", "markdown", "flake8", "wheel"] +dev = ["flake8", "markdown", "twine", "wheel"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] -category = "main" -description = "Read metadata from Python packages" name = "importlib-metadata" +version = "8.5.0" +description = "Read metadata from Python packages" optional = false -python-versions = ">=3.7" -version = "4.10.0" +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, +] [package.dependencies] -zipp = ">=0.5" - -[package.dependencies.typing-extensions] -python = "<3.8" -version = ">=3.6.4" +zipp = ">=3.20" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] [[package]] -category = "main" -description = "A Python utility / library to sort Python imports." name = "isort" +version = "5.13.2" +description = "A Python utility / library to sort Python imports." optional = false -python-versions = ">=3.6.1,<4.0" -version = "5.10.1" +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, +] [package.extras] -colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] +colors = ["colorama (>=0.4.6)"] [[package]] -category = "main" -description = "A very fast and expressive template engine." name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "2.11.3" +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] [package.dependencies] -MarkupSafe = ">=0.23" +MarkupSafe = ">=2.0" [package.extras] -i18n = ["Babel (>=0.8)"] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jinja2-ansible-filters" +version = "1.3.2" +description = "A port of Ansible's jinja2 filters without requiring ansible core." +optional = false +python-versions = "*" +files = [ + {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, + {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, +] + +[package.dependencies] +Jinja2 = "*" +PyYAML = "*" + +[package.extras] +test = ["pytest", "pytest-cov"] [[package]] -category = "main" -description = "A fast and thorough lazy object proxy." name = "lazy-object-proxy" +version = "1.10.0" +description = "A fast and thorough lazy object proxy." optional = false -python-versions = ">=3.6" -version = "1.7.1" +python-versions = ">=3.8" +files = [ + {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, + {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, +] [[package]] -category = "main" -description = "Python implementation of Markdown." name = "markdown" +version = "3.7" +description = "Python implementation of John Gruber's Markdown." optional = false -python-versions = ">=3.6" -version = "3.3.6" +python-versions = ">=3.8" +files = [ + {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, + {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, +] [package.dependencies] -[package.dependencies.importlib-metadata] -python = "<3.10" -version = ">=4.4" +importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} [package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] [[package]] -category = "main" -description = "Safely add untrusted strings to HTML/XML markup." name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=3.6" -version = "2.0.1" +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] [[package]] -category = "main" -description = "McCabe checker, plugin for flake8" name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" optional = false -python-versions = "*" -version = "0.6.1" +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] [[package]] -category = "main" -description = "A deep merge function for 🐍." name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." optional = false python-versions = ">=3.6" -version = "1.3.4" +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] [[package]] -category = "main" -description = "Project documentation with Markdown." name = "mkdocs" +version = "1.6.1" +description = "Project documentation with Markdown." optional = false -python-versions = ">=3.6" -version = "1.2.3" +python-versions = ">=3.8" +files = [ + {file = "mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e"}, + {file = "mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2"}, +] [package.dependencies] -Jinja2 = ">=2.10.1" -Markdown = ">=3.2.1" -PyYAML = ">=3.10" -click = ">=3.3" +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} ghp-import = ">=1.0" -importlib-metadata = ">=3.10" +importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} +jinja2 = ">=2.11.1" +markdown = ">=3.3.6" +markupsafe = ">=2.0.1" mergedeep = ">=1.3.4" +mkdocs-get-deps = ">=0.2.0" packaging = ">=20.5" +pathspec = ">=0.11.1" +pyyaml = ">=5.1" pyyaml-env-tag = ">=0.1" watchdog = ">=2.0" [package.extras] i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "watchdog (==2.0)"] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +description = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134"}, + {file = "mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} +mergedeep = ">=1.3.4" +platformdirs = ">=2.2.0" +pyyaml = ">=5.1" [[package]] -category = "main" -description = "A Material Design theme for MkDocs" name = "mkdocs-material" +version = "9.5.44" +description = "Documentation that simply works" optional = false -python-versions = "*" -version = "5.5.14" +python-versions = ">=3.8" +files = [ + {file = "mkdocs_material-9.5.44-py3-none-any.whl", hash = "sha256:47015f9c167d58a5ff5e682da37441fc4d66a1c79334bfc08d774763cacf69ca"}, + {file = "mkdocs_material-9.5.44.tar.gz", hash = "sha256:f3a6c968e524166b3f3ed1fb97d3ed3e0091183b0545cedf7156a2a6804c56c0"}, +] [package.dependencies] -Pygments = ">=2.4" -markdown = ">=3.2" -mkdocs = ">=1.1" -mkdocs-material-extensions = ">=1.0" -pymdown-extensions = ">=7.0" +babel = ">=2.10,<3.0" +colorama = ">=0.4,<1.0" +jinja2 = ">=3.0,<4.0" +markdown = ">=3.2,<4.0" +mkdocs = ">=1.6,<2.0" +mkdocs-material-extensions = ">=1.3,<2.0" +paginate = ">=0.5,<1.0" +pygments = ">=2.16,<3.0" +pymdown-extensions = ">=10.2,<11.0" +regex = ">=2022.4" +requests = ">=2.26,<3.0" + +[package.extras] +git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"] +imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=10.2,<11.0)"] +recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] [[package]] -category = "main" -description = "Extension pack for Python Markdown." name = "mkdocs-material-extensions" +version = "1.3.1" +description = "Extension pack for Python Markdown and MkDocs Material." optional = false -python-versions = ">=3.6" -version = "1.0.3" +python-versions = ">=3.8" +files = [ + {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, + {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, +] [[package]] -category = "main" -description = "Core utilities for Python packages" name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" optional = false -python-versions = ">=3.6" -version = "21.3" +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" +[[package]] +name = "paginate" +version = "0.5.7" +description = "Divides large result sets into pages for easier browsing" +optional = false +python-versions = "*" +files = [ + {file = "paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591"}, + {file = "paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945"}, +] + +[package.extras] +dev = ["pytest", "tox"] +lint = ["black"] [[package]] -category = "main" -description = "Utility library for gitignore style pattern matching of file paths." name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -version = "0.9.0" +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] [[package]] -category = "main" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.7" -version = "2.4.1" +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] [package.extras] -docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] -category = "main" -description = "Pygments is a syntax highlighting package written in Python." name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.5" -version = "2.11.0" +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] -category = "main" -description = "python code static checker" name = "pylint" +version = "2.17.7" +description = "python code static checker" optional = false -python-versions = ">=3.6.2" -version = "2.12.2" +python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, + {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, +] [package.dependencies] -astroid = ">=2.9.0,<2.10" -colorama = "*" +astroid = ">=2.15.8,<=2.17.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] isort = ">=4.2.5,<6" -mccabe = ">=0.6,<0.7" +mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" -toml = ">=0.9.2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} -[package.dependencies.typing-extensions] -python = "<3.10" -version = ">=3.10.0" +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] [[package]] -category = "main" -description = "Extension pack for Python Markdown." name = "pymdown-extensions" +version = "10.12" +description = "Extension pack for Python Markdown." optional = false -python-versions = ">=3.6" -version = "9.1" +python-versions = ">=3.8" +files = [ + {file = "pymdown_extensions-10.12-py3-none-any.whl", hash = "sha256:49f81412242d3527b8b4967b990df395c89563043bc51a3d2d7d500e52123b77"}, + {file = "pymdown_extensions-10.12.tar.gz", hash = "sha256:b0ee1e0b2bef1071a47891ab17003bfe5bf824a398e13f49f8ed653b699369a7"}, +] [package.dependencies] -Markdown = ">=3.2" +markdown = ">=3.6" +pyyaml = "*" + +[package.extras] +extra = ["pygments (>=2.12)"] [[package]] -category = "main" -description = "Python parsing module" name = "pyparsing" +version = "3.1.4" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false -python-versions = ">=3.6" -version = "3.0.6" +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, + {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] [[package]] -category = "main" -description = "Extensions to the standard Python datetime module" +name = "pysigma" +version = "0.11.16" +description = "Sigma rule processing and conversion tools" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "pysigma-0.11.16-py3-none-any.whl", hash = "sha256:f4c703f568443f4a696e515cf189ec164dcb1040e02867d15d400a877a2e51ac"}, + {file = "pysigma-0.11.16.tar.gz", hash = "sha256:dd98d105276efa1d082d96798009f859da3de8d4c8a968b7da46ba2dd7745872"}, +] + +[package.dependencies] +jinja2 = ">=3.1,<4.0" +packaging = ">=24.1,<25.0" +pyparsing = ">=3.1,<4.0" +pyyaml = ">=6.0,<7.0" +requests = ">=2.31,<3.0" + +[[package]] +name = "pysigma-backend-elasticsearch" +version = "1.1.2" +description = "pySigma Elasticsearch backend supporting Lucene, ES|QL (with correlations) and EQL queries" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "pysigma_backend_elasticsearch-1.1.2-py3-none-any.whl", hash = "sha256:10843c651ef38cf4f4593ac795859696dbee790868fa28c344398b780bb36785"}, + {file = "pysigma_backend_elasticsearch-1.1.2.tar.gz", hash = "sha256:b9c69e768ee9335c533407a5fbc4f37e09b1181ceafe470effdbd504aa0c3ecb"}, +] + +[package.dependencies] +pysigma = ">=0.11.3,<0.12.0" + +[[package]] name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -version = "2.8.2" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] [package.dependencies] six = ">=1.5" [[package]] -category = "main" -description = "YAML parser and emitter for Python" +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + +[[package]] name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -version = "5.4.1" +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] [[package]] -category = "main" -description = "A custom YAML tag for referencing environment variables in YAML files. " name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " optional = false python-versions = ">=3.6" -version = "0.1" +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] [package.dependencies] pyyaml = "*" [[package]] -category = "main" -description = "Alternative regular expression module, to replace re." name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." optional = false -python-versions = "*" -version = "2021.11.10" +python-versions = ">=3.8" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] -category = "main" -description = "Python 2 and 3 compatibility utilities" name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -version = "1.16.0" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] [[package]] -category = "main" -description = "Python Library for Tom's Obvious, Minimal Language" name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -version = "0.10.2" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + +[[package]] +name = "tomli" +version = "2.1.0" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, + {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, +] + +[[package]] +name = "tomlkit" +version = "0.13.2" +description = "Style preserving TOML library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, +] [[package]] -category = "main" -description = "a fork of Python 2 and 3 ast modules with type comment support" name = "typed-ast" +version = "1.5.5" +description = "a fork of Python 2 and 3 ast modules with type comment support" optional = false python-versions = ">=3.6" -version = "1.5.1" +files = [ + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, +] [[package]] -category = "main" -description = "Typer, build great CLIs. Easy to code. Based on Python type hints." name = "typer" +version = "0.2.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false python-versions = ">=3.6" -version = "0.2.1" +files = [ + {file = "typer-0.2.1-py3-none-any.whl", hash = "sha256:9b66756dfcc9e9f829a33f9019757225af0c8e87e1e692f103556335d5ae3b25"}, + {file = "typer-0.2.1.tar.gz", hash = "sha256:a8c49418f20c1d1b04a34424dded86cebf1f87042a8e448c6faa63cf38b9c0af"}, +] [package.dependencies] click = ">=7.1.1,<7.2.0" @@ -391,487 +1141,199 @@ click = ">=7.1.1,<7.2.0" [package.extras] all = ["colorama", "shellingham"] dev = ["autoflake", "flake8"] -doc = ["mkdocs", "mkdocs-material", "markdown-include"] -test = ["shellingham", "pytest (>=4.4.0,<5.4)", "pytest-cov", "coverage", "pytest-xdist", "pytest-sugar", "mypy", "black", "isort"] +doc = ["markdown-include", "mkdocs", "mkdocs-material"] +test = ["black", "coverage", "isort", "mypy", "pytest (>=4.4.0,<5.4)", "pytest-cov", "pytest-sugar", "pytest-xdist", "shellingham"] [[package]] -category = "main" -description = "Backported and Experimental Type Hints for Python 3.6+" -marker = "python_version < \"3.10\"" name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.6" -version = "4.0.1" +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] -category = "main" -description = "Filesystem events monitoring" name = "watchdog" +version = "4.0.2" +description = "Filesystem events monitoring" optional = false -python-versions = ">=3.6" -version = "2.1.6" +python-versions = ">=3.8" +files = [ + {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22"}, + {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1"}, + {file = "watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503"}, + {file = "watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930"}, + {file = "watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b"}, + {file = "watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef"}, + {file = "watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a"}, + {file = "watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29"}, + {file = "watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a"}, + {file = "watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b"}, + {file = "watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d"}, + {file = "watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7"}, + {file = "watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040"}, + {file = "watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7"}, + {file = "watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4"}, + {file = "watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9"}, + {file = "watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578"}, + {file = "watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b"}, + {file = "watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa"}, + {file = "watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3"}, + {file = "watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508"}, + {file = "watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee"}, + {file = "watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1"}, + {file = "watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8"}, + {file = "watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19"}, + {file = "watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b"}, + {file = "watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c"}, + {file = "watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270"}, +] [package.extras] watchmedo = ["PyYAML (>=3.10)"] [[package]] -category = "main" -description = "Module for decorators, wrappers and monkey patching." +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] name = "wrapt" +version = "1.16.0" +description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -version = "1.13.3" +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] [[package]] -category = "main" -description = "Backport of pathlib-compatible object wrapper for zip files" name = "zipp" +version = "3.20.2" +description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.7" -version = "3.7.0" +python-versions = ">=3.8" +files = [ + {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, + {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, +] [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] [metadata] -content-hash = "af3321a6592fef788d9c6faad236e2d4faa58df1903a1debc02d950df2d04c76" -python-versions = "^3.7" - -[metadata.files] -appdirs = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] -astroid = [ - {file = "astroid-2.9.0-py3-none-any.whl", hash = "sha256:776ca0b748b4ad69c00bfe0fff38fa2d21c338e12c84aa9715ee0d473c422778"}, - {file = "astroid-2.9.0.tar.gz", hash = "sha256:5939cf55de24b92bda00345d4d0659d01b3c7dafb5055165c330bc7c568ba273"}, -] -attrs = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] -black = [ - {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, - {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, -] -click = [ - {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, - {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -ghp-import = [ - {file = "ghp-import-2.0.2.tar.gz", hash = "sha256:947b3771f11be850c852c64b561c600fdddf794bab363060854c1ee7ad05e071"}, - {file = "ghp_import-2.0.2-py3-none-any.whl", hash = "sha256:5f8962b30b20652cdffa9c5a9812f7de6bcb56ec475acac579807719bf242c46"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.10.0-py3-none-any.whl", hash = "sha256:b7cf7d3fef75f1e4c80a96ca660efbd51473d7e8f39b5ab9210febc7809012a4"}, - {file = "importlib_metadata-4.10.0.tar.gz", hash = "sha256:92a8b58ce734b2a4494878e0ecf7d79ccd7a128b5fc6014c401e0b61f006f0f6"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -jinja2 = [ - {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, - {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -markdown = [ - {file = "Markdown-3.3.6-py3-none-any.whl", hash = "sha256:9923332318f843411e9932237530df53162e29dc7a4e2b91e35764583c46c9a3"}, - {file = "Markdown-3.3.6.tar.gz", hash = "sha256:76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006"}, -] -markupsafe = [ - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, - {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -mergedeep = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] -mkdocs = [ - {file = "mkdocs-1.2.3-py3-none-any.whl", hash = "sha256:a1fa8c2d0c1305d7fc2b9d9f607c71778572a8b110fb26642aa00296c9e6d072"}, - {file = "mkdocs-1.2.3.tar.gz", hash = "sha256:89f5a094764381cda656af4298727c9f53dc3e602983087e1fe96ea1df24f4c1"}, -] -mkdocs-material = [ - {file = "mkdocs-material-5.5.14.tar.gz", hash = "sha256:9f3237df1a72f91e0330a5e3b3711cb7aaa0d5705f9585e6ce6fbacaa16e777f"}, - {file = "mkdocs_material-5.5.14-py2.py3-none-any.whl", hash = "sha256:a0b3b3e67606e04d13e777d13f3195402ea09e0c3ce279abc3666cac2c5b3a6d"}, -] -mkdocs-material-extensions = [ - {file = "mkdocs-material-extensions-1.0.3.tar.gz", hash = "sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2"}, - {file = "mkdocs_material_extensions-1.0.3-py3-none-any.whl", hash = "sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pathspec = [ - {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, - {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, -] -platformdirs = [ - {file = "platformdirs-2.4.1-py3-none-any.whl", hash = "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca"}, - {file = "platformdirs-2.4.1.tar.gz", hash = "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"}, -] -pygments = [ - {file = "Pygments-2.11.0-py3-none-any.whl", hash = "sha256:ac8098bfc40b8e1091ad7c13490c7f4797e401d0972e8fcfadde90ffb3ed4ea9"}, - {file = "Pygments-2.11.0.tar.gz", hash = "sha256:51130f778a028f2d19c143fce00ced6f8b10f726e17599d7e91b290f6cbcda0c"}, -] -pylint = [ - {file = "pylint-2.12.2-py3-none-any.whl", hash = "sha256:daabda3f7ed9d1c60f52d563b1b854632fd90035bcf01443e234d3dc794e3b74"}, - {file = "pylint-2.12.2.tar.gz", hash = "sha256:9d945a73640e1fec07ee34b42f5669b770c759acd536ec7b16d7e4b87a9c9ff9"}, -] -pymdown-extensions = [ - {file = "pymdown-extensions-9.1.tar.gz", hash = "sha256:74247f2c80f1d9e3c7242abe1c16317da36c6f26c7ad4b8a7f457f0ec20f0365"}, - {file = "pymdown_extensions-9.1-py3-none-any.whl", hash = "sha256:b03e66f91f33af4a6e7a0e20c740313522995f69a03d86316b1449766c473d0e"}, -] -pyparsing = [ - {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, - {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, -] -python-dateutil = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] -pyyaml = [ - {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, - {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, - {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, - {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, - {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, - {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, - {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, - {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, - {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, -] -pyyaml-env-tag = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, -] -regex = [ - {file = "regex-2021.11.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9345b6f7ee578bad8e475129ed40123d265464c4cfead6c261fd60fc9de00bcf"}, - {file = "regex-2021.11.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:416c5f1a188c91e3eb41e9c8787288e707f7d2ebe66e0a6563af280d9b68478f"}, - {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0538c43565ee6e703d3a7c3bdfe4037a5209250e8502c98f20fea6f5fdf2965"}, - {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee1227cf08b6716c85504aebc49ac827eb88fcc6e51564f010f11a406c0a667"}, - {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6650f16365f1924d6014d2ea770bde8555b4a39dc9576abb95e3cd1ff0263b36"}, - {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30ab804ea73972049b7a2a5c62d97687d69b5a60a67adca07eb73a0ddbc9e29f"}, - {file = "regex-2021.11.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68a067c11463de2a37157930d8b153005085e42bcb7ad9ca562d77ba7d1404e0"}, - {file = "regex-2021.11.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:162abfd74e88001d20cb73ceaffbfe601469923e875caf9118333b1a4aaafdc4"}, - {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9ed0b1e5e0759d6b7f8e2f143894b2a7f3edd313f38cf44e1e15d360e11749b"}, - {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:473e67837f786404570eae33c3b64a4b9635ae9f00145250851a1292f484c063"}, - {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2fee3ed82a011184807d2127f1733b4f6b2ff6ec7151d83ef3477f3b96a13d03"}, - {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d5fd67df77bab0d3f4ea1d7afca9ef15c2ee35dfb348c7b57ffb9782a6e4db6e"}, - {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5d408a642a5484b9b4d11dea15a489ea0928c7e410c7525cd892f4d04f2f617b"}, - {file = "regex-2021.11.10-cp310-cp310-win32.whl", hash = "sha256:98ba568e8ae26beb726aeea2273053c717641933836568c2a0278a84987b2a1a"}, - {file = "regex-2021.11.10-cp310-cp310-win_amd64.whl", hash = "sha256:780b48456a0f0ba4d390e8b5f7c661fdd218934388cde1a974010a965e200e12"}, - {file = "regex-2021.11.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:dba70f30fd81f8ce6d32ddeef37d91c8948e5d5a4c63242d16a2b2df8143aafc"}, - {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1f54b9b4b6c53369f40028d2dd07a8c374583417ee6ec0ea304e710a20f80a0"}, - {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fbb9dc00e39f3e6c0ef48edee202f9520dafb233e8b51b06b8428cfcb92abd30"}, - {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666abff54e474d28ff42756d94544cdfd42e2ee97065857413b72e8a2d6a6345"}, - {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5537f71b6d646f7f5f340562ec4c77b6e1c915f8baae822ea0b7e46c1f09b733"}, - {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2e07c6a26ed4bea91b897ee2b0835c21716d9a469a96c3e878dc5f8c55bb23"}, - {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ca5f18a75e1256ce07494e245cdb146f5a9267d3c702ebf9b65c7f8bd843431e"}, - {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:74cbeac0451f27d4f50e6e8a8f3a52ca074b5e2da9f7b505c4201a57a8ed6286"}, - {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:3598893bde43091ee5ca0a6ad20f08a0435e93a69255eeb5f81b85e81e329264"}, - {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:50a7ddf3d131dc5633dccdb51417e2d1910d25cbcf842115a3a5893509140a3a"}, - {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:61600a7ca4bcf78a96a68a27c2ae9389763b5b94b63943d5158f2a377e09d29a"}, - {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:563d5f9354e15e048465061509403f68424fef37d5add3064038c2511c8f5e00"}, - {file = "regex-2021.11.10-cp36-cp36m-win32.whl", hash = "sha256:93a5051fcf5fad72de73b96f07d30bc29665697fb8ecdfbc474f3452c78adcf4"}, - {file = "regex-2021.11.10-cp36-cp36m-win_amd64.whl", hash = "sha256:b483c9d00a565633c87abd0aaf27eb5016de23fed952e054ecc19ce32f6a9e7e"}, - {file = "regex-2021.11.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fff55f3ce50a3ff63ec8e2a8d3dd924f1941b250b0aac3d3d42b687eeff07a8e"}, - {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32d2a2b02ccbef10145df9135751abea1f9f076e67a4e261b05f24b94219e36"}, - {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53db2c6be8a2710b359bfd3d3aa17ba38f8aa72a82309a12ae99d3c0c3dcd74d"}, - {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2207ae4f64ad3af399e2d30dde66f0b36ae5c3129b52885f1bffc2f05ec505c8"}, - {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5ca078bb666c4a9d1287a379fe617a6dccd18c3e8a7e6c7e1eb8974330c626a"}, - {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd33eb9bdcfbabab3459c9ee651d94c842bc8a05fabc95edf4ee0c15a072495e"}, - {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05b7d6d7e64efe309972adab77fc2af8907bb93217ec60aa9fe12a0dad35874f"}, - {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:42b50fa6666b0d50c30a990527127334d6b96dd969011e843e726a64011485da"}, - {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6e1d2cc79e8dae442b3fa4a26c5794428b98f81389af90623ffcc650ce9f6732"}, - {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:0416f7399e918c4b0e074a0f66e5191077ee2ca32a0f99d4c187a62beb47aa05"}, - {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:ce298e3d0c65bd03fa65ffcc6db0e2b578e8f626d468db64fdf8457731052942"}, - {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dc07f021ee80510f3cd3af2cad5b6a3b3a10b057521d9e6aaeb621730d320c5a"}, - {file = "regex-2021.11.10-cp37-cp37m-win32.whl", hash = "sha256:e71255ba42567d34a13c03968736c5d39bb4a97ce98188fafb27ce981115beec"}, - {file = "regex-2021.11.10-cp37-cp37m-win_amd64.whl", hash = "sha256:07856afef5ffcc052e7eccf3213317fbb94e4a5cd8177a2caa69c980657b3cb4"}, - {file = "regex-2021.11.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba05430e819e58544e840a68b03b28b6d328aff2e41579037e8bab7653b37d83"}, - {file = "regex-2021.11.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f301b11b9d214f83ddaf689181051e7f48905568b0c7017c04c06dfd065e244"}, - {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aaa4e0705ef2b73dd8e36eeb4c868f80f8393f5f4d855e94025ce7ad8525f50"}, - {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:788aef3549f1924d5c38263104dae7395bf020a42776d5ec5ea2b0d3d85d6646"}, - {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8af619e3be812a2059b212064ea7a640aff0568d972cd1b9e920837469eb3cb"}, - {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85bfa6a5413be0ee6c5c4a663668a2cad2cbecdee367630d097d7823041bdeec"}, - {file = "regex-2021.11.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f23222527b307970e383433daec128d769ff778d9b29343fb3496472dc20dabe"}, - {file = "regex-2021.11.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da1a90c1ddb7531b1d5ff1e171b4ee61f6345119be7351104b67ff413843fe94"}, - {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f5be7805e53dafe94d295399cfbe5227f39995a997f4fd8539bf3cbdc8f47ca8"}, - {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a955b747d620a50408b7fdf948e04359d6e762ff8a85f5775d907ceced715129"}, - {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:139a23d1f5d30db2cc6c7fd9c6d6497872a672db22c4ae1910be22d4f4b2068a"}, - {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ca49e1ab99593438b204e00f3970e7a5f70d045267051dfa6b5f4304fcfa1dbf"}, - {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:96fc32c16ea6d60d3ca7f63397bff5c75c5a562f7db6dec7d412f7c4d2e78ec0"}, - {file = "regex-2021.11.10-cp38-cp38-win32.whl", hash = "sha256:0617383e2fe465732af4509e61648b77cbe3aee68b6ac8c0b6fe934db90be5cc"}, - {file = "regex-2021.11.10-cp38-cp38-win_amd64.whl", hash = "sha256:a3feefd5e95871872673b08636f96b61ebef62971eab044f5124fb4dea39919d"}, - {file = "regex-2021.11.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f7f325be2804246a75a4f45c72d4ce80d2443ab815063cdf70ee8fb2ca59ee1b"}, - {file = "regex-2021.11.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:537ca6a3586931b16a85ac38c08cc48f10fc870a5b25e51794c74df843e9966d"}, - {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef2afb0fd1747f33f1ee3e209bce1ed582d1896b240ccc5e2697e3275f037c7"}, - {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:432bd15d40ed835a51617521d60d0125867f7b88acf653e4ed994a1f8e4995dc"}, - {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b43c2b8a330a490daaef5a47ab114935002b13b3f9dc5da56d5322ff218eeadb"}, - {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:962b9a917dd7ceacbe5cd424556914cb0d636001e393b43dc886ba31d2a1e449"}, - {file = "regex-2021.11.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa8c626d6441e2d04b6ee703ef2d1e17608ad44c7cb75258c09dd42bacdfc64b"}, - {file = "regex-2021.11.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3c5fb32cc6077abad3bbf0323067636d93307c9fa93e072771cf9a64d1c0f3ef"}, - {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:cd410a1cbb2d297c67d8521759ab2ee3f1d66206d2e4328502a487589a2cb21b"}, - {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e6096b0688e6e14af6a1b10eaad86b4ff17935c49aa774eac7c95a57a4e8c296"}, - {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:529801a0d58809b60b3531ee804d3e3be4b412c94b5d267daa3de7fadef00f49"}, - {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0f594b96fe2e0821d026365f72ac7b4f0b487487fb3d4aaf10dd9d97d88a9737"}, - {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2409b5c9cef7054dde93a9803156b411b677affc84fca69e908b1cb2c540025d"}, - {file = "regex-2021.11.10-cp39-cp39-win32.whl", hash = "sha256:3b5df18db1fccd66de15aa59c41e4f853b5df7550723d26aa6cb7f40e5d9da5a"}, - {file = "regex-2021.11.10-cp39-cp39-win_amd64.whl", hash = "sha256:83ee89483672b11f8952b158640d0c0ff02dc43d9cb1b70c1564b49abe92ce29"}, - {file = "regex-2021.11.10.tar.gz", hash = "sha256:f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -typed-ast = [ - {file = "typed_ast-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d8314c92414ce7481eee7ad42b353943679cf6f30237b5ecbf7d835519e1212"}, - {file = "typed_ast-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b53ae5de5500529c76225d18eeb060efbcec90ad5e030713fe8dab0fb4531631"}, - {file = "typed_ast-1.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:24058827d8f5d633f97223f5148a7d22628099a3d2efe06654ce872f46f07cdb"}, - {file = "typed_ast-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a6d495c1ef572519a7bac9534dbf6d94c40e5b6a608ef41136133377bba4aa08"}, - {file = "typed_ast-1.5.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:de4ecae89c7d8b56169473e08f6bfd2df7f95015591f43126e4ea7865928677e"}, - {file = "typed_ast-1.5.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:256115a5bc7ea9e665c6314ed6671ee2c08ca380f9d5f130bd4d2c1f5848d695"}, - {file = "typed_ast-1.5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:7c42707ab981b6cf4b73490c16e9d17fcd5227039720ca14abe415d39a173a30"}, - {file = "typed_ast-1.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:71dcda943a471d826ea930dd449ac7e76db7be778fcd722deb63642bab32ea3f"}, - {file = "typed_ast-1.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4f30a2bcd8e68adbb791ce1567fdb897357506f7ea6716f6bbdd3053ac4d9471"}, - {file = "typed_ast-1.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ca9e8300d8ba0b66d140820cf463438c8e7b4cdc6fd710c059bfcfb1531d03fb"}, - {file = "typed_ast-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9caaf2b440efb39ecbc45e2fabde809cbe56272719131a6318fd9bf08b58e2cb"}, - {file = "typed_ast-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9bcad65d66d594bffab8575f39420fe0ee96f66e23c4d927ebb4e24354ec1af"}, - {file = "typed_ast-1.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:591bc04e507595887160ed7aa8d6785867fb86c5793911be79ccede61ae96f4d"}, - {file = "typed_ast-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:a80d84f535642420dd17e16ae25bb46c7f4c16ee231105e7f3eb43976a89670a"}, - {file = "typed_ast-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:38cf5c642fa808300bae1281460d4f9b7617cf864d4e383054a5ef336e344d32"}, - {file = "typed_ast-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5b6ab14c56bc9c7e3c30228a0a0b54b915b1579613f6e463ba6f4eb1382e7fd4"}, - {file = "typed_ast-1.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2b8d7007f6280e36fa42652df47087ac7b0a7d7f09f9468f07792ba646aac2d"}, - {file = "typed_ast-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:b6d17f37f6edd879141e64a5db17b67488cfeffeedad8c5cec0392305e9bc775"}, - {file = "typed_ast-1.5.1.tar.gz", hash = "sha256:484137cab8ecf47e137260daa20bafbba5f4e3ec7fda1c1e69ab299b75fa81c5"}, -] -typer = [ - {file = "typer-0.2.1-py3-none-any.whl", hash = "sha256:9b66756dfcc9e9f829a33f9019757225af0c8e87e1e692f103556335d5ae3b25"}, - {file = "typer-0.2.1.tar.gz", hash = "sha256:a8c49418f20c1d1b04a34424dded86cebf1f87042a8e448c6faa63cf38b9c0af"}, -] -typing-extensions = [ - {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, - {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, -] -watchdog = [ - {file = "watchdog-2.1.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9693f35162dc6208d10b10ddf0458cc09ad70c30ba689d9206e02cd836ce28a3"}, - {file = "watchdog-2.1.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:aba5c812f8ee8a3ff3be51887ca2d55fb8e268439ed44110d3846e4229eb0e8b"}, - {file = "watchdog-2.1.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4ae38bf8ba6f39d5b83f78661273216e7db5b00f08be7592062cb1fc8b8ba542"}, - {file = "watchdog-2.1.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ad6f1796e37db2223d2a3f302f586f74c72c630b48a9872c1e7ae8e92e0ab669"}, - {file = "watchdog-2.1.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:922a69fa533cb0c793b483becaaa0845f655151e7256ec73630a1b2e9ebcb660"}, - {file = "watchdog-2.1.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b2fcf9402fde2672545b139694284dc3b665fd1be660d73eca6805197ef776a3"}, - {file = "watchdog-2.1.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3386b367e950a11b0568062b70cc026c6f645428a698d33d39e013aaeda4cc04"}, - {file = "watchdog-2.1.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8f1c00aa35f504197561060ca4c21d3cc079ba29cf6dd2fe61024c70160c990b"}, - {file = "watchdog-2.1.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b52b88021b9541a60531142b0a451baca08d28b74a723d0c99b13c8c8d48d604"}, - {file = "watchdog-2.1.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8047da932432aa32c515ec1447ea79ce578d0559362ca3605f8e9568f844e3c6"}, - {file = "watchdog-2.1.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e92c2d33858c8f560671b448205a268096e17870dcf60a9bb3ac7bfbafb7f5f9"}, - {file = "watchdog-2.1.6-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b7d336912853d7b77f9b2c24eeed6a5065d0a0cc0d3b6a5a45ad6d1d05fb8cd8"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_aarch64.whl", hash = "sha256:cca7741c0fcc765568350cb139e92b7f9f3c9a08c4f32591d18ab0a6ac9e71b6"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_armv7l.whl", hash = "sha256:25fb5240b195d17de949588628fdf93032ebf163524ef08933db0ea1f99bd685"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_i686.whl", hash = "sha256:be9be735f827820a06340dff2ddea1fb7234561fa5e6300a62fe7f54d40546a0"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0d19fb2441947b58fbf91336638c2b9f4cc98e05e1045404d7a4cb7cddc7a65"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:3becdb380d8916c873ad512f1701f8a92ce79ec6978ffde92919fd18d41da7fb"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_s390x.whl", hash = "sha256:ae67501c95606072aafa865b6ed47343ac6484472a2f95490ba151f6347acfc2"}, - {file = "watchdog-2.1.6-py3-none-manylinux2014_x86_64.whl", hash = "sha256:e0f30db709c939cabf64a6dc5babb276e6d823fd84464ab916f9b9ba5623ca15"}, - {file = "watchdog-2.1.6-py3-none-win32.whl", hash = "sha256:e02794ac791662a5eafc6ffeaf9bcc149035a0e48eb0a9d40a8feb4622605a3d"}, - {file = "watchdog-2.1.6-py3-none-win_amd64.whl", hash = "sha256:bd9ba4f332cf57b2c1f698be0728c020399ef3040577cde2939f2e045b39c1e5"}, - {file = "watchdog-2.1.6-py3-none-win_ia64.whl", hash = "sha256:a0f1c7edf116a12f7245be06120b1852275f9506a7d90227648b250755a03923"}, - {file = "watchdog-2.1.6.tar.gz", hash = "sha256:a36e75df6c767cbf46f61a91c70b3ba71811dfa0aca4a324d9407a06a8b7a2e7"}, -] -wrapt = [ - {file = "wrapt-1.13.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:e05e60ff3b2b0342153be4d1b597bbcfd8330890056b9619f4ad6b8d5c96a81a"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:85148f4225287b6a0665eef08a178c15097366d46b210574a658c1ff5b377489"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2dded5496e8f1592ec27079b28b6ad2a1ef0b9296d270f77b8e4a3a796cf6909"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e94b7d9deaa4cc7bac9198a58a7240aaf87fe56c6277ee25fa5b3aa1edebd229"}, - {file = "wrapt-1.13.3-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:498e6217523111d07cd67e87a791f5e9ee769f9241fcf8a379696e25806965af"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ec7e20258ecc5174029a0f391e1b948bf2906cd64c198a9b8b281b811cbc04de"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:87883690cae293541e08ba2da22cacaae0a092e0ed56bbba8d018cc486fbafbb"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f99c0489258086308aad4ae57da9e8ecf9e1f3f30fa35d5e170b4d4896554d80"}, - {file = "wrapt-1.13.3-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6a03d9917aee887690aa3f1747ce634e610f6db6f6b332b35c2dd89412912bca"}, - {file = "wrapt-1.13.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:936503cb0a6ed28dbfa87e8fcd0a56458822144e9d11a49ccee6d9a8adb2ac44"}, - {file = "wrapt-1.13.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f9c51d9af9abb899bd34ace878fbec8bf357b3194a10c4e8e0a25512826ef056"}, - {file = "wrapt-1.13.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:220a869982ea9023e163ba915077816ca439489de6d2c09089b219f4e11b6785"}, - {file = "wrapt-1.13.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0877fe981fd76b183711d767500e6b3111378ed2043c145e21816ee589d91096"}, - {file = "wrapt-1.13.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:43e69ffe47e3609a6aec0fe723001c60c65305784d964f5007d5b4fb1bc6bf33"}, - {file = "wrapt-1.13.3-cp310-cp310-win32.whl", hash = "sha256:78dea98c81915bbf510eb6a3c9c24915e4660302937b9ae05a0947164248020f"}, - {file = "wrapt-1.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:ea3e746e29d4000cd98d572f3ee2a6050a4f784bb536f4ac1f035987fc1ed83e"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8c73c1a2ec7c98d7eaded149f6d225a692caa1bd7b2401a14125446e9e90410d"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:086218a72ec7d986a3eddb7707c8c4526d677c7b35e355875a0fe2918b059179"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:e92d0d4fa68ea0c02d39f1e2f9cb5bc4b4a71e8c442207433d8db47ee79d7aa3"}, - {file = "wrapt-1.13.3-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:d4a5f6146cfa5c7ba0134249665acd322a70d1ea61732723c7d3e8cc0fa80755"}, - {file = "wrapt-1.13.3-cp35-cp35m-win32.whl", hash = "sha256:8aab36778fa9bba1a8f06a4919556f9f8c7b33102bd71b3ab307bb3fecb21851"}, - {file = "wrapt-1.13.3-cp35-cp35m-win_amd64.whl", hash = "sha256:944b180f61f5e36c0634d3202ba8509b986b5fbaf57db3e94df11abee244ba13"}, - {file = "wrapt-1.13.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2ebdde19cd3c8cdf8df3fc165bc7827334bc4e353465048b36f7deeae8ee0918"}, - {file = "wrapt-1.13.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:610f5f83dd1e0ad40254c306f4764fcdc846641f120c3cf424ff57a19d5f7ade"}, - {file = "wrapt-1.13.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5601f44a0f38fed36cc07db004f0eedeaadbdcec90e4e90509480e7e6060a5bc"}, - {file = "wrapt-1.13.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:e6906d6f48437dfd80464f7d7af1740eadc572b9f7a4301e7dd3d65db285cacf"}, - {file = "wrapt-1.13.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:766b32c762e07e26f50d8a3468e3b4228b3736c805018e4b0ec8cc01ecd88125"}, - {file = "wrapt-1.13.3-cp36-cp36m-win32.whl", hash = "sha256:5f223101f21cfd41deec8ce3889dc59f88a59b409db028c469c9b20cfeefbe36"}, - {file = "wrapt-1.13.3-cp36-cp36m-win_amd64.whl", hash = "sha256:f122ccd12fdc69628786d0c947bdd9cb2733be8f800d88b5a37c57f1f1d73c10"}, - {file = "wrapt-1.13.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:46f7f3af321a573fc0c3586612db4decb7eb37172af1bc6173d81f5b66c2e068"}, - {file = "wrapt-1.13.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:778fd096ee96890c10ce96187c76b3e99b2da44e08c9e24d5652f356873f6709"}, - {file = "wrapt-1.13.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0cb23d36ed03bf46b894cfec777eec754146d68429c30431c99ef28482b5c1df"}, - {file = "wrapt-1.13.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:96b81ae75591a795d8c90edc0bfaab44d3d41ffc1aae4d994c5aa21d9b8e19a2"}, - {file = "wrapt-1.13.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7dd215e4e8514004c8d810a73e342c536547038fb130205ec4bba9f5de35d45b"}, - {file = "wrapt-1.13.3-cp37-cp37m-win32.whl", hash = "sha256:47f0a183743e7f71f29e4e21574ad3fa95676136f45b91afcf83f6a050914829"}, - {file = "wrapt-1.13.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fd76c47f20984b43d93de9a82011bb6e5f8325df6c9ed4d8310029a55fa361ea"}, - {file = "wrapt-1.13.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b73d4b78807bd299b38e4598b8e7bd34ed55d480160d2e7fdaabd9931afa65f9"}, - {file = "wrapt-1.13.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ec9465dd69d5657b5d2fa6133b3e1e989ae27d29471a672416fd729b429eb554"}, - {file = "wrapt-1.13.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dd91006848eb55af2159375134d724032a2d1d13bcc6f81cd8d3ed9f2b8e846c"}, - {file = "wrapt-1.13.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ae9de71eb60940e58207f8e71fe113c639da42adb02fb2bcbcaccc1ccecd092b"}, - {file = "wrapt-1.13.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:51799ca950cfee9396a87f4a1240622ac38973b6df5ef7a41e7f0b98797099ce"}, - {file = "wrapt-1.13.3-cp38-cp38-win32.whl", hash = "sha256:4b9c458732450ec42578b5642ac53e312092acf8c0bfce140ada5ca1ac556f79"}, - {file = "wrapt-1.13.3-cp38-cp38-win_amd64.whl", hash = "sha256:7dde79d007cd6dfa65afe404766057c2409316135cb892be4b1c768e3f3a11cb"}, - {file = "wrapt-1.13.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:981da26722bebb9247a0601e2922cedf8bb7a600e89c852d063313102de6f2cb"}, - {file = "wrapt-1.13.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:705e2af1f7be4707e49ced9153f8d72131090e52be9278b5dbb1498c749a1e32"}, - {file = "wrapt-1.13.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:25b1b1d5df495d82be1c9d2fad408f7ce5ca8a38085e2da41bb63c914baadff7"}, - {file = "wrapt-1.13.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:77416e6b17926d953b5c666a3cb718d5945df63ecf922af0ee576206d7033b5e"}, - {file = "wrapt-1.13.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:865c0b50003616f05858b22174c40ffc27a38e67359fa1495605f96125f76640"}, - {file = "wrapt-1.13.3-cp39-cp39-win32.whl", hash = "sha256:0a017a667d1f7411816e4bf214646d0ad5b1da2c1ea13dec6c162736ff25a374"}, - {file = "wrapt-1.13.3-cp39-cp39-win_amd64.whl", hash = "sha256:81bd7c90d28a4b2e1df135bfbd7c23aee3050078ca6441bead44c42483f9ebfb"}, - {file = "wrapt-1.13.3.tar.gz", hash = "sha256:1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185"}, -] -zipp = [ - {file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"}, - {file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"}, -] +lock-version = "2.0" +python-versions = "^3.8" +content-hash = "453a4e84e8a40eb8cd55053522821addc6a29a45f47c70f663b002d057f63668" diff --git a/generator/pyproject.toml b/generator/pyproject.toml index bed780b..fe645b3 100644 --- a/generator/pyproject.toml +++ b/generator/pyproject.toml @@ -1,19 +1,26 @@ [tool.poetry] name = "generator" -version = "0.1.0" +version = "0.2.0" description = "Generator for Leonidas and Cloud Detection Docs" -authors = ["Nick Jones"] +authors = [ + "Nick Jones", + "Leo Tsaousis"] license = "MIT" [tool.poetry.dependencies] -python = "^3.7" -jinja2 = "^2.11.2" +python = "^3.8" +jinja2 = "^3.1.3" mkdocs = "^1.1.2" -mkdocs-material = "^5.2.1" -pyyaml = "^5.3.1" +mkdocs-material = "^9.5.29" +pyyaml = "^6.0.1" black = "^19.10b0" pylint = "^2.5.2" typer = "^0.2.1" +docker = "^6.0.1" +jinja2-ansible-filters = "^1.3.2" +pysigma = "^0.11.9" +pysigma-backend-elasticsearch = "^1.1.2" +requests = "< 2.32.0" [tool.poetry.dev-dependencies] diff --git a/generator/templates/aws/sigma.jinja2 b/generator/templates/aws/sigma.jinja2 index e395af4..403411c 100644 --- a/generator/templates/aws/sigma.jinja2 +++ b/generator/templates/aws/sigma.jinja2 @@ -12,10 +12,12 @@ detection: - eventSource: "{{ detection["sources"][0]["attributes"]["eventSource"] }}" events: - eventName: "{{ detection["sources"][0]["attributes"]["eventName"] }}" - condition: selection_source AND events + condition: selection_source and events level: {{ detection["level"] }} {% if mitre_ids %}tags: {% for id in mitre_ids %}- attack.{{ id }} {% endfor %}{% endif %} {% if references %}references:{% for reference in references %} - - {{ reference }}{% endfor %}{% endif %} \ No newline at end of file + - {{ reference }}{% endfor %}{% endif %} +{% if detection.falsepositives %}falsepositives:{% for fp in detection.falsepositives %} + - {{ fp }}{% endfor %}{% endif %} \ No newline at end of file diff --git a/generator/templates/kube-resources.jinja2 b/generator/templates/kube-resources.jinja2 new file mode 100644 index 0000000..dd8ecaa --- /dev/null +++ b/generator/templates/kube-resources.jinja2 @@ -0,0 +1,56 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: leonidas-deployment + namespace: {{ namespace }} +spec: + selector: + matchLabels: + app: leonidas + template: + metadata: + labels: + app: leonidas + spec: + serviceAccount: leonidas-sa + volumes: + - name: varlog + emptyDir: {} + containers: + - name: leonidas-container + image: {{ image_url }} + imagePullPolicy: Always + ports: + - containerPort: 5000 + name: flask-port + volumeMounts: + - name: varlog + mountPath: /var/log + - name: log-sidecar + image: busybox:1.28 + args: [/bin/sh, -c, 'tail -n+1 -F /var/log/leonidas-flask.log'] + volumeMounts: + - name: varlog + mountPath: /var/log + +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + namespace: {{ namespace }} + name: leonidas-sa +--- +kind: {% if is_namespaced %}RoleBinding{% else %}ClusterRoleBinding{% endif %} +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: leonidas-{% if is_namespaced %}role{% else %}clusterrole{% endif %}binding + {% if is_namespaced %}namespace: {{ namespace }}{% endif %} +subjects: +- kind: ServiceAccount + name: leonidas-sa + namespace: {{ namespace }} +roleRef: + kind: {% if is_namespaced %}Role{% else %}ClusterRole{% endif %} + name: leonidas-{% if is_namespaced %}role{% else %}clusterrole{% endif %} + apiGroup: "" +--- \ No newline at end of file diff --git a/generator/templates/kube_python_execution_function.jinja2 b/generator/templates/kube_python_execution_function.jinja2 new file mode 100644 index 0000000..9872974 --- /dev/null +++ b/generator/templates/kube_python_execution_function.jinja2 @@ -0,0 +1,98 @@ +import datetime +import json +import subprocess +from flask import request +from flask_restx import Resource, Namespace +from .api_base import api, app +from .utils import json_serial, KubeCredentials, FileParser +from string import Template +from shlex import quote +import os +import logging +from os.path import splitext, basename + +YAML_PATH = '/tmp/custom.yml' + +{% for case in cases %} +class {{ case['name']|title|replace(" ", "")|replace("-", "") }}(Resource): + """ + API Class for {{ case['name'] }} + """ + {% if case['takes_file'] %}@api.expect(FileParser.parser){% endif %} + @api.doc(params={ {% if case['input_arguments'] %}{% for arg, contents in case['input_arguments'].items() %} + '{{ arg }}': '{{ contents['description'] }}', {% endfor %}{% endif %} + 'token': 'JWT token of a serviceaccount to execute the test case as', + 'tls_cert': 'Base64 encoded TLS certificate of a user to execute the test case as. Needs tls_key', + 'tls_key': 'Base64 encoded TLS private key of a user to execute the test case as. Needs tls_cert' + } + ) + {% if case['takes_file'] %}def put(self):{% elif case['input_arguments'] %}def post(self):{% else %}def get(self):{% endif %} + """ + {{ case['description']|wordwrap|indent }} + """ + {% if case['input_arguments'] %}{% for arg, contents in case['input_arguments'].items() %}{{ arg }} = request.args.get("{{ arg }}") or {% if "str" in contents['type'] %}"{{ contents['value'] }}"{% else %}{{ contents['value'] }}{% endif %} + {% endfor %}{% endif %} + + {% if case['takes_file'] %}args = FileParser.parser.parse_args() + if args['custom_yaml']: + custom_yaml = args['custom_yaml'].read().decode('utf-8') + else: + custom_yaml = """{{ case["file_default_yaml"] }}""" + + with open(YAML_PATH,'w') as tmpyml: + tmpyml.write(custom_yaml) + {% endif %} + try: + # this "rendered" code is generated in generator/lib/definitions.py:_generate_kube_code() + # it is just shell command(s) - here we wrap it around python code that suprocess.run()'s it + # and we collect stdout,stderr,retcode to store in the "result" dict + + kubecreds = KubeCredentials(request) + kubecreds.validate_creds() + + t = Template({{ case["executors"]["leonidas_kube"]["rendered"] | escape_shell }}) + exec_code = t.substitute( + {% if case['input_arguments'] %}{% for arg, contents in case['input_arguments'].items() %}{{ arg }} = quote({{ arg }}), + {% endfor %}{% endif %} + ) + exec_code = kubecreds.pass_creds( + exec_code, + splitext(basename(__file__))[0], + __class__.__name__ + ) + + proc = subprocess.run(exec_code, shell=True, capture_output=True, timeout=30) + result = {} + result["shell"] = exec_code + result["stdout"] = proc.stdout.decode('utf-8') + result["stderr"] = proc.stderr.decode('utf-8') + result["exit_code"] = proc.returncode + + + except Exception as excpt: + result = excpt + finally: + kubecreds.cleanup_creds() + {% if case['takes_file'] %}os.remove(YAML_PATH){% endif %} + + event_dict = { + "request": { + "usecase": request.path, + "args": request.args, + "timestamp": datetime.datetime.now(tz=datetime.timezone.utc), + }, + "response": result + } + event_logger = logging.getLogger("events") + event_logger.info(json.dumps(event_dict, default=json_serial)) + return result +{% endfor %} + +ns = Namespace('{{ category }}', description='{{ category|replace('_', ' ')|title }}') + +{% for case in cases %} +ns.add_resource({{ case['name']|title|replace(" ", "")|replace("-", "") }}, '/{{ case['name']|replace(" ", "_")|replace("-", "")|lower }}'){% endfor %} +api.add_namespace(ns) + +if __name__ == "__main__": + app.run(debug=False) \ No newline at end of file diff --git a/generator/templates/kubernetes/sigma.jinja2 b/generator/templates/kubernetes/sigma.jinja2 new file mode 100644 index 0000000..8cdf8ca --- /dev/null +++ b/generator/templates/kubernetes/sigma.jinja2 @@ -0,0 +1,34 @@ +--- +title: {{ name }} +id: {{ detection.sigma_id }} +status: {{ detection.status }} +author: {{ author }} +date: {{ last_modified }} +description: | + {{ description | trim | indent(2) }} +logsource: + product: kubernetes + service: {{ detection.sources[0]["name"] }} +detection: + selection: + verb: {{ detection["sources"][0]["attributes"]["verb"] }} + {% if detection["sources"][0]["attributes"]["apiGroup"] %}apiGroup: {{ detection["sources"][0]["attributes"]["apiGroup"] }}{%- endif %} + resource: {{ detection["sources"][0]["attributes"]["resource"] }} + {% if detection["sources"][0]["attributes"]["subresource"] -%} + subresource: {{ detection["sources"][0]["attributes"]["subresource"] }}{%- endif -%} + {%- if detection["sources"][0]["attributes"]["namespace"] -%} + namespace: {{ detection["sources"][0]["attributes"]["namespace"] }}{%- endif -%} + {%- if detection["sources"][0]["attributes"]["capabilities"] -%} + capabilities: "{{ detection["sources"][0]["attributes"]["capabilities"] }}"{%- endif -%} + {%- if detection["sources"][0]["attributes"]["hostPath"] -%} + hostPath: "{{ detection["sources"][0]["attributes"]["hostPath"] }}"{%- endif %} + condition: selection +level: {{ detection["level"] }} +{% if mitre_ids %}tags: +{%- for id in mitre_ids %} +- attack.{{ id }} +{%- endfor %}{%- endif %} +{% if references %}references:{% for reference in references %} +- {{ reference }}{% endfor %}{% endif %} +{% if detection.falsepositives %}falsepositives:{% for fp in detection.falsepositives %} +- {{ fp }}{% endfor %}{% endif %} diff --git a/generator/templates/markdown-kubernetes.jinja2 b/generator/templates/markdown-kubernetes.jinja2 new file mode 100644 index 0000000..be7bdbc --- /dev/null +++ b/generator/templates/markdown-kubernetes.jinja2 @@ -0,0 +1,51 @@ +# {{ case['name'] }} + +| Platform | Author | Last Update | +| ---------------------- | -------------------- | --------------------------- | +| {{ case["platform"] }} | {{ case["author"] }} | {{ case["last_modified"] }} | + +{{ case['description'] | trim}} + +## MITRE IDs +{% for id in case["mitre_ids"] %} +* [{{ id }}](https://attack.mitre.org/techniques/{{ id }}/){% endfor %} + +## Scope + +This test case {% if case['clusterwide'] %}needs{% else %}does not need{% endif %} Cluster-wide permissions + +## Required Permissions + +```yaml +{{ case['permissions'] | to_nice_yaml }} +``` + +## Required Parameters +{% if case['input_arguments'] %} +| Name | Type | Description | Example Value | +| ---------- | --------------------- | ---------------------------- | ---------------------- | +{% for name, details in case['input_arguments'].items() %}| {{ name }} | {{ details['type'] }} | {{ details['description'] }} | {{ details['value'] }} | +{% endfor %}{% else %} +None{% endif %} +## Attacker Action + +```bash +{{ case['compiled_command'] }} +``` + + +## Detection Case + +### ELK query + +When logs are ingested into ELK, the following query can be used to identify relevant events. + +``` +{{ case['lucene_query'] }} +``` + +### Sigma Definition + +```yaml +{{ case["sigma"] }} +``` \ No newline at end of file diff --git a/jupyter/img/OF815.png b/jupyter/img/OF815.png new file mode 100644 index 0000000000000000000000000000000000000000..86eeaf447b49201a04542515b412967367cf2bfd GIT binary patch literal 150371 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
JLi|-i$h<`x0!O+yLSW+ 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 literal 0 HcmV?d00001 diff --git a/jupyter/lib/kubeclientlib.py b/jupyter/lib/kubeclientlib.py new file mode 100644 index 0000000..c71dfa9 --- /dev/null +++ b/jupyter/lib/kubeclientlib.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +import requests +from datetime import datetime + +class Client(object): + def __init__(self, url, sa_token=None): + self.url = url + self.sa_token = sa_token + self.execution_log = {} + # { + # timestamp: ["discovery/enumerate_pods", success], + # "duration": [50, 40, 45] + # } + + def run_case(self, path, args=None, verb="get"): + if args is None: + args = {} + case_url = self.url + path + # Decide request verb in a semi-assisted way, as the client can't tell from just the arguments passed + if ( args=={} or args is None ) and verb != "put": + args.update({"token":self.sa_token}) + r = requests.get(case_url, headers={"accept":"application/json"}, params=args) + else: + args.update({"token":self.sa_token}) + if verb=="put": + r = requests.put(case_url, headers={"accept":"application/json"}, params=args) + else: + r = requests.post(case_url, headers={"accept":"application/json"}, params=args) + + success = not bool(r.json()["exit_code"]) + self.execution_log.update( + { datetime.now() : [path,success] } + ) + return r.json() + diff --git a/jupyter/pyproject.toml b/jupyter/pyproject.toml index 8653189..cb28113 100644 --- a/jupyter/pyproject.toml +++ b/jupyter/pyproject.toml @@ -1,14 +1,17 @@ [tool.poetry] name = "leonidas-jupyter" -version = "0.1.0" +version = "0.2.0" description = "" -authors = ["Nick Jones "] +authors = [ + "Nick Jones ", + "Leo Tsaousis"] [tool.poetry.dependencies] python = "^3.10" requests = "^2.31.0" pandas = "^1.5.3" jupyterlab = "^3.5.2" +numpy = "1.26.4" [tool.poetry.dev-dependencies] diff --git a/jupyter/threat-actors/OF815.ipynb b/jupyter/threat-actors/OF815.ipynb new file mode 100644 index 0000000..72933fb --- /dev/null +++ b/jupyter/threat-actors/OF815.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "93ebc544", + "metadata": {}, + "source": [ + "# APT codename \"OF815\"\n", + "\n", + "*Simulation playbook for the fictitious threat actor \"OF815\" targeting Kubernetes clusters.*\n", + "\n", + "Attack Chain\n", + "1. [Initial Access - Leaked Kubeconfig](#1.-Initial-Access---Leaked-Kubeconfig)\n", + "2. [Discovery - List Own Permissions](#2.-Discovery---List-Own-Permissions)\n", + "3. [Discovery - Enumerate Pods](#3.-Discovery---Enumerate-Pods)\n", + "4. [Credential Access - List Secrets](#4.-Credential-Access---List-secrets)\n", + "5. [Execution - Exec Into Pod](#5.-Execution---Exec-Into-Pod)\n", + "6. [Impact - Remove Deployment](#6.-Impact---Delete-Deployment)\n", + "\n", + "![attack-chain](../img/OF815.png)\n" + ] + }, + { + "cell_type": "markdown", + "id": "83f53d24", + "metadata": {}, + "source": [ + "## 1. Initial Access - Leaked Kubeconfig\n", + "\n", + "```\n", + "MITRE ID: T1078.004 / MS-TA9003 \n", + "```\n", + "\n", + "The threat group discvoered a leaked Kubeconfig file on the internet such as the one below, that included the URL of cluster as well as valid ServiceAccount token:\n", + "\n", + "```yaml\n", + "kind: Config\n", + "apiVersion: v1\n", + "clusters:\n", + "- cluster:\n", + " server: https://12.168.77.179:8443\n", + " name: dharma\n", + "contexts:\n", + "- context:\n", + " name: lamppost\n", + " cluster: dharma\n", + " namespace: dharma-prod\n", + " user: lamppost-sa\n", + "users:\n", + "- name: lamppost-sa\n", + " user:\n", + " token: eyJhbGciOiJ...\n", + "current-context: lamppost\n", + "```\n", + "\n", + "To simulate this access, we'll instantiate a Leonidas `KubeClient` providing the leaked token to impersonate: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1abc29d5", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "module_path = os.path.abspath(os.path.join('..'))\n", + "if module_path not in sys.path:\n", + " sys.path.append(module_path)\n", + "from lib import kubeclientlib\n", + "\n", + "compromised_token = \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjJQNC1wOThvcTA0WXNtMFdmai1ocFRvYl81aWFVRFJBenFkTndVRFFCejgifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkaGFybWEtcHJvZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsYW1wcG9zdC1zYS1zZWNyZXQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGFtcHBvc3Qtc2EiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxYTU0NDQ2MS1lMGFmLTRlZmUtODNiYS0wZDA2NDA4YzJmMjciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGhhcm1hLXByb2Q6bGFtcHBvc3Qtc2EifQ.gW4er21RBDVJ0jUkgp7nEWNFwqGcvCLUT5p9Hk0z9I042ToOcN6CMn7ZR1FJ-XBnTwoaAQ2d0QdYNB3ZOXqcFZDQuqL1zPfa9DnjNFUY-VkqaEwhyXDf4I-e04ypGYM5Utj1nDxkc0KcBfMEk7XldgEE9q37TUcyLtAWVCDcU07QgRdb_P1ZsBbYSmca7NVL5QrZ-fI9aq2S2WbzwibqwyJEmMAgoaIcJCV8mgfhr_CdfMMSz36QgYP6k_cxuBYO4lRx__b5Qh2F1ftFqsBOaePHQK7acSN5Ly5cYvD1lCaJlH-LdX5pxwLfkoJnxuArlYtnw0PI3K4wz6diMG3M6w\"\n", + "client = kubeclientlib.Client(\"http://127.0.0.1:5000/\", compromised_token)" + ] + }, + { + "cell_type": "markdown", + "id": "1107c03e", + "metadata": {}, + "source": [ + "## 2. Discovery - List Own Permissions\n", + "\n", + "```\n", + "MITRE ID: T1069.003, T1087.004\n", + "```\n", + "\n", + "Once inside the cluster, the attacker enumerated the RBAC permissions assigned to the compromised serviceaccount" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16974aa6", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "perms = client.run_case(\"discovery/list_own_permissions\")\n", + "print(perms[\"stdout\"])" + ] + }, + { + "cell_type": "markdown", + "id": "b9170f0a", + "metadata": {}, + "source": [ + "## 3. Discovery - Enumerate Pods\n", + "\n", + "```\n", + "MITRE ID: T1580, T1613\n", + "```\n", + "\n", + "Observing the CRUD premissions over pods, the attacker lists the current workloads within the namespace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1abbd3fa", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "pods = client.run_case(\"discovery/enumerate_pods\")\n", + "print(pods[\"stdout\"])\n", + "\n", + "import re\n", + "matches = re.finditer(r\"\\n([a-zA-Z0-9\\-]+)\", pods[\"stdout\"], re.MULTILINE)\n", + "pods = [m.group().strip() for m in matches] " + ] + }, + { + "cell_type": "markdown", + "id": "fcea3c22", + "metadata": {}, + "source": [ + "## 4. Credential Access - List secrets \n", + "\n", + "Since the serviceaccount also had premissions to list Secrets within that namespace, the attacker proceeds to query the API server for Secrets..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56aebb0f", + "metadata": {}, + "outputs": [], + "source": [ + "secrets = client.run_case(\"credential_access/access_secrets_from_api_server\")\n", + "# print(secrets[\"stdout\"])" + ] + }, + { + "cell_type": "markdown", + "id": "f985b75a", + "metadata": {}, + "source": [ + "...which after some processing, include what appears to be application credentials:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2c9d66d", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import base64\n", + "js = json.loads(secrets[\"stdout\"])\n", + "for i in js[\"items\"]:\n", + " print(\"\\nSecret: \" + i[\"metadata\"][\"name\"])\n", + " for k,v in i[\"data\"].items():\n", + " data = base64.b64decode(v).decode('utf-8')\n", + " data = (data[:25] + '...') if len(data) > 25 else data\n", + " print(\"\\t%10s:%s\" % (k,data))\n" + ] + }, + { + "cell_type": "markdown", + "id": "f3bf3e17", + "metadata": {}, + "source": [ + "## 5. Execution - Exec Into Pod\n", + "\n", + "```\n", + "MITRE ID: T1609\n", + "```\n", + "\n", + "Using the credentials obtained the attacker executes a command within a pod to create a DB dump for data exfiltration" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c90ce80f", + "metadata": {}, + "outputs": [], + "source": [ + "# pods = ['hvac-controller', 'leonidas-deployment-848d4fccf-g9pbx', 'patient-db']\n", + "password = data\n", + "args = {\n", + " \"podname\":pods[2],\n", + " \"command\":\"mysqldump --password=\"+password+\" patients\"\n", + "}\n", + "execout = client.run_case(\"execution/exec_into_container\", args)\n", + "print(execout[\"stdout\"])" + ] + }, + { + "cell_type": "markdown", + "id": "175a0ba1", + "metadata": {}, + "source": [ + "## 6. Impact - Delete Deployment\n", + "\n", + "```\n", + "MITRE ID: T1498\n", + "```\n", + "\n", + "Finally, the attacker abuses their access to cause disruption, by attempting to remove a seemingly critical deployment. However this attempt fails as they do not have sufficient permissions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95745037", + "metadata": {}, + "outputs": [], + "source": [ + "# pods = ['hvac-controller', 'leonidas-deployment-848d4fccf-g9pbx', 'patient-db']\n", + "args = {\"deploymentname\":\"hvac-controller\"}\n", + "delete = client.run_case(\"impact/delete_deployment\", args)\n", + "print(delete[\"stdout\"])\n", + "print(delete[\"stderr\"])" + ] + }, + { + "cell_type": "markdown", + "id": "058712af", + "metadata": {}, + "source": [ + "## Execution Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0cc2b0f8", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas \n", + "pandas.DataFrame(client.execution_log).rename(index={0: \"Test Case\", 1: \"Succeeded\"}).transpose()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/jupyter/threat-actors/demo-envs/dharma.yml b/jupyter/threat-actors/demo-envs/dharma.yml new file mode 100644 index 0000000..0d3a6db --- /dev/null +++ b/jupyter/threat-actors/demo-envs/dharma.yml @@ -0,0 +1,108 @@ +kind: Namespace +apiVersion: v1 +metadata: + name: dharma-prod +--- +kind: CertificateSigningRequest +apiVersion: certificates.k8s.io/v1 +metadata: + name: jlocke-csr + namespace: dharma-prod +spec: + groups: + - system:authenticated + signerName: kubernetes.io/kube-apiserver-client + request: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1ZqQ0NBVDRDQVFBd0VURVBNQTBHQTFVRUF3d0dhbXh2WTJ0bE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRgpBQU9DQVE4QU1JSUJDZ0tDQVFFQS9QcW1PQTRaS1hqUnNESWpQOWZmK2JtcnhEOFpJK1pKdDkwRk5TcDg5R0F3CnRXRVBvanFkazVFWGFpaWsxcWRnSVpTUXlxR2NscThSd2VjY2pwOTNTQXJLajBLNHF3UlZ3aDNGT3VUWWlEV1UKckVkekZMcmJheUQ1dlJ3OXlGbHJBMXNETmVPS3cyY0lPUHBacGUwbHdOdGxjcTVXNlZGMlZhamNVUEJpUG1yZwpkU2NLeGlXQ3Y5L3dwOVRWOVJvR0N4WFlPWEZlN1NlaHhiWGgwcC92cDlIUmo3UDB4UWpqL0hCYUZZc004dDBICkRXZlUvZDErcVQrOEFXa1hIbjRXdUVESDBUU1YvbmZqSENOaWhuQi9yb2ltUFhrd1lXSHduSG9qeHZWNkdhRVYKeHRHSEtGdzBFdmRSRXB6UGJ6MjRBS1VpYXpySjkrakhrV3M1dHNOVW1RSURBUUFCb0FBd0RRWUpLb1pJaHZjTgpBUUVMQlFBRGdnRUJBQ1J6azVNci9RVjczUFFqekVoREtIbU5lODZiRVNLM3JCd0RNZzhMdzZ0SE13QzNqT2w1ClFPRVp0WVZEU1pOM2NLWlNPTFd6bzJsVzIxT3U0bmNHSWVHQ05sVnFmazhPaU53S09YZit5bFRXdktzV2t6K2YKaUo1TTBSNFdnbm1lS2p2UnlGOUI3UndBWThHVGtRNjlOd1ZnTFVIMjZBUzcyUnVCK25Ka2xrVkJ1N0d1UHhEQQpPWnpXYzlvMy8wZ1dTUjRWM0d4RFFrdHpORCtrNXB5VXBMdjVQVnhrOXllMFY5cmRnUjRNQ3NuWXdPYW5kaFpaCnJuMEVNaFI0UFA0cHRKcko3cy9ETUZLaXllNDhCVVBBZTNqa3dVRFRpTWEzdVVDUVQzcHQrR1RTZnJZSzBndVgKWjlvRWtBQk5GYjhCdmUxNTBNR1MwVnh1d3FUdU0rdUJyVlU9Ci0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQo= + usages: + - digital signature + - key encipherment + - client auth +--- +kind: ServiceAccount +apiVersion: v1 +metadata: + name: lamppost-sa + namespace: dharma-prod +--- +apiVersion: v1 +kind: Secret +metadata: + namespace: dharma-prod + name: lamppost-sa-secret + annotations: + kubernetes.io/service-account.name: lamppost-sa +type: kubernetes.io/service-account-token +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + namespace: dharma-prod + name: jlocke-role +rules: + - apiGroups: [""] + resources: ["pods","pods/exec", "secrets"] + verbs: ["get", "list", "create", "update", "delete", "exec", "watch", "patch", "edit"] +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + namespace: dharma-prod + name: lamppost-rb +subjects: + - kind: ServiceAccount + name: lamppost-sa + apiGroup: "" +roleRef: + kind: Role + name: jlocke-role + apiGroup: "" +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + namespace: dharma-prod + name: jlocke-rb +subjects: + - kind: User + name: jlocke + apiGroup: "" +roleRef: + kind: Role + name: jlocke-role + apiGroup: "" +--- +kind: Secret +apiVersion: v1 +metadata: + name: patient-db-creds + namespace: dharma-prod +data: + root-password: VkFMM05aMzc3MQ== +--- +kind: Pod +apiVersion: v1 +metadata: + namespace: dharma-prod + name: patient-db +spec: + containers: + - image: mysql:5.6 + name: mysql + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: patient-db-creds + key: root-password +--- +kind: Pod +apiVersion: v1 +metadata: + namespace: dharma-prod + name: hvac-controller +spec: + containers: + - image: library/gcc + name: libc + command: ["/bin/sh", "-c", "sleep infinity"] +--- diff --git a/leo/pyproject.toml b/leo/pyproject.toml index 5c53ea4..4688267 100644 --- a/leo/pyproject.toml +++ b/leo/pyproject.toml @@ -1,8 +1,10 @@ [tool.poetry] name = "leo" -version = "0.1.0" +version = "0.2.0" description = "" -authors = ["Nick Jones "] +authors = [ + "Nick Jones ", + "Leo Tsaousis"] [tool.poetry.dependencies] python = "^3.7" diff --git a/output/docs/index.md b/output/docs/index.md index 0f3f71a..b27f56c 100644 --- a/output/docs/index.md +++ b/output/docs/index.md @@ -1,5 +1,5 @@ # Leonidas Attack Detection Documentation -This documentation outlines a wide range of attacker TTPs in the cloud, currently focused on AWS. It accompanies Leonidas, a tool for automating the simulation of attacks against cloud environments to support development of attack detection capabilities. +This documentation outlines a wide range of attacker TTPs in the cloud, currently focused on AWS and Kubernetes. It accompanies Leonidas, a tool for automating the simulation of attacks against cloud environments to support development of attack detection capabilities. Pick a category from the left to get started. \ No newline at end of file diff --git a/output/leonidas/api/api_base.py b/output/leonidas/api/api_base.py index 7552ce5..2a33261 100644 --- a/output/leonidas/api/api_base.py +++ b/output/leonidas/api/api_base.py @@ -1,12 +1,64 @@ +import logging.config + +import click from flask import Flask from flask_restx import Api + from .utils import Config +# Configure logger for events, to go into stdout for accessing through primary container (easy on kubectl logs) +# separating them from Flask console output (root logger) which go to a file, to be picked up by the sidecar container +# - This does not affect AWS Python code, Jinja template does not use Python logging but just print() +try: + logging.config.dictConfig( + { + "version": 1, + "formatters": { + "eventFmt":{ + "format":"%(message)s" + } + }, + "handlers": { + "consoleHandler":{ + "class": "logging.StreamHandler", + "formatter": "eventFmt", + }, + "fileHandler":{ + "class": "logging.FileHandler", + "filename": "/var/log/leonidas-flask.log", + } + }, + "root": {"level": "INFO", "handlers": ["fileHandler"]}, + + "loggers": { + "events": { + "level": "INFO", + "handlers": ["consoleHandler"], + "propagate": False, + } + }, + } + ) +except: + pass + +def secho(text, file=None, nl=None, err=None, color=None, **styles): + pass + +def echo(text, file=None, nl=None, err=None, color=None, **styles): + pass + +click.echo = echo +click.secho = secho +# This needed to hide Flask's startup message and keep stdout clean from messages +# that aren't events, and therefore jq-friendly +# https://stackoverflow.com/questions/14888799/disable-console-messages-in-flask-server + app = Flask(__name__) app.config.from_object(Config) api = Api( app, - version="1.0", + version="2.0", title="Leonidas", - description="An API for executing attacker actions within AWS", + description="An API for executing attacker actions within AWS and Kubernetes", ) diff --git a/output/leonidas/api/utils.py b/output/leonidas/api/utils.py index cb54e76..424440f 100644 --- a/output/leonidas/api/utils.py +++ b/output/leonidas/api/utils.py @@ -1,8 +1,17 @@ from datetime import date, datetime +import base64 +import enum import json +import os +import re +import subprocess import traceback + import boto3 +import jinja2 +import werkzeug +from flask_restx import reqparse class JSONEncoder(json.JSONEncoder): """ @@ -124,3 +133,100 @@ def get_client_accesskey(service, access_key_id, secret_access_key, region): aws_secret_access_key=secret_access_key, region_name=region ) + +class ID_TYPE(enum.Enum): + ID_LEONIDAS = 0 + ID_SA = 1 + ID_USER = 2 + +class KubeCredentials: + """Class with utilities related to the processing of Kubernetes credentials supplied by the user""" + + def __init__(self, request): + self.CUSTOM_KUBECONFIG_PATH = "/tmp/custom-kubeconfig" + self.identity_to_use = ID_TYPE.ID_LEONIDAS + + self.token = request.args.get("token") + self.tls_cert = request.args.get("tls_cert") + self.tls_key = request.args.get("tls_key") + + self.env = jinja2.Environment( + loader=jinja2.FileSystemLoader("api"), + ) + + def validate_creds(self): + """ + Validates any Kubernetes credentials passed. + Decides the Identity that should be used. + Raises Exceptions if logic errors are found. + """ + if not any([self.token, self.tls_cert, self.tls_key]): # no cred passed : Leonidas ID + self.identity_to_use = ID_TYPE.ID_LEONIDAS + return + elif self.token: + if self.tls_cert or self.tls_key: # token & (cert | key) : Error + raise TypeError('Can only assume identity of service account or user, not both') + else: # just token : SA ID + # JWT input field validation + if not re.findall(r'(^eyJ[\w-]+\.eyJ[\w-]+\.[\w-]+$)',self.token): + raise ValueError('Token provided in unexpected format') + self.identity_to_use = ID_TYPE.ID_SA + return + else: + if (bool(self.tls_cert) != bool(self.tls_key)): # no token & (cert ^ key) : Error + raise ValueError('Need both tls_cert and tls_key to assume user identity') + else: # no token & (cert & token) : User ID + self.identity_to_use = ID_TYPE.ID_USER + + + def pass_creds(self, exec_code, phase, case): + """ + Configures a temp kubeconfig & any custom credentials prior to kubectl execution, if a SA or User identity is assumed. + Then wraps kubectl with a --kubeconfig pointing to the temp file for execution. + """ + if self.identity_to_use == ID_TYPE.ID_LEONIDAS: # NOOP + return exec_code + else: + kubeconfig_tpl = self.env.get_template("kubeconfig.jinja2") + server="https://{}:{}".format( + os.environ["KUBERNETES_SERVICE_HOST"], + os.environ["KUBERNETES_SERVICE_PORT"] + ) + + if self.identity_to_use == ID_TYPE.ID_SA: + kubeconfig = kubeconfig_tpl.render(server=server, token="token: "+self.token ) + + elif self.identity_to_use == ID_TYPE.ID_USER: + tmpname = (phase+'_'+case).lower() + self.tmpcert, self.tmpkey = '/tmp/'+tmpname+'.crt' , '/tmp/'+tmpname+'.key' + with open(self.tmpcert,'w') as c, open(self.tmpkey,'w') as k: + c.write(base64.b64decode(self.tls_cert).decode('utf-8')) + k.write(base64.b64decode(self.tls_key).decode('utf-8')) + kubeconfig = kubeconfig_tpl.render( + server=server, + cert="client-certificate: "+self.tmpcert, + key="client-key: "+self.tmpkey + ) + + with open(self.CUSTOM_KUBECONFIG_PATH, "w") as f: + f.write(kubeconfig) + return exec_code.replace('kubectl','kubectl --kubeconfig '+self.CUSTOM_KUBECONFIG_PATH) + + + def cleanup_creds(self): + """ + Removes any test case credentials from the container's filesystem as well as the temp kubeconfig (reverting to in-cluster configuration) + """ + self.tls_cert = self.tls_key = self.token = None + if not self.identity_to_use == ID_TYPE.ID_LEONIDAS: + os.remove(self.CUSTOM_KUBECONFIG_PATH) + if self.identity_to_use == ID_TYPE.ID_USER: + os.remove(self.tmpcert), os.remove(self.tmpkey) + + +class FileParser: + parser = reqparse.RequestParser() + parser.add_argument('custom_yaml', + type=werkzeug.datastructures.FileStorage, + location='files', + help='YAML manifest') diff --git a/output/leonidas/pyproject.toml b/output/leonidas/pyproject.toml index 5891f4d..df9d3ef 100644 --- a/output/leonidas/pyproject.toml +++ b/output/leonidas/pyproject.toml @@ -1,12 +1,14 @@ [tool.poetry] name = "leonidas" -version = "0.1.0" +version = "0.2.0" description = "Leonidas Attacker Action Executor" -authors = ["Nick Jones "] +authors = [ + "Nick Jones ", + "Leo Tsaousis"] license = "MIT" [tool.poetry.dependencies] -python = "^3.7" +python = "^3.8" flask = "^2.2.2" flask_restx = "^1.0.5" boto3 = "^1.26.60" diff --git a/output/mkdocs.yml b/output/mkdocs.yml index e080e31..ba03a2f 100644 --- a/output/mkdocs.yml +++ b/output/mkdocs.yml @@ -1,7 +1,7 @@ site_name: Leonidas Test Case Documentation site_url: http://detectioninthe.cloud site_description: Documentation on the cloud attack detection test cases defined as part of Leonidas -copyright: Copyright 2020 F-Secure +copyright: Copyright 2024 WithSecure Consulting theme: name: material icon: @@ -13,6 +13,6 @@ markdown_extensions: extra: social: - icon: fontawesome/brands/github-alt - link: https://github.com/fsecurelabs - - icon: fontawesome/brands/twitter - link: https://twitter.com/fsecurelabs \ No newline at end of file + link: https://github.com/WithSecureLabs + - icon: fontawesome/brands/x-twitter + link: https://x.com/withconsulting \ No newline at end of file diff --git a/sigma-pipeline-kubernetes-to-elk.yml b/sigma-pipeline-kubernetes-to-elk.yml new file mode 100644 index 0000000..27dccff --- /dev/null +++ b/sigma-pipeline-kubernetes-to-elk.yml @@ -0,0 +1,69 @@ +name: Mapping of Kubernetes test cases for ELK's default Kubernetes integration +priority: 30 +transformations: + +# Step 1 - checks for performance + +- id: index_condition + type: add_condition + # only search upon Kubernetes audit logs + conditions: + kubernetes.audit.kind: Event + # only transform fields if this is a Kubernetes rule + rule_conditions: + - type: logsource + product: kubernetes + +# Step 2 - the transformations + + +# Map simplified Sigma fields to the names ELK assigns them +- id: field_mapping + type: field_name_mapping + mapping: + verb: + - kubernetes.audit.verb + apiGroup: + - kubernetes.audit.objectRef.apiGroup + resource: + - kubernetes.audit.objectRef.resource + subresource: + - kubernetes.audit.objectRef.subresource + namespace: + - kubernetes.audit.objectRef.namespace + capabilities: + - kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add + hostPath: + - kubernetes.audit.requestObject.spec.volumes.hostPath + +# If apiGroup is "" OR omitted, then drop from query, as the ELK Kubernetes integration doesn't set this event field when apiGroup is the default +- id: drop_default_apigroup + type: drop_detection_item + field_name_conditions: + - type: include_fields + fields: + - apiGroup + - kubernetes.audit.objectRef.apiGroup + detection_item_conditions: + - type: match_string + cond: any + pattern: "^$" + +# If subresource is "" OR omitted, then drop from query, as the ELK Kubernetes integration doesn't set this event field for resource-only endpoints +- id: drop_empty_subresource + type: drop_detection_item + field_name_conditions: + - type: include_fields + fields: + - subresource + - kubernetes.audit.objectRef.subresource + detection_item_conditions: + - type: match_string + cond: any + pattern: "^$" + + + + + + \ No newline at end of file From 22790b524740f65ad5a4a2ed8f8d9cf654e2a3ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 17:08:54 +0000 Subject: [PATCH 2/2] Bump tqdm from 4.46.1 to 4.66.3 in /generator Bumps [tqdm](https://github.com/tqdm/tqdm) from 4.46.1 to 4.66.3. - [Release notes](https://github.com/tqdm/tqdm/releases) - [Commits](https://github.com/tqdm/tqdm/compare/v4.46.1...v4.66.3) --- updated-dependencies: - dependency-name: tqdm dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- generator/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/requirements.txt b/generator/requirements.txt index c4c6d5f..ea3cea2 100644 --- a/generator/requirements.txt +++ b/generator/requirements.txt @@ -27,7 +27,7 @@ regex==2020.5.14 six==1.15.0 toml==0.10.1 tornado==6.4.1 -tqdm==4.46.1; python_version > "2.7" +tqdm==4.66.3; python_version > "2.7" typed-ast==1.4.1 typer==0.2.1 wrapt==1.12.1