diff --git a/caracara/client.py b/caracara/client.py index 602b48d..d73433f 100644 --- a/caracara/client.py +++ b/caracara/client.py @@ -33,6 +33,7 @@ PreventionPoliciesApiModule, ResponsePoliciesApiModule, RTRApiModule, + UsersApiModule, MODULE_FILTER_ATTRIBUTES, ) @@ -161,6 +162,8 @@ def __init__( # pylint: disable=R0913,R0914,R0915 self.response_policies = ResponsePoliciesApiModule(self.api_authentication) self.logger.debug("Setting up the RTR module") self.rtr = RTRApiModule(self.api_authentication) + self.logger.debug("Setting up the Users module") + self.users = UsersApiModule(self.api_authentication) self.logger.debug("Configuring FQL filters") # Pre-configure the FQL modules for faster instantiation later diff --git a/caracara/common/batching.py b/caracara/common/batching.py index 5afd587..8d7e699 100644 --- a/caracara/common/batching.py +++ b/caracara/common/batching.py @@ -105,6 +105,8 @@ def worker( resources_dict[resource['device_id']] = resource elif 'child_cid' in resource: resources_dict[resource['child_cid']] = resource + elif 'uuid' in resource: + resources_dict[resource['uuid']] = resource else: raise Exception("No ID field to build the dictionary from") diff --git a/caracara/common/module.py b/caracara/common/module.py index 0be5914..57d9c9e 100644 --- a/caracara/common/module.py +++ b/caracara/common/module.py @@ -31,7 +31,7 @@ def help(self) -> str: def __init__(self, api_authentication: OAuth2): """Configure a Caracara API module with a FalconPy OAuth2 module.""" class_name = self.__class__.__name__ - self.logger = logging.getLogger(class_name) + self.logger = logging.getLogger(f"caracara.modules.{class_name}") self.logger.debug("Initialising API module: %s", class_name) self.api_authentication = api_authentication diff --git a/caracara/common/pagination.py b/caracara/common/pagination.py index 7165d0a..417e780 100644 --- a/caracara/common/pagination.py +++ b/caracara/common/pagination.py @@ -18,7 +18,7 @@ code file contains the required code to pull this data down as quickly as possible. -Four types of paginator are in use: +Five types of paginator are in use: Style 1 (Numerical Offset) Implementation function: all_pages_numbered_offset() @@ -74,6 +74,18 @@ this will be built. See the "Deep Pagination Leveraging Markers (Timestamp)" section here: https://falconpy.io/Usage/Response-Handling.html + + +Style 5 (Generic Parallelised One-by-One Call) +Some APIs, such as the User Management ones, include functions that accept +only one parameter at a time (e.g., a single ID rather than a list of IDs). +These APIs could be parallelised within individual Caracara modules / functions, +but instead a generic implementation is provided here. + +Given that there are different types of IDs within the API (CIDs, AIDs, UUIDs, etc.), +this function takes a parameter name / parameter value list pair. +Param Name = the name of the kwarg that should be swapped out in each call +Value List = a list of strings to be iterated over """ import concurrent.futures import logging @@ -280,3 +292,71 @@ def all_pages_token_offset( logger.debug(item_ids) return item_ids + + +def _generic_parallel_list_execution_worker( + func: Callable[[Dict[str, Dict]], List[Dict] or List[str]] or partial, + logger: logging.Logger, + param_name: str, + param_value: str, +): + thread_name = current_thread().name + if isinstance(func, partial): + logger.info( + "%s | Batch worker started with partial function: %s", + thread_name, func.func.__name__, + ) + else: + logger.info( + "%s | Batch worker started with function: %s", + thread_name, func.__name__, + ) + + response = func(**{param_name: param_value})['body'] + logger.debug("%s | %s", thread_name, response) + resources = response.get('resources', []) + logger.info("%s | Retrieved %d resources", thread_name, len(resources)) + + return resources + + +def generic_parallel_list_execution( + func: Callable[[Dict[str, Dict]], List[Dict] or List[str]] or partial, + logger: logging.Logger, + param_name: str, + value_list: List[str], +): + """Call a function many times in a thread pool based on a list of kwarg values. + + This is what is described above as Pagination Style 5. A function (or partial) + should be provided, along with a param_name (e.g., id, cid, uuid, etc.) and + a list of strings to be iterated over, each of which will be assigned in turn to + the param named in the previous parameter. + """ + logger = logger.getChild(__name__) + if isinstance(func, partial): + logger.info( + "Pagination Style 5: Repeatedly executing the partial function %s", + func.func.__name__, + ) + else: + logger.info( + "Pagination Style 2: Grabbing all pages from the function %s", + func.__name__, + ) + + all_resources = [] + threads = batch_data_pull_threads() + + with concurrent.futures.ThreadPoolExecutor(max_workers=threads) as executor: + partial_worker = partial(_generic_parallel_list_execution_worker, func, logger, param_name) + completed = executor.map( + partial_worker, + value_list, + ) + + for complete in completed: + logger.debug("Completed a function execution against one item") + all_resources.extend(complete) + + return all_resources diff --git a/caracara/modules/__init__.py b/caracara/modules/__init__.py index d0bd595..9a236e7 100644 --- a/caracara/modules/__init__.py +++ b/caracara/modules/__init__.py @@ -1,7 +1,8 @@ """ -Falcon Host module. +Caracara Modules Package Initialisation. -Exposes functions to get host data and perform actions on hosts, such as network containment. +Proides pipework to link together the various modules within Caracara and expose them to +the Client object at setup. """ __all__ = [ 'CustomIoaApiModule', @@ -10,6 +11,7 @@ 'PreventionPoliciesApiModule', 'ResponsePoliciesApiModule', 'RTRApiModule', + 'UsersApiModule', 'MODULE_FILTER_ATTRIBUTES', ] @@ -25,10 +27,15 @@ FILTER_ATTRIBUTES as rtr_filter_attributes, RTRApiModule, ) +from caracara.modules.users import ( + FILTER_ATTRIBUTES as users_filter_attributes, + UsersApiModule, +) # Build up a list with all filter attributes from the includes modules. # This makes makes for much easier importing when setting up Falcon Filters. MODULE_FILTER_ATTRIBUTES = [ *hosts_filter_attributes, *rtr_filter_attributes, + *users_filter_attributes, ] diff --git a/caracara/modules/users/__init__.py b/caracara/modules/users/__init__.py new file mode 100644 index 0000000..d1657eb --- /dev/null +++ b/caracara/modules/users/__init__.py @@ -0,0 +1,7 @@ +"""Caracara User Management module.""" +__all__ = [ + 'FILTER_ATTRIBUTES', + 'UsersApiModule', +] +from caracara.modules.users.users import UsersApiModule +from caracara.modules.users.users_filters import FILTER_ATTRIBUTES diff --git a/caracara/modules/users/users.py b/caracara/modules/users/users.py new file mode 100644 index 0000000..a5232be --- /dev/null +++ b/caracara/modules/users/users.py @@ -0,0 +1,126 @@ +"""Falcon Users API.""" +from functools import partial +from typing import Dict, List + +from falconpy import ( + OAuth2, + UserManagement, +) + +from caracara.common.batching import batch_get_data +from caracara.common.module import FalconApiModule +from caracara.common.pagination import ( + all_pages_numbered_offset_parallel, + generic_parallel_list_execution, +) +from caracara.filters import FalconFilter +from caracara.filters.decorators import filter_string + + +class UsersApiModule(FalconApiModule): + """ + Users API module. + + This module provides the logic to interact with the Falcon User Management + APIs. With the functions provided herein, one can list and create users, and + assign access roles. + """ + + name = "CrowdStrike User Management API Module" + help = "Describe, create, delete and edit users in a Falcon tenant" + + def __init__(self, api_authentication: OAuth2): + """Construct an instance of the UsersApiModule class.""" + super().__init__(api_authentication) + self.logger.debug("Configuring the FalconPy User Management API") + self.user_management_api = UserManagement(auth_object=self.api_authentication) + + @filter_string + def get_user_uuids(self, filters: FalconFilter or str = None) -> List[str]: + """Get a list of IDs of users (UUIDs) configured in the Falcon tenant.""" + self.logger.info("Obtaining a list of all users in the Falcon tenant") + + query_users_func = partial(self.user_management_api.query_users, filter=filters) + user_uuids: List[str] = all_pages_numbered_offset_parallel( + query_users_func, + self.logger, + 500, + ) + return user_uuids + + def get_user_data(self, user_uuids: List[str]) -> Dict[str, Dict]: + """Fetch a dictionary of data for each of the User IDs (UUIDs) passed into the function.""" + self.logger.info("Obtaining data for the %d User IDs provided", len(user_uuids)) + + user_data: Dict[str, Dict] = batch_get_data( + user_uuids, + self.user_management_api.retrieve_users, + ) + return user_data + + @filter_string + def describe_users(self, filters: FalconFilter or str = None) -> Dict[str, Dict]: + """Describe the users in a Falcon tenant.""" + self.logger.info("Describing users") + + user_uuids = self.get_user_uuids(filters=filters) + user_data = self.get_user_data(user_uuids) + user_roles = self.get_assigned_user_roles(user_uuids) + + # Set up an empty set to contain all roles assigned to each user + for user_data_dict in user_data.values(): + user_data_dict['roles'] = set() + + # Iterate over all roles in the CID and add them to each user's role set + for user_role in user_roles: + if user_role['uuid'] in user_data: + user_data[user_role['uuid']]['roles'].add(user_role['role_id']) + + # Convert the sets to sorted list objects so that they can be JSON serialised + for user_data_dict in user_data.values(): + user_data_dict['roles'] = sorted(list(user_data_dict['roles'])) + + return user_data + + def get_available_role_ids(self) -> List[str]: + """Obtain a list of role IDs enabled on the Falcon tenant.""" + self.logger.info("Fetching a list of role IDs") + + # Endpoint does not support offsets, so we do not need to parallelise here + role_ids: List[str] = self.user_management_api.get_available_role_ids()['body']['resources'] + return role_ids + + def get_role_information(self, role_ids: List[str]) -> Dict[str, Dict]: + """Fetch a dictionary describing each of the Role IDs passed into the function.""" + self.logger.info("Getting information on the %d role IDs provided", len(role_ids)) + + role_info: Dict[str, Dict] = batch_get_data( + role_ids, + self.user_management_api.get_roles_mssp, + ) + return role_info + + def describe_available_roles(self) -> Dict[str, Dict]: + """Describe the roles that are available within the current Falcon tenant.""" + self.logger.info("Describing available roles") + + role_ids = self.get_available_role_ids() + role_info = self.get_role_information(role_ids) + return role_info + + def get_assigned_user_roles(self, user_uuids: List[str]) -> Dict[str, Dict]: + """Retrieve a list of roles assigned to a list of User UUIDs.""" + self.logger.info("Retrieving roles for %d User IDs", len(user_uuids)) + + get_user_grants_func = partial( + self.user_management_api.get_user_grants, + direct_only=False, + sort="cid", + ) + user_roles = generic_parallel_list_execution( + get_user_grants_func, + logger=self.logger, + param_name="user_uuid", + value_list=user_uuids, + ) + return user_roles diff --git a/caracara/modules/users/users_filters.py b/caracara/modules/users/users_filters.py new file mode 100644 index 0000000..cacd8bb --- /dev/null +++ b/caracara/modules/users/users_filters.py @@ -0,0 +1,76 @@ +"""User Management-Specific FQL Filters.""" +from caracara.filters.fql import FalconFilterAttribute + + +class UsersAssignedCIDsFilterAttribute(FalconFilterAttribute): + """Filter by CIDs assigned to a user.""" + + name = "AssignedCIDs" + fql = "assigned_cids" + + def example(self) -> str: + """Show filter example.""" + return ( + "This filter accepts a CID that the user should be assigned to." + ) + + +class UsersCIDFilterAttribute(FalconFilterAttribute): + """Filter by a user's home CID.""" + + name = "CID" + fql = "cid" + + def example(self) -> str: + """Show filter example.""" + return ( + "This filter accepts a CID that would represent the user's home CID." + ) + + +class UsersFirstNameFilterAttribute(FalconFilterAttribute): + """Filter by a user's first name.""" + + name = "FirstName" + fql = "first_name" + + def example(self) -> str: + """Show filter example.""" + return ( + "This filter accepts a user's first name, such as John." + ) + + +class UsersLastNameFilterAttribute(FalconFilterAttribute): + """Filter by a user's last name.""" + + name = "LastName" + fql = "last_name" + + def example(self) -> str: + """Show filter example.""" + return ( + "This filter accepts a user's last name, such as Smith." + ) + + +class UsersNameFilterAttribute(FalconFilterAttribute): + """Filter by a user's name.""" + + name = "Name" + fql = "name" + + def example(self) -> str: + """Show filter example.""" + return ( + "This filter accepts a user's name, such as John Smith." + ) + + +FILTER_ATTRIBUTES = [ + UsersAssignedCIDsFilterAttribute, + UsersCIDFilterAttribute, + UsersFirstNameFilterAttribute, + UsersLastNameFilterAttribute, + UsersNameFilterAttribute, +] diff --git a/examples/response_policies/create_response_policy.py b/examples/response_policies/create_response_policy.py index 0fd5481..ee811ea 100755 --- a/examples/response_policies/create_response_policy.py +++ b/examples/response_policies/create_response_policy.py @@ -7,6 +7,8 @@ This example will create a Windows response policy based on the included template. You can use this code sample to customise the policy. """ +import logging + from caracara import Client from examples.common import caracara_example, pretty_print @@ -16,9 +18,10 @@ def create_response_policy(**kwargs): """Create a new Windows response policy with everything enabled.""" client: Client = kwargs['client'] + logger: logging.Logger = kwargs['logger'] response_policy = client.response_policies.new_policy("Windows") - pretty_print(response_policy.flat_dump()) + logger.info(pretty_print(response_policy.flat_dump())) if __name__ == "__main__": diff --git a/examples/response_policies/describe_response_policies.py b/examples/response_policies/describe_response_policies.py index 60e41cd..0f88f96 100755 --- a/examples/response_policies/describe_response_policies.py +++ b/examples/response_policies/describe_response_policies.py @@ -37,8 +37,8 @@ def describe_response_policies(**kwargs): if policy.description: print(policy.description) - pretty_print(policy.dump()) - pretty_print(policy.flat_dump()) + logger.info(pretty_print(policy.dump())) + logger.info(pretty_print(policy.flat_dump())) i += 1 diff --git a/examples/users/describe_roles.py b/examples/users/describe_roles.py new file mode 100755 index 0000000..01a6c4e --- /dev/null +++ b/examples/users/describe_roles.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +""" +Caracara Examples Collection. + +describe_roles.py + +This example will use the API credentials configured in your config.yml file to +show all the possible roles that may be assigned to users in the Falcon tenant. +""" +import logging + +from caracara import Client + +from examples.common import caracara_example, pretty_print + + +@caracara_example +def describe_roles(**kwargs): + """List Roles Example.""" + client: Client = kwargs['client'] + logger: logging.Logger = kwargs['logger'] + + logger.info("Describing all possible roles in the Falcon tenant") + available_role_info = client.users.describe_available_roles() + logger.info(pretty_print(available_role_info)) + + +if __name__ == '__main__': + describe_roles() diff --git a/examples/users/describe_users.py b/examples/users/describe_users.py new file mode 100755 index 0000000..b54c82a --- /dev/null +++ b/examples/users/describe_users.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +""" +Caracara Examples Collection. + +describe_users.py + +This example will use the API credentials configured in your config.yml file to +show all the users configured within the Falcon tenant. +""" +import logging + +from caracara import Client + +from examples.common import caracara_example, pretty_print + + +@caracara_example +def describe_users(**kwargs): + """List Users Example.""" + client: Client = kwargs['client'] + logger: logging.Logger = kwargs['logger'] + + logger.info("Describing all users in the Falcon tenant") + + users = client.users.describe_users() + logger.info(pretty_print(users)) + + +if __name__ == '__main__': + describe_users() diff --git a/poetry.lock b/poetry.lock index de24035..0002f5a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.4.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. [[package]] name = "astroid" @@ -19,25 +19,6 @@ typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpyth typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<2" -[[package]] -name = "attrs" -version = "22.2.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] - [[package]] name = "bandit" version = "1.7.5" @@ -413,63 +394,63 @@ files = [ [[package]] name = "coverage" -version = "7.2.2" +version = "7.2.5" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "coverage-7.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c90e73bdecb7b0d1cea65a08cb41e9d672ac6d7995603d6465ed4914b98b9ad7"}, - {file = "coverage-7.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e2926b8abedf750c2ecf5035c07515770944acf02e1c46ab08f6348d24c5f94d"}, - {file = "coverage-7.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57b77b9099f172804e695a40ebaa374f79e4fb8b92f3e167f66facbf92e8e7f5"}, - {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efe1c0adad110bf0ad7fb59f833880e489a61e39d699d37249bdf42f80590169"}, - {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2199988e0bc8325d941b209f4fd1c6fa007024b1442c5576f1a32ca2e48941e6"}, - {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:81f63e0fb74effd5be736cfe07d710307cc0a3ccb8f4741f7f053c057615a137"}, - {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:186e0fc9cf497365036d51d4d2ab76113fb74f729bd25da0975daab2e107fd90"}, - {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:420f94a35e3e00a2b43ad5740f935358e24478354ce41c99407cddd283be00d2"}, - {file = "coverage-7.2.2-cp310-cp310-win32.whl", hash = "sha256:38004671848b5745bb05d4d621526fca30cee164db42a1f185615f39dc997292"}, - {file = "coverage-7.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:0ce383d5f56d0729d2dd40e53fe3afeb8f2237244b0975e1427bfb2cf0d32bab"}, - {file = "coverage-7.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3eb55b7b26389dd4f8ae911ba9bc8c027411163839dea4c8b8be54c4ee9ae10b"}, - {file = "coverage-7.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2b96123a453a2d7f3995ddb9f28d01fd112319a7a4d5ca99796a7ff43f02af5"}, - {file = "coverage-7.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:299bc75cb2a41e6741b5e470b8c9fb78d931edbd0cd009c58e5c84de57c06731"}, - {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e1df45c23d4230e3d56d04414f9057eba501f78db60d4eeecfcb940501b08fd"}, - {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:006ed5582e9cbc8115d2e22d6d2144a0725db542f654d9d4fda86793832f873d"}, - {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d683d230b5774816e7d784d7ed8444f2a40e7a450e5720d58af593cb0b94a212"}, - {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8efb48fa743d1c1a65ee8787b5b552681610f06c40a40b7ef94a5b517d885c54"}, - {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c752d5264053a7cf2fe81c9e14f8a4fb261370a7bb344c2a011836a96fb3f57"}, - {file = "coverage-7.2.2-cp311-cp311-win32.whl", hash = "sha256:55272f33da9a5d7cccd3774aeca7a01e500a614eaea2a77091e9be000ecd401d"}, - {file = "coverage-7.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:92ebc1619650409da324d001b3a36f14f63644c7f0a588e331f3b0f67491f512"}, - {file = "coverage-7.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5afdad4cc4cc199fdf3e18088812edcf8f4c5a3c8e6cb69127513ad4cb7471a9"}, - {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0484d9dd1e6f481b24070c87561c8d7151bdd8b044c93ac99faafd01f695c78e"}, - {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d530191aa9c66ab4f190be8ac8cc7cfd8f4f3217da379606f3dd4e3d83feba69"}, - {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ac0f522c3b6109c4b764ffec71bf04ebc0523e926ca7cbe6c5ac88f84faced0"}, - {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ba279aae162b20444881fc3ed4e4f934c1cf8620f3dab3b531480cf602c76b7f"}, - {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:53d0fd4c17175aded9c633e319360d41a1f3c6e352ba94edcb0fa5167e2bad67"}, - {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c99cb7c26a3039a8a4ee3ca1efdde471e61b4837108847fb7d5be7789ed8fd9"}, - {file = "coverage-7.2.2-cp37-cp37m-win32.whl", hash = "sha256:5cc0783844c84af2522e3a99b9b761a979a3ef10fb87fc4048d1ee174e18a7d8"}, - {file = "coverage-7.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:817295f06eacdc8623dc4df7d8b49cea65925030d4e1e2a7c7218380c0072c25"}, - {file = "coverage-7.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6146910231ece63facfc5984234ad1b06a36cecc9fd0c028e59ac7c9b18c38c6"}, - {file = "coverage-7.2.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:387fb46cb8e53ba7304d80aadca5dca84a2fbf6fe3faf6951d8cf2d46485d1e5"}, - {file = "coverage-7.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:046936ab032a2810dcaafd39cc4ef6dd295df1a7cbead08fe996d4765fca9fe4"}, - {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e627dee428a176ffb13697a2c4318d3f60b2ccdde3acdc9b3f304206ec130ccd"}, - {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fa54fb483decc45f94011898727802309a109d89446a3c76387d016057d2c84"}, - {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3668291b50b69a0c1ef9f462c7df2c235da3c4073f49543b01e7eb1dee7dd540"}, - {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7c20b731211261dc9739bbe080c579a1835b0c2d9b274e5fcd903c3a7821cf88"}, - {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5764e1f7471cb8f64b8cda0554f3d4c4085ae4b417bfeab236799863703e5de2"}, - {file = "coverage-7.2.2-cp38-cp38-win32.whl", hash = "sha256:4f01911c010122f49a3e9bdc730eccc66f9b72bd410a3a9d3cb8448bb50d65d3"}, - {file = "coverage-7.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:c448b5c9e3df5448a362208b8d4b9ed85305528313fca1b479f14f9fe0d873b8"}, - {file = "coverage-7.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfe7085783cda55e53510482fa7b5efc761fad1abe4d653b32710eb548ebdd2d"}, - {file = "coverage-7.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9d22e94e6dc86de981b1b684b342bec5e331401599ce652900ec59db52940005"}, - {file = "coverage-7.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:507e4720791977934bba016101579b8c500fb21c5fa3cd4cf256477331ddd988"}, - {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc4803779f0e4b06a2361f666e76f5c2e3715e8e379889d02251ec911befd149"}, - {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db8c2c5ace167fd25ab5dd732714c51d4633f58bac21fb0ff63b0349f62755a8"}, - {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f68ee32d7c4164f1e2c8797535a6d0a3733355f5861e0f667e37df2d4b07140"}, - {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d52f0a114b6a58305b11a5cdecd42b2e7f1ec77eb20e2b33969d702feafdd016"}, - {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:797aad79e7b6182cb49c08cc5d2f7aa7b2128133b0926060d0a8889ac43843be"}, - {file = "coverage-7.2.2-cp39-cp39-win32.whl", hash = "sha256:db45eec1dfccdadb179b0f9ca616872c6f700d23945ecc8f21bb105d74b1c5fc"}, - {file = "coverage-7.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:8dbe2647bf58d2c5a6c5bcc685f23b5f371909a5624e9f5cd51436d6a9f6c6ef"}, - {file = "coverage-7.2.2-pp37.pp38.pp39-none-any.whl", hash = "sha256:872d6ce1f5be73f05bea4df498c140b9e7ee5418bfa2cc8204e7f9b817caa968"}, - {file = "coverage-7.2.2.tar.gz", hash = "sha256:36dd42da34fe94ed98c39887b86db9d06777b1c8f860520e21126a75507024f2"}, + {file = "coverage-7.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:883123d0bbe1c136f76b56276074b0c79b5817dd4238097ffa64ac67257f4b6c"}, + {file = "coverage-7.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d2fbc2a127e857d2f8898aaabcc34c37771bf78a4d5e17d3e1f5c30cd0cbc62a"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f3671662dc4b422b15776cdca89c041a6349b4864a43aa2350b6b0b03bbcc7f"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780551e47d62095e088f251f5db428473c26db7829884323e56d9c0c3118791a"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:066b44897c493e0dcbc9e6a6d9f8bbb6607ef82367cf6810d387c09f0cd4fe9a"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9a4ee55174b04f6af539218f9f8083140f61a46eabcaa4234f3c2a452c4ed11"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:706ec567267c96717ab9363904d846ec009a48d5f832140b6ad08aad3791b1f5"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ae453f655640157d76209f42c62c64c4d4f2c7f97256d3567e3b439bd5c9b06c"}, + {file = "coverage-7.2.5-cp310-cp310-win32.whl", hash = "sha256:f81c9b4bd8aa747d417407a7f6f0b1469a43b36a85748145e144ac4e8d303cb5"}, + {file = "coverage-7.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:dc945064a8783b86fcce9a0a705abd7db2117d95e340df8a4333f00be5efb64c"}, + {file = "coverage-7.2.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40cc0f91c6cde033da493227797be2826cbf8f388eaa36a0271a97a332bfd7ce"}, + {file = "coverage-7.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a66e055254a26c82aead7ff420d9fa8dc2da10c82679ea850d8feebf11074d88"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c10fbc8a64aa0f3ed136b0b086b6b577bc64d67d5581acd7cc129af52654384e"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a22cbb5ede6fade0482111fa7f01115ff04039795d7092ed0db43522431b4f2"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:292300f76440651529b8ceec283a9370532f4ecba9ad67d120617021bb5ef139"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7ff8f3fb38233035028dbc93715551d81eadc110199e14bbbfa01c5c4a43f8d8"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a08c7401d0b24e8c2982f4e307124b671c6736d40d1c39e09d7a8687bddf83ed"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef9659d1cda9ce9ac9585c045aaa1e59223b143f2407db0eaee0b61a4f266fb6"}, + {file = "coverage-7.2.5-cp311-cp311-win32.whl", hash = "sha256:30dcaf05adfa69c2a7b9f7dfd9f60bc8e36b282d7ed25c308ef9e114de7fc23b"}, + {file = "coverage-7.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:97072cc90f1009386c8a5b7de9d4fc1a9f91ba5ef2146c55c1f005e7b5c5e068"}, + {file = "coverage-7.2.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bebea5f5ed41f618797ce3ffb4606c64a5de92e9c3f26d26c2e0aae292f015c1"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828189fcdda99aae0d6bf718ea766b2e715eabc1868670a0a07bf8404bf58c33"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e8a95f243d01ba572341c52f89f3acb98a3b6d1d5d830efba86033dd3687ade"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8834e5f17d89e05697c3c043d3e58a8b19682bf365048837383abfe39adaed5"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1f25ee9de21a39b3a8516f2c5feb8de248f17da7eead089c2e04aa097936b47"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1637253b11a18f453e34013c665d8bf15904c9e3c44fbda34c643fbdc9d452cd"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8e575a59315a91ccd00c7757127f6b2488c2f914096077c745c2f1ba5b8c0969"}, + {file = "coverage-7.2.5-cp37-cp37m-win32.whl", hash = "sha256:509ecd8334c380000d259dc66feb191dd0a93b21f2453faa75f7f9cdcefc0718"}, + {file = "coverage-7.2.5-cp37-cp37m-win_amd64.whl", hash = "sha256:12580845917b1e59f8a1c2ffa6af6d0908cb39220f3019e36c110c943dc875b0"}, + {file = "coverage-7.2.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5016e331b75310610c2cf955d9f58a9749943ed5f7b8cfc0bb89c6134ab0a84"}, + {file = "coverage-7.2.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:373ea34dca98f2fdb3e5cb33d83b6d801007a8074f992b80311fc589d3e6b790"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a063aad9f7b4c9f9da7b2550eae0a582ffc7623dca1c925e50c3fbde7a579771"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38c0a497a000d50491055805313ed83ddba069353d102ece8aef5d11b5faf045"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b3b05e22a77bb0ae1a3125126a4e08535961c946b62f30985535ed40e26614"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0342a28617e63ad15d96dca0f7ae9479a37b7d8a295f749c14f3436ea59fdcb3"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf97ed82ca986e5c637ea286ba2793c85325b30f869bf64d3009ccc1a31ae3fd"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c2c41c1b1866b670573657d584de413df701f482574bad7e28214a2362cb1fd1"}, + {file = "coverage-7.2.5-cp38-cp38-win32.whl", hash = "sha256:10b15394c13544fce02382360cab54e51a9e0fd1bd61ae9ce012c0d1e103c813"}, + {file = "coverage-7.2.5-cp38-cp38-win_amd64.whl", hash = "sha256:a0b273fe6dc655b110e8dc89b8ec7f1a778d78c9fd9b4bda7c384c8906072212"}, + {file = "coverage-7.2.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c587f52c81211d4530fa6857884d37f514bcf9453bdeee0ff93eaaf906a5c1b"}, + {file = "coverage-7.2.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4436cc9ba5414c2c998eaedee5343f49c02ca93b21769c5fdfa4f9d799e84200"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6599bf92f33ab041e36e06d25890afbdf12078aacfe1f1d08c713906e49a3fe5"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:857abe2fa6a4973f8663e039ead8d22215d31db613ace76e4a98f52ec919068e"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f5cab2d7f0c12f8187a376cc6582c477d2df91d63f75341307fcdcb5d60303"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aa387bd7489f3e1787ff82068b295bcaafbf6f79c3dad3cbc82ef88ce3f48ad3"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:156192e5fd3dbbcb11cd777cc469cf010a294f4c736a2b2c891c77618cb1379a"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bd3b4b8175c1db502adf209d06136c000df4d245105c8839e9d0be71c94aefe1"}, + {file = "coverage-7.2.5-cp39-cp39-win32.whl", hash = "sha256:ddc5a54edb653e9e215f75de377354e2455376f416c4378e1d43b08ec50acc31"}, + {file = "coverage-7.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:338aa9d9883aaaad53695cb14ccdeb36d4060485bb9388446330bef9c361c252"}, + {file = "coverage-7.2.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:8877d9b437b35a85c18e3c6499b23674684bf690f5d96c1006a1ef61f9fdf0f3"}, + {file = "coverage-7.2.5.tar.gz", hash = "sha256:f99ef080288f09ffc687423b8d60978cf3a465d3f404a18d1a05474bd8575a47"}, ] [package.extras] @@ -477,14 +458,14 @@ toml = ["tomli"] [[package]] name = "crowdstrike-falconpy" -version = "1.2.12" +version = "1.2.15" description = "The CrowdStrike Falcon SDK for Python 3" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "crowdstrike-falconpy-1.2.12.tar.gz", hash = "sha256:ac6bdb5a8c715c07ed766d5e53bd37ee72da792840875257e9dcaa8328ed4c32"}, - {file = "crowdstrike_falconpy-1.2.12-py3-none-any.whl", hash = "sha256:78ce742524c0f693845908d00ebfc0137749351b5a504c1de15317b5460f4bde"}, + {file = "crowdstrike-falconpy-1.2.15.tar.gz", hash = "sha256:800d2084aeb074e1137e7d5083599bfa360f7f8b98827b80030d46a6b2bdf757"}, + {file = "crowdstrike_falconpy-1.2.15-py3-none-any.whl", hash = "sha256:f9bdab837762ae51027ff8e2c232a851b93935ed4d597d00045b95cc5c9b014a"}, ] [package.dependencies] @@ -837,14 +818,14 @@ type = ["mypy", "mypy-extensions"] [[package]] name = "packaging" -version = "23.0" +version = "23.1" description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, - {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, ] [[package]] @@ -861,22 +842,22 @@ files = [ [[package]] name = "platformdirs" -version = "3.2.0" +version = "3.5.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.2.0-py3-none-any.whl", hash = "sha256:ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e"}, - {file = "platformdirs-3.2.0.tar.gz", hash = "sha256:d5b638ca397f25f979350ff789db335903d7ea010ab28903f57b27e1b16c2b08"}, + {file = "platformdirs-3.5.0-py3-none-any.whl", hash = "sha256:47692bc24c1958e8b0f13dd727307cff1db103fca36399f457da8e05f222fdc4"}, + {file = "platformdirs-3.5.0.tar.gz", hash = "sha256:7954a68d0ba23558d753f73437c55f89027cf8f5108c19844d4b82e5af396335"}, ] [package.dependencies] typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} [package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -899,26 +880,26 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "psutil" -version = "5.9.4" +version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, - {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe"}, - {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549"}, - {file = "psutil-5.9.4-cp27-cp27m-win32.whl", hash = "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad"}, - {file = "psutil-5.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94"}, - {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24"}, - {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7"}, - {file = "psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7"}, - {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1"}, - {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08"}, - {file = "psutil-5.9.4-cp36-abi3-win32.whl", hash = "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff"}, - {file = "psutil-5.9.4-cp36-abi3-win_amd64.whl", hash = "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"}, - {file = "psutil-5.9.4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e"}, - {file = "psutil-5.9.4.tar.gz", hash = "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62"}, + {file = "psutil-5.9.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, + {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, + {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, + {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, + {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, + {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, + {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, + {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, ] [package.extras] @@ -926,14 +907,14 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] [[package]] name = "py7zr" -version = "0.20.4" +version = "0.20.5" description = "Pure python 7-zip library" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "py7zr-0.20.4-py3-none-any.whl", hash = "sha256:94d0c24217f6582741813ee94490a4ca82bd5f9bf35e4f8610cb588cf7445764"}, - {file = "py7zr-0.20.4.tar.gz", hash = "sha256:1d01f98ea1e1f5c49940358691b2076f9a5848056426541e783de33834f59e21"}, + {file = "py7zr-0.20.5-py3-none-any.whl", hash = "sha256:17fe8bb9379ef1d416e6e400f29158ad71dc409869c7206d880441c70806f07f"}, + {file = "py7zr-0.20.5.tar.gz", hash = "sha256:6fb4889c0fa32581818a3366984083253585d6c794e82c3242b8a12d6aeaabd3"}, ] [package.dependencies] @@ -950,7 +931,7 @@ pyzstd = ">=0.14.4" texttable = "*" [package.extras] -check = ["check-manifest", "flake8 (<5)", "flake8-black", "flake8-deprecated", "flake8-isort", "isort (>=5.0.3)", "mypy (>=0.940)", "mypy-extensions (>=0.4.1)", "pygments", "readme-renderer", "twine"] +check = ["black (>=23.1.0)", "check-manifest", "flake8 (<7)", "flake8-black (>=0.3.6)", "flake8-deprecated", "flake8-isort", "isort (>=5.0.3)", "mypy (>=0.940)", "mypy-extensions (>=0.4.1)", "pygments", "readme-renderer", "twine", "types-psutil"] debug = ["pytest", "pytest-leaks", "pytest-profiling"] docs = ["docutils", "sphinx (>=5.0)", "sphinx-a4doc", "sphinx-py3doc-enhanced-theme"] test = ["coverage[toml] (>=5.2)", "coveralls (>=2.1.1)", "py-cpuinfo", "pyannotate", "pytest", "pytest-benchmark", "pytest-cov", "pytest-remotedata", "pytest-timeout"] @@ -1151,14 +1132,14 @@ files = [ [[package]] name = "pygments" -version = "2.14.0" +version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, + {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, + {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, ] [package.extras] @@ -1285,18 +1266,17 @@ test = ["coverage[toml] (>=5.2)", "hypothesis", "pytest (>=6.0)", "pytest-benchm [[package]] name = "pytest" -version = "7.2.2" +version = "7.3.1" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, - {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, + {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, + {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, ] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} @@ -1306,7 +1286,7 @@ pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] [[package]] name = "python-dateutil" @@ -1375,130 +1355,136 @@ files = [ [[package]] name = "pyzstd" -version = "0.15.4" +version = "0.15.7" description = "Python bindings to Zstandard (zstd) compression library, the API style is similar to Python's bz2/lzma/zlib modules." category = "main" optional = false python-versions = ">=3.5" files = [ - {file = "pyzstd-0.15.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7aea5a1474cacdd0285f16bc5392271645147806986e17be8b100ef750520548"}, - {file = "pyzstd-0.15.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1e53d12e026605b254569a384191850b6e9f2fcd0fba8b3c80e09b9683fc86af"}, - {file = "pyzstd-0.15.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6250aa075408753cde58d79a80923c29c1791f32c4b3e58f25701ae5dbf1678"}, - {file = "pyzstd-0.15.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca8f520618a3a1c66ee0f6bc3a6b4fc6f9d55b7b1ce80a8f8a422c82a2f79418"}, - {file = "pyzstd-0.15.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bca4d7285363b73966e8c6d8af8da515d23bcaf8eb91293e866d5d4615ea5227"}, - {file = "pyzstd-0.15.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9aed2fda29875d42a7f96b741582e6e9adb48f3903760439f60b0f8fb8f822f1"}, - {file = "pyzstd-0.15.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:448d4412462d00bbb7c4857f9a4bedc879f9834f01e2723c23f9de4edde8bde3"}, - {file = "pyzstd-0.15.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8a7f8be2493356bf55a1261b7a9bb476324738ced6210c3f876f452df8288785"}, - {file = "pyzstd-0.15.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:15b84a04edb257cc7d75c208be43dc4c66e8bd2a44ad9e2af523a829386f0e4c"}, - {file = "pyzstd-0.15.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e1e7e43714b0646fb1d61b6b9bbf6e6ede6c77c89667f2addb086f75196ce389"}, - {file = "pyzstd-0.15.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:29f692a74f3d9778c71ad6899a1c7578fd44dfb5b6187fe37abdfc7cc034e9d3"}, - {file = "pyzstd-0.15.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:c2e35d5a169ef9107760bd276974331e0be8fafe2e26ec824020c4999013dc40"}, - {file = "pyzstd-0.15.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ab88c8123e2c8ad298d1ac79f5b5aeab68ef27a0afe968e5c5be1a2f24577e2e"}, - {file = "pyzstd-0.15.4-cp310-cp310-win32.whl", hash = "sha256:2e25838c7410245201a455ff000372c65654c781a7a168b2249432dae4ce260f"}, - {file = "pyzstd-0.15.4-cp310-cp310-win_amd64.whl", hash = "sha256:b28e6f095fd56ac373844ee76ab74b011dbd128e4113a033911675421742ce91"}, - {file = "pyzstd-0.15.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2988e5282c807634911d9336ff4797de84e308d94a1f57bfab4223d927e992c5"}, - {file = "pyzstd-0.15.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:00c9e9aa800b7ded58bdddd90930f949205475c17d1e5923ab936321b805ede0"}, - {file = "pyzstd-0.15.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c681938be80e4ceedc2f43b5d7c08e8e3719492a8250cc742382633c7176919"}, - {file = "pyzstd-0.15.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65dc2ac46389823214dd21141a05009cc2fc8d139d8a0aae5f7eb6830ffe5ded"}, - {file = "pyzstd-0.15.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91cbd6d8a2fa0b18f9b50076a46e837b90e9f1974578483fcc4b094b43cbd89b"}, - {file = "pyzstd-0.15.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e95ec6b499571eca1683c078d2f6cfe3815a5103bf4f488a4edbb1607be652"}, - {file = "pyzstd-0.15.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1da1bcbac16a075675609865e2705d9ec90a2312450d4d99b65a003fdef84f7"}, - {file = "pyzstd-0.15.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:55dd0cf038e9053147e58fd4d0509fc1b735f63ce276b88151560bae271a25af"}, - {file = "pyzstd-0.15.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7740d39f74f9154a7f42d15c1b16f87ba062ac16439d62525f2c85165ea9ebc2"}, - {file = "pyzstd-0.15.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c03e1bfc6c391a05ea04dfff485f4884b07805a16f198c1d5b4e24f4df1e1723"}, - {file = "pyzstd-0.15.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:e7361f4e5a354715d00c43ad3472188cb9eab83d2e75a2ab7ca75734779579bf"}, - {file = "pyzstd-0.15.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:56cb56e24e9d33ef571c23b0157593c44c052ffe5810599a76bc6c60ec77f67a"}, - {file = "pyzstd-0.15.4-cp311-cp311-win32.whl", hash = "sha256:ab55575f1c6c12ca65918dba8196bfb281df86038a9f9e376fb6ac5a501ac724"}, - {file = "pyzstd-0.15.4-cp311-cp311-win_amd64.whl", hash = "sha256:b73b18d8ebf5caba863bfccb6ad422b9322c7a806b50a555bb44f51f16b7af5e"}, - {file = "pyzstd-0.15.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:df80324759cb74a10818f5ea4dfb0332b6064a31305246f66b043c4f73b37918"}, - {file = "pyzstd-0.15.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4833842d5e6660c1b6cd316f102ffddb95566f12ec1f89c5630d4b511e7e084"}, - {file = "pyzstd-0.15.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d9069da3bb94cac8af3fd2d7b622c7a78a248d3295a478587d880553287d56e6"}, - {file = "pyzstd-0.15.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9db032965b8fabf0bac13b75706031444ebfa7214794afe80be41799d8a349fb"}, - {file = "pyzstd-0.15.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:16eb2b2b206489bf8a7b690cf3b06b24352a16ee25717cb38c4381aefb3a94ce"}, - {file = "pyzstd-0.15.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:821555ce9bc7f50130bf52dc7b7d342913e00435c68a5cac564c5f2e57f33cbf"}, - {file = "pyzstd-0.15.4-cp36-cp36m-win32.whl", hash = "sha256:4f4a96bdffa773f8820e065ec840c5d3f252b0611951b73567121757388f171c"}, - {file = "pyzstd-0.15.4-cp36-cp36m-win_amd64.whl", hash = "sha256:3b0d384a48592683edf812c1a3d75a0cf5af253b1629596567ce3a2991d6ccbc"}, - {file = "pyzstd-0.15.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e3b4ee242e00029c68fc5d8cddc3e01f6cdf7ac466d844a1440ebde4ae1f9e79"}, - {file = "pyzstd-0.15.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d62f3e5ca97150ddd32e83275170bcb7ea462f271df03d39de434e8e02889b09"}, - {file = "pyzstd-0.15.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01e723cafb6e681dccba134524f9f012c5f04078d6cb05e03b2f5d871716e0db"}, - {file = "pyzstd-0.15.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7da76175bbbec45ecd35e611eaa50e40c0f29a05e86a8cd50b1b20b5a52cd218"}, - {file = "pyzstd-0.15.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6f2bbd863e674875882de8dd6f54ba98916cfeb89d9224393e9846c9e9aea1d"}, - {file = "pyzstd-0.15.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23c07257fa5df97ebde0a01a54e7c4ae295dc684908f8b1c4ac2f407b881d91b"}, - {file = "pyzstd-0.15.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b5f921cf4ba10cf2f1dbaaba3b9e7afe876a0962cf43f16455c4e5052c1dc0bd"}, - {file = "pyzstd-0.15.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c2c6f976e45e63a4f6cbaf20240bb0842ed2ed65703718d54a6fad8642d3c230"}, - {file = "pyzstd-0.15.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:60079134dd0967fc4c81ea50a7deedd99c52bb263a46750326cba9f53b03f93c"}, - {file = "pyzstd-0.15.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:55a368a2195bf9cabf8f20ea2841c6a7463c21d8345c8c7d50b809635fec262e"}, - {file = "pyzstd-0.15.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:78a5e30f90f499f6961e56263e8f029e228b92550aa4e8a5649ed220f8f19230"}, - {file = "pyzstd-0.15.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab21cc20922de335feef32245a9329bc3cb443346dcda243a711aab15bc130cc"}, - {file = "pyzstd-0.15.4-cp37-cp37m-win32.whl", hash = "sha256:0d742edd7340e4b8ba4cbe240e873bbc88c197c0b3838212eb5c4885094f191b"}, - {file = "pyzstd-0.15.4-cp37-cp37m-win_amd64.whl", hash = "sha256:39fa99cac5abe0cdb34afda54f54735593646d8c57de1b734d1fe3c9761e0575"}, - {file = "pyzstd-0.15.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2146d6ab27f3b5dd02b093d748151897e3c929ec009768f20b7a5f3627de7d9c"}, - {file = "pyzstd-0.15.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7422e119a9dd10695dee636707881fa6e1af872df5a4f5f1ae6feec34e3cdab6"}, - {file = "pyzstd-0.15.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9074eff37261effb5c7312911e11f0a4c26475ab55bae803d3b095fa291e631"}, - {file = "pyzstd-0.15.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa9ab4ca7e32c219ad0d420786897cdb3c09f1ffc3fd1a2785e7652ace5684e2"}, - {file = "pyzstd-0.15.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:452e1e774fd7e693f2f5065de61f8cf42eb449ea5614e4cd15ae458e70977d98"}, - {file = "pyzstd-0.15.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27e1b4a3a6fdab664f1d415c3bbc63700a85f8ec46ad2bf7287e6a86bbea0581"}, - {file = "pyzstd-0.15.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:21b7f72717d58b39487c903854556fc363be3329b94aa696e9111291a13d714c"}, - {file = "pyzstd-0.15.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eb300366e9bf62776ef8c5c5fca57d5b18fdf6a62d055244e9f9f71ea263597e"}, - {file = "pyzstd-0.15.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1e138c585fc2d07fb20e61f6cbac77fdc77497299199a610a1fca28933128948"}, - {file = "pyzstd-0.15.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:242467cc26e2e4b344028887c934fce3e48354e5eddbc4bb4e695f2c011d3755"}, - {file = "pyzstd-0.15.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:929f894d0b1439826f45a248d7569f8c9ceb43ff3d5739e7ac9ff264acdcb070"}, - {file = "pyzstd-0.15.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e96731ecfff34aeefb5e0f93222c9831880e8a94ea700f4432d4ee45995badc1"}, - {file = "pyzstd-0.15.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f437e316cd24f21ea13ad635d7e24550458217af75182554963f461bae0bc189"}, - {file = "pyzstd-0.15.4-cp38-cp38-win32.whl", hash = "sha256:912345726aa45dba8fb4930e172149f558caf606bf22c219cde9deb984a1523a"}, - {file = "pyzstd-0.15.4-cp38-cp38-win_amd64.whl", hash = "sha256:2589c484c59a0ef2d52d1fd7ab3efd648ef38a396ef22b892c79c2cb878487e3"}, - {file = "pyzstd-0.15.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:33d42c56fde20a2a98bd200d91d09e44957ce782ffeef5041fc4c544df7640d1"}, - {file = "pyzstd-0.15.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:72bf7435dad00fe8a24815f67fcd9fddf44265aa8155a507ac79472cd13c97c1"}, - {file = "pyzstd-0.15.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1bcfb77bf00ab5e134321ddf9123845c80b1f49500d499998a17881aa644e28"}, - {file = "pyzstd-0.15.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e18f986325eedf0b5d86feb87fad70a0430e3da0bff1a1c33ddce8c70fc371e"}, - {file = "pyzstd-0.15.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9860aeb47f88e61f8bd615f4f3e8372990c8e680c52d8a2f893157ebdb15e8a2"}, - {file = "pyzstd-0.15.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be764774531007ce83c32d24379c32474329655bcc177f1b154e2d2e7e4dba1"}, - {file = "pyzstd-0.15.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b41ca76a847286cd54ebabbfd37fa732a68dc2daf5178aede34ee377598cfa5"}, - {file = "pyzstd-0.15.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1659da1d388a85c8297083772fdd16543a43305ec0213f1d6f5a6b65702c8402"}, - {file = "pyzstd-0.15.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:94302b3a36c562a31f791a5e0112bcc129e0245c6f462d86627a4cefda0f5764"}, - {file = "pyzstd-0.15.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0820d84c272865e996696fc84c8c63cf6898d66bfda8ac4109880e24272ac13a"}, - {file = "pyzstd-0.15.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e111d203153837fca01a3c6ed48167af4b590f148998a2d8edefd98338615006"}, - {file = "pyzstd-0.15.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:67ee34825be593151ba0da78d6914914afce9a7ddc77683319d9406bf422c578"}, - {file = "pyzstd-0.15.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7048a34197205cb4459492a1d397059ec35a758e29cee226ffa8e593148300af"}, - {file = "pyzstd-0.15.4-cp39-cp39-win32.whl", hash = "sha256:cb03d3fca1fab2b33b4d0de9b80ab0efc9bb872eb28575eeb73af0d9aac08322"}, - {file = "pyzstd-0.15.4-cp39-cp39-win_amd64.whl", hash = "sha256:b06eabacbefaf440785ee1f499582c79083822fb3d2640fb74dd5d3391bbc2ae"}, - {file = "pyzstd-0.15.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:649f23ab5c203dade1594f593c6b65247e848f99ba5b11ef26b74541e1f0b605"}, - {file = "pyzstd-0.15.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c173226b2fab75bfcf9c0315d551e9b484e50f4d84869676bcf33d080f5b43f8"}, - {file = "pyzstd-0.15.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d774cf6406c33c9af6e1fde10a1b0aab7e1f573b2510c491ed24c6f4dbad677"}, - {file = "pyzstd-0.15.4-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4d47ea4a9a3a43a556da63ee59bf941aecfb529bb85957960e91339c6d6cf3d"}, - {file = "pyzstd-0.15.4-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:be71183e8e7a03b298d4e547f58f68ee1664889bef4e7460464fdf1e70349b66"}, - {file = "pyzstd-0.15.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:74750bee4fd2b584bf502cdc03861c9decb0875a7febcb2d629cf72a0470188d"}, - {file = "pyzstd-0.15.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4bf88010b15470f00810e8fc3cb46608af7dceb0d8ca696552d635be652bdfd7"}, - {file = "pyzstd-0.15.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ec07186d5150a6129327e906c0c1f15fd505d4f5538957b2481913a959121ee"}, - {file = "pyzstd-0.15.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3e11b0534f958668dbcac6d3d943af93d1f5c4dfa7857147589398b405a9ee6"}, - {file = "pyzstd-0.15.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bf63ad569ebc08fee48bc1080c1eb98c9620af4d52ecc56b2a54d6f01797d7be"}, - {file = "pyzstd-0.15.4-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88e9f435a68ab9d04a4a90d5b11c587080295ab4057a403730990944b98d0b4e"}, - {file = "pyzstd-0.15.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:9b433e0495b0231c20733b4649d33c5ab51f3670db4b47e0964b0b4dd240e03f"}, - {file = "pyzstd-0.15.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e884faae04b2f52cc6aa5aa18de2631ab75786440fd8a708f6b886d75aade937"}, - {file = "pyzstd-0.15.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:229626e1ee592fd8a922935b997e9b91b8b8b874a72565fe1839041cf3ae1a54"}, - {file = "pyzstd-0.15.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8576440b3212d648fbff49d1127e2bffe0f74aa8be40c3ec8b783f276135cb30"}, - {file = "pyzstd-0.15.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddfbaad47edf70932a6e0fba37348ca240a34408e674c056ff16631fa07ea5fd"}, - {file = "pyzstd-0.15.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:be4e4bc65de7093e4781d98016b15224311f52eacb220f67b1cbffcae3ac5497"}, - {file = "pyzstd-0.15.4.tar.gz", hash = "sha256:de07ac54f57642f186732075cdce2be3d4a30228c3b17a6d8c6053765dc6eec8"}, + {file = "pyzstd-0.15.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ba445c38aff01c41175dcc621b88357907f4deb1f147ff140e691e74c589029"}, + {file = "pyzstd-0.15.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:30ca96e20dcda02665c241a70b577202d3b9443416aaffefc490f6ff9d78f83f"}, + {file = "pyzstd-0.15.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8408c499ef67dcec49be00b7007e0ceb7cbb1211cdaeb390294d8a0e9ceab75"}, + {file = "pyzstd-0.15.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7fa6ace75ad05303967908321d9b02f7011a1ea5103f9f72342dba820fa47b1a"}, + {file = "pyzstd-0.15.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b6d9e1be9fdaef16c53ce0b2bfd880ae21ca54bc244a1de1c28d0cefeee8760"}, + {file = "pyzstd-0.15.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:effda4ab1426a2b3384ea354f1d873865f87ae0e946508765dfe1b52c6dea6b8"}, + {file = "pyzstd-0.15.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3e03065608eff491466bcfb7fa1c48d3f81bfac1926db68f13f3362a1b8bc2db"}, + {file = "pyzstd-0.15.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3d109b2321f9d2df7e17fe49791379f831cc8cfd7ad29069e1687faf99095188"}, + {file = "pyzstd-0.15.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5361782c9ff6c5a40d39637258dd64e109f7c535976e9c2db8ae17a7c6c2b3cb"}, + {file = "pyzstd-0.15.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:d05909397f155b12a0a9b7c36cf1fb8a96df5b7caa9bc69c47ed36ab73e1aba9"}, + {file = "pyzstd-0.15.7-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:1ab0309a5a36ebe6bbf6b33f200aa9faa71493b842924e85840d78ecd72ce3cd"}, + {file = "pyzstd-0.15.7-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e5504321223125495b9ae78cd49c7a4495ae8e547d09f704aad0c43a9fa8c5f2"}, + {file = "pyzstd-0.15.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:13c653dac81e95e966759a9b8b47d6c0fdf0a6c51a743397dee9091e62c7bfa8"}, + {file = "pyzstd-0.15.7-cp310-cp310-win32.whl", hash = "sha256:b0b6a55ed8ae86d6a809bdf0552753f8bc11ce1a8b4ccb2a55f9a4026ecde01c"}, + {file = "pyzstd-0.15.7-cp310-cp310-win_amd64.whl", hash = "sha256:ef7f2f8a95fdb755047015894e1859a49a5495bd6d1b197898b72e2c3abeca92"}, + {file = "pyzstd-0.15.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8af59e31d1e51ccd998142f8ec7347e5ba7a801572539a8bffd9009956a76343"}, + {file = "pyzstd-0.15.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:867d909f633a39add6f62fa19b61520abccb9af527194db0c490ebd2e910200d"}, + {file = "pyzstd-0.15.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39a3ca5e44d9ba036f2515a3aec1fdb27849bd55affd205c578447fc2e2d2503"}, + {file = "pyzstd-0.15.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53958a8c20e4344a86bad6e9cd0b886710bfac2bc581102b852bb24c2c09084c"}, + {file = "pyzstd-0.15.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0802d7a01ab7bd73dd0dd5c3d9143a7fe77e6c98ab33fdf4b14b20fe5ca090a7"}, + {file = "pyzstd-0.15.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc340a9159ead0ffaac5893569e124e975958e31ad381357e65765296882b81e"}, + {file = "pyzstd-0.15.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bdf506a8b3b17b3cfa9b9b0b69d5fb542058fa3bb7121d5e5c4ec553ff39801"}, + {file = "pyzstd-0.15.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:371a0523d40f560d1352ca91e532acaa2b331500ded3cf3ad699eee88d76af60"}, + {file = "pyzstd-0.15.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:827717b9a9f28cef58ba1018879f9ba777b9f287675107baf7d92409ac9d908d"}, + {file = "pyzstd-0.15.7-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:98b8f16815eac222f6092e27c65f2811e7ad2300661f72224f02b28ec361baae"}, + {file = "pyzstd-0.15.7-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b1034413b31fa2f74213e19c109dcf2d4e5aac49336efc0640c7fbea9713e0b0"}, + {file = "pyzstd-0.15.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:aed59809b3c5c021c7ae9f380da6f0835062cfd91a81a3125e7d4eb4e394fc15"}, + {file = "pyzstd-0.15.7-cp311-cp311-win32.whl", hash = "sha256:e733ff332afa44737b3d1e433a023b8f588881e5d2ae7698293560437aaa1879"}, + {file = "pyzstd-0.15.7-cp311-cp311-win_amd64.whl", hash = "sha256:2129572d541e86561d4dc0f6be10788de6c19ff25a8ed83231f1825b05154cf2"}, + {file = "pyzstd-0.15.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e4d0abeaed6e6162d4506e7cc3e9df40f5589d9946922635bdf03821ff969380"}, + {file = "pyzstd-0.15.7-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d4dc50cc7d4a8763454ba3e12fbf558bcf7b0764eb7591fb5dfe9ac35b8162d"}, + {file = "pyzstd-0.15.7-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38ca4cc998b93bcc062a1cb01f41761b7ca54cad135cd8dd50074623449d5424"}, + {file = "pyzstd-0.15.7-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9d44e8ac7a788d60589e22cd27e072cf480100c4fa68fab6bcbc5927a162e18"}, + {file = "pyzstd-0.15.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfdddfea962e039f8397a0e892eccf0fc25378ec3eb1ca81fdf2658f20272f0e"}, + {file = "pyzstd-0.15.7-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:492301b5234acc0d04443bdb00bf7a1ad601caf82bc837f8a4c137c7eef8932e"}, + {file = "pyzstd-0.15.7-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8e444c7198e531d236a5791eb6d1045249c93aa1dfd036b8275e9b0f36633c79"}, + {file = "pyzstd-0.15.7-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d3fab381de4e0bf8dfa8e356ee04c0ac18d5b603344cca98c0f6106760e979a8"}, + {file = "pyzstd-0.15.7-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d779c3e8faa92b241e58600f7b2126f3c055d75d3968ed5d856e2c5e2ec847ce"}, + {file = "pyzstd-0.15.7-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:414ec9fff19a5da1ed4c6322129eed2a8b1dd77ce6d55cf2b99013e374368489"}, + {file = "pyzstd-0.15.7-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:2192f5a3b115274a9c68f75ff2c21cfb4006f0e5eff637f856e622871f0e7e26"}, + {file = "pyzstd-0.15.7-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ec9bf97d6959112fe15c04daf1e94451a78a28d2573ef22f1d215db00204db20"}, + {file = "pyzstd-0.15.7-cp36-cp36m-win32.whl", hash = "sha256:9a374e990d365b403723be368a054c086d168c65a8f2fe74bdf5e1344da37a82"}, + {file = "pyzstd-0.15.7-cp36-cp36m-win_amd64.whl", hash = "sha256:933928a57c4445c4039e0dd4c75a9bfcab5bf0b1bb23b4869e340e28bc7aeb1e"}, + {file = "pyzstd-0.15.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:877ccd7ce58737fb672f17681d3ff5e78ab5731e7096662ae7b36305d95eb82c"}, + {file = "pyzstd-0.15.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52461114f78380b7432f9a31b0249933930aa4968507ecc9a27a345a905abac6"}, + {file = "pyzstd-0.15.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d313de63feda18974c406cb05a963b27234aa0ad604561ed435ff726eaca1160"}, + {file = "pyzstd-0.15.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dacf851e2a2cba837dcdf007af07dad7c860f70061e0c39094e500fc70a6e50"}, + {file = "pyzstd-0.15.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30ea45ecd108aea9aec504192a7b18dce34e8dcb48503659a7a598c623d08437"}, + {file = "pyzstd-0.15.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5a2ed163bd9f00c494f70f387803277592bf5788f8a07a67eebda3ad1c11b7d"}, + {file = "pyzstd-0.15.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3a29a44f06ddd3f57a8656326044c57ec05e5162e97ffeed70b376b309c1bfb0"}, + {file = "pyzstd-0.15.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c3a9266cf6038d8af82cc4067f38dd5de84ebb6a152cfc25b9ef0b44c8ce84e9"}, + {file = "pyzstd-0.15.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b4b4cd04b4f02693811015f9356945caffe7c5ded7c897df88d87550778d5c58"}, + {file = "pyzstd-0.15.7-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4483359b6ebaf64ad5381c6f590e7f297d251dd6de019992e9481123c55c790"}, + {file = "pyzstd-0.15.7-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:e25b652b67077b3d37451a7471b8975d478ec87d7f96f8f4673ed2d6b97355df"}, + {file = "pyzstd-0.15.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ac8e5ab21c1d6baa1b2f6778ffa8b4970f5277bfa60c9fedbb03fc483ab21ee7"}, + {file = "pyzstd-0.15.7-cp37-cp37m-win32.whl", hash = "sha256:1c489982b59bce1d7a21dd71204ddae96dd34bcbdb50050cf3e3a1dc18f144d0"}, + {file = "pyzstd-0.15.7-cp37-cp37m-win_amd64.whl", hash = "sha256:92d0370d2b0806aa652d2c1240d6c858a5b2a30baa892dce0f2638260590b038"}, + {file = "pyzstd-0.15.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:758b4b8261032991849fc1652feab2fdc432255a01898e15fe4957f91c49f5a9"}, + {file = "pyzstd-0.15.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9e067a28b7935f1087b77b89f4cff7c84f0673bcf756aa6dbf21a36a32065ef2"}, + {file = "pyzstd-0.15.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5d03b13d32608a72301ee78afac0105b3a14bf63f2a9361c3742b37d85b38d7"}, + {file = "pyzstd-0.15.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ec72c95dc86430d156643a41ebc467677f45907a6dd44c013377c3bbc4e68d0"}, + {file = "pyzstd-0.15.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04eb56c932bf7ad9a22bdfde995c2bb22909ae00218dcb3e174f76375389a339"}, + {file = "pyzstd-0.15.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d4fd161f173c330291f54de5ab8e849e8686ad24c76f45c8045ce7d48aa0c33"}, + {file = "pyzstd-0.15.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d05d0ee19a1a37f995568ce05208b985683681d7f49073618559a44a4a568d44"}, + {file = "pyzstd-0.15.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:07c3863c968eaeab8c4ebd32c3ddf9ca3e5762d77e20da21a3d9a7578bd0b6c4"}, + {file = "pyzstd-0.15.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f4b87bf782306c27e9dc97ae148a72207b5dc018d5ad05768aeda6fbf262be1d"}, + {file = "pyzstd-0.15.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5e5058ec639d754267fbccb51f50f752c1e17e0a9a407c7eb2c3cdce8eb6f571"}, + {file = "pyzstd-0.15.7-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fa29986a7ed07f321878445d10a896a0a3f1a556c39b3d2750091759b0f252e2"}, + {file = "pyzstd-0.15.7-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:12f1d451ba9d1bd4f8e8585d59f09fee6fc6ed978b27dd55c2915a37bfa63dfc"}, + {file = "pyzstd-0.15.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8718cf7d96eae80e01334c5a3e171d698bfbcb0d357a27f5421be0de5a096a47"}, + {file = "pyzstd-0.15.7-cp38-cp38-win32.whl", hash = "sha256:701db75f49f1eca26f07f6b08751c43d5979e9ff39360a40ba165aebccbb2199"}, + {file = "pyzstd-0.15.7-cp38-cp38-win_amd64.whl", hash = "sha256:1e5472aa34e798d3a8ae306521a711e69ed1e3af72970c2f76312c795e547770"}, + {file = "pyzstd-0.15.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d865b3a330bafe0891d8414a87f1a56509baa19980150c3ba75f8b8e966a8655"}, + {file = "pyzstd-0.15.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:718f6cef753f8cc9275f5e790178151a59fae5f8587f53ee6f36e3a939466bd4"}, + {file = "pyzstd-0.15.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d8382fa1e672baf15d5fb3d13e0a1ca0f2b38730eab0611944bb5e0c7df9bc6"}, + {file = "pyzstd-0.15.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e34142d94a8f423687c940fb64031cfe099ca31dee463ecfcc784060d58929ff"}, + {file = "pyzstd-0.15.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:54a7fa73ae22ee477ae3a5e3c6cafba4f1463363929f9e5e9b471f2d2278c649"}, + {file = "pyzstd-0.15.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f60f561ebd5ef2acfa971173ddf7f0987be3489d03aeb57a066f3daaeaa2b50e"}, + {file = "pyzstd-0.15.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5983053242dab7daf36bfea5c246329249f28e71afc2ab8b4dbe8ac3c9287dd"}, + {file = "pyzstd-0.15.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f30cbf469eb11f39dbdca787bf6b3b287898e10202c4371863fa56844b4220f0"}, + {file = "pyzstd-0.15.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:72b0037a683a344c118c51a2cc353de03d1442792a8c1fd9adb64592f5794cd2"}, + {file = "pyzstd-0.15.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:298b24dfe7e94aa7857ab78059948158565a659f900e21645fffd55fc8736a84"}, + {file = "pyzstd-0.15.7-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:110e35df5837e4ca5506760dc6e354104eefb7c3e4cbc9f8a53bb7813778601f"}, + {file = "pyzstd-0.15.7-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:5b6dbd6b01544a82836d32dffa4dc4fa63fed520c24409856372801bc65204a9"}, + {file = "pyzstd-0.15.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34661ecc88dfed442b7be22dbf481f3bc80111bb44b225f4520c73ed380b2424"}, + {file = "pyzstd-0.15.7-cp39-cp39-win32.whl", hash = "sha256:fd134893881bbbb1ede80e1c69a1ce8590018bee627be9b325ae2bdfe42b2e6b"}, + {file = "pyzstd-0.15.7-cp39-cp39-win_amd64.whl", hash = "sha256:b3c9cedaf2f79fdc43940f29c9ff0fe5f135ed1ea9ad8f3be18bd4b77847889d"}, + {file = "pyzstd-0.15.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4460309364de3a6139a6ac337a9bb454101e8280fed834970c3dd04a00d0677e"}, + {file = "pyzstd-0.15.7-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07150e8f018df72c32cbc7958eacae8d18a14064a3b18dda00ef443b12804ad0"}, + {file = "pyzstd-0.15.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443844f59416327abc0074d7d91a1cbeaaca270e79b71cb5acb824c8a6472b9d"}, + {file = "pyzstd-0.15.7-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e17e38ea19c21a65026405e511c3cf9b26fe503c492e6a9db469763818e33c5"}, + {file = "pyzstd-0.15.7-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:86716c3f2c8bc82fd677f0fe1064833daf73148d168249c5fd5d6a8d1c3a6921"}, + {file = "pyzstd-0.15.7-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:8ecd7c61ac4694b89c906d94f465324cb22772c5b54dacc947e45a927cfb5784"}, + {file = "pyzstd-0.15.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:525bbe1db05d8cb657cb793aa994372f84f8fa22a009a67751e3c170f78b8812"}, + {file = "pyzstd-0.15.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee64beaa98c3917fe21262670bc536663ab69cd07ab96c160e01ff30d654a880"}, + {file = "pyzstd-0.15.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b855ce93692c9d598e21e0a28a32776c0ec63749f32125ba885eefbb5d669258"}, + {file = "pyzstd-0.15.7-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f98470a2e8a7c11692deafe586b31bf87f5481d25ceec34fe49319b9c5de6ad1"}, + {file = "pyzstd-0.15.7-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eed9cbe732bdcd8cbf23f33b5d942a2111e91bf0573d1d28d49b626b63b9db52"}, + {file = "pyzstd-0.15.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f6b8443be8d4bd58d2f4d33a41fafddc012214e890d5c3634ba14e048287a982"}, + {file = "pyzstd-0.15.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:71e7c2fe631f06fd2ebc5870640bc0e19cdcd3a26ad2e2a663fe4b5aa2bc3ea2"}, + {file = "pyzstd-0.15.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57317f65d68dc217d6f7e354a63f349a6f08fd25c962e54c99df1520dce87b53"}, + {file = "pyzstd-0.15.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c355d04dac84f9dcaee1cd2fb9df0236afadbc90e6ebf1285376c480523d8b1"}, + {file = "pyzstd-0.15.7-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:97d408496c7f2d263533a1be2798fca13d1ae5eb625f556b3f3412cfd9894e01"}, + {file = "pyzstd-0.15.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7edd705d185b16399ff1143f84dcb34a8e8ec73229ecc187b32d916158541ada"}, + {file = "pyzstd-0.15.7.tar.gz", hash = "sha256:55e503f28f5a9d225ce9d0639e3f5b1801bacace5aea926ec2998e73c5150fe7"}, ] [[package]] name = "requests" -version = "2.28.2" +version = "2.30.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=3.7, <4" +python-versions = ">=3.7" files = [ - {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, - {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, + {file = "requests-2.30.0-py3-none-any.whl", hash = "sha256:10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"}, + {file = "requests-2.30.0.tar.gz", hash = "sha256:239d7d4458afcb28a692cdd298d87542235f4ca8d36d03a15bfc128a6559a2f4"}, ] [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] @@ -1506,14 +1492,14 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rich" -version = "13.3.3" +version = "13.3.5" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" category = "dev" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.3.3-py3-none-any.whl", hash = "sha256:540c7d6d26a1178e8e8b37e9ba44573a3cd1464ff6348b99ee7061b95d1c6333"}, - {file = "rich-13.3.3.tar.gz", hash = "sha256:dc84400a9d842b3a9c5ff74addd8eb798d155f36c1c91303888e0a66850d2a15"}, + {file = "rich-13.3.5-py3-none-any.whl", hash = "sha256:69cdf53799e63f38b95b9bf9c875f8c90e78dd62b2f00c13a911c7a3b9fa4704"}, + {file = "rich-13.3.5.tar.gz", hash = "sha256:2d11b9b8dd03868f09b4fffadc84a6a8cda574e40dc90821bd845720ebb8e89c"}, ] [package.dependencies] @@ -1526,14 +1512,14 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "setuptools" -version = "67.6.1" +version = "67.7.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.6.1-py3-none-any.whl", hash = "sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"}, - {file = "setuptools-67.6.1.tar.gz", hash = "sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"}, + {file = "setuptools-67.7.2-py3-none-any.whl", hash = "sha256:23aaf86b85ca52ceb801d32703f12d77517b2556af839621c641fca11287952b"}, + {file = "setuptools-67.7.2.tar.gz", hash = "sha256:f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990"}, ] [package.extras] @@ -1692,20 +1678,21 @@ files = [ [[package]] name = "urllib3" -version = "1.26.15" +version = "2.0.2" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7" files = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, + {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, + {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wrapt" @@ -1811,4 +1798,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "6c126f7be62e78f57c63a8ca1a353dc5343cf1936d1ef66f74e34fca5e971017" +content-hash = "baece0420cd15a1bcba211fde83b06d6ecadf643d7828734304883cf7f53f2c0" diff --git a/pyproject.toml b/pyproject.toml index ddb95d8..c57b709 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "caracara" -version = "0.2.3" +version = "0.3.0" description = "The CrowdStrike Falcon Developer Toolkit" authors = [ "CrowdStrike " ] readme = "README.md" @@ -8,7 +8,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.7" py7zr = "^0.20" -crowdstrike-falconpy = "^1.2.9" +crowdstrike-falconpy = "^1.2.15" [tool.poetry.dev-dependencies] bandit = "^1.7.5" @@ -85,3 +85,6 @@ describe-queued-sessions = "examples.rtr.describe_queued_sessions:describe_queue describe-scripts = "examples.rtr.describe_scripts:describe_scripts" download-event-log = "examples.rtr.download_event_log:download_event_log" queue-command = "examples.rtr.queue_command:queue_command" +# Users +describe-roles = "examples.users.describe_roles:describe_roles" +describe-users = "examples.users.describe_users:describe_users"