From 62bd8c6aa96275ff2168631dbb10b1b7de18e845 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 16 May 2023 09:49:38 +0200 Subject: [PATCH 01/20] feat(app): use crac service --- .../api/amalthea_patches/init_containers.py | 2 +- renku_notebooks/api/classes/crac.py | 103 +++++++++++ renku_notebooks/api/classes/server.py | 38 ++--- renku_notebooks/api/notebooks.py | 56 ++++-- renku_notebooks/api/schemas/server_options.py | 160 ++++++++++++------ renku_notebooks/api/schemas/servers_post.py | 2 + renku_notebooks/config/__init__.py | 2 + renku_notebooks/errors/user.py | 11 ++ tests/unit/test_server_class/test_manifest.py | 16 +- 9 files changed, 289 insertions(+), 101 deletions(-) create mode 100644 renku_notebooks/api/classes/crac.py diff --git a/renku_notebooks/api/amalthea_patches/init_containers.py b/renku_notebooks/api/amalthea_patches/init_containers.py index 68dbabe28..10b205e2e 100644 --- a/renku_notebooks/api/amalthea_patches/init_containers.py +++ b/renku_notebooks/api/amalthea_patches/init_containers.py @@ -26,7 +26,7 @@ def git_clone(server: "UserServer"): }, { "name": "GIT_CLONE_LFS_AUTO_FETCH", - "value": "1" if server.server_options["lfs_auto_fetch"] else "0", + "value": "1" if server.server_options.lfs_auto_fetch else "0", }, {"name": "GIT_CLONE_COMMIT_SHA", "value": server.commit_sha}, {"name": "GIT_CLONE_BRANCH", "value": server.branch}, diff --git a/renku_notebooks/api/classes/crac.py b/renku_notebooks/api/classes/crac.py new file mode 100644 index 000000000..fc1bf667f --- /dev/null +++ b/renku_notebooks/api/classes/crac.py @@ -0,0 +1,103 @@ +from dataclasses import dataclass +from typing import Any, Dict, Optional + +import requests + +from ...errors.intermittent import IntermittentError +from ...errors.programming import ConfigurationError +from ...errors.user import InvalidComputeResourceError +from ..schemas.server_options import ServerOptions +from .user import User + + +@dataclass +class CRACValidator: + """Calls to the CRAC service to validate resource requests.""" + + crac_url: str + + def __post_init__(self): + self.crac_url = self.crac_url.rstrip("/") + + def validate_class_storage( + self, + user: User, + class_id: int, + storage: Optional[int] = None, + ) -> ServerOptions: + """Ensures that the resource class and storage requested is valid.""" + headers = None + if user.access_token is not None: + headers = {"Authorization": f"bearer {user.access_token}"} + res = requests.get(self.crac_url + f"/classes/{class_id}", headers=headers) + if res.status_code != 200: + raise InvalidComputeResourceError( + message="The requested resource class does not exist or you do not " + "have the required permissions to access it." + ) + res_class = res.json() + if storage is None: + storage = res_class.get("default_storage", 1) + if storage < 1: + raise InvalidComputeResourceError( + message="Storage requests have to be greater than or equal to 1GB." + ) + if storage > res_class.get("max_storage"): + raise InvalidComputeResourceError( + message="The requested storage surpasses the maximum value allowed." + ) + # Memory and disk space in CRAC are assumed to be in gigabytes whereas + # the notebook service assumes that if a plain number is used then it is bytes. + options = ServerOptions.from_resource_class(res_class) + options.storage = storage * 1000000000 + return options + + def get_default_class(self) -> Dict[str, Any]: + res = requests.get(self.crac_url + "/resource_pools") + if res.status_code != 200: + raise IntermittentError( + "The CRAC sent an unexpected response, please try again later." + ) + pools = res.json() + default_pools = [p for p in pools if p.get("default", False)] + if len(default_pools) < 1: + raise ConfigurationError("Cannot find the default resource pool.") + default_pool = default_pools[0] + default_classes = [ + cls for cls in default_pool.get("classes", []) if cls.get("default", False) + ] + if len(default_classes) < 1: + raise ConfigurationError("Cannot find the default resource class.") + return default_classes[0] + + def find_acceptable_class( + self, user: User, requested_server_options: ServerOptions + ) -> Optional[ServerOptions]: + """Find a resource class that is available to the user that is greater than or equal to + the old-style server options that the user requested.""" + headers = None + if user.access_token is not None: + headers = {"Authorization": f"bearer {user.access_token}"} + res = requests.get(self.crac_url + "/resource_pools", headers=headers) + if res.status_code != 200: + raise IntermittentError( + message="The compute resource access control service sent " + "an unexpected response, please try again later", + ) + resource_pools = res.json() + # Difference and best candidate in the case that the resource class will be + # greater than or equal to the request + best_larger_or_equal_diff = None + best_larger_or_equal_class = None + zero_diff = ServerOptions(cpu=0, memory=0, gpu=0, storage=0) + for resource_pool in resource_pools: + for resource_class in resource_pool["classes"]: + resource_class_mdl = ServerOptions.from_resource_class(resource_class) + diff = resource_class_mdl - requested_server_options + if diff >= zero_diff and ( + best_larger_or_equal_diff is None + or diff < best_larger_or_equal_diff + ): + best_larger_or_equal_diff = diff + best_larger_or_equal_class = resource_class + return best_larger_or_equal_class diff --git a/renku_notebooks/api/classes/server.py b/renku_notebooks/api/classes/server.py index 5c1d90fdc..e923bcedb 100644 --- a/renku_notebooks/api/classes/server.py +++ b/renku_notebooks/api/classes/server.py @@ -21,6 +21,7 @@ from ...errors.user import MissingResourceError from .k8s_client import K8sClient from .cloud_storage import ICloudStorageRequest +from ..schemas.server_options import ServerOptions from .user import RegisteredUser, User from ...util.check_image import ( get_docker_token, @@ -43,7 +44,7 @@ def __init__( commit_sha: str, notebook: Optional[str], # TODO: Is this value actually needed? image: Optional[str], - server_options: Dict[str, Any], + server_options: ServerOptions, environment_variables: Dict[str, str], cloudstorage: List[ICloudStorageRequest], k8s_client: K8sClient, @@ -221,40 +222,21 @@ def _get_registry_secret(self, b64encode=True): return output def _get_session_k8s_resources(self): - cpu_request = float(self.server_options["cpu_request"]) - mem = self.server_options["mem_request"] - gpu_req = self.server_options.get("gpu_request", {}) - gpu = {"nvidia.com/gpu": str(gpu_req)} if gpu_req else None + cpu_request = float(self.server_options.cpu) + mem = self.server_options.memory + gpu_req = self.server_options.gpu + gpu = {"nvidia.com/gpu": str(gpu_req)} if gpu_req > 0 else None resources = { "requests": {"memory": mem, "cpu": cpu_request}, "limits": {"memory": mem}, } if config.sessions.enforce_cpu_limits == "lax": - if "cpu_request" in config.server_options.ui_choices: - resources["limits"]["cpu"] = max( - config.server_options.ui_choices["cpu_request"]["options"] - ) - else: - resources["limits"]["cpu"] = cpu_request + resources["limits"]["cpu"] = 2 * cpu_request elif config.sessions.enforce_cpu_limits == "strict": resources["limits"]["cpu"] = cpu_request if gpu: resources["requests"] = {**resources["requests"], **gpu} resources["limits"] = {**resources["limits"], **gpu} - if "ephemeral-storage" in self.server_options.keys(): - ephemeral_storage = ( - self.server_options["ephemeral-storage"] - if config.sessions.storage.pvs_enabled - else self.server_options["disk_request"] - ) - resources["requests"] = { - **resources["requests"], - "ephemeral-storage": ephemeral_storage, - } - resources["limits"] = { - **resources["limits"], - "ephemeral-storage": ephemeral_storage, - } return resources def _get_session_manifest(self): @@ -290,7 +272,7 @@ def _get_session_manifest(self): # Storage if config.sessions.storage.pvs_enabled: storage = { - "size": self.server_options["disk_request"], + "size": self.server_options.storage, "pvc": { "enabled": True, "storageClassName": config.sessions.storage.pvs_storage_class, @@ -299,7 +281,7 @@ def _get_session_manifest(self): } else: storage = { - "size": self.server_options["disk_request"] + "size": self.server_options.storage if config.sessions.storage.use_empty_dir_size_limit else "", "pvc": { @@ -348,7 +330,7 @@ def _get_session_manifest(self): ), }, "jupyterServer": { - "defaultUrl": self.server_options["defaultUrl"], + "defaultUrl": self.server_options.default_url, "image": self.verified_image, "rootDir": self.image_workdir.rstrip("/") + f"/work/{self.gl_project.path}/", diff --git a/renku_notebooks/api/notebooks.py b/renku_notebooks/api/notebooks.py index cf5b8b6c7..6b9890034 100644 --- a/renku_notebooks/api/notebooks.py +++ b/renku_notebooks/api/notebooks.py @@ -16,29 +16,26 @@ # See the License for the specific language governing permissions and # limitations under the License. """Notebooks service API.""" -from flask import Blueprint, current_app, make_response, jsonify +from flask import Blueprint, current_app, jsonify, make_response from marshmallow import fields, validate from webargs.flaskparser import use_args -from renku_notebooks.util.check_image import ( - get_docker_token, - image_exists, - parse_image_name, -) - from ..config import config +from ..errors.user import ImageParseError, MissingResourceError, UserInputError +from ..util.check_image import get_docker_token, image_exists, parse_image_name +from ..util.kubernetes_ import make_server_name from .auth import authenticated +from .classes.crac import CRACValidator from .classes.server import UserServer from .classes.server_manifest import UserServerManifest from .classes.storage import AutosaveBranch -from ..errors.user import ImageParseError, MissingResourceError, UserInputError from .schemas.autosave import AutosavesList from .schemas.config_server_options import ServerOptionsEndpointResponse from .schemas.logs import ServerLogs +from .schemas.server_options import ServerOptions from .schemas.servers_get import NotebookResponse, ServersGetRequest, ServersGetResponse from .schemas.servers_post import LaunchNotebookRequest from .schemas.version import VersionResponse -from ..util.kubernetes_ import make_server_name bp = Blueprint("notebooks_blueprint", __name__, url_prefix=config.service_prefix) @@ -169,6 +166,8 @@ def launch_notebook( notebook, image, server_options, + resource_class_id, + storage, environment_variables, cloudstorage=None, ): @@ -201,6 +200,7 @@ def launch_notebook( tags: - servers """ + crac_validator = CRACValidator(config.crac_url) server_name = make_server_name( user.safe_username, namespace, project, branch, commit_sha ) @@ -208,6 +208,42 @@ def launch_notebook( if server: return NotebookResponse().dump(UserServerManifest(server)), 200 + parsed_server_options = None + if resource_class_id is not None: + # A resource class ID was passed in, validate with CRAC servuce + parsed_server_options = crac_validator.validate_class_storage( + user, resource_class_id, storage + ) + elif server_options > ServerOptions(0, 0, 0, 0): + # The old style API was used, try to find a matching class from the CRAC service + parsed_server_options = crac_validator.find_acceptable_class( + user, server_options + ) + if parsed_server_options is None: + raise UserInputError( + message="Cannot find suitable server options based on your request and " + "the available resource classes.", + detail="You are receiving this error because you are using the old API for " + "selecting resources. Updating to the new API which includes specifying only " + "a specific resource class ID and storage is preferred and more convenient.", + ) + else: + # No resource class ID specified or old-style server options, use defaults from CRAC + default_resource_class = crac_validator.get_default_class() + max_storage_gb = default_resource_class.get("max_storage", 0) + if storage is not None and storage > max_storage_gb: + raise UserInputError( + "The requested storage amount is higher than the " + f"allowable maximum for the default resource class of {max_storage_gb}GB." + ) + if storage is None: + storage = default_resource_class.get("default_storage") + parsed_server_options = ServerOptions.from_resource_class( + default_resource_class + ) + # ServerOptions stores memory and storage in bytes, but storage in request is in GB + parsed_server_options.storage = storage * 1000000000 + server = UserServer( user, namespace, @@ -216,7 +252,7 @@ def launch_notebook( commit_sha, notebook, image, - server_options, + parsed_server_options, environment_variables, cloudstorage or [], config.k8s.client, diff --git a/renku_notebooks/api/schemas/server_options.py b/renku_notebooks/api/schemas/server_options.py index 534c5cc14..91effff7e 100644 --- a/renku_notebooks/api/schemas/server_options.py +++ b/renku_notebooks/api/schemas/server_options.py @@ -1,39 +1,93 @@ -from marshmallow import Schema, ValidationError, fields +from dataclasses import dataclass +from typing import Optional, Callable + +from marshmallow import Schema, fields, post_load from ...config import config from .custom_fields import ByteSizeField, CpuField, GpuField -def get_validator(field_name, server_options_ui, server_options_defaults): - def _validate(value): - if field_name in server_options_ui: - if server_options_ui[field_name].get("allow_any_value", False): - return True - elif "value_range" in server_options_ui[field_name]: - within_range = ( - value >= server_options_ui[field_name]["value_range"]["min"] - and value <= server_options_ui[field_name]["value_range"]["max"] - ) - if not within_range: - raise ValidationError( - f"Provided {field_name} value not within allowed range of " - f"{server_options_ui[field_name]['value_range']['min']} and " - f"{server_options_ui[field_name]['value_range']['max']}." - ) - else: - if value not in server_options_ui[field_name]["options"]: - raise ValidationError( - f"Provided {field_name} value is not in the allowed options " - f"{server_options_ui[field_name]['options']}" - ) - else: - if value != server_options_defaults[field_name]: - raise ValidationError( - f"Provided {field_name} value does not match the allowed value of " - f"{server_options_defaults[field_name]}" - ) - - return _validate +@dataclass +class ServerOptions: + """Server options. Memory and storage are in bytes.""" + + cpu: float + memory: int + gpu: int + storage: Optional[int] = None + default_url: Optional[str] = None + lfs_auto_fetch: bool = False + gigabytes: bool = False + + def __post_init__(self): + if self.default_url is None: + self.default_url = config.server_options.defaults["defaultUrl"] + if self.lfs_auto_fetch is None: + self.lfs_auto_fetch = config.server_options.defaults["lfs_auto_fetch"] + + def __compare( + self, + other: "ServerOptions", + compare_func: Callable[["ServerOptions", "ServerOptions"], bool], + ) -> bool: + results = [ + compare_func(self.cpu, other.cpu), + compare_func(self.memory, other.memory), + compare_func(self.gpu, other.gpu), + ] + self_storage = 0 if self.storage is None else self.storage + other_storage = 0 if other.storage is None else other.storage + results.append(compare_func(self_storage, other_storage)) + return all(results) + + def to_gigabytes(self) -> "ServerOptions": + if self.gigabytes: + return self + return ServerOptions( + cpu=self.cpu, + gpu=self.gpu, + default_url=self.default_url, + lfs_auto_fetch=self.lfs_auto_fetch, + memory=self.memory / 1000000000, + storage=self.storage / 1000000000 if self.storage is not None else None, + gigabytes=True, + ) + + def __sub__(self, other: "ServerOptions") -> "ServerOptions": + self_storage = 0 if self.storage is None else self.storage + other_storage = 0 if other.storage is None else other.storage + return ServerOptions( + cpu=self.cpu - other.cpu, + memoory=self.memory - other.memory, + gpu=self.gpu - other.gpu, + storage=self_storage - other_storage, + ) + + def __ge__(self, other: "ServerOptions"): + return self.__compare(other, lambda x, y: x >= y) + + def __gt__(self, other: "ServerOptions"): + return self.__compare(other, lambda x, y: x > y) + + def __lt__(self, other: "ServerOptions"): + return self.__compare(other, lambda x, y: x < y) + + def __le__(self, other: "ServerOptions"): + return self.__compare(other, lambda x, y: x <= y) + + @classmethod + def from_resource_class(cls, data: dict) -> "ServerOptions": + """Convert a CRAC resource class to server options. CRAC users GB for storage and memory + whereas the notebook service uses bytes so we convert to bytes here.""" + storage = data.get("storage") + if storage is not None: + storage = storage * 1000000000 + return cls( + cpu=data["cpu"], + memory=data["memory"] * 1000000000, + gpu=data["gpu"], + storage=storage, + ) class LaunchNotebookRequestServerOptions(Schema): @@ -41,42 +95,38 @@ class LaunchNotebookRequestServerOptions(Schema): required=False, missing=config.server_options.defaults["defaultUrl"], ) + # NOTE: The old-style API server options are only used to then find suitable + # resource class form the crac service. "Suitable" in this case is any resource + # class where all its parameters are greather than or equal to the request. So + # by assigning a value of 0 to a server option we are ensuring that CRAC will + # be able to easily find a match. cpu_request = CpuField( required=False, - missing=config.server_options.defaults["cpu_request"], - validate=get_validator( - "cpu_request", - config.server_options.ui_choices, - config.server_options.defaults, - ), + missing=0, ) mem_request = ByteSizeField( required=False, - missing=config.server_options.defaults["mem_request"], - validate=get_validator( - "mem_request", - config.server_options.ui_choices, - config.server_options.defaults, - ), + missing=0, ) disk_request = ByteSizeField( required=False, - missing=config.server_options.defaults["disk_request"], - validate=get_validator( - "disk_request", - config.server_options.ui_choices, - config.server_options.defaults, - ), + missing=0, ) lfs_auto_fetch = fields.Bool( required=False, missing=config.server_options.defaults["lfs_auto_fetch"] ) gpu_request = GpuField( required=False, - missing=config.server_options.defaults["gpu_request"], - validate=get_validator( - "gpu_request", - config.server_options.ui_choices, - config.server_options.defaults, - ), + missing=0, ) + + @post_load + def make_dataclass(slef, data, **kwargs): + return ServerOptions( + cpu=data["cpu_request"], + gpu=data["gpu_request"], + memory=data["mem_request"], + default_url=data["defaultUrl"], + lfs_auto_fetch=data["lfs_auto_fetch"], + storage=data["disk_request"], + ) diff --git a/renku_notebooks/api/schemas/servers_post.py b/renku_notebooks/api/schemas/servers_post.py index 1b258c943..6b6cfe50e 100644 --- a/renku_notebooks/api/schemas/servers_post.py +++ b/renku_notebooks/api/schemas/servers_post.py @@ -24,6 +24,8 @@ class LaunchNotebookRequestWithoutS3(Schema): data_key="serverOptions", required=False, ) + resource_class_id = fields.Int(required=False, load_default=None) + storage = fields.Int(required=False, load_default=1) environment_variables = fields.Dict( keys=fields.Str(), values=fields.Str(), load_default=dict() ) diff --git a/renku_notebooks/config/__init__.py b/renku_notebooks/config/__init__.py index 29c0c5460..fc16cfc41 100644 --- a/renku_notebooks/config/__init__.py +++ b/renku_notebooks/config/__init__.py @@ -32,6 +32,7 @@ class _NotebooksConfig: service_prefix: str = "/notebooks" version: str = "0.0.0" keycloak_realm: str = "Renku" + crac_url: str = "http://renku-crac" def __post_init__(self): self.anonymous_sessions_enabled = _parse_str_as_bool( @@ -203,6 +204,7 @@ def get_config(default_config: str) -> _NotebooksConfig: service_prefix = /notebooks version = 0.0.0 keycloak_realm = Renku +crac_url = http://renku-crac """ config = get_config(default_config) diff --git a/renku_notebooks/errors/user.py b/renku_notebooks/errors/user.py index 91342f2ad..5a1bcdcca 100644 --- a/renku_notebooks/errors/user.py +++ b/renku_notebooks/errors/user.py @@ -76,3 +76,14 @@ class OverriddenEnvironmentVariableError(UserInputError): message: str code: int = UserInputError.code + 4 + + +@dataclass +class InvalidComputeResourceError(UserInputError): + """Raised when invalid server options are requested or when the user has not access + to a resource class.""" + + message: str = ( + "The specified server options or resources are invalid or cannot be accessed." + ) + code: int = UserInputError.code + 5 diff --git a/tests/unit/test_server_class/test_manifest.py b/tests/unit/test_server_class/test_manifest.py index fe1c6540a..663f94593 100644 --- a/tests/unit/test_server_class/test_manifest.py +++ b/tests/unit/test_server_class/test_manifest.py @@ -4,6 +4,7 @@ from renku_notebooks.api.classes.k8s_client import K8sClient from renku_notebooks.api.classes.server import UserServer +from renku_notebooks.api.schemas.server_options import ServerOptions from renku_notebooks.errors.programming import DuplicateEnvironmentVariableError from renku_notebooks.errors.user import OverriddenEnvironmentVariableError @@ -11,13 +12,14 @@ "namespace": "test-namespace", "project": "test-project", "image": None, - "server_options": { - "lfs_auto_fetch": 0, - "defaultUrl": "/lab", - "cpu_request": "100", - "mem_request": "100", - "disk_request": "100", - }, + "server_options": ServerOptions( + lfs_auto_fetch=0, + default_url="/lab", + cpu=100, + memory=100, + storage=100, + gpu=0, + ), "branch": "master", "commit_sha": "abcdefg123456789", "notebook": "", From 40a568c195f8a7f609b5e79fb99027c0fd73253a Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 16 May 2023 15:08:58 +0200 Subject: [PATCH 02/20] squashme: switch to debian for faster builds --- Dockerfile | 38 +++++++++++++++------------- git_services/Dockerfile.init | 41 +++++++++++++++++-------------- git_services/Dockerfile.sidecar | 41 +++++++++++++++++-------------- renku_notebooks/config/dynamic.py | 6 ++--- 4 files changed, 68 insertions(+), 58 deletions(-) diff --git a/Dockerfile b/Dockerfile index 13e661704..3ea80e123 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,27 @@ -FROM python:3.8-alpine as base -RUN apk add --no-cache curl tini && \ - adduser -u 1000 -g 1000 -D kyaku -WORKDIR /home/kyaku/renku-notebooks - -FROM base as builder -ENV POETRY_HOME=/opt/poetry +FROM python:3.11-bullseye as builder +RUN groupadd --gid 1000 renku && \ + adduser --gid 1000 --uid 1000 renku +USER 1000:1000 +WORKDIR /app +RUN python3 -m pip install --user pipx && \ + python3 -m pipx ensurepath && \ + /home/renku/.local/bin/pipx install poetry +RUN /home/renku/.local/bin/poetry config virtualenvs.in-project true && \ + /home/renku/.local/bin/poetry config virtualenvs.options.no-setuptools true && \ + /home/renku/.local/bin/poetry config virtualenvs.options.no-pip true COPY poetry.lock pyproject.toml ./ -RUN apk add --no-cache alpine-sdk libffi-dev && \ - mkdir -p /opt/poetry && \ - curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.3.2 python3 - && \ - /opt/poetry/bin/poetry config virtualenvs.in-project true && \ - /opt/poetry/bin/poetry config virtualenvs.options.no-setuptools true && \ - /opt/poetry/bin/poetry config virtualenvs.options.no-pip true && \ - /opt/poetry/bin/poetry install --only main --no-root +RUN /home/renku/.local/bin/poetry install --only main --no-root + -FROM base as runtime -LABEL maintainer="info@datascience.ch" +FROM python:3.11-slim-bullseye +RUN apt-get update && apt-get install -y \ + tini curl && \ + rm -rf /var/lib/apt/lists/* && \ + groupadd --gid 1000 renku && \ + adduser --gid 1000 --uid 1000 renku USER 1000:1000 -COPY --from=builder /home/kyaku/renku-notebooks/.venv .venv +WORKDIR /app +COPY --from=builder /app/.venv .venv COPY renku_notebooks renku_notebooks COPY resource_schema_migrations resource_schema_migrations ENTRYPOINT ["tini", "-g", "--"] diff --git a/git_services/Dockerfile.init b/git_services/Dockerfile.init index d34b9d876..526ae1630 100644 --- a/git_services/Dockerfile.init +++ b/git_services/Dockerfile.init @@ -1,23 +1,26 @@ -FROM python:3.9-alpine as base -RUN apk add --no-cache git git-lfs curl tini && \ - adduser jovyan -u1000 -g100 --disabled-password -WORKDIR /git_services - -FROM base as builder -ENV POETRY_HOME=/opt/poetry -COPY pyproject.toml poetry.lock ./ -RUN apk add --no-cache alpine-sdk linux-headers && \ - mkdir -p /opt/poetry && \ - curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.3.2 python3 - && \ - /opt/poetry/bin/poetry config virtualenvs.in-project true && \ - /opt/poetry/bin/poetry config virtualenvs.options.no-setuptools true && \ - /opt/poetry/bin/poetry config virtualenvs.options.no-pip true && \ - /opt/poetry/bin/poetry install --only main --no-root +FROM python:3.10-bullseye as builder +RUN groupadd --gid 1000 renku && \ + adduser --gid 100 --gid 1000 --uid 1000 jovyan +USER 1000:1000 +WORKDIR /app +RUN python3 -m pip install --user pipx && \ + python3 -m pipx ensurepath && \ + /home/jovyan/.local/bin/pipx install poetry && \ + /home/jovyan/.local/bin/pipx install virtualenv && \ + /home/jovyan/.local/bin/virtualenv .env +COPY poetry.lock pyproject.toml ./ +RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ + .env/bin/pip install -r requirements.txt --prefer-binary -FROM base as runtime -LABEL maintainer="Swiss Data Science Center " +FROM python:3.10-slim-bullseye +RUN apt-get update && apt-get install -y \ + tini curl git git-lfs && \ + rm -rf /var/lib/apt/lists/* && \ + groupadd --gid 1000 renku && \ + adduser --gid 100 --gid 1000 --uid 1000 jovyan USER 1000:1000 -COPY --from=builder /git_services ./ +WORKDIR /app +COPY --from=builder /app/.env .env ADD git_services ./git_services ENTRYPOINT ["tini", "-g", "--"] -CMD [".venv/bin/python3", "-m", "git_services.init.clone"] +CMD [".env/bin/python3", "-m", "git_services.init.clone"] diff --git a/git_services/Dockerfile.sidecar b/git_services/Dockerfile.sidecar index 6138b395d..97130d92f 100644 --- a/git_services/Dockerfile.sidecar +++ b/git_services/Dockerfile.sidecar @@ -1,24 +1,27 @@ -FROM python:3.9-alpine as base -RUN apk add --no-cache git git-lfs curl tini bash && \ - adduser jovyan -u1000 -g100 --disabled-password -WORKDIR /git_services - -FROM base as builder -ENV POETRY_HOME=/opt/poetry -COPY pyproject.toml poetry.lock ./ -RUN apk add --no-cache alpine-sdk linux-headers && \ - mkdir -p /opt/poetry && \ - curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.3.2 python3 - && \ - /opt/poetry/bin/poetry config virtualenvs.in-project true && \ - /opt/poetry/bin/poetry config virtualenvs.options.no-setuptools true && \ - /opt/poetry/bin/poetry config virtualenvs.options.no-pip true && \ - /opt/poetry/bin/poetry install --only main --no-root +FROM python:3.10-bullseye as builder +RUN groupadd --gid 1000 renku && \ + adduser --gid 100 --gid 1000 --uid 1000 jovyan +USER 1000:1000 +WORKDIR /app +RUN python3 -m pip install --user pipx && \ + python3 -m pipx ensurepath && \ + /home/jovyan/.local/bin/pipx install poetry && \ + /home/jovyan/.local/bin/pipx install virtualenv && \ + /home/jovyan/.local/bin/virtualenv .env +COPY poetry.lock pyproject.toml ./ +RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ + .env/bin/pip install -r requirements.txt --prefer-binary -FROM base as runtime -LABEL maintainer="Swiss Data Science Center " +FROM python:3.10-slim-bullseye +RUN apt-get update && apt-get install -y \ + tini curl git git-lfs && \ + rm -rf /var/lib/apt/lists/* && \ + groupadd --gid 1000 renku && \ + adduser --gid 100 --gid 1000 --uid 1000 jovyan USER 1000:1000 -COPY --from=builder /git_services ./ +WORKDIR /app +COPY --from=builder /app/.env .env ADD git_services ./git_services ENV PATH="${PATH}:/git_services/.venv/bin" ENTRYPOINT ["tini", "-g", "--"] -CMD [".venv/bin/gunicorn", "-c", "git_services/sidecar/gunicorn.conf.py"] +CMD [".env/bin/gunicorn", "-c", "git_services/sidecar/gunicorn.conf.py"] diff --git a/renku_notebooks/config/dynamic.py b/renku_notebooks/config/dynamic.py index d26a2f189..93c5e9831 100644 --- a/renku_notebooks/config/dynamic.py +++ b/renku_notebooks/config/dynamic.py @@ -67,7 +67,7 @@ class _GitProxyConfig: port: Union[Text, int] = 8080 health_port: Union[Text, int] = 8081 image: Text = "renku/git-https-proxy:latest" - sentry: _SentryConfig = _SentryConfig(enabled=False) + sentry: _SentryConfig = field(default_factory=lambda: _SentryConfig(enabled=False)) renku_client_id: Text = "renku" def __post_init__(self): @@ -80,7 +80,7 @@ class _GitRpcServerConfig: host: Text = "0.0.0.0" port: Union[Text, int] = 4000 image: Text = "renku/git-rpc-server:latest" - sentry: _SentryConfig = _SentryConfig(enabled=False) + sentry: _SentryConfig = field(default_factory=lambda: _SentryConfig(enabled=False)) def __post_init__(self): self.port = _parse_value_as_numeric(self.port, int) @@ -89,7 +89,7 @@ def __post_init__(self): @dataclass class _GitCloneConfig: image: Text = "renku/git-clone:latest" - sentry: _SentryConfig = _SentryConfig(enabled=False) + sentry: _SentryConfig = field(default_factory=lambda: _SentryConfig(enabled=False)) @dataclass From 2e5418fd1c8423aa572d5492d348623bab671243 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 16 May 2023 16:32:12 +0200 Subject: [PATCH 03/20] squashme: minor fixes --- Dockerfile | 1 - renku_notebooks/__init__.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3ea80e123..cd1a5e133 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,6 @@ RUN /home/renku/.local/bin/poetry config virtualenvs.in-project true && \ COPY poetry.lock pyproject.toml ./ RUN /home/renku/.local/bin/poetry install --only main --no-root - FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ tini curl && \ diff --git a/renku_notebooks/__init__.py b/renku_notebooks/__init__.py index 1791c30e5..56350b4bd 100644 --- a/renku_notebooks/__init__.py +++ b/renku_notebooks/__init__.py @@ -131,7 +131,7 @@ def register_swagger(app): "without getting authorized at all." }, security=[{"oauth2-swagger": ["openid"]}], - servers=[{"url": "/api"}], + servers=[{"url": "/api"}, {"url": "/ui-server/api"}], ) # Register schemas spec.components.schema("LaunchNotebookRequest", schema=LaunchNotebookRequest) From b29012e566bfa82b7df991d410c8666e3f3eb364 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 16 May 2023 18:20:17 +0200 Subject: [PATCH 04/20] squashme: fix docker builds --- Dockerfile | 21 ++++++++++++--------- git_services/Dockerfile.init | 11 +++++++---- git_services/Dockerfile.sidecar | 13 ++++++++----- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index cd1a5e133..a6c1831cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,30 @@ FROM python:3.11-bullseye as builder RUN groupadd --gid 1000 renku && \ - adduser --gid 1000 --uid 1000 renku + useradd --gid 1000 --uid 1000 --groups 100 --create-home renku && \ + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app RUN python3 -m pip install --user pipx && \ python3 -m pipx ensurepath && \ - /home/renku/.local/bin/pipx install poetry -RUN /home/renku/.local/bin/poetry config virtualenvs.in-project true && \ - /home/renku/.local/bin/poetry config virtualenvs.options.no-setuptools true && \ - /home/renku/.local/bin/poetry config virtualenvs.options.no-pip true + /home/renku/.local/bin/pipx install poetry && \ + python3 -m venv .env COPY poetry.lock pyproject.toml ./ -RUN /home/renku/.local/bin/poetry install --only main --no-root +RUN /home/renku/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ + .env/bin/pip install -r requirements.txt --prefer-binary FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ tini curl && \ rm -rf /var/lib/apt/lists/* && \ groupadd --gid 1000 renku && \ - adduser --gid 1000 --uid 1000 renku + useradd --gid 1000 --uid 1000 --groups 100 --create-home renku && \ + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app -COPY --from=builder /app/.venv .venv +COPY --from=builder /app/.env .env COPY renku_notebooks renku_notebooks COPY resource_schema_migrations resource_schema_migrations ENTRYPOINT ["tini", "-g", "--"] -CMD [".venv/bin/gunicorn", "-b 0.0.0.0:8000", "renku_notebooks.wsgi:app", "-k gevent"] +CMD [".env/bin/gunicorn", "-b 0.0.0.0:8000", "renku_notebooks.wsgi:app", "-k gevent"] diff --git a/git_services/Dockerfile.init b/git_services/Dockerfile.init index 526ae1630..293c5b2a5 100644 --- a/git_services/Dockerfile.init +++ b/git_services/Dockerfile.init @@ -1,13 +1,14 @@ FROM python:3.10-bullseye as builder RUN groupadd --gid 1000 renku && \ - adduser --gid 100 --gid 1000 --uid 1000 jovyan + useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app RUN python3 -m pip install --user pipx && \ python3 -m pipx ensurepath && \ /home/jovyan/.local/bin/pipx install poetry && \ - /home/jovyan/.local/bin/pipx install virtualenv && \ - /home/jovyan/.local/bin/virtualenv .env + python3 -m venv .env COPY poetry.lock pyproject.toml ./ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ .env/bin/pip install -r requirements.txt --prefer-binary @@ -17,7 +18,9 @@ RUN apt-get update && apt-get install -y \ tini curl git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ groupadd --gid 1000 renku && \ - adduser --gid 100 --gid 1000 --uid 1000 jovyan + useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app COPY --from=builder /app/.env .env diff --git a/git_services/Dockerfile.sidecar b/git_services/Dockerfile.sidecar index 97130d92f..83cdd71eb 100644 --- a/git_services/Dockerfile.sidecar +++ b/git_services/Dockerfile.sidecar @@ -1,13 +1,14 @@ FROM python:3.10-bullseye as builder RUN groupadd --gid 1000 renku && \ - adduser --gid 100 --gid 1000 --uid 1000 jovyan + useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app RUN python3 -m pip install --user pipx && \ python3 -m pipx ensurepath && \ /home/jovyan/.local/bin/pipx install poetry && \ - /home/jovyan/.local/bin/pipx install virtualenv && \ - /home/jovyan/.local/bin/virtualenv .env + python3 -m venv .env COPY poetry.lock pyproject.toml ./ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ .env/bin/pip install -r requirements.txt --prefer-binary @@ -17,11 +18,13 @@ RUN apt-get update && apt-get install -y \ tini curl git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ groupadd --gid 1000 renku && \ - adduser --gid 100 --gid 1000 --uid 1000 jovyan + useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app COPY --from=builder /app/.env .env ADD git_services ./git_services -ENV PATH="${PATH}:/git_services/.venv/bin" +ENV PATH="${PATH}:/app/.env/bin" ENTRYPOINT ["tini", "-g", "--"] CMD [".env/bin/gunicorn", "-c", "git_services/sidecar/gunicorn.conf.py"] From 20e2ba80cc4c6acee54939ec66042cc21e868a6d Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 16 May 2023 18:31:41 +0200 Subject: [PATCH 05/20] squashme: remove curl --- Dockerfile | 2 +- git_services/Dockerfile.init | 4 ++-- git_services/Dockerfile.sidecar | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a6c1831cd..f14a5082c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ RUN /home/renku/.local/bin/poetry export --only main --without-hashes -o require FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ - tini curl && \ + tini && \ rm -rf /var/lib/apt/lists/* && \ groupadd --gid 1000 renku && \ useradd --gid 1000 --uid 1000 --groups 100 --create-home renku && \ diff --git a/git_services/Dockerfile.init b/git_services/Dockerfile.init index 293c5b2a5..9ee2f4b4e 100644 --- a/git_services/Dockerfile.init +++ b/git_services/Dockerfile.init @@ -1,6 +1,6 @@ FROM python:3.10-bullseye as builder RUN groupadd --gid 1000 renku && \ - useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan + useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ mkdir -p /app && \ chown -R 1000:1000 /app USER 1000:1000 @@ -15,7 +15,7 @@ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requir FROM python:3.10-slim-bullseye RUN apt-get update && apt-get install -y \ - tini curl git git-lfs && \ + tini git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ groupadd --gid 1000 renku && \ useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ diff --git a/git_services/Dockerfile.sidecar b/git_services/Dockerfile.sidecar index 83cdd71eb..6467a2431 100644 --- a/git_services/Dockerfile.sidecar +++ b/git_services/Dockerfile.sidecar @@ -15,7 +15,7 @@ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requir FROM python:3.10-slim-bullseye RUN apt-get update && apt-get install -y \ - tini curl git git-lfs && \ + tini git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ groupadd --gid 1000 renku && \ useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ From a13623baec5f1e813ad8eaa877263a4271b0dcf0 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Thu, 25 May 2023 13:36:51 -0400 Subject: [PATCH 06/20] squashme: fix tests --- .github/workflows/integration-tests.yml | 17 -- Dockerfile | 8 +- Dockerfile.tests | 61 +++--- git_services/Dockerfile.init | 8 +- git_services/Dockerfile.sidecar | 10 +- .../templates/statefulset.yaml | 2 + .../renku-notebooks/templates/test.yaml | 8 +- helm-chart/renku-notebooks/values.schema.json | 172 +-------------- helm-chart/renku-notebooks/values.yaml | 43 +--- renku_notebooks/api/classes/crac.py | 27 ++- renku_notebooks/api/classes/server.py | 2 +- .../api/classes/server_manifest.py | 5 +- renku_notebooks/api/notebooks.py | 26 ++- .../api/schemas/config_server_options.py | 67 ------ renku_notebooks/api/schemas/custom_fields.py | 2 +- renku_notebooks/api/schemas/server_options.py | 67 +++--- renku_notebooks/api/schemas/servers_post.py | 14 +- renku_notebooks/config/__init__.py | 2 + renku_notebooks/config/dynamic.py | 2 +- renku_notebooks/util/server_options.py | 34 --- tests/integration/test_server_options.py | 199 ------------------ tests/unit/dummy_server_defaults.json | 6 +- tests/unit/dummy_server_options.json | 27 --- tests/unit/test_custom_fields.py | 7 +- tests/unit/test_server_options.py | 46 ++++ 25 files changed, 216 insertions(+), 646 deletions(-) delete mode 100644 renku_notebooks/util/server_options.py delete mode 100644 tests/integration/test_server_options.py create mode 100644 tests/unit/test_server_options.py diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index ddbb9383b..c23526c0a 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -77,24 +77,7 @@ jobs: tlsSecret: dummy-tls-secret serverDefaults: defaultUrl: /lab - cpu_request: 0.1 - mem_request: 0.5G - disk_request: 1G - gpu_request: 0 lfs_auto_fetch: false - serverOptions: - cpu_request: - order: 1 - displayName: Number of CPUs - type: enum - default: 0.1 - options: [0.1, 1.0] - mem_request: - order: 2 - displayName: Amount of Memory - type: enum - default: 0.5G - options: [0.5G, 2G] tests: sessionTypes: - ${{ matrix.session-type }} diff --git a/Dockerfile b/Dockerfile index f14a5082c..5fc87976b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,10 +8,10 @@ WORKDIR /app RUN python3 -m pip install --user pipx && \ python3 -m pipx ensurepath && \ /home/renku/.local/bin/pipx install poetry && \ - python3 -m venv .env + python3 -m venv .venv COPY poetry.lock pyproject.toml ./ RUN /home/renku/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ - .env/bin/pip install -r requirements.txt --prefer-binary + .venv/bin/pip install -r requirements.txt --prefer-binary FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ @@ -23,8 +23,8 @@ RUN apt-get update && apt-get install -y \ chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app -COPY --from=builder /app/.env .env +COPY --from=builder /app/.venv .venv COPY renku_notebooks renku_notebooks COPY resource_schema_migrations resource_schema_migrations ENTRYPOINT ["tini", "-g", "--"] -CMD [".env/bin/gunicorn", "-b 0.0.0.0:8000", "renku_notebooks.wsgi:app", "-k gevent"] +CMD [".venv/bin/gunicorn", "-b 0.0.0.0:8000", "renku_notebooks.wsgi:app", "-k gevent"] diff --git a/Dockerfile.tests b/Dockerfile.tests index 8b756358c..97df99400 100644 --- a/Dockerfile.tests +++ b/Dockerfile.tests @@ -1,37 +1,34 @@ -FROM python:3.8-slim - -LABEL maintainer="info@datascience.ch" - -RUN pip install --no-cache-dir --disable-pip-version-check -U pip poetry && \ - apt-get update && \ - apt-get install -y git && \ - curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && \ - apt-get install git-lfs && \ - git lfs install && \ - apt-get clean && \ +FROM python:3.10-bullseye as builder +RUN groupadd --gid 1000 renku && \ + useradd --gid 1000 --uid 1000 --groups 100 --create-home renku && \ + mkdir -p /app && \ + chown -R 1000:1000 /app +USER 1000:1000 +WORKDIR /app +RUN python3 -m pip install --user pipx && \ + python3 -m pipx ensurepath && \ + /home/renku/.local/bin/pipx install poetry && \ + python3 -m venv .venv +COPY poetry.lock pyproject.toml ./ +RUN /home/renku/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ + .venv/bin/pip install -r requirements.txt --prefer-binary +RUN /home/renku/.local/bin/poetry export --with dev --without-hashes -o requirements_dev.txt && \ + .venv/bin/pip install -r requirements_dev.txt --prefer-binary && \ + .venv/bin/pip install renku + +FROM python:3.10-slim-bullseye +RUN apt-get update && apt-get install -y \ + tini git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ - groupadd -g 1000 kyaku && \ - useradd -u 1000 -g kyaku -m kyaku - + groupadd --gid 1000 renku && \ + useradd --gid 1000 --uid 1000 --groups 100 --create-home renku && \ + mkdir -p /app && \ + chown -R 1000:1000 /app USER 1000:1000 - -# Install renku -ENV PATH=$PATH:/home/kyaku/.renku/bin - -RUN mkdir -p /home/kyaku/.renku/bin && \ - virtualenv /home/kyaku/.renku/venv && \ - . /home/kyaku/.renku/venv/bin/activate && \ - pip install --no-cache renku && \ - deactivate && \ - ln -s /home/kyaku/.renku/venv/bin/renku /home/kyaku/.renku/bin/renku - -# Install all packages -COPY pyproject.toml poetry.lock /home/kyaku/renku-notebooks/ -WORKDIR /home/kyaku/renku-notebooks/ -RUN poetry install - +WORKDIR /app +COPY --from=builder /app/.venv .venv +ENV PATH=$PATH:/app/.venv/bin COPY renku_notebooks renku_notebooks COPY resource_schema_migrations resource_schema_migrations COPY tests tests - -CMD ["poetry", "run", "pytest", "tests/integration"] +CMD [".venv/bin/pytest", "-v", "tests/integration"] diff --git a/git_services/Dockerfile.init b/git_services/Dockerfile.init index 9ee2f4b4e..3b7a46953 100644 --- a/git_services/Dockerfile.init +++ b/git_services/Dockerfile.init @@ -8,10 +8,10 @@ WORKDIR /app RUN python3 -m pip install --user pipx && \ python3 -m pipx ensurepath && \ /home/jovyan/.local/bin/pipx install poetry && \ - python3 -m venv .env + python3 -m venv .venv COPY poetry.lock pyproject.toml ./ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ - .env/bin/pip install -r requirements.txt --prefer-binary + .venv/bin/pip install -r requirements.txt --prefer-binary FROM python:3.10-slim-bullseye RUN apt-get update && apt-get install -y \ @@ -23,7 +23,7 @@ RUN apt-get update && apt-get install -y \ chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app -COPY --from=builder /app/.env .env +COPY --from=builder /app/.venv .venv ADD git_services ./git_services ENTRYPOINT ["tini", "-g", "--"] -CMD [".env/bin/python3", "-m", "git_services.init.clone"] +CMD [".venv/bin/python3", "-m", "git_services.init.clone"] diff --git a/git_services/Dockerfile.sidecar b/git_services/Dockerfile.sidecar index 6467a2431..5062bcf84 100644 --- a/git_services/Dockerfile.sidecar +++ b/git_services/Dockerfile.sidecar @@ -8,10 +8,10 @@ WORKDIR /app RUN python3 -m pip install --user pipx && \ python3 -m pipx ensurepath && \ /home/jovyan/.local/bin/pipx install poetry && \ - python3 -m venv .env + python3 -m venv .venv COPY poetry.lock pyproject.toml ./ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ - .env/bin/pip install -r requirements.txt --prefer-binary + .venv/bin/pip install -r requirements.txt --prefer-binary FROM python:3.10-slim-bullseye RUN apt-get update && apt-get install -y \ @@ -23,8 +23,8 @@ RUN apt-get update && apt-get install -y \ chown -R 1000:1000 /app USER 1000:1000 WORKDIR /app -COPY --from=builder /app/.env .env +COPY --from=builder /app/.venv .venv ADD git_services ./git_services -ENV PATH="${PATH}:/app/.env/bin" +ENV PATH="${PATH}:/app/.venv/bin" ENTRYPOINT ["tini", "-g", "--"] -CMD [".env/bin/gunicorn", "-c", "git_services/sidecar/gunicorn.conf.py"] +CMD [".venv/bin/gunicorn", "-c", "git_services/sidecar/gunicorn.conf.py"] diff --git a/helm-chart/renku-notebooks/templates/statefulset.yaml b/helm-chart/renku-notebooks/templates/statefulset.yaml index 8c874fcdf..e20be4f9d 100644 --- a/helm-chart/renku-notebooks/templates/statefulset.yaml +++ b/helm-chart/renku-notebooks/templates/statefulset.yaml @@ -190,6 +190,8 @@ spec: - name: NB_SESSIONS__SSH__HOST_KEY_SECRET value: {{ .Values.ssh.hostKeySecret | quote }} {{- end }} + - name: NB_DUMMY_STORES + value: {{ .Values.dummyStores | quote }} ports: - name: http containerPort: 8000 diff --git a/helm-chart/renku-notebooks/templates/test.yaml b/helm-chart/renku-notebooks/templates/test.yaml index f04fe4020..48d215476 100644 --- a/helm-chart/renku-notebooks/templates/test.yaml +++ b/helm-chart/renku-notebooks/templates/test.yaml @@ -99,6 +99,8 @@ spec: value: {{ $.Values.image.tag | quote }} - name: NB_SESSIONS__GIT_PROXY__RENKU_CLIENT_ID value: renku + - name: NB_DUMMY_STORES + value: "true" - name: NB_SESSIONS__GIT_PROXY__RENKU_CLIENT_SECRET value: {{ $.Values.global.gateway.clientSecret | default "renku-client-secret" | quote }} {{ if $.Values.global.keycloak.realm }} @@ -111,12 +113,6 @@ spec: - name: NB_SESSIONS__SSH__HOST_KEY_SECRET value: {{ $.Values.ssh.hostKeySecret | quote }} {{- end }} - command: - - poetry - - run - - pytest - - -v - - tests/integration volumeMounts: - name: server-options mountPath: /etc/renku-notebooks/server_options diff --git a/helm-chart/renku-notebooks/values.schema.json b/helm-chart/renku-notebooks/values.schema.json index d11575d02..d0796077b 100644 --- a/helm-chart/renku-notebooks/values.schema.json +++ b/helm-chart/renku-notebooks/values.schema.json @@ -1,23 +1,6 @@ { "$schema": "https://json-schema.org/draft-07/schema#", "definitions": { - "informationAmount": { - "type": "string", - "pattern": "^(?:[1-9][0-9]*|[0-9]\\.[0-9]*)[EPTGMK][i]{0,1}$" - }, - "informationAmountOrNull": { - "type": ["string", "null"], - "pattern": "^(?:[1-9][0-9]*|[0-9]\\.[0-9]*)[EPTGMK][i]{0,1}$|^$" - }, - "cpuRequest": { - "type": "number", - "exclusiveMinimum": 0.0, - "multipleOf": 0.001 - }, - "gpuRequest": { - "type": "integer", - "minimum": 0.0 - }, "serverOption": { "type": "object", "properties": { @@ -92,136 +75,6 @@ "additionalProperties": false } ] - }, - "serverOptionGpu": { - "allOf": [ - { - "$ref": "#/definitions/serverOption" - }, - { - "properties": { - "order": true, - "displayName": true, - "type": { - "type": "string", - "pattern": "^enum$" - }, - "default": { "$ref": "#/definitions/gpuRequest" }, - "options": { - "type": "array", - "items": { "$ref": "#/definitions/gpuRequest" }, - "minItems": 1, - "uniqueItems": true - } - }, - "required": [ - "type", - "default", - "options" - ], - "additionalProperties": false - } - ] - }, - "serverOptionCpu": { - "allOf": [ - { - "$ref": "#/definitions/serverOption" - }, - { - "properties": { - "order": true, - "displayName": true, - "type": { - "type": "string", - "pattern": "^enum$" - }, - "default": { "$ref": "#/definitions/cpuRequest" }, - "options": { - "type": "array", - "items": { "$ref": "#/definitions/cpuRequest" }, - "minItems": 1, - "uniqueItems": true - } - }, - "required": [ - "type", - "default", - "options" - ], - "additionalProperties": false - } - ] - }, - "serverOptionMemory": { - "allOf": [ - { - "$ref": "#/definitions/serverOptionEnumStr" - }, - { - "properties": { - "order": true, - "displayName": true, - "type": { - "type": "string", - "pattern": "^enum$" - }, - "default": { "$ref": "#/definitions/informationAmount" }, - "options": { - "type": "array", - "items": { "$ref": "#/definitions/informationAmount" }, - "minItems": 1, - "uniqueItems": true - } - }, - "required": [ - "type", - "default", - "options" - ], - "additionalProperties": false - } - ] - }, - "serverOptionDisk": { - "allOf": [ - { - "properties": { - "order": true, - "displayName": true, - "type": { - "type": "string", - "pattern": "^enum$" - }, - "default": { "$ref": "#/definitions/informationAmountOrNull" }, - "options": { - "type": "array", - "items": { "$ref": "#/definitions/informationAmountOrNull" }, - "minItems": 1, - "uniqueItems": true - }, - "allow_any_value": { - "type": "boolean" - }, - "value_range": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "min": { - "$ref": "#/definitions/informationAmount" - }, - "max": { - "$ref": "#/definitions/informationAmount" - } - } - } - }, - "required": ["type", "default", "options"], - "additionalProperties": false - } - ] } }, "properties": { @@ -229,38 +82,23 @@ "description": "Default values for all server options.", "properties": { "defaultUrl": { "type": "string" }, - "cpu_request": { "$ref": "#/definitions/cpuRequest" }, - "mem_request": { "$ref": "#/definitions/informationAmount" }, - "lfs_auto_fetch": { "type": "boolean" }, - "gpu_request": { "$ref": "#/definitions/gpuRequest" }, - "disk_request": { "$ref": "#/definitions/informationAmountOrNull" } + "lfs_auto_fetch": { "type": "boolean" } }, "required": [ "defaultUrl", - "cpu_request", - "mem_request", - "lfs_auto_fetch", - "gpu_request", - "disk_request" + "lfs_auto_fetch" ], "type": "object", - "additionalProperties": false + "additionalProperties": true }, "serverOptions": { "description": "Options provided to the user in the UI when launching a server.", "properties": { "defaultUrl": { "$ref": "#/definitions/serverOptionEnumStr" }, - "cpu_request": { "$ref": "#/definitions/serverOptionCpu" }, - "mem_request": { "$ref": "#/definitions/serverOptionMemory" }, - "lfs_auto_fetch": { "$ref": "#/definitions/serverOptionBool" }, - "gpu_request": { "$ref": "#/definitions/serverOptionGpu" }, - "disk_request": { "$ref": "#/definitions/serverOptionDisk" } + "lfs_auto_fetch": { "$ref": "#/definitions/serverOptionBool" } }, - "required": [ - "lfs_auto_fetch" - ], "type": "object", - "additionalProperties": false, + "additionalProperties": true, "default": {} } }, diff --git a/helm-chart/renku-notebooks/values.yaml b/helm-chart/renku-notebooks/values.yaml index 9b672aab4..b6cb4d719 100644 --- a/helm-chart/renku-notebooks/values.yaml +++ b/helm-chart/renku-notebooks/values.yaml @@ -179,39 +179,8 @@ serverOptions: default: /lab ## add /rstudio to the list for R projects options: [/lab] - cpu_request: - order: 2 - displayName: Number of CPUs - type: enum - default: 0.5 - options: [0.5, 1.0] - mem_request: - order: 3 - displayName: Amount of Memory - type: enum - default: 1G - options: [1G, 2G] - disk_request: - order: 4 - displayName: Amount of Storage - type: enum - default: "1G" - options: ["1G", "10G"] - ## set allow_any_value to true to not enforce value checks - ## arbitrary PV sizes - # allow_any_value: true - # value_range: - # type: bytes - # min: "1G" - # max: "100G" - gpu_request: - order: 5 - displayName: Number of GPUs - type: enum - default: 0 - options: [0] lfs_auto_fetch: - order: 6 + order: 2 displayName: Automatically fetch LFS data type: boolean default: false @@ -224,16 +193,11 @@ serverOptions: ## within the available choices or valid ranges. serverDefaults: defaultUrl: /lab - cpu_request: 0.5 - mem_request: 1G - disk_request: 1G - gpu_request: 0 lfs_auto_fetch: false ## How to enforce CPU limits for sessions, options are "lax", "off" or "strict" ## - "strict" = CPU limit equals cpu request -## - "lax" = CPU limit equals maximum from server_options, if CPU is not in server options then -## CPU limit is set to the CPU request +## - "lax" = CPU limit equals 3x cpu request ## - "off" = no CPU limits at all enforceCPULimits: "off" @@ -367,3 +331,6 @@ ssh: ## - ssh_host_ed25519_key ## - ssh_host_ed25519_key.pub hostKeySecret: + +## Used for testing - should be set to false for production +dummyStores: false diff --git a/renku_notebooks/api/classes/crac.py b/renku_notebooks/api/classes/crac.py index fc1bf667f..1858f0249 100644 --- a/renku_notebooks/api/classes/crac.py +++ b/renku_notebooks/api/classes/crac.py @@ -1,4 +1,4 @@ -from dataclasses import dataclass +from dataclasses import dataclass, field from typing import Any, Dict, Optional import requests @@ -101,3 +101,28 @@ def find_acceptable_class( best_larger_or_equal_diff = diff best_larger_or_equal_class = resource_class return best_larger_or_equal_class + + +@dataclass +class DummyCRACValidator: + options: ServerOptions = field( + default_factory=lambda: ServerOptions(0.5, 1, 0, 1, "/lab", False, True) + ) + + def validate_class_storage(self, *args, **kwargs) -> ServerOptions: + return self.options + + def get_default_class(self) -> Dict[str, Any]: + return { + "name": "resource class", + "cpu": 0.1, + "memory": 1, + "gpu": 0, + "max_storage": 100, + "default_storage": 1, + "id": 1, + "default": True, + } + + def find_acceptable_class(self, *args, **kwargs) -> Optional[ServerOptions]: + return self.options diff --git a/renku_notebooks/api/classes/server.py b/renku_notebooks/api/classes/server.py index e923bcedb..4a826d9dc 100644 --- a/renku_notebooks/api/classes/server.py +++ b/renku_notebooks/api/classes/server.py @@ -231,7 +231,7 @@ def _get_session_k8s_resources(self): "limits": {"memory": mem}, } if config.sessions.enforce_cpu_limits == "lax": - resources["limits"]["cpu"] = 2 * cpu_request + resources["limits"]["cpu"] = 3 * cpu_request elif config.sessions.enforce_cpu_limits == "strict": resources["limits"]["cpu"] = cpu_request if gpu: diff --git a/renku_notebooks/api/classes/server_manifest.py b/renku_notebooks/api/classes/server_manifest.py index 2f5ab94b0..b85fea4ac 100644 --- a/renku_notebooks/api/classes/server_manifest.py +++ b/renku_notebooks/api/classes/server_manifest.py @@ -64,10 +64,7 @@ def server_options(self) -> Dict[str, Any]: for env in patch.get("value", {}).get("env", []): if env.get("name") == "GIT_CLONE_LFS_AUTO_FETCH": server_options["lfs_auto_fetch"] = env.get("value") == "1" - return { - **config.server_options.defaults, - **server_options, - } + return server_options @property def annotations(self) -> Dict[str, str]: diff --git a/renku_notebooks/api/notebooks.py b/renku_notebooks/api/notebooks.py index 6b9890034..a53b505ef 100644 --- a/renku_notebooks/api/notebooks.py +++ b/renku_notebooks/api/notebooks.py @@ -25,7 +25,7 @@ from ..util.check_image import get_docker_token, image_exists, parse_image_name from ..util.kubernetes_ import make_server_name from .auth import authenticated -from .classes.crac import CRACValidator +from .classes.crac import CRACValidator, DummyCRACValidator from .classes.server import UserServer from .classes.server_manifest import UserServerManifest from .classes.storage import AutosaveBranch @@ -165,11 +165,13 @@ def launch_notebook( commit_sha, notebook, image, - server_options, resource_class_id, storage, environment_variables, + default_url, + lfs_auto_fetch, cloudstorage=None, + server_options=None, ): """ Launch a Jupyter server. @@ -201,6 +203,8 @@ def launch_notebook( - servers """ crac_validator = CRACValidator(config.crac_url) + if config.dummy_stores: + crac_validator = DummyCRACValidator() server_name = make_server_name( user.safe_username, namespace, project, branch, commit_sha ) @@ -214,10 +218,18 @@ def launch_notebook( parsed_server_options = crac_validator.validate_class_storage( user, resource_class_id, storage ) - elif server_options > ServerOptions(0, 0, 0, 0): + elif server_options is not None: # The old style API was used, try to find a matching class from the CRAC service + requested_server_options = ServerOptions( + memory=server_options["mem_request"], + storage=server_options["disk_request"], + cpu=server_options["cpu_request"], + gpu=server_options["gpu_request"], + lfs_auto_fetch=server_options["lfs_auto_fetch"], + default_url=server_options["defaultUrl"], + ) parsed_server_options = crac_validator.find_acceptable_class( - user, server_options + user, requested_server_options ) if parsed_server_options is None: raise UserInputError( @@ -244,6 +256,12 @@ def launch_notebook( # ServerOptions stores memory and storage in bytes, but storage in request is in GB parsed_server_options.storage = storage * 1000000000 + if default_url is not None: + parsed_server_options.default_url = default_url + + if lfs_auto_fetch is not None: + parsed_server_options.lfs_auto_fetch = lfs_auto_fetch + server = UserServer( user, namespace, diff --git a/renku_notebooks/api/schemas/config_server_options.py b/renku_notebooks/api/schemas/config_server_options.py index 04b5b6127..f7d07f0f3 100644 --- a/renku_notebooks/api/schemas/config_server_options.py +++ b/renku_notebooks/api/schemas/config_server_options.py @@ -1,7 +1,5 @@ from marshmallow import Schema, fields, validate -from .custom_fields import ByteSizeField, CpuField, GpuField - class BaseServerOptionsChoice(Schema): order = fields.Int(required=True, validate=lambda x: x >= 1) @@ -9,63 +7,6 @@ class BaseServerOptionsChoice(Schema): type = fields.Str(required=True, validate=validate.OneOf(["enum", "boolean"])) -class CpuServerOptionsChoice(BaseServerOptionsChoice): - default = CpuField(required=True) - options = fields.List(CpuField(required=True)) - value_range = fields.Nested( - Schema.from_dict( - { - "min": CpuField(required=True), - "max": CpuField(required=True), - # NOTE: type is unused, left in for backwards compatibility with older Helm charts - "type": fields.Str(required=False), - } - ), - required=False, - ) - allow_any_value = fields.Bool( - required=False, load_default=False, dump_default=False - ) - - -class GpuServerOptionsChoice(BaseServerOptionsChoice): - default = GpuField(required=True) - options = fields.List(GpuField(required=True)) - value_range = fields.Nested( - Schema.from_dict( - { - "min": GpuField(required=True), - "max": GpuField(required=True), - # NOTE: type is unused, left in for backwards compatibility with older Helm charts - "type": fields.Str(required=False), - } - ), - required=False, - ) - allow_any_value = fields.Bool( - required=False, load_default=False, dump_default=False - ) - - -class MemoryServerOptionsChoice(BaseServerOptionsChoice): - default = ByteSizeField(required=True) - options = fields.List(ByteSizeField(required=True)) - value_range = fields.Nested( - Schema.from_dict( - { - "min": ByteSizeField(required=True), - "max": ByteSizeField(required=True), - # NOTE: type is unused, left in for backwards compatibility with older Helm charts - "type": fields.Str(required=False), - } - ), - required=False, - ) - allow_any_value = fields.Bool( - required=False, load_default=False, dump_default=False - ) - - class StringServerOptionsChoice(BaseServerOptionsChoice): default = fields.Str(required=True) options = fields.List(fields.Str(required=True)) @@ -79,22 +20,14 @@ class ServerOptionsChoices(Schema): """Used to deserialize (load) the server options choices from the Helm values file.""" defaultUrl = fields.Nested(StringServerOptionsChoice, required=False) - cpu_request = fields.Nested(CpuServerOptionsChoice, required=False) - mem_request = fields.Nested(MemoryServerOptionsChoice, required=False) - disk_request = fields.Nested(MemoryServerOptionsChoice, required=False) lfs_auto_fetch = fields.Nested(BoolServerOptionsChoice, required=False) - gpu_request = fields.Nested(GpuServerOptionsChoice, required=False) class ServerOptionsDefaults(Schema): """Used to deserialize (load) the server options defaults from the Helm values file.""" defaultUrl = fields.Str(required=True) - cpu_request = CpuField(required=True) - mem_request = ByteSizeField(required=True) - disk_request = ByteSizeField(required=True) lfs_auto_fetch = fields.Bool(required=True) - gpu_request = GpuField(required=True) class CloudStorageServerOption(Schema): diff --git a/renku_notebooks/api/schemas/custom_fields.py b/renku_notebooks/api/schemas/custom_fields.py index 9995cb179..595890bee 100644 --- a/renku_notebooks/api/schemas/custom_fields.py +++ b/renku_notebooks/api/schemas/custom_fields.py @@ -105,7 +105,7 @@ def _deserialize(self, value, attr, data, **kwargs): num = float(num) except ValueError as error: raise ValidationError(f"Cannot convert {num} to float.") from error - return num * bytes_conversion_factor + return round(num * bytes_conversion_factor) class GpuField(fields.Field): diff --git a/renku_notebooks/api/schemas/server_options.py b/renku_notebooks/api/schemas/server_options.py index 91effff7e..db388c26d 100644 --- a/renku_notebooks/api/schemas/server_options.py +++ b/renku_notebooks/api/schemas/server_options.py @@ -1,5 +1,5 @@ from dataclasses import dataclass -from typing import Optional, Callable +from typing import Optional, Callable, Dict, Any from marshmallow import Schema, fields, post_load @@ -24,6 +24,10 @@ def __post_init__(self): self.default_url = config.server_options.defaults["defaultUrl"] if self.lfs_auto_fetch is None: self.lfs_auto_fetch = config.server_options.defaults["lfs_auto_fetch"] + if self.storage is None and self.gigabytes: + self.storage = 1 + elif self.storage is None and not self.gigabytes: + self.storage = 1_000_000_000 def __compare( self, @@ -75,58 +79,71 @@ def __lt__(self, other: "ServerOptions"): def __le__(self, other: "ServerOptions"): return self.__compare(other, lambda x, y: x <= y) + def __eq__(self, other: "ServerOptions"): + numeric_value_equal = self.__compare(other, lambda x, y: x == y) + return ( + numeric_value_equal + and self.default_url == other.default_url + and self.lfs_auto_fetch == other.lfs_auto_fetch + and self.gigabytes == other.gigabytes + ) + @classmethod - def from_resource_class(cls, data: dict) -> "ServerOptions": + def from_resource_class(cls, data: Dict[str, Any]) -> "ServerOptions": """Convert a CRAC resource class to server options. CRAC users GB for storage and memory whereas the notebook service uses bytes so we convert to bytes here.""" - storage = data.get("storage") - if storage is not None: - storage = storage * 1000000000 return cls( cpu=data["cpu"], memory=data["memory"] * 1000000000, gpu=data["gpu"], - storage=storage, + storage=data["default_storage"] * 1000000000, + ) + + @classmethod + def from_request(cls, data: Dict[str, Any]) -> "ServerOptions": + """Convert a server options request dictionary to the model.""" + return ServerOptions( + cpu=data["cpu_request"], + gpu=data["gpu_request"], + memory=data["mem_request"], + default_url=data["defaultUrl"], + lfs_auto_fetch=data["lfs_auto_fetch"], + storage=data["disk_request"], ) class LaunchNotebookRequestServerOptions(Schema): - defaultUrl = fields.Str( - required=False, - missing=config.server_options.defaults["defaultUrl"], - ) - # NOTE: The old-style API server options are only used to then find suitable + """This is the old-style API server options and are only used to find suitable # resource class form the crac service. "Suitable" in this case is any resource # class where all its parameters are greather than or equal to the request. So # by assigning a value of 0 to a server option we are ensuring that CRAC will - # be able to easily find a match. + # be able to easily find a match.""" + + defaultUrl = fields.Str( + required=False, + load_default=config.server_options.defaults["defaultUrl"], + ) cpu_request = CpuField( required=False, - missing=0, + load_default=0, ) mem_request = ByteSizeField( required=False, - missing=0, + load_default=0, ) disk_request = ByteSizeField( required=False, - missing=0, + load_default=1_000_000_000, ) lfs_auto_fetch = fields.Bool( - required=False, missing=config.server_options.defaults["lfs_auto_fetch"] + required=False, + load_default=config.server_options.defaults["lfs_auto_fetch"], ) gpu_request = GpuField( required=False, - missing=0, + load_default=0, ) @post_load def make_dataclass(slef, data, **kwargs): - return ServerOptions( - cpu=data["cpu_request"], - gpu=data["gpu_request"], - memory=data["mem_request"], - default_url=data["defaultUrl"], - lfs_auto_fetch=data["lfs_auto_fetch"], - storage=data["disk_request"], - ) + return ServerOptions.from_request(data) diff --git a/renku_notebooks/api/schemas/servers_post.py b/renku_notebooks/api/schemas/servers_post.py index 6b6cfe50e..aee0dd3d9 100644 --- a/renku_notebooks/api/schemas/servers_post.py +++ b/renku_notebooks/api/schemas/servers_post.py @@ -18,14 +18,24 @@ class LaunchNotebookRequestWithoutS3(Schema): commit_sha = fields.Str(required=True) notebook = fields.Str(load_default=None) image = fields.Str(load_default=None) + # the server options field is honored only if provided + # it will be matched against the closest resource class server_options = fields.Nested( LaunchNotebookRequestServerOptions(), - load_default=config.server_options.defaults, data_key="serverOptions", required=False, ) resource_class_id = fields.Int(required=False, load_default=None) - storage = fields.Int(required=False, load_default=1) + storage = fields.Int( + required=False, load_default=1, + ) + lfs_auto_fetch = fields.Bool( + required=False, load_default=config.server_options.defaults["lfs_auto_fetch"] + ) + default_url = fields.Str( + required=False, + load_default=config.server_options.defaults["defaultUrl"], + ) environment_variables = fields.Dict( keys=fields.Str(), values=fields.Str(), load_default=dict() ) diff --git a/renku_notebooks/config/__init__.py b/renku_notebooks/config/__init__.py index fc16cfc41..3a57d1dae 100644 --- a/renku_notebooks/config/__init__.py +++ b/renku_notebooks/config/__init__.py @@ -33,12 +33,14 @@ class _NotebooksConfig: version: str = "0.0.0" keycloak_realm: str = "Renku" crac_url: str = "http://renku-crac" + dummy_stores: Union[Text, bool] = False def __post_init__(self): self.anonymous_sessions_enabled = _parse_str_as_bool( self.anonymous_sessions_enabled ) self.ssh_enabled = _parse_str_as_bool(self.ssh_enabled) + self.dummy_stores = _parse_str_as_bool(self.dummy_stores) self.session_get_endpoint_annotations = _ServersGetEndpointAnnotations() if not self.k8s.enabled: return diff --git a/renku_notebooks/config/dynamic.py b/renku_notebooks/config/dynamic.py index 93c5e9831..144cbaf7f 100644 --- a/renku_notebooks/config/dynamic.py +++ b/renku_notebooks/config/dynamic.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Callable, Optional, Union, List, Dict, Any, Text +from typing import Callable, Dict, Optional, Union, List, Any, Text import yaml from ..api.schemas.config_server_options import ( diff --git a/renku_notebooks/util/server_options.py b/renku_notebooks/util/server_options.py deleted file mode 100644 index 76389b898..000000000 --- a/renku_notebooks/util/server_options.py +++ /dev/null @@ -1,34 +0,0 @@ -import json -import os - - -def read_choices(): - server_options_file = os.getenv( - "NOTEBOOKS_SERVER_OPTIONS_UI_PATH", - "/etc/renku-notebooks/server_options/server_options.json", - ) - if os.getenv("TELEPRESENCE_ROOT") is not None: - server_options_file = os.path.join( - os.getenv("TELEPRESENCE_ROOT"), - server_options_file.lstrip("/"), - ) - with open(server_options_file) as f: - server_options = json.load(f) - - return server_options - - -def read_defaults(): - server_options_file = os.getenv( - "NOTEBOOKS_SERVER_OPTIONS_DEFAULTS_PATH", - "/etc/renku-notebooks/server_options/server_defaults.json", - ) - if os.getenv("TELEPRESENCE_ROOT") is not None: - server_options_file = os.path.join( - os.getenv("TELEPRESENCE_ROOT"), - server_options_file.lstrip("/"), - ) - with open(server_options_file) as f: - server_options = json.load(f) - - return server_options diff --git a/tests/integration/test_server_options.py b/tests/integration/test_server_options.py deleted file mode 100644 index 3970ddaa1..000000000 --- a/tests/integration/test_server_options.py +++ /dev/null @@ -1,199 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2019 - Swiss Data Science Center (SDSC) -# A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and -# Eidgenössische Technische Hochschule Zürich (ETHZ). -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Tests for Notebook Services API""" -import re - -import pytest - -from renku_notebooks.api.classes.server_manifest import UserServerManifest -from renku_notebooks.api.schemas.config_server_options import ServerOptionsDefaults -from renku_notebooks.config import config -from renku_notebooks.wsgi import app -from tests.integration.utils import find_session_js - -SERVER_OPTIONS_NAMES_VALUES = [ - "cpu_request", - "mem_request", - "disk_request", - "gpu_request", -] -SERVER_OPTIONS_NAMES_BOOL = [ - "lfs_auto_fetch", -] -SERVER_OPTIONS_NO_VALIDATION = [ - "defaultUrl", -] - - -@pytest.fixture(scope="session") -def server_options_defaults(): - return config.server_options.defaults - - -@pytest.fixture -def min_server_options(server_options_ui, server_options_defaults): - output = {} - for option_name, option in server_options_ui.items(): - if option["type"] == "enum": - if option.get("allow_any_value", False): - output[option_name] = option["value_range"]["min"] - else: - output[option_name] = option["options"][0] - else: - output[option_name] = option["default"] - return ServerOptionsDefaults().load({**server_options_defaults, **output}) - - -@pytest.fixture -def max_server_options(server_options_ui, server_options_defaults): - output = {} - for option_name, option in server_options_ui.items(): - if option["type"] == "enum": - if option.get("allow_any_value", False): - output[option_name] = option["value_range"]["max"] - else: - output[option_name] = option["options"][-1] - else: - output[option_name] = option["default"] - return ServerOptionsDefaults().load({**server_options_defaults, **output}) - - -@pytest.fixture -def valid_extra_range_options(server_options_ui): - output = {} - for option_name, option in server_options_ui.items(): - if option["type"] == "enum" and option.get("allow_any_value", False): - output[option_name] = option["value_range"]["max"] - return output - - -@pytest.fixture -def invalid_extra_range_options(server_options_ui, increase_value): - output = {} - for option_name in [ - *SERVER_OPTIONS_NAMES_VALUES, - *SERVER_OPTIONS_NAMES_BOOL, - *SERVER_OPTIONS_NO_VALIDATION, - ]: - if server_options_ui.get(option_name, {}).get( - "type" - ) == "enum" and server_options_ui.get(option_name, {}).get( - "allow_any_value", False - ): - output[option_name] = increase_value( - server_options_ui[option_name]["value_range"]["max"], 2 - ) - else: - output[option_name] = "random-value" - return output - - -@pytest.fixture -def increase_value(): - def _increase_value(value, increment): - try: - output = str(int(value) + increment) - except ValueError: - m = re.match(r"^([0-9\.]+)([^0-9\.]+)$", value) - output = str(int(m.group(1)) + increment) + m.group(2) - return output - - yield _increase_value - - -@pytest.fixture( - params=[ - *SERVER_OPTIONS_NAMES_VALUES, - *SERVER_OPTIONS_NAMES_BOOL, - *SERVER_OPTIONS_NO_VALIDATION, - "empty", - "out_of_range", - ] -) -def valid_server_options(request, min_server_options, valid_extra_range_options): - if request.param == "empty": - return {} - elif request.param == "out_of_range": - return valid_extra_range_options - elif request.param in SERVER_OPTIONS_NO_VALIDATION: - return {"defaultUrl": "/lab"} - else: - return {request.param: min_server_options[request.param]} - - -@pytest.fixture( - params=[*SERVER_OPTIONS_NAMES_VALUES, *SERVER_OPTIONS_NAMES_BOOL, "out_of_range"] -) -def invalid_server_options( - request, invalid_extra_range_options, max_server_options, increase_value -): - if request.param == "out_of_range": - return invalid_extra_range_options - elif request.param in SERVER_OPTIONS_NAMES_BOOL: - return {request.param: "wrong_type"} - else: - return {request.param: increase_value(max_server_options[request.param], 10)} - - -def test_can_start_notebook_with_valid_server_options( - valid_server_options, - start_session_and_wait_until_ready, - valid_payload, - gitlab_project, - k8s_namespace, - safe_username, - server_options_defaults, - headers, -): - test_payload = {**valid_payload, "serverOptions": valid_server_options} - response = start_session_and_wait_until_ready(headers, test_payload, gitlab_project) - assert response is not None - assert response.status_code == 201 - js = find_session_js( - gitlab_project, - k8s_namespace, - safe_username, - test_payload["commit_sha"], - test_payload.get("branch", "master"), - ) - assert js is not None - with app.app_context(): - used_server_options = UserServerManifest(manifest=js).server_options - assert {**server_options_defaults, **valid_server_options} == used_server_options - - -def test_can_not_start_notebook_with_invalid_options( - invalid_server_options, - launch_session, - valid_payload, - gitlab_project, - k8s_namespace, - safe_username, - headers, -): - payload = {**valid_payload, "serverOptions": invalid_server_options} - response = launch_session(headers, payload, gitlab_project) - assert response is not None and response.status_code == 422 - js = find_session_js( - gitlab_project, - k8s_namespace, - safe_username, - payload["commit_sha"], - payload.get("branch", "master"), - ) - assert js is None diff --git a/tests/unit/dummy_server_defaults.json b/tests/unit/dummy_server_defaults.json index 2e9b0ecbf..77aa84ff8 100644 --- a/tests/unit/dummy_server_defaults.json +++ b/tests/unit/dummy_server_defaults.json @@ -1,8 +1,4 @@ { - "cpu_request": 0.1, "defaultUrl": "/lab", - "gpu_request": 0, - "lfs_auto_fetch": false, - "mem_request": "1G", - "disk_request": "1G" + "lfs_auto_fetch": false } diff --git a/tests/unit/dummy_server_options.json b/tests/unit/dummy_server_options.json index 9124d5daa..333c1c464 100644 --- a/tests/unit/dummy_server_options.json +++ b/tests/unit/dummy_server_options.json @@ -1,11 +1,4 @@ { - "cpu_request": { - "default": 0.1, - "displayName": "Number of CPUs", - "options": [0.1, 0.5], - "order": 1, - "type": "enum" - }, "defaultUrl": { "default": "/lab", "displayName": "Default Environment", @@ -13,30 +6,10 @@ "order": 2, "type": "enum" }, - "gpu_request": { - "default": 0, - "displayName": "Number of GPUs", - "options": [0], - "order": 3, - "type": "enum" - }, "lfs_auto_fetch": { "default": false, "displayName": "Automatically fetch LFS data", "order": 4, "type": "boolean" - }, - "disk_request": { - "order": 5, - "displayName": "Amount of disk space requested", - "type": "enum", - "default": "1G", - "options": ["1G", "10G"], - "allow_any_value": true, - "value_range": { - "type": "bytes", - "min": "1G", - "max": "100G" - } } } diff --git a/tests/unit/test_custom_fields.py b/tests/unit/test_custom_fields.py index bcda90812..5ca317790 100644 --- a/tests/unit/test_custom_fields.py +++ b/tests/unit/test_custom_fields.py @@ -38,10 +38,13 @@ def test_cpu_field_invalid_serialize(test_input): @pytest.mark.parametrize( "test_input,expected_value", [ - ("0.1", 0.1), + ("0.1", 0), + ("0.6", 1), + ("100.2", 100), + (400.55, 401), ("1000b", 1000), ("500G", 500 * (10**9)), - ("1Gi", 1073741824), + ("1Gi", 2**30), ("1kb", 1000), ], ) diff --git a/tests/unit/test_server_options.py b/tests/unit/test_server_options.py new file mode 100644 index 000000000..95b778ed8 --- /dev/null +++ b/tests/unit/test_server_options.py @@ -0,0 +1,46 @@ +from typing import Dict, Any + +import pytest + +from renku_notebooks.api.schemas.server_options import ( + LaunchNotebookRequestServerOptions, + ServerOptions, +) + + +@pytest.mark.parametrize( + "test_input,expected_value", + [ + ({}, ServerOptions(0, 0, 0)), + ({"cpu_request": 2}, ServerOptions(2, 0, 0)), + ({"mem_request": "2G"}, ServerOptions(0, 2000000000, 0)), + ( + {"mem_request": "2G", "lfs_auto_fetch": True}, + ServerOptions(0, 2000000000, 0, lfs_auto_fetch=True), + ), + ( + {"disk_request": 1000000000, "lfs_auto_fetch": True, "defaultUrl": "/test"}, + ServerOptions( + 0, 0, 0, 1000000000, lfs_auto_fetch=True, default_url="/test" + ), + ), + ], +) +def test_request_server_options_conversion( + test_input: Dict[str, Any], expected_value: ServerOptions +): + req_server_options = LaunchNotebookRequestServerOptions().load(test_input) + assert req_server_options == expected_value + + +@pytest.mark.parametrize( + "test_input,expected_value", + [ + ( + {"cpu": 1.0, "memory": 3, "default_storage": 10, "gpu": 0}, + ServerOptions(1.0, 3000000000, 0, 10000000000), + ), + ], +) +def test_resource_class_conversion(test_input, expected_value): + assert ServerOptions.from_resource_class(test_input) == expected_value From 92770241ab50197f3022c1845a25e05427f27291 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Thu, 25 May 2023 14:04:23 -0400 Subject: [PATCH 07/20] squashme: fix linting --- renku_notebooks/api/schemas/config_server_options.py | 8 +++++++- renku_notebooks/api/schemas/servers_post.py | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/renku_notebooks/api/schemas/config_server_options.py b/renku_notebooks/api/schemas/config_server_options.py index f7d07f0f3..203280f77 100644 --- a/renku_notebooks/api/schemas/config_server_options.py +++ b/renku_notebooks/api/schemas/config_server_options.py @@ -1,4 +1,4 @@ -from marshmallow import Schema, fields, validate +from marshmallow import EXCLUDE, Schema, fields, validate class BaseServerOptionsChoice(Schema): @@ -19,6 +19,9 @@ class BoolServerOptionsChoice(BaseServerOptionsChoice): class ServerOptionsChoices(Schema): """Used to deserialize (load) the server options choices from the Helm values file.""" + class Meta: + unknown = EXCLUDE + defaultUrl = fields.Nested(StringServerOptionsChoice, required=False) lfs_auto_fetch = fields.Nested(BoolServerOptionsChoice, required=False) @@ -26,6 +29,9 @@ class ServerOptionsChoices(Schema): class ServerOptionsDefaults(Schema): """Used to deserialize (load) the server options defaults from the Helm values file.""" + class Meta: + unknown = EXCLUDE + defaultUrl = fields.Str(required=True) lfs_auto_fetch = fields.Bool(required=True) diff --git a/renku_notebooks/api/schemas/servers_post.py b/renku_notebooks/api/schemas/servers_post.py index aee0dd3d9..58c73ac59 100644 --- a/renku_notebooks/api/schemas/servers_post.py +++ b/renku_notebooks/api/schemas/servers_post.py @@ -27,7 +27,8 @@ class LaunchNotebookRequestWithoutS3(Schema): ) resource_class_id = fields.Int(required=False, load_default=None) storage = fields.Int( - required=False, load_default=1, + required=False, + load_default=1, ) lfs_auto_fetch = fields.Bool( required=False, load_default=config.server_options.defaults["lfs_auto_fetch"] From 65bbfc76ba71ecc6bcc1448fad60cc77cf483e44 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Mon, 5 Jun 2023 14:09:34 +0200 Subject: [PATCH 08/20] squashme: put back server options --- .../templates/statefulset.yaml | 2 + .../renku-notebooks/templates/test.yaml | 2 + helm-chart/renku-notebooks/values.schema.json | 172 +++++++++++++++++- helm-chart/renku-notebooks/values.yaml | 37 +++- 4 files changed, 207 insertions(+), 6 deletions(-) diff --git a/helm-chart/renku-notebooks/templates/statefulset.yaml b/helm-chart/renku-notebooks/templates/statefulset.yaml index e20be4f9d..1b6fc6c2b 100644 --- a/helm-chart/renku-notebooks/templates/statefulset.yaml +++ b/helm-chart/renku-notebooks/templates/statefulset.yaml @@ -192,6 +192,8 @@ spec: {{- end }} - name: NB_DUMMY_STORES value: {{ .Values.dummyStores | quote }} + - name: NB_CRAC_URL + value: {{ template "notebooks.fullname" . }}-crac ports: - name: http containerPort: 8000 diff --git a/helm-chart/renku-notebooks/templates/test.yaml b/helm-chart/renku-notebooks/templates/test.yaml index 48d215476..03f949297 100644 --- a/helm-chart/renku-notebooks/templates/test.yaml +++ b/helm-chart/renku-notebooks/templates/test.yaml @@ -113,6 +113,8 @@ spec: - name: NB_SESSIONS__SSH__HOST_KEY_SECRET value: {{ $.Values.ssh.hostKeySecret | quote }} {{- end }} + - name: NB_CRAC_URL + value: {{ template "notebooks.fullname" $ }}-crac volumeMounts: - name: server-options mountPath: /etc/renku-notebooks/server_options diff --git a/helm-chart/renku-notebooks/values.schema.json b/helm-chart/renku-notebooks/values.schema.json index d0796077b..d11575d02 100644 --- a/helm-chart/renku-notebooks/values.schema.json +++ b/helm-chart/renku-notebooks/values.schema.json @@ -1,6 +1,23 @@ { "$schema": "https://json-schema.org/draft-07/schema#", "definitions": { + "informationAmount": { + "type": "string", + "pattern": "^(?:[1-9][0-9]*|[0-9]\\.[0-9]*)[EPTGMK][i]{0,1}$" + }, + "informationAmountOrNull": { + "type": ["string", "null"], + "pattern": "^(?:[1-9][0-9]*|[0-9]\\.[0-9]*)[EPTGMK][i]{0,1}$|^$" + }, + "cpuRequest": { + "type": "number", + "exclusiveMinimum": 0.0, + "multipleOf": 0.001 + }, + "gpuRequest": { + "type": "integer", + "minimum": 0.0 + }, "serverOption": { "type": "object", "properties": { @@ -75,6 +92,136 @@ "additionalProperties": false } ] + }, + "serverOptionGpu": { + "allOf": [ + { + "$ref": "#/definitions/serverOption" + }, + { + "properties": { + "order": true, + "displayName": true, + "type": { + "type": "string", + "pattern": "^enum$" + }, + "default": { "$ref": "#/definitions/gpuRequest" }, + "options": { + "type": "array", + "items": { "$ref": "#/definitions/gpuRequest" }, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "type", + "default", + "options" + ], + "additionalProperties": false + } + ] + }, + "serverOptionCpu": { + "allOf": [ + { + "$ref": "#/definitions/serverOption" + }, + { + "properties": { + "order": true, + "displayName": true, + "type": { + "type": "string", + "pattern": "^enum$" + }, + "default": { "$ref": "#/definitions/cpuRequest" }, + "options": { + "type": "array", + "items": { "$ref": "#/definitions/cpuRequest" }, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "type", + "default", + "options" + ], + "additionalProperties": false + } + ] + }, + "serverOptionMemory": { + "allOf": [ + { + "$ref": "#/definitions/serverOptionEnumStr" + }, + { + "properties": { + "order": true, + "displayName": true, + "type": { + "type": "string", + "pattern": "^enum$" + }, + "default": { "$ref": "#/definitions/informationAmount" }, + "options": { + "type": "array", + "items": { "$ref": "#/definitions/informationAmount" }, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "type", + "default", + "options" + ], + "additionalProperties": false + } + ] + }, + "serverOptionDisk": { + "allOf": [ + { + "properties": { + "order": true, + "displayName": true, + "type": { + "type": "string", + "pattern": "^enum$" + }, + "default": { "$ref": "#/definitions/informationAmountOrNull" }, + "options": { + "type": "array", + "items": { "$ref": "#/definitions/informationAmountOrNull" }, + "minItems": 1, + "uniqueItems": true + }, + "allow_any_value": { + "type": "boolean" + }, + "value_range": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "min": { + "$ref": "#/definitions/informationAmount" + }, + "max": { + "$ref": "#/definitions/informationAmount" + } + } + } + }, + "required": ["type", "default", "options"], + "additionalProperties": false + } + ] } }, "properties": { @@ -82,23 +229,38 @@ "description": "Default values for all server options.", "properties": { "defaultUrl": { "type": "string" }, - "lfs_auto_fetch": { "type": "boolean" } + "cpu_request": { "$ref": "#/definitions/cpuRequest" }, + "mem_request": { "$ref": "#/definitions/informationAmount" }, + "lfs_auto_fetch": { "type": "boolean" }, + "gpu_request": { "$ref": "#/definitions/gpuRequest" }, + "disk_request": { "$ref": "#/definitions/informationAmountOrNull" } }, "required": [ "defaultUrl", - "lfs_auto_fetch" + "cpu_request", + "mem_request", + "lfs_auto_fetch", + "gpu_request", + "disk_request" ], "type": "object", - "additionalProperties": true + "additionalProperties": false }, "serverOptions": { "description": "Options provided to the user in the UI when launching a server.", "properties": { "defaultUrl": { "$ref": "#/definitions/serverOptionEnumStr" }, - "lfs_auto_fetch": { "$ref": "#/definitions/serverOptionBool" } + "cpu_request": { "$ref": "#/definitions/serverOptionCpu" }, + "mem_request": { "$ref": "#/definitions/serverOptionMemory" }, + "lfs_auto_fetch": { "$ref": "#/definitions/serverOptionBool" }, + "gpu_request": { "$ref": "#/definitions/serverOptionGpu" }, + "disk_request": { "$ref": "#/definitions/serverOptionDisk" } }, + "required": [ + "lfs_auto_fetch" + ], "type": "object", - "additionalProperties": true, + "additionalProperties": false, "default": {} } }, diff --git a/helm-chart/renku-notebooks/values.yaml b/helm-chart/renku-notebooks/values.yaml index b6cb4d719..4f0ad90d9 100644 --- a/helm-chart/renku-notebooks/values.yaml +++ b/helm-chart/renku-notebooks/values.yaml @@ -179,8 +179,39 @@ serverOptions: default: /lab ## add /rstudio to the list for R projects options: [/lab] - lfs_auto_fetch: + cpu_request: order: 2 + displayName: Number of CPUs + type: enum + default: 0.5 + options: [0.5, 1.0] + mem_request: + order: 3 + displayName: Amount of Memory + type: enum + default: 1G + options: [1G, 2G] + disk_request: + order: 4 + displayName: Amount of Storage + type: enum + default: "1G" + options: ["1G", "10G"] + ## set allow_any_value to true to not enforce value checks + ## arbitrary PV sizes + # allow_any_value: true + # value_range: + # type: bytes + # min: "1G" + # max: "100G" + gpu_request: + order: 5 + displayName: Number of GPUs + type: enum + default: 0 + options: [0] + lfs_auto_fetch: + order: 6 displayName: Automatically fetch LFS data type: boolean default: false @@ -193,6 +224,10 @@ serverOptions: ## within the available choices or valid ranges. serverDefaults: defaultUrl: /lab + cpu_request: 0.5 + mem_request: 1G + disk_request: 1G + gpu_request: 0 lfs_auto_fetch: false ## How to enforce CPU limits for sessions, options are "lax", "off" or "strict" From fb25fcfc558e01643417a75307bfc24d70632f1a Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Mon, 5 Jun 2023 17:15:39 +0200 Subject: [PATCH 09/20] fix: properly render crac service url --- helm-chart/renku-notebooks/templates/_helpers.tpl | 14 ++++++++++++++ .../renku-notebooks/templates/statefulset.yaml | 2 +- helm-chart/renku-notebooks/templates/test.yaml | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/helm-chart/renku-notebooks/templates/_helpers.tpl b/helm-chart/renku-notebooks/templates/_helpers.tpl index f495ec8b7..66bc9ff7b 100644 --- a/helm-chart/renku-notebooks/templates/_helpers.tpl +++ b/helm-chart/renku-notebooks/templates/_helpers.tpl @@ -41,3 +41,17 @@ https http {{- end -}} {{- end -}} + +{{/* +Renku crac service URL, determine if the chart is deployed standalone or part of Renku +based on the number of dependencies. At most the notebooks helm chart has 3 dependencies +but the Renku helm chart has many more. So we use this to determine which named template to use +to get the right name of the crac service which is defined in the parent chart. +*/}} +{{- define "notebooks.cracUrl" -}} +{{- if le (len .Chart.Dependencies) 3 -}} +{{ printf "http://%s-crac/api/data" (include "notebooks.fullname" .) }} +{{- else -}} +{{ printf "http://%s-crac/api/data" (include "renku.fullname" .) }} +{{- end -}} +{{- end -}} diff --git a/helm-chart/renku-notebooks/templates/statefulset.yaml b/helm-chart/renku-notebooks/templates/statefulset.yaml index 1b6fc6c2b..c6900cefe 100644 --- a/helm-chart/renku-notebooks/templates/statefulset.yaml +++ b/helm-chart/renku-notebooks/templates/statefulset.yaml @@ -193,7 +193,7 @@ spec: - name: NB_DUMMY_STORES value: {{ .Values.dummyStores | quote }} - name: NB_CRAC_URL - value: {{ template "notebooks.fullname" . }}-crac + value: {{ template "notebooks.cracUrl" . }} ports: - name: http containerPort: 8000 diff --git a/helm-chart/renku-notebooks/templates/test.yaml b/helm-chart/renku-notebooks/templates/test.yaml index 03f949297..0ffba0855 100644 --- a/helm-chart/renku-notebooks/templates/test.yaml +++ b/helm-chart/renku-notebooks/templates/test.yaml @@ -114,7 +114,7 @@ spec: value: {{ $.Values.ssh.hostKeySecret | quote }} {{- end }} - name: NB_CRAC_URL - value: {{ template "notebooks.fullname" $ }}-crac + value: {{ template "notebooks.cracUrl" $ }} volumeMounts: - name: server-options mountPath: /etc/renku-notebooks/server_options From 99db2b3f28693a804c3c57798d62bea2562e1dd0 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Mon, 5 Jun 2023 21:43:12 +0200 Subject: [PATCH 10/20] squashme: add priority class in amalthea patches --- .../api/amalthea_patches/general.py | 17 ++++++++++ .../api/amalthea_patches/init_containers.py | 19 +++++++++++- renku_notebooks/api/classes/crac.py | 31 +++++++++++++++---- renku_notebooks/api/classes/server.py | 1 + renku_notebooks/api/schemas/server_options.py | 2 ++ 5 files changed, 63 insertions(+), 7 deletions(-) diff --git a/renku_notebooks/api/amalthea_patches/general.py b/renku_notebooks/api/amalthea_patches/general.py index 1f327ef67..7e498fe00 100644 --- a/renku_notebooks/api/amalthea_patches/general.py +++ b/renku_notebooks/api/amalthea_patches/general.py @@ -78,6 +78,23 @@ def session_node_selector(): ] +def priority_class(server: "UserServer"): + if server.server_options.priority_class is None: + return [] + return [ + { + "type": "application/json-patch+json", + "patch": [ + { + "op": "add", + "path": "/statefulset/spec/template/spec/priorityClassName", + "value": server.server_options.priority_class, + } + ], + } + ] + + def test(server: "UserServer"): """RFC 6901 patches support test statements that will cause the whole patch to fail if the test statements are not correct. This is used to ensure that the diff --git a/renku_notebooks/api/amalthea_patches/init_containers.py b/renku_notebooks/api/amalthea_patches/init_containers.py index 10b205e2e..7375bd9e9 100644 --- a/renku_notebooks/api/amalthea_patches/init_containers.py +++ b/renku_notebooks/api/amalthea_patches/init_containers.py @@ -95,7 +95,12 @@ def git_clone(server: "UserServer"): "value": { "image": config.sessions.git_clone.image, "name": "git-clone", - "resources": {}, + "resources": { + "requests": { + "cpu": "100m", + "memory": "100Mi", + } + }, "securityContext": { "allowPrivilegeEscalation": False, "fsGroup": 100, @@ -124,6 +129,12 @@ def certificates(): custom_certs=True, read_only_etc_certs=False, ), + resources={ + "requests": { + "cpu": "50m", + "memory": "50Mi", + } + }, ) volume_etc_certs = client.V1Volume( name="etc-ssl-certs", empty_dir=client.V1EmptyDirVolumeSource(medium="Memory") @@ -181,6 +192,12 @@ def download_image(server: "UserServer"): image=server.verified_image, command=["sh", "-c"], args=["exit", "0"], + resources={ + "requests": { + "cpu": "50m", + "memory": "50Mi", + } + }, ) api_client = client.ApiClient() return [ diff --git a/renku_notebooks/api/classes/crac.py b/renku_notebooks/api/classes/crac.py index 1858f0249..50ba139b7 100644 --- a/renku_notebooks/api/classes/crac.py +++ b/renku_notebooks/api/classes/crac.py @@ -29,13 +29,24 @@ def validate_class_storage( headers = None if user.access_token is not None: headers = {"Authorization": f"bearer {user.access_token}"} - res = requests.get(self.crac_url + f"/classes/{class_id}", headers=headers) + res = requests.get(self.crac_url + "/resource_pools", headers=headers) if res.status_code != 200: + raise IntermittentError( + message="The compute resource access control service sent " + "an unexpected response, please try again later", + ) + resource_pools = res.json() + pool = None + res_class = None + for rp in resource_pools: + for cls in rp["classes"]: + if cls["id"] == class_id: + res_class = cls + pool = rp + if res_class is None: raise InvalidComputeResourceError( - message="The requested resource class does not exist or you do not " - "have the required permissions to access it." + message=f"The resource class ID {class_id} does not exist." ) - res_class = res.json() if storage is None: storage = res_class.get("default_storage", 1) if storage < 1: @@ -50,6 +61,9 @@ def validate_class_storage( # the notebook service assumes that if a plain number is used then it is bytes. options = ServerOptions.from_resource_class(res_class) options.storage = storage * 1000000000 + quota = pool.get("quota") + if quota is not None and isinstance(quota, dict): + options.priority_class = quota.get("id") return options def get_default_class(self) -> Dict[str, Any]: @@ -89,17 +103,22 @@ def find_acceptable_class( # greater than or equal to the request best_larger_or_equal_diff = None best_larger_or_equal_class = None - zero_diff = ServerOptions(cpu=0, memory=0, gpu=0, storage=0) + zero_diff = ServerOptions( + cpu=0, memory=0, gpu=0, storage=0, priority_class=resource_pools + ) for resource_pool in resource_pools: + quota = resource_pool.get("quota") for resource_class in resource_pool["classes"]: resource_class_mdl = ServerOptions.from_resource_class(resource_class) + if quota is not None and isinstance(quota, dict): + resource_class_mdl.priority_class = quota.get("id") diff = resource_class_mdl - requested_server_options if diff >= zero_diff and ( best_larger_or_equal_diff is None or diff < best_larger_or_equal_diff ): best_larger_or_equal_diff = diff - best_larger_or_equal_class = resource_class + best_larger_or_equal_class = resource_class_mdl return best_larger_or_equal_class diff --git a/renku_notebooks/api/classes/server.py b/renku_notebooks/api/classes/server.py index 4a826d9dc..d02a39e93 100644 --- a/renku_notebooks/api/classes/server.py +++ b/renku_notebooks/api/classes/server.py @@ -248,6 +248,7 @@ def _get_session_manifest(self): general_patches.session_affinity(), general_patches.session_node_selector(), general_patches.termination_grace_period(), + general_patches.priority_class(self), jupyter_server_patches.args(), jupyter_server_patches.env(self), jupyter_server_patches.image_pull_secret(self), diff --git a/renku_notebooks/api/schemas/server_options.py b/renku_notebooks/api/schemas/server_options.py index db388c26d..368f3e9b7 100644 --- a/renku_notebooks/api/schemas/server_options.py +++ b/renku_notebooks/api/schemas/server_options.py @@ -18,6 +18,7 @@ class ServerOptions: default_url: Optional[str] = None lfs_auto_fetch: bool = False gigabytes: bool = False + priority_class: Optional[str] = None def __post_init__(self): if self.default_url is None: @@ -86,6 +87,7 @@ def __eq__(self, other: "ServerOptions"): and self.default_url == other.default_url and self.lfs_auto_fetch == other.lfs_auto_fetch and self.gigabytes == other.gigabytes + and self.priority_class == other.priority_class ) @classmethod From 3808ad8e17d0c36ebd4c5e8853f3f3403613875d Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 6 Jun 2023 11:28:58 +0200 Subject: [PATCH 11/20] squashme: properly set crac service name --- helm-chart/renku-notebooks/templates/statefulset.yaml | 2 +- helm-chart/renku-notebooks/templates/test.yaml | 2 +- helm-chart/renku-notebooks/values.yaml | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/helm-chart/renku-notebooks/templates/statefulset.yaml b/helm-chart/renku-notebooks/templates/statefulset.yaml index c6900cefe..90b434a4e 100644 --- a/helm-chart/renku-notebooks/templates/statefulset.yaml +++ b/helm-chart/renku-notebooks/templates/statefulset.yaml @@ -193,7 +193,7 @@ spec: - name: NB_DUMMY_STORES value: {{ .Values.dummyStores | quote }} - name: NB_CRAC_URL - value: {{ template "notebooks.cracUrl" . }} + value: {{ printf "http://%s/api/data" .Values.global.crac.serviceName }} ports: - name: http containerPort: 8000 diff --git a/helm-chart/renku-notebooks/templates/test.yaml b/helm-chart/renku-notebooks/templates/test.yaml index 0ffba0855..581caed14 100644 --- a/helm-chart/renku-notebooks/templates/test.yaml +++ b/helm-chart/renku-notebooks/templates/test.yaml @@ -114,7 +114,7 @@ spec: value: {{ $.Values.ssh.hostKeySecret | quote }} {{- end }} - name: NB_CRAC_URL - value: {{ template "notebooks.cracUrl" $ }} + value: {{ printf "http://%s/api/data" $.Values.global.crac.serviceName }} volumeMounts: - name: server-options mountPath: /etc/renku-notebooks/server_options diff --git a/helm-chart/renku-notebooks/values.yaml b/helm-chart/renku-notebooks/values.yaml index 4f0ad90d9..b8d9306a2 100644 --- a/helm-chart/renku-notebooks/values.yaml +++ b/helm-chart/renku-notebooks/values.yaml @@ -27,6 +27,8 @@ global: keycloak: ## The name of the realm in Keycloak used by Renku realm: + crac: + serviceName: renku-crac amalthea: scope: From 2c9d52416ae985da926c14ece2bcea937a73a51f Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 6 Jun 2023 15:32:23 +0200 Subject: [PATCH 12/20] squashme: renku crac to crc --- renku_notebooks/api/classes/{crac.py => crc.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename renku_notebooks/api/classes/{crac.py => crc.py} (100%) diff --git a/renku_notebooks/api/classes/crac.py b/renku_notebooks/api/classes/crc.py similarity index 100% rename from renku_notebooks/api/classes/crac.py rename to renku_notebooks/api/classes/crc.py From 74471de538aa1388b4aa4070f736b4054aed8ede Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 6 Jun 2023 15:37:04 +0200 Subject: [PATCH 13/20] chore: rename crac to crc --- .../renku-notebooks/templates/_helpers.tpl | 14 ------------- .../templates/statefulset.yaml | 4 ++-- .../renku-notebooks/templates/test.yaml | 4 ++-- helm-chart/renku-notebooks/values.yaml | 4 ++-- renku_notebooks/api/classes/crc.py | 20 +++++++++---------- renku_notebooks/api/notebooks.py | 18 ++++++++--------- renku_notebooks/api/schemas/server_options.py | 6 +++--- renku_notebooks/config/__init__.py | 4 ++-- 8 files changed, 30 insertions(+), 44 deletions(-) diff --git a/helm-chart/renku-notebooks/templates/_helpers.tpl b/helm-chart/renku-notebooks/templates/_helpers.tpl index 66bc9ff7b..f495ec8b7 100644 --- a/helm-chart/renku-notebooks/templates/_helpers.tpl +++ b/helm-chart/renku-notebooks/templates/_helpers.tpl @@ -41,17 +41,3 @@ https http {{- end -}} {{- end -}} - -{{/* -Renku crac service URL, determine if the chart is deployed standalone or part of Renku -based on the number of dependencies. At most the notebooks helm chart has 3 dependencies -but the Renku helm chart has many more. So we use this to determine which named template to use -to get the right name of the crac service which is defined in the parent chart. -*/}} -{{- define "notebooks.cracUrl" -}} -{{- if le (len .Chart.Dependencies) 3 -}} -{{ printf "http://%s-crac/api/data" (include "notebooks.fullname" .) }} -{{- else -}} -{{ printf "http://%s-crac/api/data" (include "renku.fullname" .) }} -{{- end -}} -{{- end -}} diff --git a/helm-chart/renku-notebooks/templates/statefulset.yaml b/helm-chart/renku-notebooks/templates/statefulset.yaml index 90b434a4e..72fe7ab4b 100644 --- a/helm-chart/renku-notebooks/templates/statefulset.yaml +++ b/helm-chart/renku-notebooks/templates/statefulset.yaml @@ -192,8 +192,8 @@ spec: {{- end }} - name: NB_DUMMY_STORES value: {{ .Values.dummyStores | quote }} - - name: NB_CRAC_URL - value: {{ printf "http://%s/api/data" .Values.global.crac.serviceName }} + - name: NB_CRC_URL + value: {{ printf "http://%s/api/data" .Values.global.crc.serviceName }} ports: - name: http containerPort: 8000 diff --git a/helm-chart/renku-notebooks/templates/test.yaml b/helm-chart/renku-notebooks/templates/test.yaml index 581caed14..ffde36b63 100644 --- a/helm-chart/renku-notebooks/templates/test.yaml +++ b/helm-chart/renku-notebooks/templates/test.yaml @@ -113,8 +113,8 @@ spec: - name: NB_SESSIONS__SSH__HOST_KEY_SECRET value: {{ $.Values.ssh.hostKeySecret | quote }} {{- end }} - - name: NB_CRAC_URL - value: {{ printf "http://%s/api/data" $.Values.global.crac.serviceName }} + - name: NB_CRC_URL + value: {{ printf "http://%s/api/data" $.Values.global.crc.serviceName }} volumeMounts: - name: server-options mountPath: /etc/renku-notebooks/server_options diff --git a/helm-chart/renku-notebooks/values.yaml b/helm-chart/renku-notebooks/values.yaml index b8d9306a2..e4af5027c 100644 --- a/helm-chart/renku-notebooks/values.yaml +++ b/helm-chart/renku-notebooks/values.yaml @@ -27,8 +27,8 @@ global: keycloak: ## The name of the realm in Keycloak used by Renku realm: - crac: - serviceName: renku-crac + crc: + serviceName: renku-crc amalthea: scope: diff --git a/renku_notebooks/api/classes/crc.py b/renku_notebooks/api/classes/crc.py index 50ba139b7..3dadb8216 100644 --- a/renku_notebooks/api/classes/crc.py +++ b/renku_notebooks/api/classes/crc.py @@ -11,13 +11,13 @@ @dataclass -class CRACValidator: - """Calls to the CRAC service to validate resource requests.""" +class CRCValidator: + """Calls to the CRC service to validate resource requests.""" - crac_url: str + crc_url: str def __post_init__(self): - self.crac_url = self.crac_url.rstrip("/") + self.crc_url = self.crc_url.rstrip("/") def validate_class_storage( self, @@ -29,7 +29,7 @@ def validate_class_storage( headers = None if user.access_token is not None: headers = {"Authorization": f"bearer {user.access_token}"} - res = requests.get(self.crac_url + "/resource_pools", headers=headers) + res = requests.get(self.crc_url + "/resource_pools", headers=headers) if res.status_code != 200: raise IntermittentError( message="The compute resource access control service sent " @@ -57,7 +57,7 @@ def validate_class_storage( raise InvalidComputeResourceError( message="The requested storage surpasses the maximum value allowed." ) - # Memory and disk space in CRAC are assumed to be in gigabytes whereas + # Memory and disk space in CRC are assumed to be in gigabytes whereas # the notebook service assumes that if a plain number is used then it is bytes. options = ServerOptions.from_resource_class(res_class) options.storage = storage * 1000000000 @@ -67,10 +67,10 @@ def validate_class_storage( return options def get_default_class(self) -> Dict[str, Any]: - res = requests.get(self.crac_url + "/resource_pools") + res = requests.get(self.crc_url + "/resource_pools") if res.status_code != 200: raise IntermittentError( - "The CRAC sent an unexpected response, please try again later." + "The CRC sent an unexpected response, please try again later." ) pools = res.json() default_pools = [p for p in pools if p.get("default", False)] @@ -92,7 +92,7 @@ def find_acceptable_class( headers = None if user.access_token is not None: headers = {"Authorization": f"bearer {user.access_token}"} - res = requests.get(self.crac_url + "/resource_pools", headers=headers) + res = requests.get(self.crc_url + "/resource_pools", headers=headers) if res.status_code != 200: raise IntermittentError( message="The compute resource access control service sent " @@ -123,7 +123,7 @@ def find_acceptable_class( @dataclass -class DummyCRACValidator: +class DummyCRCValidator: options: ServerOptions = field( default_factory=lambda: ServerOptions(0.5, 1, 0, 1, "/lab", False, True) ) diff --git a/renku_notebooks/api/notebooks.py b/renku_notebooks/api/notebooks.py index a53b505ef..892626de0 100644 --- a/renku_notebooks/api/notebooks.py +++ b/renku_notebooks/api/notebooks.py @@ -25,7 +25,7 @@ from ..util.check_image import get_docker_token, image_exists, parse_image_name from ..util.kubernetes_ import make_server_name from .auth import authenticated -from .classes.crac import CRACValidator, DummyCRACValidator +from .classes.crc import CRCValidator, DummyCRCValidator from .classes.server import UserServer from .classes.server_manifest import UserServerManifest from .classes.storage import AutosaveBranch @@ -202,9 +202,9 @@ def launch_notebook( tags: - servers """ - crac_validator = CRACValidator(config.crac_url) + crc_validator = CRCValidator(config.crc_url) if config.dummy_stores: - crac_validator = DummyCRACValidator() + crc_validator = DummyCRCValidator() server_name = make_server_name( user.safe_username, namespace, project, branch, commit_sha ) @@ -214,12 +214,12 @@ def launch_notebook( parsed_server_options = None if resource_class_id is not None: - # A resource class ID was passed in, validate with CRAC servuce - parsed_server_options = crac_validator.validate_class_storage( + # A resource class ID was passed in, validate with CRC servuce + parsed_server_options = crc_validator.validate_class_storage( user, resource_class_id, storage ) elif server_options is not None: - # The old style API was used, try to find a matching class from the CRAC service + # The old style API was used, try to find a matching class from the CRC service requested_server_options = ServerOptions( memory=server_options["mem_request"], storage=server_options["disk_request"], @@ -228,7 +228,7 @@ def launch_notebook( lfs_auto_fetch=server_options["lfs_auto_fetch"], default_url=server_options["defaultUrl"], ) - parsed_server_options = crac_validator.find_acceptable_class( + parsed_server_options = crc_validator.find_acceptable_class( user, requested_server_options ) if parsed_server_options is None: @@ -240,8 +240,8 @@ def launch_notebook( "a specific resource class ID and storage is preferred and more convenient.", ) else: - # No resource class ID specified or old-style server options, use defaults from CRAC - default_resource_class = crac_validator.get_default_class() + # No resource class ID specified or old-style server options, use defaults from CRC + default_resource_class = crc_validator.get_default_class() max_storage_gb = default_resource_class.get("max_storage", 0) if storage is not None and storage > max_storage_gb: raise UserInputError( diff --git a/renku_notebooks/api/schemas/server_options.py b/renku_notebooks/api/schemas/server_options.py index 368f3e9b7..92499b949 100644 --- a/renku_notebooks/api/schemas/server_options.py +++ b/renku_notebooks/api/schemas/server_options.py @@ -92,7 +92,7 @@ def __eq__(self, other: "ServerOptions"): @classmethod def from_resource_class(cls, data: Dict[str, Any]) -> "ServerOptions": - """Convert a CRAC resource class to server options. CRAC users GB for storage and memory + """Convert a CRC resource class to server options. CRC users GB for storage and memory whereas the notebook service uses bytes so we convert to bytes here.""" return cls( cpu=data["cpu"], @@ -116,9 +116,9 @@ def from_request(cls, data: Dict[str, Any]) -> "ServerOptions": class LaunchNotebookRequestServerOptions(Schema): """This is the old-style API server options and are only used to find suitable - # resource class form the crac service. "Suitable" in this case is any resource + # resource class form the crc service. "Suitable" in this case is any resource # class where all its parameters are greather than or equal to the request. So - # by assigning a value of 0 to a server option we are ensuring that CRAC will + # by assigning a value of 0 to a server option we are ensuring that CRC will # be able to easily find a match.""" defaultUrl = fields.Str( diff --git a/renku_notebooks/config/__init__.py b/renku_notebooks/config/__init__.py index 3a57d1dae..b5f61cd08 100644 --- a/renku_notebooks/config/__init__.py +++ b/renku_notebooks/config/__init__.py @@ -32,7 +32,7 @@ class _NotebooksConfig: service_prefix: str = "/notebooks" version: str = "0.0.0" keycloak_realm: str = "Renku" - crac_url: str = "http://renku-crac" + crc_url: str = "http://renku-crc" dummy_stores: Union[Text, bool] = False def __post_init__(self): @@ -206,7 +206,7 @@ def get_config(default_config: str) -> _NotebooksConfig: service_prefix = /notebooks version = 0.0.0 keycloak_realm = Renku -crac_url = http://renku-crac +crc_url = http://renku-crc """ config = get_config(default_config) From dbc9bef19cf1cd7fb6f16e96f34077d726d19345 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Fri, 16 Jun 2023 14:41:08 +0200 Subject: [PATCH 14/20] chore: surface resource quota errors --- renku_notebooks/api/schemas/servers_get.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/renku_notebooks/api/schemas/servers_get.py b/renku_notebooks/api/schemas/servers_get.py index 439647cb4..0a1f10e90 100644 --- a/renku_notebooks/api/schemas/servers_get.py +++ b/renku_notebooks/api/schemas/servers_get.py @@ -346,8 +346,17 @@ def get_status(server: UserServerManifest): unschedulable_msg = get_unschedulable_message( server.manifest.get("status", {}).get("mainPod", {}) ) + event_based_messages = [] + events = server.manifest.get("status", {}).get("events", {}) + for component in sorted(events.keys()): + message = events.get(component, {}).get("message") + if message is None: + continue + event_based_messages.append(message) if unschedulable_msg: output["message"] = unschedulable_msg + elif len(event_based_messages) > 0: + output["message"] = event_based_messages[0] else: output["message"] = get_failed_message(failed_container_statuses) output["details"] = get_status_breakdown(server) From c065fa3906a57cc9b7a53773d1f6698fc446832f Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Fri, 16 Jun 2023 16:00:07 +0200 Subject: [PATCH 15/20] fix: show storage --- renku_notebooks/api/classes/crc.py | 2 +- renku_notebooks/api/notebooks.py | 4 ++-- renku_notebooks/api/schemas/server_options.py | 8 ++++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/renku_notebooks/api/classes/crc.py b/renku_notebooks/api/classes/crc.py index 3dadb8216..5845be690 100644 --- a/renku_notebooks/api/classes/crc.py +++ b/renku_notebooks/api/classes/crc.py @@ -60,7 +60,7 @@ def validate_class_storage( # Memory and disk space in CRC are assumed to be in gigabytes whereas # the notebook service assumes that if a plain number is used then it is bytes. options = ServerOptions.from_resource_class(res_class) - options.storage = storage * 1000000000 + options.set_storage(storage, gigabytes=True) quota = pool.get("quota") if quota is not None and isinstance(quota, dict): options.priority_class = quota.get("id") diff --git a/renku_notebooks/api/notebooks.py b/renku_notebooks/api/notebooks.py index 892626de0..b51733747 100644 --- a/renku_notebooks/api/notebooks.py +++ b/renku_notebooks/api/notebooks.py @@ -253,8 +253,8 @@ def launch_notebook( parsed_server_options = ServerOptions.from_resource_class( default_resource_class ) - # ServerOptions stores memory and storage in bytes, but storage in request is in GB - parsed_server_options.storage = storage * 1000000000 + # Storage in request is in GB + parsed_server_options.set_storage(storage, gigabytes=True) if default_url is not None: parsed_server_options.default_url = default_url diff --git a/renku_notebooks/api/schemas/server_options.py b/renku_notebooks/api/schemas/server_options.py index 92499b949..c518543e3 100644 --- a/renku_notebooks/api/schemas/server_options.py +++ b/renku_notebooks/api/schemas/server_options.py @@ -58,6 +58,14 @@ def to_gigabytes(self) -> "ServerOptions": gigabytes=True, ) + def set_storage(self, storage: int, gigabytes: bool = False): + if self.gigabytes and not gigabytes: + self.storage = round(storage / 1_000_000_000) + elif not self.gigabytes and gigabytes: + self.storage = round(storage * 1_000_000_000) + else: + self.storage = storage + def __sub__(self, other: "ServerOptions") -> "ServerOptions": self_storage = 0 if self.storage is None else self.storage other_storage = 0 if other.storage is None else other.storage From 7503b2c4b75b359cbb5733387c2ba2dc3835dea5 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 27 Jun 2023 13:20:41 +0200 Subject: [PATCH 16/20] feat: upgrade amalthea to 0.7.0 --- helm-chart/renku-notebooks/requirements.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-chart/renku-notebooks/requirements.yaml b/helm-chart/renku-notebooks/requirements.yaml index 0563c7994..1370950bf 100644 --- a/helm-chart/renku-notebooks/requirements.yaml +++ b/helm-chart/renku-notebooks/requirements.yaml @@ -1,7 +1,7 @@ dependencies: - name: amalthea repository: "https://swissdatasciencecenter.github.io/helm-charts/" - version: "0.6.1" + version: "0.7.0" - name: certificates version: "0.0.4" repository: "https://swissdatasciencecenter.github.io/helm-charts/" From 26005cff8cfbbbbd7fac7b68c609d48f55a7e2ea Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 4 Jul 2023 17:03:24 +0200 Subject: [PATCH 17/20] squashme: address comments --- Dockerfile.tests | 4 +- git_services/Dockerfile.init | 4 +- git_services/Dockerfile.sidecar | 4 +- renku_notebooks/api/classes/crc.py | 75 ++++++++++++--------- renku_notebooks/api/schemas/servers_post.py | 1 + 5 files changed, 49 insertions(+), 39 deletions(-) diff --git a/Dockerfile.tests b/Dockerfile.tests index 97df99400..b81f78c97 100644 --- a/Dockerfile.tests +++ b/Dockerfile.tests @@ -1,4 +1,4 @@ -FROM python:3.10-bullseye as builder +FROM python:3.11-bullseye as builder RUN groupadd --gid 1000 renku && \ useradd --gid 1000 --uid 1000 --groups 100 --create-home renku && \ mkdir -p /app && \ @@ -16,7 +16,7 @@ RUN /home/renku/.local/bin/poetry export --with dev --without-hashes -o requirem .venv/bin/pip install -r requirements_dev.txt --prefer-binary && \ .venv/bin/pip install renku -FROM python:3.10-slim-bullseye +FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ tini git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/git_services/Dockerfile.init b/git_services/Dockerfile.init index 3b7a46953..b544fdd80 100644 --- a/git_services/Dockerfile.init +++ b/git_services/Dockerfile.init @@ -1,4 +1,4 @@ -FROM python:3.10-bullseye as builder +FROM python:3.11-bullseye as builder RUN groupadd --gid 1000 renku && \ useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ mkdir -p /app && \ @@ -13,7 +13,7 @@ COPY poetry.lock pyproject.toml ./ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ .venv/bin/pip install -r requirements.txt --prefer-binary -FROM python:3.10-slim-bullseye +FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ tini git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/git_services/Dockerfile.sidecar b/git_services/Dockerfile.sidecar index 5062bcf84..726274b4d 100644 --- a/git_services/Dockerfile.sidecar +++ b/git_services/Dockerfile.sidecar @@ -1,4 +1,4 @@ -FROM python:3.10-bullseye as builder +FROM python:3.11-bullseye as builder RUN groupadd --gid 1000 renku && \ useradd --gid 1000 --uid 1000 --groups 100 --create-home jovyan && \ mkdir -p /app && \ @@ -13,7 +13,7 @@ COPY poetry.lock pyproject.toml ./ RUN /home/jovyan/.local/bin/poetry export --only main --without-hashes -o requirements.txt && \ .venv/bin/pip install -r requirements.txt --prefer-binary -FROM python:3.10-slim-bullseye +FROM python:3.11-slim-bullseye RUN apt-get update && apt-get install -y \ tini git git-lfs && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/renku_notebooks/api/classes/crc.py b/renku_notebooks/api/classes/crc.py index 5845be690..3736fae3f 100644 --- a/renku_notebooks/api/classes/crc.py +++ b/renku_notebooks/api/classes/crc.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Any, Dict, Optional +from typing import Any, Dict, List, Optional import requests @@ -25,17 +25,9 @@ def validate_class_storage( class_id: int, storage: Optional[int] = None, ) -> ServerOptions: - """Ensures that the resource class and storage requested is valid.""" - headers = None - if user.access_token is not None: - headers = {"Authorization": f"bearer {user.access_token}"} - res = requests.get(self.crc_url + "/resource_pools", headers=headers) - if res.status_code != 200: - raise IntermittentError( - message="The compute resource access control service sent " - "an unexpected response, please try again later", - ) - resource_pools = res.json() + """Ensures that the resource class and storage requested is valid. + Storage in memory are assumed to be in gigabytes.""" + resource_pools = self._get_resource_pools(user=user) pool = None res_class = None for rp in resource_pools: @@ -43,6 +35,7 @@ def validate_class_storage( if cls["id"] == class_id: res_class = cls pool = rp + break if res_class is None: raise InvalidComputeResourceError( message=f"The resource class ID {class_id} does not exist." @@ -57,8 +50,6 @@ def validate_class_storage( raise InvalidComputeResourceError( message="The requested storage surpasses the maximum value allowed." ) - # Memory and disk space in CRC are assumed to be in gigabytes whereas - # the notebook service assumes that if a plain number is used then it is bytes. options = ServerOptions.from_resource_class(res_class) options.set_storage(storage, gigabytes=True) quota = pool.get("quota") @@ -67,12 +58,7 @@ def validate_class_storage( return options def get_default_class(self) -> Dict[str, Any]: - res = requests.get(self.crc_url + "/resource_pools") - if res.status_code != 200: - raise IntermittentError( - "The CRC sent an unexpected response, please try again later." - ) - pools = res.json() + pools = self._get_resource_pools() default_pools = [p for p in pools if p.get("default", False)] if len(default_pools) < 1: raise ConfigurationError("Cannot find the default resource pool.") @@ -89,16 +75,9 @@ def find_acceptable_class( ) -> Optional[ServerOptions]: """Find a resource class that is available to the user that is greater than or equal to the old-style server options that the user requested.""" - headers = None - if user.access_token is not None: - headers = {"Authorization": f"bearer {user.access_token}"} - res = requests.get(self.crc_url + "/resource_pools", headers=headers) - if res.status_code != 200: - raise IntermittentError( - message="The compute resource access control service sent " - "an unexpected response, please try again later", - ) - resource_pools = res.json() + resource_pools = self._get_resource_pools( + user=user, server_options=requested_server_options + ) # Difference and best candidate in the case that the resource class will be # greater than or equal to the request best_larger_or_equal_diff = None @@ -113,14 +92,44 @@ def find_acceptable_class( if quota is not None and isinstance(quota, dict): resource_class_mdl.priority_class = quota.get("id") diff = resource_class_mdl - requested_server_options - if diff >= zero_diff and ( - best_larger_or_equal_diff is None - or diff < best_larger_or_equal_diff + if ( + diff >= zero_diff + and ( + best_larger_or_equal_diff is None + or diff < best_larger_or_equal_diff + ) + and resource_class["matching"] ): best_larger_or_equal_diff = diff best_larger_or_equal_class = resource_class_mdl return best_larger_or_equal_class + def _get_resource_pools( + self, + user: Optional[User] = None, + server_options: Optional[ServerOptions] = None, + ) -> List[Dict[str, Any]]: + headers = None + params = None + if user is not None and user.access_token is not None: + headers = {"Authorization": f"bearer {user.access_token}"} + if server_options is not None: + params = { + "cpu": server_options.cpu, + "gpu": server_options.gpu, + "memory": server_options.memory, + "max_storage": server_options.storage, + } + res = requests.get( + self.crc_url + "/resource_pools", headers=headers, params=params + ) + if res.status_code != 200: + raise IntermittentError( + message="The compute resource access control service sent " + "an unexpected response, please try again later", + ) + return res.json() + @dataclass class DummyCRCValidator: diff --git a/renku_notebooks/api/schemas/servers_post.py b/renku_notebooks/api/schemas/servers_post.py index 58c73ac59..ed9a0e2f2 100644 --- a/renku_notebooks/api/schemas/servers_post.py +++ b/renku_notebooks/api/schemas/servers_post.py @@ -26,6 +26,7 @@ class LaunchNotebookRequestWithoutS3(Schema): required=False, ) resource_class_id = fields.Int(required=False, load_default=None) + # storage is in gigabytes storage = fields.Int( required=False, load_default=1, From 05c688d5f9f7d827341d53f4bce3deac50c639a5 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Tue, 4 Jul 2023 17:30:41 +0200 Subject: [PATCH 18/20] chore: update renku cli version --- git_services/poetry.lock | 3251 ++++++++++++++++++----------------- git_services/pyproject.toml | 4 +- 2 files changed, 1643 insertions(+), 1612 deletions(-) diff --git a/git_services/poetry.lock b/git_services/poetry.lock index fb7a9fbc9..5cda55e62 100644 --- a/git_services/poetry.lock +++ b/git_services/poetry.lock @@ -1,5 +1,3 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. - [[package]] name = "addict" version = "2.4.0" @@ -7,10 +5,6 @@ description = "Addict is a dictionary whose items can be set using both attribut category = "main" optional = false python-versions = "*" -files = [ - {file = "addict-2.4.0-py3-none-any.whl", hash = "sha256:249bb56bbfd3cdc2a004ea0ff4c2b6ddc84d53bc2194761636eb314d5cfa5dfc"}, - {file = "addict-2.4.0.tar.gz", hash = "sha256:b3b2210e0e067a281f5646c8c5db92e99b7231ea8b0eb5f74dbdf9e259d4e494"}, -] [[package]] name = "ansicon" @@ -19,10 +13,6 @@ description = "Python wrapper for loading Jason Hood's ANSICON" category = "main" optional = false python-versions = "*" -files = [ - {file = "ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec"}, - {file = "ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1"}, -] [[package]] name = "appdirs" @@ -31,10 +21,6 @@ description = "A small Python module for determining appropriate platform-specif category = "main" optional = false python-versions = "*" -files = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] [[package]] name = "argcomplete" @@ -43,10 +29,6 @@ description = "Bash tab completion for argparse" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "argcomplete-2.0.0-py2.py3-none-any.whl", hash = "sha256:cffa11ea77999bb0dd27bb25ff6dc142a6796142f68d45b1a26b11f58724561e"}, - {file = "argcomplete-2.0.0.tar.gz", hash = "sha256:6372ad78c89d662035101418ae253668445b391755cfe94ea52f1b9d22425b20"}, -] [package.extras] test = ["coverage", "flake8", "pexpect", "wheel"] @@ -58,10 +40,6 @@ description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.7.2" -files = [ - {file = "astroid-2.15.4-py3-none-any.whl", hash = "sha256:a1b8543ef9d36ea777194bc9b17f5f8678d2c56ee6a45b2c2f17eec96f242347"}, - {file = "astroid-2.15.4.tar.gz", hash = "sha256:c81e1c7fbac615037744d067a9bb5f9aeb655edf59b63ee8b59585475d6f80d8"}, -] [package.dependencies] lazy-object-proxy = ">=1.4.0" @@ -78,10 +56,6 @@ description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] [package.extras] dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"] @@ -96,10 +70,6 @@ description = "Create and validate BagIt packages" category = "main" optional = false python-versions = "*" -files = [ - {file = "bagit-1.8.1-py2.py3-none-any.whl", hash = "sha256:d14dd7e373dd24d41f6748c42f123f7db77098dfa4a0125dbacb4c8bdf767c09"}, - {file = "bagit-1.8.1.tar.gz", hash = "sha256:37df1330d2e8640c8dee8ab6d0073ac701f0614d25f5252f9e05263409cee60c"}, -] [[package]] name = "bashlex" @@ -108,10 +78,6 @@ description = "Python parser for bash" category = "main" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4" -files = [ - {file = "bashlex-0.16-py2.py3-none-any.whl", hash = "sha256:ff89fc743ccdef978792784d74d698a9236a862939bb4af471c0c3faf92c21bb"}, - {file = "bashlex-0.16.tar.gz", hash = "sha256:dc6f017e49ce2d0fe30ad9f5206da9cd13ded073d365688c9fda525354e8c373"}, -] [[package]] name = "black" @@ -120,20 +86,6 @@ description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.7" -files = [ - {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, - {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, - {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, - {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, - {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, - {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, - {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, - {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, - {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, - {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, - {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, - {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, -] [package.dependencies] click = ">=8.0.0" @@ -156,10 +108,6 @@ description = "Easy, practical library for making terminal apps, by providing an category = "main" optional = false python-versions = ">=2.7" -files = [ - {file = "blessed-1.20.0-py2.py3-none-any.whl", hash = "sha256:0c542922586a265e699188e52d5f5ac5ec0dd517e5a1041d90d2bbf23f906058"}, - {file = "blessed-1.20.0.tar.gz", hash = "sha256:2cdd67f8746e048f00df47a2880f4d6acbcdb399031b604e34ba8f71d5787680"}, -] [package.dependencies] jinxed = {version = ">=1.1.0", markers = "platform_system == \"Windows\""} @@ -173,10 +121,6 @@ description = "Fast, simple object-to-object and broadcast signaling" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "blinker-1.5-py2.py3-none-any.whl", hash = "sha256:1eb563df6fdbc39eeddc177d953203f99f097e9bf0e2b8f9f3cf18b6ca425e36"}, - {file = "blinker-1.5.tar.gz", hash = "sha256:923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462"}, -] [[package]] name = "btrees" @@ -185,51 +129,13 @@ description = "Scalable persistent object containers" category = "main" optional = false python-versions = "*" -files = [ - {file = "BTrees-4.10.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c349a416e7e4f3d6a2858d605b9fa0b92fad268714134dd0e2f7e0b631c03eef"}, - {file = "BTrees-4.10.0-cp27-cp27m-win32.whl", hash = "sha256:f0a6229980c39ccba644bb15e0045f3c2b6b173c9f87bb61a23d843cb389ab98"}, - {file = "BTrees-4.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:3a0b3642bbc36a6beebc5ccbc749fcd93ec65530f05223ae31fd0c76ab185e75"}, - {file = "BTrees-4.10.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:69fcefa4a5542f7c736d26f9ea44baafbb4a3a6862bec981d6eac1beda60e672"}, - {file = "BTrees-4.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7dc03f8afd98c9f64c79a9b944e6c0476b76c2d00b6d2473ac66aeedb90c3c2a"}, - {file = "BTrees-4.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4ee8f5880ca6be3e177a852da3ac09fac883680cce310d638e1f482a6fb4c267"}, - {file = "BTrees-4.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ea05e91842fc02b3c01e2d18667a2a3dbfcc3f902aa33d499c1bfcba9a636c8"}, - {file = "BTrees-4.10.0-cp310-cp310-win32.whl", hash = "sha256:670869947dcc4216c66f73fc1dc1dff6b053ef45242b925c3fd95e32f5d1604f"}, - {file = "BTrees-4.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:34e8fd044c85356b3096dc991a5c70ae1692dcd07968fb7de9b7264f37c72626"}, - {file = "BTrees-4.10.0-cp35-cp35m-win32.whl", hash = "sha256:b79259916631dcbd242fc3dd156c4ba0de66c1f3d936338f3aff204839a59a4a"}, - {file = "BTrees-4.10.0-cp35-cp35m-win_amd64.whl", hash = "sha256:34862314aed96ca195766691b7bb2d89a35c376441540f84dd2af183278194e2"}, - {file = "BTrees-4.10.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:b53f2798c9215b851969a1601ec806643d42f74a2ddeacbf38e2ed6aea1fb109"}, - {file = "BTrees-4.10.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff3c5a196f5bf2402f981672b850e218486d0fa6c9ebcb27e32f40c3a3cd3416"}, - {file = "BTrees-4.10.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93e1d058a60f0914c94ae623e0d747082153e0242f159b8f4bf6395fe2cc8bb8"}, - {file = "BTrees-4.10.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e19147982a4e37a3fd6e5a04d054917b3a8d4f102901e75d067738151b650100"}, - {file = "BTrees-4.10.0-cp36-cp36m-win32.whl", hash = "sha256:5427b3ffbce05ab8f4db4b99d3463c7700e605a3f413b38e61500cbe4b872bc5"}, - {file = "BTrees-4.10.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cf87c185d65559b91fdf71d075b86c7ea8aa68c67cc5dc2010589e9919144cfd"}, - {file = "BTrees-4.10.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:c456801116444588afb84522c946b1c4ed5198deee6fbef6acc1a54a569b4f99"}, - {file = "BTrees-4.10.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d204f55915bcce691b4e5dc1fc8926c9e0da7994a80ea70b7e42aead853fed6d"}, - {file = "BTrees-4.10.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bfb2238affe98062b6a5778d709a64bde60fcaa6604c1a34f47f8b25a9ca8658"}, - {file = "BTrees-4.10.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5c3d1f6ba10f5686552b407a6ef468015230b45fb4d6a160a9d19fedf78041cf"}, - {file = "BTrees-4.10.0-cp37-cp37m-win32.whl", hash = "sha256:39026d5bee08b79eb3d83a716276a733145aa8b5aa7ec5890c5efaa6898fe057"}, - {file = "BTrees-4.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:945cf38fc2a26d4259b0d38078654870c4f14a420843b91cc93e10ed7cec5a3d"}, - {file = "BTrees-4.10.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:e27a397ee41efc2d4ae337308fd6b1d82c267e25e0310ce3417ae594258d38a1"}, - {file = "BTrees-4.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70cd7a679ef05d7b7b1f5725c28928c4328f8ff1f9f9ddada097c6a77334a92d"}, - {file = "BTrees-4.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f6a89ef8d31c19a1d2348d4d2df24b1596b280a93fc06855b365e3f324dfc8bb"}, - {file = "BTrees-4.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ba6aa6592bee36a45c9866424430530085ac3f7dccb5ade94206a7102539788a"}, - {file = "BTrees-4.10.0-cp38-cp38-win32.whl", hash = "sha256:23af5041101143418a6b109ed184091aa9a00431b1847044ca1cd3fc968b59aa"}, - {file = "BTrees-4.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:9e8485c6ed09477cdd0c878bf8d5a7e994200d82edb9cd7c00caede4042f8a12"}, - {file = "BTrees-4.10.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b8e160c6dfcd4544f74be584a70a6b442e71a19e8dadd1cd8d0b7e3cd4263bd9"}, - {file = "BTrees-4.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2249c6bcc6a749f0f846e301c9d42633c9388f8b54b6b431068a95d9cc6a07a"}, - {file = "BTrees-4.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e67b21567ef0edceabb4770009978cdb3bef5864c5a412bb060cc15207ccbf1a"}, - {file = "BTrees-4.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:adb01cec4212739b6033c7673f0ad4cf8cdba36ebea932a32ab69b82a2987656"}, - {file = "BTrees-4.10.0-cp39-cp39-win32.whl", hash = "sha256:e378707d019b522283ceea03d1f39df040d0abb668714ea5173771d1eeacbbdf"}, - {file = "BTrees-4.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:03cad075c38e52e5f6662ef16ad52f0b37f849ad5d696e3d4e2da5614ce420bc"}, - {file = "BTrees-4.10.0.tar.gz", hash = "sha256:d6ab0e3410d074d7154245d6dc6493ae86f1b50bd6080d1310ebb3ecdea5deb6"}, -] [package.dependencies] persistent = ">=4.1.0" "zope.interface" = ">=5.0.0" [package.extras] -docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"] +docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx_rtd_theme"] test = ["persistent (>=4.4.3)", "transaction", "zope.testrunner"] zodb = ["ZODB"] @@ -240,12 +146,9 @@ description = "httplib2 caching for requests" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "CacheControl-0.12.11-py2.py3-none-any.whl", hash = "sha256:2c75d6a8938cb1933c75c50184549ad42728a27e9f6b92fd677c3151aa72555b"}, - {file = "CacheControl-0.12.11.tar.gz", hash = "sha256:a5b9fcc986b184db101aa280b42ecdcdfc524892596f606858e0b7a8b4d9e144"}, -] [package.dependencies] +lockfile = {version = ">=0.9", optional = true, markers = "extra == \"filecache\""} msgpack = ">=0.5.2" requests = "*" @@ -260,10 +163,6 @@ description = "Extensible memoizing collections and decorators" category = "main" optional = false python-versions = "~=3.7" -files = [ - {file = "cachetools-5.2.0-py3-none-any.whl", hash = "sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db"}, - {file = "cachetools-5.2.0.tar.gz", hash = "sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757"}, -] [[package]] name = "calamus" @@ -272,10 +171,6 @@ description = "calamus is a library built on top of marshmallow to allow (de-)Se category = "main" optional = false python-versions = ">=3.7.1,<4.0.0" -files = [ - {file = "calamus-0.3.14-py3-none-any.whl", hash = "sha256:d614c4b489f12933363abc2c46d45a58b1a53946f22ce1417047b7c9f33f45e4"}, - {file = "calamus-0.3.14.tar.gz", hash = "sha256:114b6e4461561aab7c8f44c52ea988f0718ae505242c613487727c3724d68fe3"}, -] [package.dependencies] lazy-object-proxy = ">=1.4.3,<2.0.0" @@ -293,10 +188,6 @@ description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] [[package]] name = "cffi" @@ -305,72 +196,6 @@ description = "Foreign Function Interface for Python calling C code." category = "main" optional = false python-versions = "*" -files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, -] [package.dependencies] pycparser = "*" @@ -382,10 +207,6 @@ description = "The Real First Universal Charset Detector. Open, modern and activ category = "main" optional = false python-versions = ">=3.5.0" -files = [ - {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, - {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, -] [package.extras] unicode-backport = ["unicodedata2"] @@ -397,10 +218,6 @@ description = "Composable command line interface toolkit" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "click-8.1.2-py3-none-any.whl", hash = "sha256:24e1a4a9ec5bf6299411369b208c1df2188d9eb8d916302fe6bf03faed227f1e"}, - {file = "click-8.1.2.tar.gz", hash = "sha256:479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"}, -] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -412,10 +229,6 @@ description = "Option groups missing in Click" category = "main" optional = false python-versions = ">=3.6,<4" -files = [ - {file = "click-option-group-0.5.3.tar.gz", hash = "sha256:a6e924f3c46b657feb5b72679f7e930f8e5b224b766ab35c91ae4019b4e0615e"}, - {file = "click_option_group-0.5.3-py3-none-any.whl", hash = "sha256:9653a2297357335d7325a1827e71ac1245d91c97d959346a7decabd4a52d5354"}, -] [package.dependencies] Click = ">=7.0,<9" @@ -431,10 +244,6 @@ description = "An extension module for click to enable registering CLI commands category = "main" optional = false python-versions = "*" -files = [ - {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, - {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, -] [package.dependencies] click = ">=4.0" @@ -449,10 +258,6 @@ description = "Cross-platform colored terminal text." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] [[package]] name = "coloredlogs" @@ -461,10 +266,6 @@ description = "Colored terminal output for Python's logging module" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934"}, - {file = "coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0"}, -] [package.dependencies] humanfriendly = ">=9.1" @@ -479,10 +280,6 @@ description = "Python parser for the CommonMark Markdown spec" category = "main" optional = false python-versions = "*" -files = [ - {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, - {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, -] [package.extras] test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] @@ -494,58 +291,6 @@ description = "Code coverage measurement for Python" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "coverage-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7b4da9bafad21ea45a714d3ea6f3e1679099e420c8741c74905b92ee9bfa7cc"}, - {file = "coverage-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fde17bc42e0716c94bf19d92e4c9f5a00c5feb401f5bc01101fdf2a8b7cacf60"}, - {file = "coverage-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdbb0d89923c80dbd435b9cf8bba0ff55585a3cdb28cbec65f376c041472c60d"}, - {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67f9346aeebea54e845d29b487eb38ec95f2ecf3558a3cffb26ee3f0dcc3e760"}, - {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42c499c14efd858b98c4e03595bf914089b98400d30789511577aa44607a1b74"}, - {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c35cca192ba700979d20ac43024a82b9b32a60da2f983bec6c0f5b84aead635c"}, - {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9cc4f107009bca5a81caef2fca843dbec4215c05e917a59dec0c8db5cff1d2aa"}, - {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f444627b3664b80d078c05fe6a850dd711beeb90d26731f11d492dcbadb6973"}, - {file = "coverage-6.4.4-cp310-cp310-win32.whl", hash = "sha256:66e6df3ac4659a435677d8cd40e8eb1ac7219345d27c41145991ee9bf4b806a0"}, - {file = "coverage-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:35ef1f8d8a7a275aa7410d2f2c60fa6443f4a64fae9be671ec0696a68525b875"}, - {file = "coverage-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1328d0c2f194ffda30a45f11058c02410e679456276bfa0bbe0b0ee87225fac"}, - {file = "coverage-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61b993f3998ee384935ee423c3d40894e93277f12482f6e777642a0141f55782"}, - {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5dd4b8e9cd0deb60e6fcc7b0647cbc1da6c33b9e786f9c79721fd303994832f"}, - {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7026f5afe0d1a933685d8f2169d7c2d2e624f6255fb584ca99ccca8c0e966fd7"}, - {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9c7b9b498eb0c0d48b4c2abc0e10c2d78912203f972e0e63e3c9dc21f15abdaa"}, - {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ee2b2fb6eb4ace35805f434e0f6409444e1466a47f620d1d5763a22600f0f892"}, - {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ab066f5ab67059d1f1000b5e1aa8bbd75b6ed1fc0014559aea41a9eb66fc2ce0"}, - {file = "coverage-6.4.4-cp311-cp311-win32.whl", hash = "sha256:9d6e1f3185cbfd3d91ac77ea065d85d5215d3dfa45b191d14ddfcd952fa53796"}, - {file = "coverage-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e3d3c4cc38b2882f9a15bafd30aec079582b819bec1b8afdbde8f7797008108a"}, - {file = "coverage-6.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a095aa0a996ea08b10580908e88fbaf81ecf798e923bbe64fb98d1807db3d68a"}, - {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef6f44409ab02e202b31a05dd6666797f9de2aa2b4b3534e9d450e42dea5e817"}, - {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b7101938584d67e6f45f0015b60e24a95bf8dea19836b1709a80342e01b472f"}, - {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a32ec68d721c3d714d9b105c7acf8e0f8a4f4734c811eda75ff3718570b5e3"}, - {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6a864733b22d3081749450466ac80698fe39c91cb6849b2ef8752fd7482011f3"}, - {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820"}, - {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a3b2752de32c455f2521a51bd3ffb53c5b3ae92736afde67ce83477f5c1dd928"}, - {file = "coverage-6.4.4-cp37-cp37m-win32.whl", hash = "sha256:f855b39e4f75abd0dfbcf74a82e84ae3fc260d523fcb3532786bcbbcb158322c"}, - {file = "coverage-6.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ee6ae6bbcac0786807295e9687169fba80cb0617852b2fa118a99667e8e6815d"}, - {file = "coverage-6.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:564cd0f5b5470094df06fab676c6d77547abfdcb09b6c29c8a97c41ad03b103c"}, - {file = "coverage-6.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cbbb0e4cd8ddcd5ef47641cfac97d8473ab6b132dd9a46bacb18872828031685"}, - {file = "coverage-6.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6113e4df2fa73b80f77663445be6d567913fb3b82a86ceb64e44ae0e4b695de1"}, - {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d032bfc562a52318ae05047a6eb801ff31ccee172dc0d2504614e911d8fa83e"}, - {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e431e305a1f3126477abe9a184624a85308da8edf8486a863601d58419d26ffa"}, - {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cf2afe83a53f77aec067033199797832617890e15bed42f4a1a93ea24794ae3e"}, - {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:783bc7c4ee524039ca13b6d9b4186a67f8e63d91342c713e88c1865a38d0892a"}, - {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ff934ced84054b9018665ca3967fc48e1ac99e811f6cc99ea65978e1d384454b"}, - {file = "coverage-6.4.4-cp38-cp38-win32.whl", hash = "sha256:e1fabd473566fce2cf18ea41171d92814e4ef1495e04471786cbc943b89a3781"}, - {file = "coverage-6.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:4179502f210ebed3ccfe2f78bf8e2d59e50b297b598b100d6c6e3341053066a2"}, - {file = "coverage-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:98c0b9e9b572893cdb0a00e66cf961a238f8d870d4e1dc8e679eb8bdc2eb1b86"}, - {file = "coverage-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fc600f6ec19b273da1d85817eda339fb46ce9eef3e89f220055d8696e0a06908"}, - {file = "coverage-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a98d6bf6d4ca5c07a600c7b4e0c5350cd483c85c736c522b786be90ea5bac4f"}, - {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2"}, - {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfa0b97eb904255e2ab24166071b27408f1f69c8fbda58e9c0972804851e0558"}, - {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fcbe3d9a53e013f8ab88734d7e517eb2cd06b7e689bedf22c0eb68db5e4a0a19"}, - {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:15e38d853ee224e92ccc9a851457fb1e1f12d7a5df5ae44544ce7863691c7a0d"}, - {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6913dddee2deff8ab2512639c5168c3e80b3ebb0f818fed22048ee46f735351a"}, - {file = "coverage-6.4.4-cp39-cp39-win32.whl", hash = "sha256:354df19fefd03b9a13132fa6643527ef7905712109d9c1c1903f2133d3a4e145"}, - {file = "coverage-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:1238b08f3576201ebf41f7c20bf59baa0d05da941b123c6656e42cdb668e9827"}, - {file = "coverage-6.4.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:f67cf9f406cf0d2f08a3515ce2db5b82625a7257f88aad87904674def6ddaec1"}, - {file = "coverage-6.4.4.tar.gz", hash = "sha256:e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58"}, -] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} @@ -560,31 +305,6 @@ description = "cryptography is a package which provides cryptographic recipes an category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06"}, - {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536"}, - {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5"}, - {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0"}, - {file = "cryptography-39.0.2-cp36-abi3-win32.whl", hash = "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480"}, - {file = "cryptography-39.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3"}, - {file = "cryptography-39.0.2.tar.gz", hash = "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f"}, -] [package.dependencies] cffi = ">=1.12" @@ -606,13 +326,10 @@ description = "Common Workflow Language standalone document upgrader" category = "main" optional = false python-versions = ">=3.6, <4" -files = [ - {file = "cwl-upgrader-1.2.3.tar.gz", hash = "sha256:3372b87af6ab6154716462f97561620eecd786798a68a2a64a98529340f52e1f"}, - {file = "cwl_upgrader-1.2.3-py3-none-any.whl", hash = "sha256:0862b4044568c48f0ad5a91da3c14d9fd834b6d80e194aa2a06ffbc6fe4fe1ae"}, -] [package.dependencies] "ruamel.yaml" = [ + {version = ">=0.15.71,<0.17.22", markers = "python_version < \"3.8\""}, {version = ">=0.16.0,<0.17.22", markers = "python_version >= \"3.10\""}, {version = ">=0.15.78,<0.17.22", markers = "python_version >= \"3.8\""}, {version = ">=0.15.98,<0.17.22", markers = "python_version >= \"3.9\""}, @@ -622,58 +339,56 @@ setuptools = "*" [[package]] name = "cwl-utils" -version = "0.15" +version = "0.27" description = "" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "cwl-utils-0.15.tar.gz", hash = "sha256:3309ba2854eb272453aae1d63add8885d631035723a901ac5b8f9b30a11d2d57"}, - {file = "cwl_utils-0.15-py3-none-any.whl", hash = "sha256:7ccde0c350f0b93c7cc4cc60d2b39f8e453eeceec68708b08f4b10722738577a"}, -] [package.dependencies] -CacheControl = "*" +CacheControl = "<0.13" cwl-upgrader = ">=1.2.3" packaging = "*" rdflib = "*" requests = "*" -schema-salad = ">=8.2,<9" +"ruamel.yaml" = [ + {version = ">=0.16.12,<0.17.27", markers = "python_version < \"3.7\""}, + {version = ">=0.17.6,<0.17.27", markers = "python_version >= \"3.7\""}, +] +schema-salad = ">=8.3.20220825114525,<9" +urllib3 = "<2" [package.extras] pretty = ["cwlformat"] [[package]] name = "cwltool" -version = "3.1.20220628170238" +version = "3.1.20230425144158" description = "Common workflow language reference implementation" category = "main" optional = false python-versions = ">=3.6, <4" -files = [ - {file = "cwltool-3.1.20220628170238-py3-none-any.whl", hash = "sha256:37b8ce96a72a40a232a04c0f49e8053703aafbe885a239eff57512c66fcfb4c3"}, - {file = "cwltool-3.1.20220628170238.tar.gz", hash = "sha256:fbac3fa443109fcbb48e7174e02963fddb16542f1b43fa54c72dd000e102296b"}, -] [package.dependencies] argcomplete = "*" bagit = ">=1.6.4" coloredlogs = "*" +cwl-utils = ">=0.22" mypy-extensions = "*" prov = "1.5.1" psutil = ">=5.6.6" pydot = ">=1.4.1" pyparsing = "!=3.0.2" -rdflib = ">=4.2.2,<6.2.0" +rdflib = ">=4.2.2,<6.4.0" requests = ">=2.6.1" "ruamel.yaml" = ">=0.15,<0.17.22" -schema-salad = ">=8.2.20211104054942,<9" +schema-salad = ">=8.4,<9" setuptools = "*" shellescape = ">=3.4.1,<3.9" typing-extensions = "*" [package.extras] -deps = ["galaxy-tool-util (>=21.1.0)"] +deps = ["galaxy-tool-util (>=22.1.2,<23)"] [[package]] name = "dataconf" @@ -682,16 +397,27 @@ description = "Simple dataclasses configuration management for Python with hocon category = "main" optional = false python-versions = ">=3.8,<4.0" -files = [ - {file = "dataconf-2.2.0-py3-none-any.whl", hash = "sha256:1354f8442234bfa132c888e9df9e339792639aaa574ba7ec286ab3ae90c31bba"}, - {file = "dataconf-2.2.0.tar.gz", hash = "sha256:c14366e142dacb1cead7c9ca58fe2f4282e3f151c1f2ccf2dd5c31d8258f56ca"}, -] [package.dependencies] pyhocon = "0.3.60" python-dateutil = ">=2.8.2,<3.0.0" PyYAML = ">=6.0,<7.0" +[[package]] +name = "deal" +version = "4.24.1" +description = "**Deal** is a Python library for [design by contract][wiki] (DbC) programming." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +all = ["astroid (>=2.11.0)", "deal-solver", "hypothesis", "pygments", "typeguard (>=3.0.0)", "vaa (>=0.2.1)"] +docs = ["m2r2", "myst-parser", "sphinx (>=3.5.0,<3.6.0)", "sphinx-rtd-theme (>=0.5.0,<0.6.0)"] +integration = ["astroid (>=2.11.0)", "deal-solver", "flake8", "hypothesis", "marshmallow", "pygments", "sphinx (>=4.5.0)", "typeguard", "vaa (>=0.2.1)"] +lint = ["deal-solver", "flake8", "flake8-commas", "flake8-quotes", "hypothesis", "isort", "mypy (>=0.900)", "mypy_test (>=0.1.1)", "pygments", "typeguard", "unify"] +test = ["coverage-conditional-plugin", "coverage[toml]", "docstring-parser", "pytest", "pytest-cov", "urllib3"] + [[package]] name = "deepdiff" version = "5.8.1" @@ -699,10 +425,6 @@ description = "Deep Difference and Search of any Python object/data." category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "deepdiff-5.8.1-py3-none-any.whl", hash = "sha256:e9aea49733f34fab9a0897038d8f26f9d94a97db1790f1b814cced89e9e0d2b7"}, - {file = "deepdiff-5.8.1.tar.gz", hash = "sha256:8d4eb2c4e6cbc80b811266419cb71dd95a157094a3947ccf937a94d44943c7b8"}, -] [package.dependencies] ordered-set = ">=4.1.0,<4.2.0" @@ -717,10 +439,6 @@ description = "a toolset to deeply merge python dictionaries." category = "main" optional = false python-versions = "*" -files = [ - {file = "deepmerge-1.0.1-py3-none-any.whl", hash = "sha256:f851fff957697cb8f4580b465acf5c2d35841695306ff0abb9cb9c273ad76112"}, - {file = "deepmerge-1.0.1.tar.gz", hash = "sha256:4b44779ed3d2fb791bb181fc2683423496fea428abb7af37feb23286de7f0a1a"}, -] [[package]] name = "dill" @@ -729,10 +447,6 @@ description = "serialize all of python" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, - {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, -] [package.extras] graph = ["objgraph (>=1.7.2)"] @@ -744,10 +458,6 @@ description = "A Python library for the Docker Engine API." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "docker-4.2.2-py2.py3-none-any.whl", hash = "sha256:03a46400c4080cb6f7aa997f881ddd84fef855499ece219d75fbdb53289c17ab"}, - {file = "docker-4.2.2.tar.gz", hash = "sha256:26eebadce7e298f55b76a88c4f8802476c5eaddbdbe38dbc6cce8781c47c9b54"}, -] [package.dependencies] pypiwin32 = {version = "223", markers = "sys_platform == \"win32\" and python_version >= \"3.6\""} @@ -766,10 +476,6 @@ description = "Dynamic version generation" category = "main" optional = false python-versions = ">=3.5,<4.0" -files = [ - {file = "dunamai-1.16.0-py3-none-any.whl", hash = "sha256:dc92d817f3bc155e8b129e8c705c36bb15a7e950e2698a93aea142732a888e98"}, - {file = "dunamai-1.16.0.tar.gz", hash = "sha256:bfe8e23cc5a1ceed1c7f791674ea24cf832a53a5da73f046eeb43367ccfc3f77"}, -] [package.dependencies] packaging = ">=20.9" @@ -781,10 +487,6 @@ description = "Enlighten Progress Bar" category = "main" optional = false python-versions = "*" -files = [ - {file = "enlighten-1.11.2-py2.py3-none-any.whl", hash = "sha256:98c9eb20e022b6a57f1c8d4f17e16760780b6881e6d658c40f52d21255ea45f3"}, - {file = "enlighten-1.11.2.tar.gz", hash = "sha256:9284861dee5a272e0e1a3758cd3f3b7180b1bd1754875da76876f2a7f46ccb61"}, -] [package.dependencies] blessed = ">=1.17.7" @@ -797,10 +499,6 @@ description = "Discover and load entry points from installed packages." category = "dev" optional = false python-versions = ">=3.6" -files = [ - {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, - {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, -] [[package]] name = "exceptiongroup" @@ -809,10 +507,6 @@ description = "Backport of PEP 654 (exception groups)" category = "dev" optional = false python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, - {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, -] [package.extras] test = ["pytest (>=6)"] @@ -824,10 +518,6 @@ description = "A platform independent file lock." category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "filelock-3.6.0-py3-none-any.whl", hash = "sha256:f8314284bfffbdcfa0ff3d7992b023d4c628ced6feb957351d4c48d059f56bc0"}, - {file = "filelock-3.6.0.tar.gz", hash = "sha256:9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85"}, -] [package.extras] docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] @@ -840,10 +530,6 @@ description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, - {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, -] [package.dependencies] mccabe = ">=0.6.0,<0.7.0" @@ -857,10 +543,6 @@ description = "Flake8 wrapper to make it nice and configurable" category = "dev" optional = false python-versions = ">=3.5" -files = [ - {file = "flakehell-0.9.0-py3-none-any.whl", hash = "sha256:48a3a9b46136240e52b3b32a78a0826c45f6dcf7d980c30f758c1db5b1439c0b"}, - {file = "flakehell-0.9.0.tar.gz", hash = "sha256:208836d8d24194d50cfa4c1fc99f681f3c537cc232edcd06455abc2971460893"}, -] [package.dependencies] colorama = "*" @@ -881,10 +563,6 @@ description = "A simple framework for building complex web applications." category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "Flask-2.2.4-py3-none-any.whl", hash = "sha256:13f6329ddbfff11340939cd11919daf150a01358ded4b7e81c03c055dfecb559"}, - {file = "Flask-2.2.4.tar.gz", hash = "sha256:77504c4c097f56ac5f29b00f9009213010cf9d2923a288c0e0564a5db2bb53d6"}, -] [package.dependencies] click = ">=8.0" @@ -904,25 +582,6 @@ description = "A simple immutable dictionary" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "frozendict-2.3.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4a3b32d47282ae0098b9239a6d53ec539da720258bd762d62191b46f2f87c5fc"}, - {file = "frozendict-2.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c9887179a245a66a50f52afa08d4d92ae0f269839fab82285c70a0fa0dd782"}, - {file = "frozendict-2.3.4-cp310-cp310-win_amd64.whl", hash = "sha256:b98a0d65a59af6da03f794f90b0c3085a7ee14e7bf8f0ef36b079ee8aa992439"}, - {file = "frozendict-2.3.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d8042b7dab5e992e30889c9b71b781d5feef19b372d47d735e4d7d45846fd4a"}, - {file = "frozendict-2.3.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a6d2e8b7cf6b6e5677a1a4b53b4073e5d9ec640d1db30dc679627668d25e90"}, - {file = "frozendict-2.3.4-cp36-cp36m-win_amd64.whl", hash = "sha256:dbbe1339ac2646523e0bb00d1896085d1f70de23780e4927ca82b36ab8a044d3"}, - {file = "frozendict-2.3.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95bac22f7f09d81f378f2b3f672b7a50a974ca180feae1507f5e21bc147e8bc8"}, - {file = "frozendict-2.3.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae686722c144b333c4dbdc16323a5de11406d26b76d2be1cc175f90afacb5ba"}, - {file = "frozendict-2.3.4-cp37-cp37m-win_amd64.whl", hash = "sha256:389f395a74eb16992217ac1521e689c1dea2d70113bcb18714669ace1ed623b9"}, - {file = "frozendict-2.3.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ccb6450a416c9cc9acef7683e637e28356e3ceeabf83521f74cc2718883076b7"}, - {file = "frozendict-2.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca59108b77cadc13ba7dfea7e8f50811208c7652a13dc6c7f92d7782a24d299"}, - {file = "frozendict-2.3.4-cp38-cp38-win_amd64.whl", hash = "sha256:3ec86ebf143dd685184215c27ec416c36e0ba1b80d81b1b9482f7d380c049b4e"}, - {file = "frozendict-2.3.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5809e6ff6b7257043a486f7a3b73a7da71cf69a38980b4171e4741291d0d9eb3"}, - {file = "frozendict-2.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c550ed7fdf1962984bec21630c584d722b3ee5d5f57a0ae2527a0121dc0414a"}, - {file = "frozendict-2.3.4-cp39-cp39-win_amd64.whl", hash = "sha256:3e93aebc6e69a8ef329bbe9afb8342bd33c7b5c7a0c480cb9f7e60b0cbe48072"}, - {file = "frozendict-2.3.4-py3-none-any.whl", hash = "sha256:d722f3d89db6ae35ef35ecc243c40c800eb344848c83dba4798353312cd37b15"}, - {file = "frozendict-2.3.4.tar.gz", hash = "sha256:15b4b18346259392b0d27598f240e9390fafbff882137a9c48a1e0104fb17f78"}, -] [[package]] name = "future" @@ -931,9 +590,6 @@ description = "Clean single-source support for Python 3 and 2" category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "future-0.18.3.tar.gz", hash = "sha256:34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307"}, -] [[package]] name = "gevent" @@ -942,60 +598,6 @@ description = "Coroutine-based network library" category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5" -files = [ - {file = "gevent-22.10.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:97cd42382421779f5d82ec5007199e8a84aa288114975429e4fd0a98f2290f10"}, - {file = "gevent-22.10.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:1e1286a76f15b5e15f1e898731d50529e249529095a032453f2c101af3fde71c"}, - {file = "gevent-22.10.2-cp27-cp27m-win32.whl", hash = "sha256:59b47e81b399d49a5622f0f503c59f1ce57b7705306ea0196818951dfc2f36c8"}, - {file = "gevent-22.10.2-cp27-cp27m-win_amd64.whl", hash = "sha256:1d543c9407a1e4bca11a8932916988cfb16de00366de5bf7bc9e7a3f61e60b18"}, - {file = "gevent-22.10.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4e2f008c82dc54ec94f4de12ca6feea60e419babb48ec145456907ae61625aa4"}, - {file = "gevent-22.10.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:990d7069f14dc40674e0d5cb43c68fd3bad8337048613b9bb94a0c4180ffc176"}, - {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f23d0997149a816a2a9045af29c66f67f405a221745b34cefeac5769ed451db8"}, - {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b43d500d7d3c0e03070dee813335bb5315215aa1cf6a04c61093dfdd718640b3"}, - {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b68f4c9e20e47ad49fe797f37f91d5bbeace8765ce2707f979a8d4ec197e4d"}, - {file = "gevent-22.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1f001cac0ba8da76abfeb392a3057f81fab3d67cc916c7df8ea977a44a2cc989"}, - {file = "gevent-22.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:3b7eae8a0653ba95a224faaddf629a913ace408edb67384d3117acf42d7dcf89"}, - {file = "gevent-22.10.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8f2477e7b0a903a01485c55bacf2089110e5f767014967ba4b287ff390ae2638"}, - {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddaa3e310a8f1a45b5c42cf50b54c31003a3028e7d4e085059090ea0e7a5fddd"}, - {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98bc510e80f45486ef5b806a1c305e0e89f0430688c14984b0dbdec03331f48b"}, - {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:877abdb3a669576b1d51ce6a49b7260b2a96f6b2424eb93287e779a3219d20ba"}, - {file = "gevent-22.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d21ad79cca234cdbfa249e727500b0ddcbc7adfff6614a96e6eaa49faca3e4f2"}, - {file = "gevent-22.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e955238f59b2947631c9782a713280dd75884e40e455313b5b6bbc20b92ff73"}, - {file = "gevent-22.10.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:5aa99e4882a9e909b4756ee799c6fa0f79eb0542779fad4cc60efa23ec1b2aa8"}, - {file = "gevent-22.10.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:d82081656a5b9a94d37c718c8646c757e1617e389cdc533ea5e6a6f0b8b78545"}, - {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54f4bfd74c178351a4a05c5c7df6f8a0a279ff6f392b57608ce0e83c768207f9"}, - {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ff3796692dff50fec2f381b9152438b221335f557c4f9b811f7ded51b7a25a1"}, - {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f01c9adbcb605364694b11dcd0542ec468a29ac7aba2fb5665dc6caf17ba4d7e"}, - {file = "gevent-22.10.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:9d85574eb729f981fea9a78998725a06292d90a3ed50ddca74530c3148c0be41"}, - {file = "gevent-22.10.2-cp36-cp36m-win32.whl", hash = "sha256:8c192d2073e558e241f0b592c1e2b34127a4481a5be240cad4796533b88b1a98"}, - {file = "gevent-22.10.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a2237451c721a0f874ef89dbb4af4fdc172b76a964befaa69deb15b8fff10f49"}, - {file = "gevent-22.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:53ee7f170ed42c7561fe8aff5d381dc9a4124694e70580d0c02fba6aafc0ea37"}, - {file = "gevent-22.10.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:96c56c280e3c43cfd075efd10b250350ed5ffd3c1514ec99a080b1b92d7c8374"}, - {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6c144e08dfad4106effc043a026e5d0c0eff6ad031904c70bf5090c63f3a6a7"}, - {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:018f93de7d5318d2fb440f846839a4464738468c3476d5c9cf7da45bb71c18bd"}, - {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7ed2346eb9dc4344f9cb0d7963ce5b74fe16fdd031a2809bb6c2b6eba7ebcd5"}, - {file = "gevent-22.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:84c517e33ed604fa06b7d756dc0171169cc12f7fdd68eb7b17708a62eebf4516"}, - {file = "gevent-22.10.2-cp37-cp37m-win32.whl", hash = "sha256:4114f0f439f0b547bb6f1d474fee99ddb46736944ad2207cef3771828f6aa358"}, - {file = "gevent-22.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:0d581f22a5be6281b11ad6309b38b18f0638cf896931223cbaa5adb904826ef6"}, - {file = "gevent-22.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2929377c8ebfb6f4d868d161cd8de2ea6b9f6c7a5fcd4f78bcd537319c16190b"}, - {file = "gevent-22.10.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:efc003b6c1481165af61f0aeac248e0a9ac8d880bb3acbe469b448674b2d5281"}, - {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db562a8519838bddad0c439a2b12246bab539dd50e299ea7ff3644274a33b6a5"}, - {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1472012493ca1fac103f700d309cb6ef7964dcdb9c788d1768266e77712f5e49"}, - {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c04ee32c11e9fcee47c1b431834878dc987a7a2cc4fe126ddcae3bad723ce89"}, - {file = "gevent-22.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8729129edef2637a8084258cb9ec4e4d5ca45d97ac77aa7a6ff19ccb530ab731"}, - {file = "gevent-22.10.2-cp38-cp38-win32.whl", hash = "sha256:ae90226074a6089371a95f20288431cd4b3f6b0b096856afd862e4ac9510cddd"}, - {file = "gevent-22.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:494c7f29e94df9a1c3157d67bb7edfa32a46eed786e04d9ee68d39f375e30001"}, - {file = "gevent-22.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:58898dbabb5b11e4d0192aae165ad286dc6742c543e1be9d30dc82753547c508"}, - {file = "gevent-22.10.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:4197d423e198265eef39a0dea286ef389da9148e070310f34455ecee8172c391"}, - {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da4183f0b9d9a1e25e1758099220d32c51cc2c6340ee0dea3fd236b2b37598e4"}, - {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5488eba6a568b4d23c072113da4fc0feb1b5f5ede7381656dc913e0d82204e2"}, - {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319d8b1699b7b8134de66d656cd739b308ab9c45ace14d60ae44de7775b456c9"}, - {file = "gevent-22.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f3329bedbba4d3146ae58c667e0f9ac1e6f1e1e6340c7593976cdc60aa7d1a47"}, - {file = "gevent-22.10.2-cp39-cp39-win32.whl", hash = "sha256:172caa66273315f283e90a315921902cb6549762bdcb0587fd60cb712a9d6263"}, - {file = "gevent-22.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:323b207b281ba0405fea042067fa1a61662e5ac0d574ede4ebbda03efd20c350"}, - {file = "gevent-22.10.2-pp27-pypy_73-win_amd64.whl", hash = "sha256:ed7f16613eebf892a6a744d7a4a8f345bc6f066a0ff3b413e2479f9c0a180193"}, - {file = "gevent-22.10.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a47a4e77e2bc668856aad92a0b8de7ee10768258d93cd03968e6c7ba2e832f76"}, - {file = "gevent-22.10.2.tar.gz", hash = "sha256:1ca01da176ee37b3527a2702f7d40dbc9ffb8cfc7be5a03bfa4f9eec45e55c46"}, -] [package.dependencies] cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""} @@ -1018,10 +620,6 @@ description = "Git Object Database" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, - {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, -] [package.dependencies] smmap = ">=3.0.1,<6" @@ -1033,24 +631,17 @@ description = "GitPython is a python library used to interact with Git repositor category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.27-py3-none-any.whl", hash = "sha256:5b68b000463593e05ff2b261acff0ff0972df8ab1b70d3cdbd41b546c8b8fc3d"}, - {file = "GitPython-3.1.27.tar.gz", hash = "sha256:1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704"}, -] [package.dependencies] gitdb = ">=4.0.1,<5" [[package]] name = "grandalf" -version = "0.7" +version = "0.8" description = "Graph and drawing algorithms framework" category = "main" optional = false python-versions = "*" -files = [ - {file = "grandalf-0.7-py3-none-any.whl", hash = "sha256:0ba234b8962420a093af39de82e89b22e9152d54b05d2fa30953ce39fa52aea3"}, -] [package.dependencies] pyparsing = "*" @@ -1065,68 +656,6 @@ description = "Lightweight in-process concurrent programming" category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" -files = [ - {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, - {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, - {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, - {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, - {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, - {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, - {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, - {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, - {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, - {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, - {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, - {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, - {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, - {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, - {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, - {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, - {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, - {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, - {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, - {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, - {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, - {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, - {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, - {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, - {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, - {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, -] [package.extras] docs = ["Sphinx", "docutils (<0.18)"] @@ -1139,10 +668,6 @@ description = "WSGI HTTP Server for UNIX" category = "main" optional = false python-versions = ">=3.5" -files = [ - {file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"}, - {file = "gunicorn-20.1.0.tar.gz", hash = "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"}, -] [package.dependencies] setuptools = ">=3.0" @@ -1160,10 +685,6 @@ description = "Human friendly output for text interfaces using Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"}, - {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"}, -] [package.dependencies] pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_version >= \"3.8\""} @@ -1175,10 +696,6 @@ description = "Python humanize utilities" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "humanize-4.0.0-py3-none-any.whl", hash = "sha256:8d86333b8557dacffd4dce1dbe09c81c189e2caf7bb17a970b2212f0f58f10f2"}, - {file = "humanize-4.0.0.tar.gz", hash = "sha256:ee1f872fdfc7d2ef4a28d4f80ddde9f96d36955b5d6b0dac4bdeb99502bddb00"}, -] [package.extras] tests = ["freezegun", "pytest", "pytest-cov"] @@ -1190,10 +707,6 @@ description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false python-versions = ">=3.5" -files = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, -] [[package]] name = "importlib-metadata" @@ -1202,10 +715,6 @@ description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, - {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, -] [package.dependencies] zipp = ">=0.5" @@ -1217,22 +726,18 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs [[package]] name = "importlib-resources" -version = "5.7.1" +version = "5.12.0" description = "Read resources from Python packages" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "importlib_resources-5.7.1-py3-none-any.whl", hash = "sha256:e447dc01619b1e951286f3929be820029d48c75eb25d265c28b92a16548212b8"}, - {file = "importlib_resources-5.7.1.tar.gz", hash = "sha256:b6062987dfc51f0fcb809187cffbd60f35df7acb4589091f154214af6d0d49d3"}, -] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -1241,10 +746,6 @@ description = "iniconfig: brain-dead simple config-ini parsing" category = "dev" optional = false python-versions = "*" -files = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] [[package]] name = "inject" @@ -1253,9 +754,6 @@ description = "Python dependency injection framework" category = "main" optional = false python-versions = "*" -files = [ - {file = "Inject-4.3.1.tar.gz", hash = "sha256:7f996f2c9ed2082af776ddf6b528d97036898ac63040385feb1d12286a73c3cc"}, -] [[package]] name = "isodate" @@ -1264,10 +762,6 @@ description = "An ISO 8601 date/time/duration parser and formatter" category = "main" optional = false python-versions = "*" -files = [ - {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, - {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, -] [package.dependencies] six = "*" @@ -1279,10 +773,6 @@ description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.6.1,<4.0" -files = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] @@ -1297,10 +787,6 @@ description = "Safely pass data to untrusted environments and back." category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, - {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, -] [[package]] name = "jinja2" @@ -1309,10 +795,6 @@ description = "A very fast and expressive template engine." category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] [package.dependencies] MarkupSafe = ">=2.0" @@ -1327,10 +809,6 @@ description = "Jinxed Terminal Library" category = "main" optional = false python-versions = "*" -files = [ - {file = "jinxed-1.2.0-py2.py3-none-any.whl", hash = "sha256:cfc2b2e4e3b4326954d546ba6d6b9a7a796ddcb0aef8d03161d005177eb0d48b"}, - {file = "jinxed-1.2.0.tar.gz", hash = "sha256:032acda92d5c57cd216033cbbd53de731e6ed50deb63eb4781336ca55f72cda5"}, -] [package.dependencies] ansicon = {version = "*", markers = "platform_system == \"Windows\""} @@ -1342,10 +820,6 @@ description = "JSON-RPC transport implementation" category = "main" optional = false python-versions = "*" -files = [ - {file = "json-rpc-1.14.0.tar.gz", hash = "sha256:ff5df1c7fd86e1dbd0259f06599751ce91a7c790f290414793a565ab586ddc52"}, - {file = "json_rpc-1.14.0-py2.py3-none-any.whl", hash = "sha256:eabc796da090fb705885085444a75831d370506804fff760d77f7cb30e80c427"}, -] [[package]] name = "lazy-object-proxy" @@ -1354,45 +828,6 @@ description = "A fast and thorough lazy object proxy." category = "main" optional = false python-versions = ">=3.6" -files = [ - {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"}, -] [[package]] name = "lockfile" @@ -1401,10 +836,6 @@ description = "Platform-independent file locking module" category = "main" optional = false python-versions = "*" -files = [ - {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"}, - {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"}, -] [[package]] name = "lxml" @@ -1413,78 +844,6 @@ description = "Powerful and Pythonic XML processing library combining libxml2/li category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" -files = [ - {file = "lxml-4.9.1-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed"}, - {file = "lxml-4.9.1-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc"}, - {file = "lxml-4.9.1-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc"}, - {file = "lxml-4.9.1-cp27-cp27m-win32.whl", hash = "sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3"}, - {file = "lxml-4.9.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627"}, - {file = "lxml-4.9.1-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84"}, - {file = "lxml-4.9.1-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837"}, - {file = "lxml-4.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad"}, - {file = "lxml-4.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5"}, - {file = "lxml-4.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8"}, - {file = "lxml-4.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8"}, - {file = "lxml-4.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d"}, - {file = "lxml-4.9.1-cp310-cp310-win32.whl", hash = "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7"}, - {file = "lxml-4.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b"}, - {file = "lxml-4.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d"}, - {file = "lxml-4.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3"}, - {file = "lxml-4.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29"}, - {file = "lxml-4.9.1-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d"}, - {file = "lxml-4.9.1-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318"}, - {file = "lxml-4.9.1-cp35-cp35m-win32.whl", hash = "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7"}, - {file = "lxml-4.9.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4"}, - {file = "lxml-4.9.1-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb"}, - {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067"}, - {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536"}, - {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8"}, - {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b"}, - {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf"}, - {file = "lxml-4.9.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3"}, - {file = "lxml-4.9.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391"}, - {file = "lxml-4.9.1-cp36-cp36m-win32.whl", hash = "sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e"}, - {file = "lxml-4.9.1-cp36-cp36m-win_amd64.whl", hash = "sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7"}, - {file = "lxml-4.9.1-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2"}, - {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc"}, - {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c"}, - {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4"}, - {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3"}, - {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca"}, - {file = "lxml-4.9.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785"}, - {file = "lxml-4.9.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785"}, - {file = "lxml-4.9.1-cp37-cp37m-win32.whl", hash = "sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a"}, - {file = "lxml-4.9.1-cp37-cp37m-win_amd64.whl", hash = "sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e"}, - {file = "lxml-4.9.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b"}, - {file = "lxml-4.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97"}, - {file = "lxml-4.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21"}, - {file = "lxml-4.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2"}, - {file = "lxml-4.9.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130"}, - {file = "lxml-4.9.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715"}, - {file = "lxml-4.9.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036"}, - {file = "lxml-4.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387"}, - {file = "lxml-4.9.1-cp38-cp38-win32.whl", hash = "sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94"}, - {file = "lxml-4.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345"}, - {file = "lxml-4.9.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67"}, - {file = "lxml-4.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb"}, - {file = "lxml-4.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448"}, - {file = "lxml-4.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7"}, - {file = "lxml-4.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91"}, - {file = "lxml-4.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000"}, - {file = "lxml-4.9.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25"}, - {file = "lxml-4.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd"}, - {file = "lxml-4.9.1-cp39-cp39-win32.whl", hash = "sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb"}, - {file = "lxml-4.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d"}, - {file = "lxml-4.9.1-pp37-pypy37_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c"}, - {file = "lxml-4.9.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b"}, - {file = "lxml-4.9.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc"}, - {file = "lxml-4.9.1-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b"}, - {file = "lxml-4.9.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2"}, - {file = "lxml-4.9.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73"}, - {file = "lxml-4.9.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c"}, - {file = "lxml-4.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9"}, - {file = "lxml-4.9.1.tar.gz", hash = "sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f"}, -] [package.extras] cssselect = ["cssselect (>=0.7)"] @@ -1499,48 +858,6 @@ description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, -] [[package]] name = "marshmallow" @@ -1549,10 +866,6 @@ description = "A lightweight library for converting complex datatypes to and fro category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "marshmallow-3.17.1-py3-none-any.whl", hash = "sha256:1172ce82765bf26c24a3f9299ed6dbeeca4d213f638eaa39a37772656d7ce408"}, - {file = "marshmallow-3.17.1.tar.gz", hash = "sha256:48e2d88d4ab431ad5a17c25556d9da529ea6e966876f2a38d274082e270287f0"}, -] [package.dependencies] packaging = ">=17.0" @@ -1570,22 +883,14 @@ description = "McCabe checker, plugin for flake8" category = "dev" optional = false python-versions = "*" -files = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] [[package]] name = "mistune" -version = "0.8.4" -description = "The fastest markdown parser in pure Python" +version = "2.0.5" +description = "A sane Markdown parser with useful plugins and renderers" category = "main" optional = false python-versions = "*" -files = [ - {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, - {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, -] [[package]] name = "msgpack" @@ -1594,60 +899,6 @@ description = "MessagePack serializer" category = "main" optional = false python-versions = "*" -files = [ - {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250"}, - {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88"}, - {file = "msgpack-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db"}, - {file = "msgpack-1.0.4-cp310-cp310-win32.whl", hash = "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef"}, - {file = "msgpack-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075"}, - {file = "msgpack-1.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae"}, - {file = "msgpack-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6"}, - {file = "msgpack-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661"}, - {file = "msgpack-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236"}, - {file = "msgpack-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44"}, - {file = "msgpack-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243"}, - {file = "msgpack-1.0.4-cp38-cp38-win32.whl", hash = "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2"}, - {file = "msgpack-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae"}, - {file = "msgpack-1.0.4-cp39-cp39-win32.whl", hash = "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c"}, - {file = "msgpack-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce"}, - {file = "msgpack-1.0.4.tar.gz", hash = "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f"}, -] [[package]] name = "mypy-extensions" @@ -1656,10 +907,6 @@ description = "Experimental type system extensions for programs checked with the category = "main" optional = false python-versions = "*" -files = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] [[package]] name = "networkx" @@ -1668,10 +915,6 @@ description = "Python package for creating and manipulating graphs and networks" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "networkx-2.6.3-py3-none-any.whl", hash = "sha256:80b6b89c77d1dfb64a4c7854981b60aeea6360ac02c6d4e4913319e0a313abef"}, - {file = "networkx-2.6.3.tar.gz", hash = "sha256:c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51"}, -] [package.extras] default = ["matplotlib (>=3.3)", "numpy (>=1.19)", "pandas (>=1.1)", "scipy (>=1.5,!=1.6.1)"] @@ -1680,44 +923,6 @@ doc = ["nb2plots (>=0.6)", "numpydoc (>=1.1)", "pillow (>=8.2)", "pydata-sphinx- extra = ["lxml (>=4.5)", "pydot (>=1.4.1)", "pygraphviz (>=1.7)"] test = ["codecov (>=2.1)", "pytest (>=6.2)", "pytest-cov (>=2.12)"] -[[package]] -name = "numpy" -version = "1.21.1" -description = "NumPy is the fundamental package for array computing with Python." -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38e8648f9449a549a7dfe8d8755a5979b45b3538520d1e735637ef28e8c2dc50"}, - {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fd7d7409fa643a91d0a05c7554dd68aa9c9bb16e186f6ccfe40d6e003156e33a"}, - {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a75b4498b1e93d8b700282dc8e655b8bd559c0904b3910b144646dbbbc03e062"}, - {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1412aa0aec3e00bc23fbb8664d76552b4efde98fb71f60737c83efbac24112f1"}, - {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e46ceaff65609b5399163de5893d8f2a82d3c77d5e56d976c8b5fb01faa6b671"}, - {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c6a2324085dd52f96498419ba95b5777e40b6bcbc20088fddb9e8cbb58885e8e"}, - {file = "numpy-1.21.1-cp37-cp37m-win32.whl", hash = "sha256:73101b2a1fef16602696d133db402a7e7586654682244344b8329cdcbbb82172"}, - {file = "numpy-1.21.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7a708a79c9a9d26904d1cca8d383bf869edf6f8e7650d85dbc77b041e8c5a0f8"}, - {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95b995d0c413f5d0428b3f880e8fe1660ff9396dcd1f9eedbc311f37b5652e16"}, - {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:635e6bd31c9fb3d475c8f44a089569070d10a9ef18ed13738b03049280281267"}, - {file = "numpy-1.21.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a3d5fb89bfe21be2ef47c0614b9c9c707b7362386c9a3ff1feae63e0267ccb6"}, - {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a326af80e86d0e9ce92bcc1e65c8ff88297de4fa14ee936cb2293d414c9ec63"}, - {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:791492091744b0fe390a6ce85cc1bf5149968ac7d5f0477288f78c89b385d9af"}, - {file = "numpy-1.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0318c465786c1f63ac05d7c4dbcecd4d2d7e13f0959b01b534ea1e92202235c5"}, - {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a513bd9c1551894ee3d31369f9b07460ef223694098cf27d399513415855b68"}, - {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:91c6f5fc58df1e0a3cc0c3a717bb3308ff850abdaa6d2d802573ee2b11f674a8"}, - {file = "numpy-1.21.1-cp38-cp38-win32.whl", hash = "sha256:978010b68e17150db8765355d1ccdd450f9fc916824e8c4e35ee620590e234cd"}, - {file = "numpy-1.21.1-cp38-cp38-win_amd64.whl", hash = "sha256:9749a40a5b22333467f02fe11edc98f022133ee1bfa8ab99bda5e5437b831214"}, - {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d7a4aeac3b94af92a9373d6e77b37691b86411f9745190d2c351f410ab3a791f"}, - {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9e7912a56108aba9b31df688a4c4f5cb0d9d3787386b87d504762b6754fbb1b"}, - {file = "numpy-1.21.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:25b40b98ebdd272bc3020935427a4530b7d60dfbe1ab9381a39147834e985eac"}, - {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a92c5aea763d14ba9d6475803fc7904bda7decc2a0a68153f587ad82941fec1"}, - {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05a0f648eb28bae4bcb204e6fd14603de2908de982e761a2fc78efe0f19e96e1"}, - {file = "numpy-1.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f01f28075a92eede918b965e86e8f0ba7b7797a95aa8d35e1cc8821f5fc3ad6a"}, - {file = "numpy-1.21.1-cp39-cp39-win32.whl", hash = "sha256:88c0b89ad1cc24a5efbb99ff9ab5db0f9a86e9cc50240177a571fbe9c2860ac2"}, - {file = "numpy-1.21.1-cp39-cp39-win_amd64.whl", hash = "sha256:01721eefe70544d548425a07c80be8377096a54118070b8a62476866d5208e33"}, - {file = "numpy-1.21.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d4d1de6e6fb3d28781c73fbde702ac97f03d79e4ffd6598b880b2d95d62ead4"}, - {file = "numpy-1.21.1.zip", hash = "sha256:dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd"}, -] - [[package]] name = "ordered-set" version = "4.1.0" @@ -1725,10 +930,6 @@ description = "An OrderedSet is a custom MutableSet that remembers its order, so category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"}, - {file = "ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562"}, -] [package.extras] dev = ["black", "mypy", "pytest"] @@ -1740,28 +941,17 @@ description = "OWL-RL and RDFS based RDF Closure inferencing for Python" category = "main" optional = false python-versions = "*" -files = [ - {file = "owlrl-5.2.3-py3-none-any.whl", hash = "sha256:0514239bfbf72fa67f3e5813a40bcc5bd88fd16093d9f76b45a0d4c84ee1c5e2"}, - {file = "owlrl-5.2.3.tar.gz", hash = "sha256:b1891d75b2c2fb0db9e1504a9b12dab738ed89236414c51393d1030597004342"}, -] [package.dependencies] rdflib = ">=5.0.0" [[package]] name = "packaging" -version = "21.3" +version = "23.1" description = "Core utilities for Python packages" category = "main" optional = false -python-versions = ">=3.6" -files = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] - -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" +python-versions = ">=3.7" [[package]] name = "pathspec" @@ -1770,10 +960,6 @@ description = "Utility library for gitignore style pattern matching of file path category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, - {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, -] [[package]] name = "patool" @@ -1782,10 +968,6 @@ description = "portable archive file manager" category = "main" optional = false python-versions = "*" -files = [ - {file = "patool-1.12-py2.py3-none-any.whl", hash = "sha256:3f642549c9a78f5b8bef1af92df385b521d360520d1f34e4dba3fd1dee2a21bc"}, - {file = "patool-1.12.tar.gz", hash = "sha256:e3180cf8bfe13bedbcf6f5628452fca0c2c84a3b5ae8c2d3f55720ea04cb1097"}, -] [[package]] name = "persistent" @@ -1794,44 +976,6 @@ description = "Translucent persistent objects" category = "main" optional = false python-versions = "*" -files = [ - {file = "persistent-4.9.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:6ffc7e720cf124a45b890e655d80b644f8c12b1fb97da7df78c5278ef28b2d8b"}, - {file = "persistent-4.9.0-cp27-cp27m-win32.whl", hash = "sha256:9ec24d5a704fee4bd5aca12bb0f17e05f1386bd8d3903657a89c50214afb547e"}, - {file = "persistent-4.9.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ec0f6774a9b668ef842ef564cc1871caeef1b3735a7566ad8e47a81a1d98e940"}, - {file = "persistent-4.9.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:b3a5de9f4760245f6c6000763f2f8e8cabbb06ea5bc804ea1f219b17c4526dee"}, - {file = "persistent-4.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90e3de2bd66df303b1fa90086ef82d8cf9eef87fe3503da03e29f2f62a2f8884"}, - {file = "persistent-4.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7333f96f7f140fdd223bb3e0966ac0ce76321865c37ff11ac45f561fea302f29"}, - {file = "persistent-4.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2e4fda36e7754faa64a8b81a1f8885813c59815a38f9f41560a7f5ef795514"}, - {file = "persistent-4.9.0-cp310-cp310-win32.whl", hash = "sha256:5392d9b1451d6a1da2b59e27e10eb45d0ffbcecfe0e14aae4b98b8b2547a7286"}, - {file = "persistent-4.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:f37b157dcc13a64f97d14520b9a892dfc14385d034409f6c735bc9ee4ab7607e"}, - {file = "persistent-4.9.0-cp35-cp35m-win32.whl", hash = "sha256:c1405c4928b9399d25b98097fa1a4694d172b2af7c9afb67d7ae12709ea48bf3"}, - {file = "persistent-4.9.0-cp35-cp35m-win_amd64.whl", hash = "sha256:73a55f1b09f48c99adc87e208db7e115a201ad1e0bd2de328587e993c85c6bd2"}, - {file = "persistent-4.9.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:ec8983c0253a44a43360462312d6d810762edeb96a392da031db20763ac404ca"}, - {file = "persistent-4.9.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5be31f034709ab6833b7bd9c3b4835664f0971a2e8ff403380d861f7899dde79"}, - {file = "persistent-4.9.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:57fc77be949ad6bedf077c456b58d31b98690512567e9e676c6171972bb0da50"}, - {file = "persistent-4.9.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b9c25ea6920f322344b25fc1beca24fb04944fc28b7157b36f42cdb9c5ce3846"}, - {file = "persistent-4.9.0-cp36-cp36m-win32.whl", hash = "sha256:7e2650c619ad8acc67caad27f0caa856b3c3aaa474edf4cd9d39fd5b9389ae2b"}, - {file = "persistent-4.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:78be12da25a20c8ce053065ec8a24837a2f445fa5dd53b284e26dafa066585d2"}, - {file = "persistent-4.9.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:a9618487416445243094d87dcc865c32a2c6039020afb51cdeca63e6fcb3c624"}, - {file = "persistent-4.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e612bfa55cbbb30a4bfd566e56844087edd525783f8c15edd530bc3236e68f34"}, - {file = "persistent-4.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8bf0f183637508e4e588a64c61bd8be2e34086a37687f733c7cad1e6dbe7bc2c"}, - {file = "persistent-4.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e0b2a16319686fd1b5bbb385e3b83a3224568d13cb0a3417536279194d41b119"}, - {file = "persistent-4.9.0-cp37-cp37m-win32.whl", hash = "sha256:7996d05b539352d7b612aa350a1f024f7e32ab24e23f8b5ebac275e43669bdb1"}, - {file = "persistent-4.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c45e88c8f9daffdddd033d840b3ea89fd4b954c262f010b19d9fc64dce6c16bf"}, - {file = "persistent-4.9.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3277daca96db74b32ae24ca418bcb8f6d2480fe5794a4c67832a16ffc2e74a31"}, - {file = "persistent-4.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6af3b724b0993f9a72e2a644837bc0dc8c44526a6c17ecd32bf60672e37b8608"}, - {file = "persistent-4.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5c9d55dd9bf238beb3565ab0b274552c2c4121921580464988586ed09b5ecbcb"}, - {file = "persistent-4.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1adb850f642be7e5d21814ec23c6d6299315c90274baef3d5940e4346644951c"}, - {file = "persistent-4.9.0-cp38-cp38-win32.whl", hash = "sha256:6413db4d784846436c4a00d9a66b3c6bce3f45cad2eb3247d39ced8e41b942b7"}, - {file = "persistent-4.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:e5ff4a80e781190debbc940d3e2736439a224fbe9fb8694f4eba164bb9510f84"}, - {file = "persistent-4.9.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:3baa155d2a686ecea1ce9ac2b60fc44967b132beee49150bd079925e3b3c46d8"}, - {file = "persistent-4.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfceb7f4feb738fe8a60c22a47ee402e2a4ae213f6808329c0902ce3c19ade2b"}, - {file = "persistent-4.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d6934976b239727caa516adec22e943abb9db1c9fef66440e5e373989f6e30a"}, - {file = "persistent-4.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d1bbf615e067bb8bc35c418265b6b5a573cd27e3f37cf2695a319c8fb85a1b5"}, - {file = "persistent-4.9.0-cp39-cp39-win32.whl", hash = "sha256:4f78de2ee1e7469f8c9347a5ca724a068cae52935d5b0b4401b1683b5cea2097"}, - {file = "persistent-4.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:2d71550ac2aa601b96fc1dd64c87b97c9d54c9ca81aedcad6776e00c8f80011d"}, - {file = "persistent-4.9.0.tar.gz", hash = "sha256:4701b31d81c1042265725af390450e9d916ad74b9c178b7010053853591e0c6a"}, -] [package.dependencies] cffi = {version = "*", markers = "platform_python_implementation == \"CPython\""} @@ -1848,10 +992,6 @@ description = "A small Python module for determining appropriate platform-specif category = "dev" optional = false python-versions = ">=3.7" -files = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] [package.extras] docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] @@ -1864,10 +1004,6 @@ description = "plugin and hook calling mechanisms for python" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] [package.extras] dev = ["pre-commit", "tox"] @@ -1875,18 +1011,14 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "poetry-dynamic-versioning" -version = "0.21.3" +version = "0.21.5" description = "Plugin for Poetry to enable dynamic versioning based on VCS tags" category = "main" optional = false python-versions = ">=3.7,<4.0" -files = [ - {file = "poetry_dynamic_versioning-0.21.3-py3-none-any.whl", hash = "sha256:39c8055a20aad980a6e11419dc44dd8000fdb4fe94fd3fc6380822771e6cc2a8"}, - {file = "poetry_dynamic_versioning-0.21.3.tar.gz", hash = "sha256:2e08ca0f089e2458f9cd41f2d37f01ce3ae4e40975004dc143fbf86b793ec909"}, -] [package.dependencies] -dunamai = ">=1.14.0,<2.0.0" +dunamai = ">=1.16.0,<2.0.0" jinja2 = ">=2.11.1,<4" tomlkit = ">=0.4" @@ -1900,10 +1032,6 @@ description = "Wraps the portalocker recipe for easy usage" category = "main" optional = false python-versions = ">=3.5" -files = [ - {file = "portalocker-2.4.0-py2.py3-none-any.whl", hash = "sha256:b092f48e1e30a234ab3dd1cfd44f2f235e8a41f4e310e463fc8d6798d1c3c235"}, - {file = "portalocker-2.4.0.tar.gz", hash = "sha256:a648ad761b8ea27370cb5915350122cd807b820d2193ed5c9cc28f163df637f4"}, -] [package.dependencies] pywin32 = {version = ">=226", markers = "platform_system == \"Windows\""} @@ -1920,10 +1048,6 @@ description = "Prefixed alternative numeric library" category = "main" optional = false python-versions = "*" -files = [ - {file = "prefixed-0.7.0-py2.py3-none-any.whl", hash = "sha256:537b0e4ff4516c4578f277a41d7104f769d6935ae9cdb0f88fed82ec7b3c0ca5"}, - {file = "prefixed-0.7.0.tar.gz", hash = "sha256:0b54d15e602eb8af4ac31b1db21a37ea95ce5890e0741bb0dd9ded493cefbbe9"}, -] [[package]] name = "prettytable" @@ -1932,10 +1056,6 @@ description = "A simple Python library for easily displaying tabular data in a v category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "prettytable-2.5.0-py3-none-any.whl", hash = "sha256:1411c65d21dca9eaa505ba1d041bed75a6d629ae22f5109a923f4e719cfecba4"}, - {file = "prettytable-2.5.0.tar.gz", hash = "sha256:f7da57ba63d55116d65e5acb147bfdfa60dceccabf0d607d6817ee2888a05f2c"}, -] [package.dependencies] wcwidth = "*" @@ -1950,10 +1070,6 @@ description = "A library for W3C Provenance Data Model supporting PROV-JSON, PRO category = "main" optional = false python-versions = "*" -files = [ - {file = "prov-1.5.1-py2.py3-none-any.whl", hash = "sha256:5c930cbbd05424aa3066d336dc31d314dd9fa0280caeab064288e592ed716bea"}, - {file = "prov-1.5.1.tar.gz", hash = "sha256:7a2d72b0df43cd9c6e374d815c8ce3cd5ca371d54f98f837853ac9fcc98aee4c"}, -] [package.dependencies] lxml = "*" @@ -1972,40 +1088,6 @@ description = "Cross-platform lib for process and system monitoring in Python." category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"}, - {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"}, - {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"}, - {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"}, - {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"}, - {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"}, - {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"}, - {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"}, - {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"}, - {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"}, - {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"}, - {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"}, - {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"}, - {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"}, - {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"}, - {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"}, - {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"}, - {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"}, - {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"}, - {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"}, - {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"}, - {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"}, - {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"}, - {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"}, - {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"}, - {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"}, - {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"}, - {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"}, - {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"}, - {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"}, - {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"}, - {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"}, -] [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "unittest2", "wmi"] @@ -2017,9 +1099,6 @@ description = "Library for communicating with the GA4GH Task Execution API" category = "main" optional = false python-versions = ">=2.7, <4" -files = [ - {file = "py-tes-0.4.2.tar.gz", hash = "sha256:f6926cd59b7dfc8e37840955bf1cc7c43ad4d99ba5eae100b6156c918617472c"}, -] [package.dependencies] attrs = ">=17.4.0" @@ -2034,10 +1113,6 @@ description = "Python style guide checker" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, - {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, -] [[package]] name = "pycparser" @@ -2046,59 +1121,17 @@ description = "C parser in Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] [[package]] name = "pydantic" -version = "1.10.2" +version = "1.10.7" description = "Data validation and settings management using python type hints" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "pydantic-1.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb6ad4489af1bac6955d38ebcb95079a836af31e4c4f74aba1ca05bb9f6027bd"}, - {file = "pydantic-1.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a1f5a63a6dfe19d719b1b6e6106561869d2efaca6167f84f5ab9347887d78b98"}, - {file = "pydantic-1.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:352aedb1d71b8b0736c6d56ad2bd34c6982720644b0624462059ab29bd6e5912"}, - {file = "pydantic-1.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19b3b9ccf97af2b7519c42032441a891a5e05c68368f40865a90eb88833c2559"}, - {file = "pydantic-1.10.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e9069e1b01525a96e6ff49e25876d90d5a563bc31c658289a8772ae186552236"}, - {file = "pydantic-1.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:355639d9afc76bcb9b0c3000ddcd08472ae75318a6eb67a15866b87e2efa168c"}, - {file = "pydantic-1.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae544c47bec47a86bc7d350f965d8b15540e27e5aa4f55170ac6a75e5f73b644"}, - {file = "pydantic-1.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a4c805731c33a8db4b6ace45ce440c4ef5336e712508b4d9e1aafa617dc9907f"}, - {file = "pydantic-1.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d49f3db871575e0426b12e2f32fdb25e579dea16486a26e5a0474af87cb1ab0a"}, - {file = "pydantic-1.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37c90345ec7dd2f1bcef82ce49b6235b40f282b94d3eec47e801baf864d15525"}, - {file = "pydantic-1.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b5ba54d026c2bd2cb769d3468885f23f43710f651688e91f5fb1edcf0ee9283"}, - {file = "pydantic-1.10.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:05e00dbebbe810b33c7a7362f231893183bcc4251f3f2ff991c31d5c08240c42"}, - {file = "pydantic-1.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2d0567e60eb01bccda3a4df01df677adf6b437958d35c12a3ac3e0f078b0ee52"}, - {file = "pydantic-1.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:c6f981882aea41e021f72779ce2a4e87267458cc4d39ea990729e21ef18f0f8c"}, - {file = "pydantic-1.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4aac8e7103bf598373208f6299fa9a5cfd1fc571f2d40bf1dd1955a63d6eeb5"}, - {file = "pydantic-1.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a7b66c3f499108b448f3f004801fcd7d7165fb4200acb03f1c2402da73ce4c"}, - {file = "pydantic-1.10.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bedf309630209e78582ffacda64a21f96f3ed2e51fbf3962d4d488e503420254"}, - {file = "pydantic-1.10.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9300fcbebf85f6339a02c6994b2eb3ff1b9c8c14f502058b5bf349d42447dcf5"}, - {file = "pydantic-1.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:216f3bcbf19c726b1cc22b099dd409aa371f55c08800bcea4c44c8f74b73478d"}, - {file = "pydantic-1.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:dd3f9a40c16daf323cf913593083698caee97df2804aa36c4b3175d5ac1b92a2"}, - {file = "pydantic-1.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b97890e56a694486f772d36efd2ba31612739bc6f3caeee50e9e7e3ebd2fdd13"}, - {file = "pydantic-1.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9cabf4a7f05a776e7793e72793cd92cc865ea0e83a819f9ae4ecccb1b8aa6116"}, - {file = "pydantic-1.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06094d18dd5e6f2bbf93efa54991c3240964bb663b87729ac340eb5014310624"}, - {file = "pydantic-1.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc78cc83110d2f275ec1970e7a831f4e371ee92405332ebfe9860a715f8336e1"}, - {file = "pydantic-1.10.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ee433e274268a4b0c8fde7ad9d58ecba12b069a033ecc4645bb6303c062d2e9"}, - {file = "pydantic-1.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7c2abc4393dea97a4ccbb4ec7d8658d4e22c4765b7b9b9445588f16c71ad9965"}, - {file = "pydantic-1.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:0b959f4d8211fc964772b595ebb25f7652da3f22322c007b6fed26846a40685e"}, - {file = "pydantic-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c33602f93bfb67779f9c507e4d69451664524389546bacfe1bee13cae6dc7488"}, - {file = "pydantic-1.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5760e164b807a48a8f25f8aa1a6d857e6ce62e7ec83ea5d5c5a802eac81bad41"}, - {file = "pydantic-1.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6eb843dcc411b6a2237a694f5e1d649fc66c6064d02b204a7e9d194dff81eb4b"}, - {file = "pydantic-1.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b8795290deaae348c4eba0cebb196e1c6b98bdbe7f50b2d0d9a4a99716342fe"}, - {file = "pydantic-1.10.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e0bedafe4bc165ad0a56ac0bd7695df25c50f76961da29c050712596cf092d6d"}, - {file = "pydantic-1.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2e05aed07fa02231dbf03d0adb1be1d79cabb09025dd45aa094aa8b4e7b9dcda"}, - {file = "pydantic-1.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:c1ba1afb396148bbc70e9eaa8c06c1716fdddabaf86e7027c5988bae2a829ab6"}, - {file = "pydantic-1.10.2-py3-none-any.whl", hash = "sha256:1b6ee725bd6e83ec78b1aa32c5b1fa67a3a65badddde3976bca5fe4568f27709"}, - {file = "pydantic-1.10.2.tar.gz", hash = "sha256:91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410"}, -] - -[package.dependencies] -typing-extensions = ">=4.1.0" + +[package.dependencies] +typing-extensions = ">=4.2.0" [package.extras] dotenv = ["python-dotenv (>=0.10.4)"] @@ -2111,10 +1144,6 @@ description = "Python interface to Graphviz's Dot" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pydot-1.4.2-py2.py3-none-any.whl", hash = "sha256:66c98190c65b8d2e2382a441b4c0edfdb4f4c025ef9cb9874de478fb0793a451"}, - {file = "pydot-1.4.2.tar.gz", hash = "sha256:248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"}, -] [package.dependencies] pyparsing = ">=2.1.4" @@ -2126,10 +1155,6 @@ description = "passive checker of Python programs" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, - {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, -] [[package]] name = "pygments" @@ -2138,10 +1163,6 @@ description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, - {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, -] [package.extras] plugins = ["importlib-metadata"] @@ -2153,9 +1174,6 @@ description = "HOCON parser for Python" category = "main" optional = false python-versions = "*" -files = [ - {file = "pyhocon-0.3.60.tar.gz", hash = "sha256:ea18520ea126981e5320a72281f1a5fef2c27923f70cc54e1bd241c26525fd4b"}, -] [package.dependencies] pyparsing = {version = ">=2,<4", markers = "python_version >= \"3.0\""} @@ -2170,10 +1188,6 @@ description = "JSON Web Token implementation in Python" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "PyJWT-2.3.0-py3-none-any.whl", hash = "sha256:e0c4bb8d9f0af0c7f5b1ec4c5036309617d03d56932877f2f7a0beeb5318322f"}, - {file = "PyJWT-2.3.0.tar.gz", hash = "sha256:b888b4d56f06f6dcd777210c334e69c737be74755d3e5e9ee3fe67dc18a0ee41"}, -] [package.extras] crypto = ["cryptography (>=3.3.1)"] @@ -2188,9 +1202,6 @@ description = "Python implementation of the JSON-LD API" category = "main" optional = false python-versions = "*" -files = [ - {file = "PyLD-2.0.3.tar.gz", hash = "sha256:287445f888c3a332ccbd20a14844c66c2fcbaeab3c99acd506a0788e2ebb2f82"}, -] [package.dependencies] cachetools = "*" @@ -2210,10 +1221,6 @@ description = "python code static checker" category = "dev" optional = false python-versions = ">=3.7.2" -files = [ - {file = "pylint-2.17.3-py3-none-any.whl", hash = "sha256:a6cbb4c6e96eab4a3c7de7c6383c512478f58f88d95764507d84c899d656a89a"}, - {file = "pylint-2.17.3.tar.gz", hash = "sha256:761907349e699f8afdcd56c4fe02f3021ab5b3a0fc26d19a9bfdc66c7d0d5cd5"}, -] [package.dependencies] astroid = ">=2.15.4,<=2.17.0-dev0" @@ -2240,10 +1247,6 @@ description = "Python wrapper module around the OpenSSL library" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "pyOpenSSL-22.0.0-py2.py3-none-any.whl", hash = "sha256:ea252b38c87425b64116f808355e8da644ef9b07e429398bfece610f893ee2e0"}, - {file = "pyOpenSSL-22.0.0.tar.gz", hash = "sha256:660b1b1425aac4a1bea1d94168a85d99f0b3144c869dd4390d27629d0087f1bf"}, -] [package.dependencies] cryptography = ">=35.0" @@ -2259,10 +1262,6 @@ description = "Python parsing module" category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, -] [[package]] name = "pypiwin32" @@ -2271,14 +1270,18 @@ description = "" category = "main" optional = false python-versions = "*" -files = [ - {file = "pypiwin32-223-py3-none-any.whl", hash = "sha256:67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775"}, - {file = "pypiwin32-223.tar.gz", hash = "sha256:71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"}, -] [package.dependencies] pywin32 = ">=223" +[[package]] +name = "pypubsub" +version = "4.0.3" +description = "Python Publish-Subscribe Package" +category = "main" +optional = false +python-versions = ">=3.3, <4" + [[package]] name = "pyreadline3" version = "3.4.1" @@ -2286,10 +1289,6 @@ description = "A python implementation of GNU readline." category = "main" optional = false python-versions = "*" -files = [ - {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, - {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, -] [[package]] name = "pyshacl" @@ -2298,10 +1297,6 @@ description = "Python SHACL Validator" category = "main" optional = false python-versions = ">=3.7.0,<4.0.0" -files = [ - {file = "pyshacl-0.17.2-py3-none-any.whl", hash = "sha256:ec147758eabadac13d8a981c5b9da9447ac6eb04cc6f013b92902cf24adad373"}, - {file = "pyshacl-0.17.2.tar.gz", hash = "sha256:46f31c7a7f7298aa5b483d92dbc850ff79a144d26f1f41e83267ed84b4d6ae23"}, -] [package.dependencies] owlrl = ">=5.2.3,<6.0.0" @@ -2321,10 +1316,6 @@ description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" -files = [ - {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, - {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, -] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} @@ -2344,9 +1335,6 @@ description = "A pytest plugin to enable format checking with black" category = "dev" optional = false python-versions = ">=2.7" -files = [ - {file = "pytest-black-0.3.12.tar.gz", hash = "sha256:1d339b004f764d6cd0f06e690f6dd748df3d62e6fe1a692d6a5500ac2c5b75a5"}, -] [package.dependencies] black = {version = "*", markers = "python_version >= \"3.6\""} @@ -2360,10 +1348,6 @@ description = "Pytest plugin for measuring coverage." category = "dev" optional = false python-versions = ">=3.6" -files = [ - {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, - {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, -] [package.dependencies] coverage = {version = ">=5.2.1", extras = ["toml"]} @@ -2379,10 +1363,6 @@ description = "pytest plugin to check FLAKE8 requirements" category = "dev" optional = false python-versions = "*" -files = [ - {file = "pytest-flake8-1.1.0.tar.gz", hash = "sha256:358d449ca06b80dbadcb43506cd3e38685d273b4968ac825da871bd4cc436202"}, - {file = "pytest_flake8-1.1.0-py2.py3-none-any.whl", hash = "sha256:f1b19dad0b9f0aa651d391c9527ebc20ac1a0f847aa78581094c747462bfa182"}, -] [package.dependencies] flake8 = ">=3.5" @@ -2395,10 +1375,6 @@ description = "Thin-wrapper around the mock package for easier use with pytest" category = "dev" optional = false python-versions = ">=3.7" -files = [ - {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"}, - {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"}, -] [package.dependencies] pytest = ">=5.0" @@ -2413,10 +1389,6 @@ description = "Extensions to the standard Python datetime module" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {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"}, -] [package.dependencies] six = ">=1.5" @@ -2428,11 +1400,6 @@ description = "Programmatically open an editor, capture the result." category = "main" optional = false python-versions = "*" -files = [ - {file = "python-editor-1.0.4.tar.gz", hash = "sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b"}, - {file = "python_editor-1.0.4-py2-none-any.whl", hash = "sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8"}, - {file = "python_editor-1.0.4-py3-none-any.whl", hash = "sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d"}, -] [[package]] name = "python-gitlab" @@ -2441,10 +1408,6 @@ description = "Interact with GitLab API" category = "main" optional = false python-versions = ">=3.7.0" -files = [ - {file = "python-gitlab-3.1.1.tar.gz", hash = "sha256:cad1338c1ff1a791a7bae7995dc621e26c77dfbf225bade456acec7512782825"}, - {file = "python_gitlab-3.1.1-py3-none-any.whl", hash = "sha256:2a7de39c8976db6d0db20031e71b3e43d262e99e64b471ef09bf00482cd3d9fa"}, -] [package.dependencies] requests = ">=2.25.0" @@ -2461,10 +1424,6 @@ description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" -files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, -] [[package]] name = "pywin32" @@ -2473,18 +1432,6 @@ description = "Python for Window Extensions" category = "main" optional = false python-versions = "*" -files = [ - {file = "pywin32-301-cp35-cp35m-win32.whl", hash = "sha256:93367c96e3a76dfe5003d8291ae16454ca7d84bb24d721e0b74a07610b7be4a7"}, - {file = "pywin32-301-cp35-cp35m-win_amd64.whl", hash = "sha256:9635df6998a70282bd36e7ac2a5cef9ead1627b0a63b17c731312c7a0daebb72"}, - {file = "pywin32-301-cp36-cp36m-win32.whl", hash = "sha256:c866f04a182a8cb9b7855de065113bbd2e40524f570db73ef1ee99ff0a5cc2f0"}, - {file = "pywin32-301-cp36-cp36m-win_amd64.whl", hash = "sha256:dafa18e95bf2a92f298fe9c582b0e205aca45c55f989937c52c454ce65b93c78"}, - {file = "pywin32-301-cp37-cp37m-win32.whl", hash = "sha256:98f62a3f60aa64894a290fb7494bfa0bfa0a199e9e052e1ac293b2ad3cd2818b"}, - {file = "pywin32-301-cp37-cp37m-win_amd64.whl", hash = "sha256:fb3b4933e0382ba49305cc6cd3fb18525df7fd96aa434de19ce0878133bf8e4a"}, - {file = "pywin32-301-cp38-cp38-win32.whl", hash = "sha256:88981dd3cfb07432625b180f49bf4e179fb8cbb5704cd512e38dd63636af7a17"}, - {file = "pywin32-301-cp38-cp38-win_amd64.whl", hash = "sha256:8c9d33968aa7fcddf44e47750e18f3d034c3e443a707688a008a2e52bbef7e96"}, - {file = "pywin32-301-cp39-cp39-win32.whl", hash = "sha256:595d397df65f1b2e0beaca63a883ae6d8b6df1cdea85c16ae85f6d2e648133fe"}, - {file = "pywin32-301-cp39-cp39-win_amd64.whl", hash = "sha256:87604a4087434cd814ad8973bd47d6524bd1fa9e971ce428e76b62a5e0860fdf"}, -] [[package]] name = "pyyaml" @@ -2493,48 +1440,6 @@ description = "YAML parser and emitter for Python" category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] [[package]] name = "rdflib" @@ -2543,10 +1448,6 @@ description = "RDFLib is a Python library for working with RDF, a simple yet pow category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "rdflib-6.0.2-py3-none-any.whl", hash = "sha256:b7642daac8cdad1ba157fecb236f5d1b2aa1de64e714dcee80d65e2b794d88a6"}, - {file = "rdflib-6.0.2.tar.gz", hash = "sha256:6136ae056001474ee2aff5fc5b956e62a11c3a9c66bb0f3d9c0aaa5fbb56854e"}, -] [package.dependencies] isodate = "*" @@ -2560,72 +1461,68 @@ tests = ["black (==21.6b0)", "coverage", "doctest-ignore-unicode (==0.1.2)", "fl [[package]] name = "renku" -version = "2.3.2" +version = "2.5.0" description = "Python SDK and CLI for the Renku platform." category = "main" optional = false -python-versions = ">=3.7.1,<4.0.0" -files = [ - {file = "renku-2.3.2-py3-none-any.whl", hash = "sha256:dd53e42387e2c05b82eba3c6baeab843ec684e7868745b4d58b157e5734120bb"}, - {file = "renku-2.3.2.tar.gz", hash = "sha256:6578ff09824403883b49c342c6023528e20db746229f86fcfecc9703a1078e43"}, -] +python-versions = ">=3.8.1,<3.12" [package.dependencies] appdirs = ">=1.4.3,<=1.4.4" -attrs = ">=21.1.0,<22.2.0" +attrs = ">=21.1.0,<23.2.0" bashlex = ">=0.16,<0.17" calamus = ">=0.3.13,<0.5" click = ">=8.0,<8.1.4" click-option-group = ">=0.5.2,<0.6.0" click-plugins = "1.1.1" coverage = {version = ">=4.5.3,<6.5", extras = ["toml"]} -cryptography = ">=38.0.0,<40.0.0" -cwl-utils = ">=0.12,<0.18" -cwltool = "3.1.20220628170238" -deepdiff = ">=5.8.0,<6.0.0" +cryptography = ">=38.0.0,<41.0.0" +cwl-utils = ">=0.27,<0.28" +cwltool = "3.1.20230425144158" +deal = ">=4.24.0,<5.0.0" +deepdiff = ">=5.8,<7.0" deepmerge = "1.0.1" docker = ">=3.7.2,<6" -filelock = ">=3.3.0,<3.8.1" +filelock = ">=3.3.0,<3.12.1" gitpython = "3.1.27" -grandalf = "0.7" +grandalf = "0.8" humanize = ">=3.0.0,<4.1.0" -importlib-resources = {version = ">=5.4.0,<5.10.0", markers = "python_full_version < \"3.9.0\""} +importlib-resources = ">=5.12.0,<5.13.0" inject = ">=4.3.0,<4.4.0" jinja2 = ">=2.11.3,<3.1.3" -networkx = ">=2.6.0,<2.7" -numpy = ">=1.20.0,<1.22.0" -packaging = ">=21.3,<22.0" +networkx = ">=2.6.0,<3.2" +packaging = ">=23.0,<24.0" pathspec = ">=0.8.0,<1.0.0" patool = "1.12" pluggy = "1.0.0" -poetry-dynamic-versioning = "0.21.3" -portalocker = ">=2.2.1,<2.5" +poetry-dynamic-versioning = "0.21.5" +portalocker = ">=2.2.1,<2.8" psutil = ">=5.4.7,<5.9.2" -pydantic = "1.10.2" +pydantic = "1.10.7" pyjwt = ">=2.1.0,<2.5.0" pyld = "2.0.3" pyopenssl = ">=19.0.0,<22.1.0" -pyshacl = ">=0.17.2,<0.18.2" +pyshacl = ">=0.17.2,<0.19.2" python-dateutil = ">=2.6.1,<2.8.3" python-editor = "1.0.4" python-gitlab = ">=2.10.1,<3.8.2" pyyaml = ">=5.4,<6.1.0" rdflib = ">=6.0.0,<7.0" -requests = ">=2.23.0,<2.28.2" -rich = ">=9.3.0,<12.6.0" -shellingham = "1.5.0" -tabulate = ">=0.7.7,<0.8.11" -toil = "5.7.1" +requests = ">=2.23.0,<2.31.1" +rich = ">=9.3.0,<13.4.0" +shellingham = "1.5.0.post1" +tabulate = ">=0.7.7,<0.9.1" +toil = "5.10.0" tqdm = ">=4.48.1,<4.62.4" -werkzeug = ">=1.0.0,<2.2.3" +werkzeug = ">=1.0.0,<2.2.4" yagup = ">=0.1.1" yaspin = "2.1.0" -"zc.relation" = ">=1.1,<1.2" -zodb = "5.6.0" -zstandard = ">=0.16.0,<0.18.0" +"zc.relation" = ">=1.1,<2.1" +zodb = "5.8.0" +zstandard = ">=0.16.0,<0.22.0" [package.extras] -service = ["apispec (>=4.0.0,<5.3.0)", "apispec-webframeworks (>=0.5.2,<0.6)", "circus (==0.17.1)", "flask (==2.1.1)", "gunicorn", "marshmallow (>=3.18.0,<3.20.0)", "marshmallow-oneofschema (>=3.0.1,<4.0.0)", "pillow (>=9.0.0,<9.4)", "python-dotenv (>=0.19.0,<0.21.0)", "redis (>=3.5.3,<4.2.0)", "rq (==1.11.0)", "rq-scheduler (==0.11.0)", "sentry-sdk[flask] (>=1.5.11,<1.5.12)", "walrus (>=0.8.2,<0.10.0)"] +service = ["apispec (>=6.3.0,<6.4.0)", "apispec-oneofschema (>=3.0.0,<4.0.0)", "apispec-webframeworks (>=0.5.2,<0.6)", "circus (==0.18.0)", "flask (==2.2.5)", "gunicorn", "marshmallow (>=3.18.0,<3.20.0)", "marshmallow-oneofschema (>=3.0.1,<4.0.0)", "pillow (>=9.0.0,<9.6)", "python-dotenv (>=0.19.0,<0.21.0)", "redis (>=3.5.3,<4.6.0)", "rq (==1.14.1)", "rq-scheduler (==0.13.1)", "sentry-sdk[flask] (>=1.5.11,<1.24.0)", "walrus (>=0.8.2,<0.10.0)"] [[package]] name = "requests" @@ -2634,10 +1531,6 @@ description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.7, <4" -files = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] [package.dependencies] certifi = ">=2017.4.17" @@ -2656,10 +1549,6 @@ description = "A utility belt for advanced users of python-requests" category = "main" optional = false python-versions = "*" -files = [ - {file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"}, - {file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"}, -] [package.dependencies] requests = ">=2.0.1,<3.0.0" @@ -2671,10 +1560,6 @@ description = "Render rich text, tables, progress bars, syntax highlighting, mar category = "main" optional = false python-versions = ">=3.6.3,<4.0.0" -files = [ - {file = "rich-12.2.0-py3-none-any.whl", hash = "sha256:c50f3d253bc6a9bb9c79d61a26d510d74abdf1b16881260fab5edfc3edfb082f"}, - {file = "rich-12.2.0.tar.gz", hash = "sha256:ea74bc9dad9589d8eea3e3fd0b136d8bf6e428888955f215824c2894f0da8b47"}, -] [package.dependencies] commonmark = ">=0.9.0,<0.10.0" @@ -2691,10 +1576,6 @@ description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip pres category = "main" optional = false python-versions = ">=3" -files = [ - {file = "ruamel.yaml-0.17.17-py3-none-any.whl", hash = "sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f"}, - {file = "ruamel.yaml-0.17.17.tar.gz", hash = "sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be"}, -] [package.dependencies] "ruamel.yaml.clib" = {version = ">=0.1.2", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.10\""} @@ -2710,74 +1591,25 @@ description = "C version of reader, parser and emitter for ruamel.yaml derived f category = "main" optional = false python-versions = ">=3.5" -files = [ - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, - {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, -] [[package]] name = "schema-salad" -version = "8.3.20220801194920" +version = "8.4.20230606143604" description = "Schema Annotations for Linked Avro Data (SALAD)" category = "main" optional = false -python-versions = ">=3.6" -files = [ - {file = "schema-salad-8.3.20220801194920.tar.gz", hash = "sha256:82f7c3bbe15351e4dbe2e2f2a8330240c5da4604f4a54f6c12ed15af0ce85917"}, - {file = "schema_salad-8.3.20220801194920-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a87ab75e586cf729ad3434a068cae05cc15cf1c56371651b343f763099c97f6"}, - {file = "schema_salad-8.3.20220801194920-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:aaee209a13682f6f804bbf374e2f37b0e9f717cbd8a4a5eadf534e2a39cabdb5"}, - {file = "schema_salad-8.3.20220801194920-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f71e7a79d199b0ede21a181280fc8b613167d170fb1681a2f824c2db8e665bb"}, - {file = "schema_salad-8.3.20220801194920-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c585d0a8510aa928a293cc0361202bd279a361fe29fbc6a18f71f05a5bc22709"}, - {file = "schema_salad-8.3.20220801194920-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ef1fd242ead116f002dddd6e116902e6521f8ba152e29a32cc15bb72abe78cd6"}, - {file = "schema_salad-8.3.20220801194920-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b66f719df48b4c72f4df8a834892fbf15449280365ac78a92acb65e51bc804e"}, - {file = "schema_salad-8.3.20220801194920-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4b6f1d18c98e4646c7358163181dfb628ac73ee4b5d59b4569d5baf5748a5c2"}, - {file = "schema_salad-8.3.20220801194920-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:58165f049c459d2f31e634fe3b50ac21dc9ecd58d83280375523dc79e9f2811c"}, - {file = "schema_salad-8.3.20220801194920-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6af681973789bd81293e61910d11d9b892875137ed36d5d2f49aa495a8821eb"}, - {file = "schema_salad-8.3.20220801194920-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30773a32b4d34eb0d5c05e2433864f239837bf20ca07da6d3a08b6beeeacca6a"}, - {file = "schema_salad-8.3.20220801194920-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:298b18712c17146b3148b66f2fcad20b7862c5ce2c8d4f890e05b13f7098e740"}, - {file = "schema_salad-8.3.20220801194920-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a61ec22b5c22bbd54d843a4ad56c39bf1eb9186bf12b6066ca0c766d1f5f44e4"}, - {file = "schema_salad-8.3.20220801194920-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:477b808c1475e5d16c569595083a63a721c43e539b0d832ca2f927df642ec769"}, - {file = "schema_salad-8.3.20220801194920-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:74777bcb3c141080e2e46d86608982d565ceb187419ab55c0a1fa30e6185c712"}, - {file = "schema_salad-8.3.20220801194920-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e547af5ed207a07fc9b3c8e96889c76b050448c69e39ea50d8ed20cca73ef6a2"}, - {file = "schema_salad-8.3.20220801194920-py3-none-any.whl", hash = "sha256:ef820daad4c25c639abfd56b99628d891ce6fa9d69e45abd46a469ce31f50a42"}, -] - -[package.dependencies] -CacheControl = ">=0.11.7,<0.13" -lockfile = ">=0.9" -mistune = ">=0.8.1,<0.9" +python-versions = ">=3.6,<3.12" + +[package.dependencies] +CacheControl = {version = ">=0.11.7,<0.14", extras = ["filecache"]} +mistune = ">=2.0.3,<2.1" +mypy-extensions = "*" rdflib = ">=4.2.2,<7.0.0" requests = ">=1.0" -"ruamel.yaml" = {version = ">=0.17.6,<0.17.22", markers = "python_version >= \"3.7\""} -setuptools = "*" +"ruamel.yaml" = [ + {version = ">=0.16.12,<0.18", markers = "python_version < \"3.7\""}, + {version = ">=0.17.6,<0.18", markers = "python_version >= \"3.7\""}, +] [package.extras] docs = ["pytest (<8)", "sphinx (>=2.2)", "sphinx-autoapi", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-autoprogram", "typed-ast"] @@ -2790,16 +1622,15 @@ description = "Python client for Sentry (https://sentry.io)" category = "main" optional = false python-versions = "*" -files = [ - {file = "sentry-sdk-1.22.2.tar.gz", hash = "sha256:5932c092c6e6035584eb74d77064e4bce3b7935dfc4a331349719a40db265840"}, - {file = "sentry_sdk-1.22.2-py2.py3-none-any.whl", hash = "sha256:cf89a5063ef84278d186aceaed6fb595bfe67d099298e537634a323664265669"}, -] [package.dependencies] blinker = {version = ">=1.1", optional = true, markers = "extra == \"flask\""} certifi = "*" flask = {version = ">=0.11", optional = true, markers = "extra == \"flask\""} -urllib3 = {version = ">=1.26.11,<2.0.0", markers = "python_version >= \"3.6\""} +urllib3 = [ + {version = "<2.0.0", markers = "python_version < \"3.6\""}, + {version = ">=1.26.11,<2.0.0", markers = "python_version >= \"3.6\""}, +] [package.extras] aiohttp = ["aiohttp (>=3.5)"] @@ -2834,10 +1665,6 @@ description = "Easily download, build, install, upgrade, and uninstall Python pa category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "setuptools-65.5.1-py3-none-any.whl", hash = "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31"}, - {file = "setuptools-65.5.1.tar.gz", hash = "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f"}, -] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] @@ -2851,22 +1678,14 @@ description = "Shell escape a string to safely use it as a token in a shell comm category = "main" optional = false python-versions = "*" -files = [ - {file = "shellescape-3.8.1-py2.py3-none-any.whl", hash = "sha256:f17127e390fa3f9aaa80c69c16ea73615fd9b5318fd8309c1dca6168ae7d85bf"}, - {file = "shellescape-3.8.1.tar.gz", hash = "sha256:40b310b30479be771bf3ab28bd8d40753778488bd46ea0969ba0b35038c3ec26"}, -] [[package]] name = "shellingham" -version = "1.5.0" +version = "1.5.0.post1" description = "Tool to Detect Surrounding Shell" category = "main" optional = false -python-versions = ">=3.4" -files = [ - {file = "shellingham-1.5.0-py2.py3-none-any.whl", hash = "sha256:a8f02ba61b69baaa13facdba62908ca8690a94b8119b69f5ec5873ea85f7391b"}, - {file = "shellingham-1.5.0.tar.gz", hash = "sha256:72fb7f5c63103ca2cb91b23dee0c71fe8ad6fbfd46418ef17dbe40db51592dad"}, -] +python-versions = ">=3.7" [[package]] name = "six" @@ -2875,10 +1694,6 @@ description = "Python 2 and 3 compatibility utilities" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -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]] name = "smmap" @@ -2887,10 +1702,6 @@ description = "A pure Python implementation of a sliding window memory map manag category = "main" optional = false python-versions = ">=3.6" -files = [ - {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, - {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, -] [[package]] name = "tabulate" @@ -2899,10 +1710,6 @@ description = "Pretty-print tabular data" category = "main" optional = false python-versions = "*" -files = [ - {file = "tabulate-0.8.9-py3-none-any.whl", hash = "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4"}, - {file = "tabulate-0.8.9.tar.gz", hash = "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"}, -] [package.extras] widechars = ["wcwidth"] @@ -2914,21 +1721,14 @@ description = "ANSII Color formatting for output in terminal." category = "main" optional = false python-versions = "*" -files = [ - {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, -] [[package]] name = "toil" -version = "5.7.1" +version = "5.10.0" description = "Pipeline management software for clusters." category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "toil-5.7.1-py3-none-any.whl", hash = "sha256:81041ba89867a3a37e265a5e073c60a6dfe9ed03342fb3a53bb48f7c04ef1b4b"}, - {file = "toil-5.7.1.tar.gz", hash = "sha256:99a11bb1d138068861013f78f72489ff6ed9af02ceed8a551879a73738c9ebe7"}, -] [package.dependencies] addict = ">=2.2.1,<2.5" @@ -2937,21 +1737,24 @@ docker = ">=3.7.2,<6" enlighten = ">=1.5.2,<2" psutil = ">=3.0.1,<6" py-tes = ">=0.4.2,<1" +PyPubSub = ">=4.0.3,<5" python-dateutil = "*" pytz = ">=2012" requests = ">=2,<3" +typing-extensions = "*" +urllib3 = ">=1.26.0,<2.0.0" [package.extras] -all = ["apache-libcloud (>=2.2.1,<3)", "boto (>=2.48.0,<3)", "boto3 (>=1.20.46,<2)", "boto3-stubs[iam,s3,sdb] (==1.24.0)", "celery (>=5.1.0,<6)", "connexion[swagger-ui] (>=2.10.0,<3)", "cwltool (==3.1.20220628170238)", "flask (>=2.0,<3)", "flask-cors (==3.0.10)", "galaxy-tool-util", "google-cloud-storage (>=1.6.0,<2)", "gunicorn (==20.1.0)", "idna (>=2)", "kubernetes (>=12.0.1,<22)", "mypy-boto3-iam (==1.24.0)", "mypy-boto3-s3 (==1.24.0)", "mypy-boto3-sdb (==1.24.0)", "networkx (>=2,<2.8.5)", "pymesos (>=0.3.15,<0.4)", "pynacl (>=1.4.0,<2)", "ruamel.yaml (>=0.15,<0.17.22)", "ruamel.yaml (>=0.15,<=0.17.21)", "ruamel.yaml.clib (>=0.2.6)", "wdlparse (==0.1.0)", "werkzeug (>=2.0,<3)", "wes-service (>=4.0.0,<5)"] -aws = ["boto (>=2.48.0,<3)", "boto3 (>=1.20.46,<2)", "boto3-stubs[iam,s3,sdb] (==1.24.0)", "mypy-boto3-iam (==1.24.0)", "mypy-boto3-s3 (==1.24.0)", "mypy-boto3-sdb (==1.24.0)"] -cwl = ["cwltool (==3.1.20220628170238)", "galaxy-tool-util", "networkx (>=2,<2.8.5)", "ruamel.yaml (>=0.15,<=0.17.21)", "ruamel.yaml.clib (>=0.2.6)"] +all = ["CacheControl[filecache]", "apache-libcloud (>=2.2.1,<3)", "boto (>=2.48.0,<3)", "boto3-stubs[boto3,iam,s3,sdb,sts] (>=1.20.46,<2)", "celery (>=5.1.0,<6)", "connexion[swagger-ui] (>=2.10.0,<3)", "cwltool (==3.1.20230425144158)", "flask (>=2.0,<3)", "flask-cors (==3.0.10)", "galaxy-tool-util", "google-cloud-storage (>=2,<=2.8.0)", "gunicorn (==20.1.0)", "idna (>=2)", "kubernetes (>=12.0.1,<22)", "kubernetes-stubs (==v22.6.0post1)", "miniwdl (==1.9.1)", "networkx (>=2,<2.8.9)", "pymesos (>=0.3.15,<0.4)", "pynacl (>=1.4.0,<2)", "ruamel.yaml (>=0.15,<0.17.22)", "ruamel.yaml (>=0.15,<=0.17.21)", "ruamel.yaml.clib (>=0.2.6)", "schema-salad (>=8.4.20230128170514,<9)", "types-PyYAML", "types-urllib3", "wdlparse (==0.1.0)", "werkzeug (>=2.0,<3)", "wes-service (>=4.0.0,<5)"] +aws = ["boto (>=2.48.0,<3)", "boto3-stubs[boto3,iam,s3,sdb,sts] (>=1.20.46,<2)"] +cwl = ["CacheControl[filecache]", "cwltool (==3.1.20230425144158)", "galaxy-tool-util", "networkx (>=2,<2.8.9)", "ruamel.yaml (>=0.15,<=0.17.21)", "ruamel.yaml.clib (>=0.2.6)", "schema-salad (>=8.4.20230128170514,<9)"] encryption = ["pynacl (>=1.4.0,<2)"] -google = ["apache-libcloud (>=2.2.1,<3)", "google-cloud-storage (>=1.6.0,<2)"] -htcondor = ["htcondor (>=8.6.0,<9)"] -kubernetes = ["idna (>=2)", "kubernetes (>=12.0.1,<22)"] +google = ["apache-libcloud (>=2.2.1,<3)", "google-cloud-storage (>=2,<=2.8.0)"] +htcondor = ["htcondor (>=10.2.0.post1,<11)"] +kubernetes = ["idna (>=2)", "kubernetes (>=12.0.1,<22)", "kubernetes-stubs (==v22.6.0post1)", "types-PyYAML", "types-urllib3"] mesos = ["pymesos (>=0.3.15,<0.4)"] server = ["celery (>=5.1.0,<6)", "connexion[swagger-ui] (>=2.10.0,<3)", "flask (>=2.0,<3)", "flask-cors (==3.0.10)", "gunicorn (==20.1.0)", "ruamel.yaml (>=0.15,<0.17.22)", "werkzeug (>=2.0,<3)", "wes-service (>=4.0.0,<5)"] -wdl = ["wdlparse (==0.1.0)"] +wdl = ["miniwdl (==1.9.1)", "wdlparse (==0.1.0)"] [[package]] name = "toml" @@ -2960,10 +1763,6 @@ description = "Python Library for Tom's Obvious, Minimal Language" category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.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" @@ -2972,10 +1771,6 @@ description = "A lil' TOML parser" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] [[package]] name = "tomlkit" @@ -2984,10 +1779,6 @@ description = "Style preserving TOML library" category = "main" optional = false python-versions = ">=3.6,<4.0" -files = [ - {file = "tomlkit-0.11.4-py3-none-any.whl", hash = "sha256:25d4e2e446c453be6360c67ddfb88838cfc42026322770ba13d1fbd403a93a5c"}, - {file = "tomlkit-0.11.4.tar.gz", hash = "sha256:3235a9010fae54323e727c3ac06fb720752fe6635b3426e379daec60fbd44a83"}, -] [[package]] name = "tqdm" @@ -2996,10 +1787,6 @@ description = "Fast, Extensible Progress Meter" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -files = [ - {file = "tqdm-4.62.3-py2.py3-none-any.whl", hash = "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c"}, - {file = "tqdm-4.62.3.tar.gz", hash = "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"}, -] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -3016,10 +1803,6 @@ description = "Transaction management for Python" category = "main" optional = false python-versions = "*" -files = [ - {file = "transaction-3.0.1-py2.py3-none-any.whl", hash = "sha256:2329a6e6b82d1d8d4de9267ea6ee790532c375e5911d3c7633a234e94a4a0a9e"}, - {file = "transaction-3.0.1.tar.gz", hash = "sha256:0c15ef0b7ff3518357ceea75722a30d974c3f85e11aa5cec5d5a2b6a40cfcf68"}, -] [package.dependencies] "zope.interface" = "*" @@ -3036,10 +1819,6 @@ description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, - {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, -] [[package]] name = "urllib3" @@ -3048,10 +1827,6 @@ description = "HTTP library with thread-safe connection pooling, file post, and category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" -files = [ - {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, - {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, -] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] @@ -3065,10 +1840,6 @@ description = "Measures the displayed width of unicode strings in a terminal" category = "main" optional = false python-versions = "*" -files = [ - {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, - {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, -] [[package]] name = "websocket-client" @@ -3077,10 +1848,6 @@ description = "WebSocket client for Python with low level API options" category = "main" optional = false python-versions = ">=3.7" -files = [ - {file = "websocket-client-1.3.3.tar.gz", hash = "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1"}, - {file = "websocket_client-1.3.3-py3-none-any.whl", hash = "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877"}, -] [package.extras] docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] @@ -3094,25 +1861,1525 @@ description = "The comprehensive WSGI web application library." category = "main" optional = false python-versions = ">=3.7" -files = [ + +[package.dependencies] +MarkupSafe = ">=2.1.1" + +[package.extras] +watchdog = ["watchdog"] + +[[package]] +name = "wrapt" +version = "1.14.1" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[[package]] +name = "yagup" +version = "0.1.1" +description = "Parsing and validating git urls." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +attrs = "*" +pyparsing = "*" + +[[package]] +name = "yaspin" +version = "2.1.0" +description = "Yet Another Terminal Spinner" +category = "main" +optional = false +python-versions = ">=3.6.2,<4.0.0" + +[package.dependencies] +termcolor = ">=1.1.0,<2.0.0" + +[[package]] +name = "zc.lockfile" +version = "2.0" +description = "Basic inter-process locks" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +setuptools = "*" + +[package.extras] +test = ["zope.testing"] + +[[package]] +name = "zc.relation" +version = "1.1.post2" +description = "Index intransitive and transitive n-ary relationships." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +setuptools = "*" +six = "*" +ZODB3 = ">=3.8dev" +"zope.interface" = "*" +"zope.testing" = "*" + +[package.extras] +test = ["zc.relationship (>=2.0c1)"] + +[[package]] +name = "zconfig" +version = "3.6.0" +description = "Structured Configuration Library" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +docs = ["sphinxcontrib-programoutput"] +test = ["docutils", "manuel", "zope.exceptions", "zope.testrunner"] + +[[package]] +name = "zdaemon" +version = "4.3" +description = "Daemon process control library and tools for Unix-based systems" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +setuptools = "*" +ZConfig = "*" + +[package.extras] +test = ["manuel", "mock", "zc.customdoctests", "zope.testing", "zope.testrunner"] + +[[package]] +name = "zeo" +version = "5.3.0" +description = "ZEO - Single-server client-server database server for ZODB" +category = "main" +optional = false +python-versions = ">=2.7.9,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" + +[package.dependencies] +persistent = ">=4.1.0" +six = "*" +transaction = ">=2.0.3" +"zc.lockfile" = "*" +ZConfig = "*" +zdaemon = "*" +ZODB = ">=5.1.1" +"zope.interface" = "*" + +[package.extras] +docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"] +msgpack = ["msgpack-python"] +test = ["ZODB (>=5.5.1)", "manuel", "mock", "msgpack (<1)", "random2", "zope.testing", "zope.testrunner"] +uvloop = ["uvloop (>=0.5.1)"] + +[[package]] +name = "zipp" +version = "3.8.1" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[[package]] +name = "zodb" +version = "5.8.0" +description = "ZODB, a Python object-oriented database" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" + +[package.dependencies] +BTrees = ">=4.2.0" +persistent = ">=4.4.0" +six = "*" +transaction = ">=2.4" +"zc.lockfile" = "*" +ZConfig = "*" +zodbpickle = ">=1.0.1" +"zope.interface" = "*" + +[package.extras] +docs = ["Sphinx", "ZODB", "j1m.sphinxautozconfig", "sphinx-rtd-theme", "sphinxcontrib-zopeext"] +test = ["manuel", "mock", "zope.testing", "zope.testrunner (>=4.4.6)"] + +[[package]] +name = "zodb3" +version = "3.11.0" +description = "ZODB3 - Meta release for ZODB, persistent, BTrees and ZEO" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +BTrees = ">=4.0.0dev" +persistent = ">=4.0.0dev" +transaction = "*" +ZEO = ">=4.0.0dev" +ZODB = ">=4.0.0dev" + +[package.extras] +test = ["BTrees[test]", "ZEO[test]", "ZODB[test]", "persistent[test]"] + +[[package]] +name = "zodbpickle" +version = "2.3" +description = "Fork of Python 2 and 3 pickle module." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +setuptools = "*" + +[package.extras] +test = ["zope.testrunner"] + +[[package]] +name = "zope.event" +version = "4.5.0" +description = "Very basic event publishing system" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +setuptools = "*" + +[package.extras] +docs = ["Sphinx"] +test = ["zope.testrunner"] + +[[package]] +name = "zope.interface" +version = "5.4.0" +description = "Interfaces for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +setuptools = "*" + +[package.extras] +docs = ["Sphinx", "repoze.sphinx.autointerface"] +test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] + +[[package]] +name = "zope.testing" +version = "4.10" +description = "Zope testing helpers" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +setuptools = "*" + +[package.extras] +docs = ["mock", "repoze.sphinx.autointerface", "sphinx", "zope.exceptions", "zope.interface"] +test = ["zope.testrunner"] + +[[package]] +name = "zstandard" +version = "0.17.0" +description = "Zstandard bindings for Python" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\""} + +[package.extras] +cffi = ["cffi (>=1.11)"] + +[metadata] +lock-version = "1.1" +python-versions = ">=3.8.1,<3.12" +content-hash = "0e856825af2b0d8a29420c40bea1a8261692b6b67b864a33787d3e03058ffbb1" + +[metadata.files] +addict = [ + {file = "addict-2.4.0-py3-none-any.whl", hash = "sha256:249bb56bbfd3cdc2a004ea0ff4c2b6ddc84d53bc2194761636eb314d5cfa5dfc"}, + {file = "addict-2.4.0.tar.gz", hash = "sha256:b3b2210e0e067a281f5646c8c5db92e99b7231ea8b0eb5f74dbdf9e259d4e494"}, +] +ansicon = [ + {file = "ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec"}, + {file = "ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1"}, +] +appdirs = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] +argcomplete = [ + {file = "argcomplete-2.0.0-py2.py3-none-any.whl", hash = "sha256:cffa11ea77999bb0dd27bb25ff6dc142a6796142f68d45b1a26b11f58724561e"}, + {file = "argcomplete-2.0.0.tar.gz", hash = "sha256:6372ad78c89d662035101418ae253668445b391755cfe94ea52f1b9d22425b20"}, +] +astroid = [ + {file = "astroid-2.15.4-py3-none-any.whl", hash = "sha256:a1b8543ef9d36ea777194bc9b17f5f8678d2c56ee6a45b2c2f17eec96f242347"}, + {file = "astroid-2.15.4.tar.gz", hash = "sha256:c81e1c7fbac615037744d067a9bb5f9aeb655edf59b63ee8b59585475d6f80d8"}, +] +attrs = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] +bagit = [ + {file = "bagit-1.8.1-py2.py3-none-any.whl", hash = "sha256:d14dd7e373dd24d41f6748c42f123f7db77098dfa4a0125dbacb4c8bdf767c09"}, + {file = "bagit-1.8.1.tar.gz", hash = "sha256:37df1330d2e8640c8dee8ab6d0073ac701f0614d25f5252f9e05263409cee60c"}, +] +bashlex = [ + {file = "bashlex-0.16-py2.py3-none-any.whl", hash = "sha256:ff89fc743ccdef978792784d74d698a9236a862939bb4af471c0c3faf92c21bb"}, + {file = "bashlex-0.16.tar.gz", hash = "sha256:dc6f017e49ce2d0fe30ad9f5206da9cd13ded073d365688c9fda525354e8c373"}, +] +black = [ + {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, + {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, + {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, + {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, + {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, + {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, + {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, + {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, + {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, + {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, + {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, + {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, +] +blessed = [ + {file = "blessed-1.20.0-py2.py3-none-any.whl", hash = "sha256:0c542922586a265e699188e52d5f5ac5ec0dd517e5a1041d90d2bbf23f906058"}, + {file = "blessed-1.20.0.tar.gz", hash = "sha256:2cdd67f8746e048f00df47a2880f4d6acbcdb399031b604e34ba8f71d5787680"}, +] +blinker = [ + {file = "blinker-1.5-py2.py3-none-any.whl", hash = "sha256:1eb563df6fdbc39eeddc177d953203f99f097e9bf0e2b8f9f3cf18b6ca425e36"}, + {file = "blinker-1.5.tar.gz", hash = "sha256:923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462"}, +] +btrees = [ + {file = "BTrees-4.10.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c349a416e7e4f3d6a2858d605b9fa0b92fad268714134dd0e2f7e0b631c03eef"}, + {file = "BTrees-4.10.0-cp27-cp27m-win32.whl", hash = "sha256:f0a6229980c39ccba644bb15e0045f3c2b6b173c9f87bb61a23d843cb389ab98"}, + {file = "BTrees-4.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:3a0b3642bbc36a6beebc5ccbc749fcd93ec65530f05223ae31fd0c76ab185e75"}, + {file = "BTrees-4.10.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:69fcefa4a5542f7c736d26f9ea44baafbb4a3a6862bec981d6eac1beda60e672"}, + {file = "BTrees-4.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7dc03f8afd98c9f64c79a9b944e6c0476b76c2d00b6d2473ac66aeedb90c3c2a"}, + {file = "BTrees-4.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4ee8f5880ca6be3e177a852da3ac09fac883680cce310d638e1f482a6fb4c267"}, + {file = "BTrees-4.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ea05e91842fc02b3c01e2d18667a2a3dbfcc3f902aa33d499c1bfcba9a636c8"}, + {file = "BTrees-4.10.0-cp310-cp310-win32.whl", hash = "sha256:670869947dcc4216c66f73fc1dc1dff6b053ef45242b925c3fd95e32f5d1604f"}, + {file = "BTrees-4.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:34e8fd044c85356b3096dc991a5c70ae1692dcd07968fb7de9b7264f37c72626"}, + {file = "BTrees-4.10.0-cp35-cp35m-win32.whl", hash = "sha256:b79259916631dcbd242fc3dd156c4ba0de66c1f3d936338f3aff204839a59a4a"}, + {file = "BTrees-4.10.0-cp35-cp35m-win_amd64.whl", hash = "sha256:34862314aed96ca195766691b7bb2d89a35c376441540f84dd2af183278194e2"}, + {file = "BTrees-4.10.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:b53f2798c9215b851969a1601ec806643d42f74a2ddeacbf38e2ed6aea1fb109"}, + {file = "BTrees-4.10.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff3c5a196f5bf2402f981672b850e218486d0fa6c9ebcb27e32f40c3a3cd3416"}, + {file = "BTrees-4.10.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93e1d058a60f0914c94ae623e0d747082153e0242f159b8f4bf6395fe2cc8bb8"}, + {file = "BTrees-4.10.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e19147982a4e37a3fd6e5a04d054917b3a8d4f102901e75d067738151b650100"}, + {file = "BTrees-4.10.0-cp36-cp36m-win32.whl", hash = "sha256:5427b3ffbce05ab8f4db4b99d3463c7700e605a3f413b38e61500cbe4b872bc5"}, + {file = "BTrees-4.10.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cf87c185d65559b91fdf71d075b86c7ea8aa68c67cc5dc2010589e9919144cfd"}, + {file = "BTrees-4.10.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:c456801116444588afb84522c946b1c4ed5198deee6fbef6acc1a54a569b4f99"}, + {file = "BTrees-4.10.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d204f55915bcce691b4e5dc1fc8926c9e0da7994a80ea70b7e42aead853fed6d"}, + {file = "BTrees-4.10.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bfb2238affe98062b6a5778d709a64bde60fcaa6604c1a34f47f8b25a9ca8658"}, + {file = "BTrees-4.10.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5c3d1f6ba10f5686552b407a6ef468015230b45fb4d6a160a9d19fedf78041cf"}, + {file = "BTrees-4.10.0-cp37-cp37m-win32.whl", hash = "sha256:39026d5bee08b79eb3d83a716276a733145aa8b5aa7ec5890c5efaa6898fe057"}, + {file = "BTrees-4.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:945cf38fc2a26d4259b0d38078654870c4f14a420843b91cc93e10ed7cec5a3d"}, + {file = "BTrees-4.10.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:e27a397ee41efc2d4ae337308fd6b1d82c267e25e0310ce3417ae594258d38a1"}, + {file = "BTrees-4.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70cd7a679ef05d7b7b1f5725c28928c4328f8ff1f9f9ddada097c6a77334a92d"}, + {file = "BTrees-4.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f6a89ef8d31c19a1d2348d4d2df24b1596b280a93fc06855b365e3f324dfc8bb"}, + {file = "BTrees-4.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ba6aa6592bee36a45c9866424430530085ac3f7dccb5ade94206a7102539788a"}, + {file = "BTrees-4.10.0-cp38-cp38-win32.whl", hash = "sha256:23af5041101143418a6b109ed184091aa9a00431b1847044ca1cd3fc968b59aa"}, + {file = "BTrees-4.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:9e8485c6ed09477cdd0c878bf8d5a7e994200d82edb9cd7c00caede4042f8a12"}, + {file = "BTrees-4.10.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b8e160c6dfcd4544f74be584a70a6b442e71a19e8dadd1cd8d0b7e3cd4263bd9"}, + {file = "BTrees-4.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2249c6bcc6a749f0f846e301c9d42633c9388f8b54b6b431068a95d9cc6a07a"}, + {file = "BTrees-4.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e67b21567ef0edceabb4770009978cdb3bef5864c5a412bb060cc15207ccbf1a"}, + {file = "BTrees-4.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:adb01cec4212739b6033c7673f0ad4cf8cdba36ebea932a32ab69b82a2987656"}, + {file = "BTrees-4.10.0-cp39-cp39-win32.whl", hash = "sha256:e378707d019b522283ceea03d1f39df040d0abb668714ea5173771d1eeacbbdf"}, + {file = "BTrees-4.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:03cad075c38e52e5f6662ef16ad52f0b37f849ad5d696e3d4e2da5614ce420bc"}, + {file = "BTrees-4.10.0.tar.gz", hash = "sha256:d6ab0e3410d074d7154245d6dc6493ae86f1b50bd6080d1310ebb3ecdea5deb6"}, +] +cachecontrol = [ + {file = "CacheControl-0.12.11-py2.py3-none-any.whl", hash = "sha256:2c75d6a8938cb1933c75c50184549ad42728a27e9f6b92fd677c3151aa72555b"}, + {file = "CacheControl-0.12.11.tar.gz", hash = "sha256:a5b9fcc986b184db101aa280b42ecdcdfc524892596f606858e0b7a8b4d9e144"}, +] +cachetools = [ + {file = "cachetools-5.2.0-py3-none-any.whl", hash = "sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db"}, + {file = "cachetools-5.2.0.tar.gz", hash = "sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757"}, +] +calamus = [ + {file = "calamus-0.3.14-py3-none-any.whl", hash = "sha256:d614c4b489f12933363abc2c46d45a58b1a53946f22ce1417047b7c9f33f45e4"}, + {file = "calamus-0.3.14.tar.gz", hash = "sha256:114b6e4461561aab7c8f44c52ea988f0718ae505242c613487727c3724d68fe3"}, +] +certifi = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] +cffi = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, + {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, +] +click = [ + {file = "click-8.1.2-py3-none-any.whl", hash = "sha256:24e1a4a9ec5bf6299411369b208c1df2188d9eb8d916302fe6bf03faed227f1e"}, + {file = "click-8.1.2.tar.gz", hash = "sha256:479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"}, +] +click-option-group = [ + {file = "click-option-group-0.5.3.tar.gz", hash = "sha256:a6e924f3c46b657feb5b72679f7e930f8e5b224b766ab35c91ae4019b4e0615e"}, + {file = "click_option_group-0.5.3-py3-none-any.whl", hash = "sha256:9653a2297357335d7325a1827e71ac1245d91c97d959346a7decabd4a52d5354"}, +] +click-plugins = [ + {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, + {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, +] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] +coloredlogs = [ + {file = "coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934"}, + {file = "coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0"}, +] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] +coverage = [ + {file = "coverage-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7b4da9bafad21ea45a714d3ea6f3e1679099e420c8741c74905b92ee9bfa7cc"}, + {file = "coverage-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fde17bc42e0716c94bf19d92e4c9f5a00c5feb401f5bc01101fdf2a8b7cacf60"}, + {file = "coverage-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdbb0d89923c80dbd435b9cf8bba0ff55585a3cdb28cbec65f376c041472c60d"}, + {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67f9346aeebea54e845d29b487eb38ec95f2ecf3558a3cffb26ee3f0dcc3e760"}, + {file = "coverage-6.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42c499c14efd858b98c4e03595bf914089b98400d30789511577aa44607a1b74"}, + {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c35cca192ba700979d20ac43024a82b9b32a60da2f983bec6c0f5b84aead635c"}, + {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9cc4f107009bca5a81caef2fca843dbec4215c05e917a59dec0c8db5cff1d2aa"}, + {file = "coverage-6.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f444627b3664b80d078c05fe6a850dd711beeb90d26731f11d492dcbadb6973"}, + {file = "coverage-6.4.4-cp310-cp310-win32.whl", hash = "sha256:66e6df3ac4659a435677d8cd40e8eb1ac7219345d27c41145991ee9bf4b806a0"}, + {file = "coverage-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:35ef1f8d8a7a275aa7410d2f2c60fa6443f4a64fae9be671ec0696a68525b875"}, + {file = "coverage-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1328d0c2f194ffda30a45f11058c02410e679456276bfa0bbe0b0ee87225fac"}, + {file = "coverage-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61b993f3998ee384935ee423c3d40894e93277f12482f6e777642a0141f55782"}, + {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5dd4b8e9cd0deb60e6fcc7b0647cbc1da6c33b9e786f9c79721fd303994832f"}, + {file = "coverage-6.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7026f5afe0d1a933685d8f2169d7c2d2e624f6255fb584ca99ccca8c0e966fd7"}, + {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9c7b9b498eb0c0d48b4c2abc0e10c2d78912203f972e0e63e3c9dc21f15abdaa"}, + {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ee2b2fb6eb4ace35805f434e0f6409444e1466a47f620d1d5763a22600f0f892"}, + {file = "coverage-6.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ab066f5ab67059d1f1000b5e1aa8bbd75b6ed1fc0014559aea41a9eb66fc2ce0"}, + {file = "coverage-6.4.4-cp311-cp311-win32.whl", hash = "sha256:9d6e1f3185cbfd3d91ac77ea065d85d5215d3dfa45b191d14ddfcd952fa53796"}, + {file = "coverage-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e3d3c4cc38b2882f9a15bafd30aec079582b819bec1b8afdbde8f7797008108a"}, + {file = "coverage-6.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a095aa0a996ea08b10580908e88fbaf81ecf798e923bbe64fb98d1807db3d68a"}, + {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef6f44409ab02e202b31a05dd6666797f9de2aa2b4b3534e9d450e42dea5e817"}, + {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b7101938584d67e6f45f0015b60e24a95bf8dea19836b1709a80342e01b472f"}, + {file = "coverage-6.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a32ec68d721c3d714d9b105c7acf8e0f8a4f4734c811eda75ff3718570b5e3"}, + {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6a864733b22d3081749450466ac80698fe39c91cb6849b2ef8752fd7482011f3"}, + {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820"}, + {file = "coverage-6.4.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a3b2752de32c455f2521a51bd3ffb53c5b3ae92736afde67ce83477f5c1dd928"}, + {file = "coverage-6.4.4-cp37-cp37m-win32.whl", hash = "sha256:f855b39e4f75abd0dfbcf74a82e84ae3fc260d523fcb3532786bcbbcb158322c"}, + {file = "coverage-6.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ee6ae6bbcac0786807295e9687169fba80cb0617852b2fa118a99667e8e6815d"}, + {file = "coverage-6.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:564cd0f5b5470094df06fab676c6d77547abfdcb09b6c29c8a97c41ad03b103c"}, + {file = "coverage-6.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cbbb0e4cd8ddcd5ef47641cfac97d8473ab6b132dd9a46bacb18872828031685"}, + {file = "coverage-6.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6113e4df2fa73b80f77663445be6d567913fb3b82a86ceb64e44ae0e4b695de1"}, + {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d032bfc562a52318ae05047a6eb801ff31ccee172dc0d2504614e911d8fa83e"}, + {file = "coverage-6.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e431e305a1f3126477abe9a184624a85308da8edf8486a863601d58419d26ffa"}, + {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cf2afe83a53f77aec067033199797832617890e15bed42f4a1a93ea24794ae3e"}, + {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:783bc7c4ee524039ca13b6d9b4186a67f8e63d91342c713e88c1865a38d0892a"}, + {file = "coverage-6.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ff934ced84054b9018665ca3967fc48e1ac99e811f6cc99ea65978e1d384454b"}, + {file = "coverage-6.4.4-cp38-cp38-win32.whl", hash = "sha256:e1fabd473566fce2cf18ea41171d92814e4ef1495e04471786cbc943b89a3781"}, + {file = "coverage-6.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:4179502f210ebed3ccfe2f78bf8e2d59e50b297b598b100d6c6e3341053066a2"}, + {file = "coverage-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:98c0b9e9b572893cdb0a00e66cf961a238f8d870d4e1dc8e679eb8bdc2eb1b86"}, + {file = "coverage-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fc600f6ec19b273da1d85817eda339fb46ce9eef3e89f220055d8696e0a06908"}, + {file = "coverage-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a98d6bf6d4ca5c07a600c7b4e0c5350cd483c85c736c522b786be90ea5bac4f"}, + {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2"}, + {file = "coverage-6.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfa0b97eb904255e2ab24166071b27408f1f69c8fbda58e9c0972804851e0558"}, + {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fcbe3d9a53e013f8ab88734d7e517eb2cd06b7e689bedf22c0eb68db5e4a0a19"}, + {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:15e38d853ee224e92ccc9a851457fb1e1f12d7a5df5ae44544ce7863691c7a0d"}, + {file = "coverage-6.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6913dddee2deff8ab2512639c5168c3e80b3ebb0f818fed22048ee46f735351a"}, + {file = "coverage-6.4.4-cp39-cp39-win32.whl", hash = "sha256:354df19fefd03b9a13132fa6643527ef7905712109d9c1c1903f2133d3a4e145"}, + {file = "coverage-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:1238b08f3576201ebf41f7c20bf59baa0d05da941b123c6656e42cdb668e9827"}, + {file = "coverage-6.4.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:f67cf9f406cf0d2f08a3515ce2db5b82625a7257f88aad87904674def6ddaec1"}, + {file = "coverage-6.4.4.tar.gz", hash = "sha256:e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58"}, +] +cryptography = [ + {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06"}, + {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536"}, + {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5"}, + {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0"}, + {file = "cryptography-39.0.2-cp36-abi3-win32.whl", hash = "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480"}, + {file = "cryptography-39.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3"}, + {file = "cryptography-39.0.2.tar.gz", hash = "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f"}, +] +cwl-upgrader = [ + {file = "cwl-upgrader-1.2.3.tar.gz", hash = "sha256:3372b87af6ab6154716462f97561620eecd786798a68a2a64a98529340f52e1f"}, + {file = "cwl_upgrader-1.2.3-py3-none-any.whl", hash = "sha256:0862b4044568c48f0ad5a91da3c14d9fd834b6d80e194aa2a06ffbc6fe4fe1ae"}, +] +cwl-utils = [ + {file = "cwl-utils-0.27.tar.gz", hash = "sha256:9b7e34665c36804793cbcaeb9fe0f2d70958b60ccc4e20d0666fefe016b5ee5f"}, + {file = "cwl_utils-0.27-py3-none-any.whl", hash = "sha256:59c9d1da842257ebbeb22622e5c5e0c3f63287460dfd99a33d8478f500b46014"}, +] +cwltool = [ + {file = "cwltool-3.1.20230425144158-py3-none-any.whl", hash = "sha256:a4fcf698924d8108be4c0ab459923080b3ad42b27e2c9e8d77ee602b48dd8e0b"}, + {file = "cwltool-3.1.20230425144158.tar.gz", hash = "sha256:b6307c536ec94a94cb9215a26057ea792b907144ca57b015699cb180ca309086"}, +] +dataconf = [ + {file = "dataconf-2.2.0-py3-none-any.whl", hash = "sha256:1354f8442234bfa132c888e9df9e339792639aaa574ba7ec286ab3ae90c31bba"}, + {file = "dataconf-2.2.0.tar.gz", hash = "sha256:c14366e142dacb1cead7c9ca58fe2f4282e3f151c1f2ccf2dd5c31d8258f56ca"}, +] +deal = [ + {file = "deal-4.24.1-py3-none-any.whl", hash = "sha256:d6bdc6085dd77ac10d47e7c916c3beac33833b90348e884b171ae637e3a0d251"}, + {file = "deal-4.24.1.tar.gz", hash = "sha256:18b66d40e8f552cf3018f741c610041d9f293f3bf02a1e29dc7cd8419543bd46"}, +] +deepdiff = [ + {file = "deepdiff-5.8.1-py3-none-any.whl", hash = "sha256:e9aea49733f34fab9a0897038d8f26f9d94a97db1790f1b814cced89e9e0d2b7"}, + {file = "deepdiff-5.8.1.tar.gz", hash = "sha256:8d4eb2c4e6cbc80b811266419cb71dd95a157094a3947ccf937a94d44943c7b8"}, +] +deepmerge = [ + {file = "deepmerge-1.0.1-py3-none-any.whl", hash = "sha256:f851fff957697cb8f4580b465acf5c2d35841695306ff0abb9cb9c273ad76112"}, + {file = "deepmerge-1.0.1.tar.gz", hash = "sha256:4b44779ed3d2fb791bb181fc2683423496fea428abb7af37feb23286de7f0a1a"}, +] +dill = [ + {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, + {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, +] +docker = [ + {file = "docker-4.2.2-py2.py3-none-any.whl", hash = "sha256:03a46400c4080cb6f7aa997f881ddd84fef855499ece219d75fbdb53289c17ab"}, + {file = "docker-4.2.2.tar.gz", hash = "sha256:26eebadce7e298f55b76a88c4f8802476c5eaddbdbe38dbc6cce8781c47c9b54"}, +] +dunamai = [ + {file = "dunamai-1.16.0-py3-none-any.whl", hash = "sha256:dc92d817f3bc155e8b129e8c705c36bb15a7e950e2698a93aea142732a888e98"}, + {file = "dunamai-1.16.0.tar.gz", hash = "sha256:bfe8e23cc5a1ceed1c7f791674ea24cf832a53a5da73f046eeb43367ccfc3f77"}, +] +enlighten = [ + {file = "enlighten-1.11.2-py2.py3-none-any.whl", hash = "sha256:98c9eb20e022b6a57f1c8d4f17e16760780b6881e6d658c40f52d21255ea45f3"}, + {file = "enlighten-1.11.2.tar.gz", hash = "sha256:9284861dee5a272e0e1a3758cd3f3b7180b1bd1754875da76876f2a7f46ccb61"}, +] +entrypoints = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] +exceptiongroup = [ + {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, + {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, +] +filelock = [ + {file = "filelock-3.6.0-py3-none-any.whl", hash = "sha256:f8314284bfffbdcfa0ff3d7992b023d4c628ced6feb957351d4c48d059f56bc0"}, + {file = "filelock-3.6.0.tar.gz", hash = "sha256:9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85"}, +] +flake8 = [ + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, +] +flakehell = [ + {file = "flakehell-0.9.0-py3-none-any.whl", hash = "sha256:48a3a9b46136240e52b3b32a78a0826c45f6dcf7d980c30f758c1db5b1439c0b"}, + {file = "flakehell-0.9.0.tar.gz", hash = "sha256:208836d8d24194d50cfa4c1fc99f681f3c537cc232edcd06455abc2971460893"}, +] +flask = [ + {file = "Flask-2.2.4-py3-none-any.whl", hash = "sha256:13f6329ddbfff11340939cd11919daf150a01358ded4b7e81c03c055dfecb559"}, + {file = "Flask-2.2.4.tar.gz", hash = "sha256:77504c4c097f56ac5f29b00f9009213010cf9d2923a288c0e0564a5db2bb53d6"}, +] +frozendict = [ + {file = "frozendict-2.3.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4a3b32d47282ae0098b9239a6d53ec539da720258bd762d62191b46f2f87c5fc"}, + {file = "frozendict-2.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c9887179a245a66a50f52afa08d4d92ae0f269839fab82285c70a0fa0dd782"}, + {file = "frozendict-2.3.4-cp310-cp310-win_amd64.whl", hash = "sha256:b98a0d65a59af6da03f794f90b0c3085a7ee14e7bf8f0ef36b079ee8aa992439"}, + {file = "frozendict-2.3.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d8042b7dab5e992e30889c9b71b781d5feef19b372d47d735e4d7d45846fd4a"}, + {file = "frozendict-2.3.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a6d2e8b7cf6b6e5677a1a4b53b4073e5d9ec640d1db30dc679627668d25e90"}, + {file = "frozendict-2.3.4-cp36-cp36m-win_amd64.whl", hash = "sha256:dbbe1339ac2646523e0bb00d1896085d1f70de23780e4927ca82b36ab8a044d3"}, + {file = "frozendict-2.3.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95bac22f7f09d81f378f2b3f672b7a50a974ca180feae1507f5e21bc147e8bc8"}, + {file = "frozendict-2.3.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae686722c144b333c4dbdc16323a5de11406d26b76d2be1cc175f90afacb5ba"}, + {file = "frozendict-2.3.4-cp37-cp37m-win_amd64.whl", hash = "sha256:389f395a74eb16992217ac1521e689c1dea2d70113bcb18714669ace1ed623b9"}, + {file = "frozendict-2.3.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ccb6450a416c9cc9acef7683e637e28356e3ceeabf83521f74cc2718883076b7"}, + {file = "frozendict-2.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca59108b77cadc13ba7dfea7e8f50811208c7652a13dc6c7f92d7782a24d299"}, + {file = "frozendict-2.3.4-cp38-cp38-win_amd64.whl", hash = "sha256:3ec86ebf143dd685184215c27ec416c36e0ba1b80d81b1b9482f7d380c049b4e"}, + {file = "frozendict-2.3.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5809e6ff6b7257043a486f7a3b73a7da71cf69a38980b4171e4741291d0d9eb3"}, + {file = "frozendict-2.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c550ed7fdf1962984bec21630c584d722b3ee5d5f57a0ae2527a0121dc0414a"}, + {file = "frozendict-2.3.4-cp39-cp39-win_amd64.whl", hash = "sha256:3e93aebc6e69a8ef329bbe9afb8342bd33c7b5c7a0c480cb9f7e60b0cbe48072"}, + {file = "frozendict-2.3.4-py3-none-any.whl", hash = "sha256:d722f3d89db6ae35ef35ecc243c40c800eb344848c83dba4798353312cd37b15"}, + {file = "frozendict-2.3.4.tar.gz", hash = "sha256:15b4b18346259392b0d27598f240e9390fafbff882137a9c48a1e0104fb17f78"}, +] +future = [ + {file = "future-0.18.3.tar.gz", hash = "sha256:34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307"}, +] +gevent = [ + {file = "gevent-22.10.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:97cd42382421779f5d82ec5007199e8a84aa288114975429e4fd0a98f2290f10"}, + {file = "gevent-22.10.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:1e1286a76f15b5e15f1e898731d50529e249529095a032453f2c101af3fde71c"}, + {file = "gevent-22.10.2-cp27-cp27m-win32.whl", hash = "sha256:59b47e81b399d49a5622f0f503c59f1ce57b7705306ea0196818951dfc2f36c8"}, + {file = "gevent-22.10.2-cp27-cp27m-win_amd64.whl", hash = "sha256:1d543c9407a1e4bca11a8932916988cfb16de00366de5bf7bc9e7a3f61e60b18"}, + {file = "gevent-22.10.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4e2f008c82dc54ec94f4de12ca6feea60e419babb48ec145456907ae61625aa4"}, + {file = "gevent-22.10.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:990d7069f14dc40674e0d5cb43c68fd3bad8337048613b9bb94a0c4180ffc176"}, + {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f23d0997149a816a2a9045af29c66f67f405a221745b34cefeac5769ed451db8"}, + {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b43d500d7d3c0e03070dee813335bb5315215aa1cf6a04c61093dfdd718640b3"}, + {file = "gevent-22.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b68f4c9e20e47ad49fe797f37f91d5bbeace8765ce2707f979a8d4ec197e4d"}, + {file = "gevent-22.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1f001cac0ba8da76abfeb392a3057f81fab3d67cc916c7df8ea977a44a2cc989"}, + {file = "gevent-22.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:3b7eae8a0653ba95a224faaddf629a913ace408edb67384d3117acf42d7dcf89"}, + {file = "gevent-22.10.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8f2477e7b0a903a01485c55bacf2089110e5f767014967ba4b287ff390ae2638"}, + {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddaa3e310a8f1a45b5c42cf50b54c31003a3028e7d4e085059090ea0e7a5fddd"}, + {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98bc510e80f45486ef5b806a1c305e0e89f0430688c14984b0dbdec03331f48b"}, + {file = "gevent-22.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:877abdb3a669576b1d51ce6a49b7260b2a96f6b2424eb93287e779a3219d20ba"}, + {file = "gevent-22.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d21ad79cca234cdbfa249e727500b0ddcbc7adfff6614a96e6eaa49faca3e4f2"}, + {file = "gevent-22.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e955238f59b2947631c9782a713280dd75884e40e455313b5b6bbc20b92ff73"}, + {file = "gevent-22.10.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:5aa99e4882a9e909b4756ee799c6fa0f79eb0542779fad4cc60efa23ec1b2aa8"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:d82081656a5b9a94d37c718c8646c757e1617e389cdc533ea5e6a6f0b8b78545"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54f4bfd74c178351a4a05c5c7df6f8a0a279ff6f392b57608ce0e83c768207f9"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ff3796692dff50fec2f381b9152438b221335f557c4f9b811f7ded51b7a25a1"}, + {file = "gevent-22.10.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f01c9adbcb605364694b11dcd0542ec468a29ac7aba2fb5665dc6caf17ba4d7e"}, + {file = "gevent-22.10.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:9d85574eb729f981fea9a78998725a06292d90a3ed50ddca74530c3148c0be41"}, + {file = "gevent-22.10.2-cp36-cp36m-win32.whl", hash = "sha256:8c192d2073e558e241f0b592c1e2b34127a4481a5be240cad4796533b88b1a98"}, + {file = "gevent-22.10.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a2237451c721a0f874ef89dbb4af4fdc172b76a964befaa69deb15b8fff10f49"}, + {file = "gevent-22.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:53ee7f170ed42c7561fe8aff5d381dc9a4124694e70580d0c02fba6aafc0ea37"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:96c56c280e3c43cfd075efd10b250350ed5ffd3c1514ec99a080b1b92d7c8374"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6c144e08dfad4106effc043a026e5d0c0eff6ad031904c70bf5090c63f3a6a7"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:018f93de7d5318d2fb440f846839a4464738468c3476d5c9cf7da45bb71c18bd"}, + {file = "gevent-22.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7ed2346eb9dc4344f9cb0d7963ce5b74fe16fdd031a2809bb6c2b6eba7ebcd5"}, + {file = "gevent-22.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:84c517e33ed604fa06b7d756dc0171169cc12f7fdd68eb7b17708a62eebf4516"}, + {file = "gevent-22.10.2-cp37-cp37m-win32.whl", hash = "sha256:4114f0f439f0b547bb6f1d474fee99ddb46736944ad2207cef3771828f6aa358"}, + {file = "gevent-22.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:0d581f22a5be6281b11ad6309b38b18f0638cf896931223cbaa5adb904826ef6"}, + {file = "gevent-22.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2929377c8ebfb6f4d868d161cd8de2ea6b9f6c7a5fcd4f78bcd537319c16190b"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:efc003b6c1481165af61f0aeac248e0a9ac8d880bb3acbe469b448674b2d5281"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db562a8519838bddad0c439a2b12246bab539dd50e299ea7ff3644274a33b6a5"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1472012493ca1fac103f700d309cb6ef7964dcdb9c788d1768266e77712f5e49"}, + {file = "gevent-22.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c04ee32c11e9fcee47c1b431834878dc987a7a2cc4fe126ddcae3bad723ce89"}, + {file = "gevent-22.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8729129edef2637a8084258cb9ec4e4d5ca45d97ac77aa7a6ff19ccb530ab731"}, + {file = "gevent-22.10.2-cp38-cp38-win32.whl", hash = "sha256:ae90226074a6089371a95f20288431cd4b3f6b0b096856afd862e4ac9510cddd"}, + {file = "gevent-22.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:494c7f29e94df9a1c3157d67bb7edfa32a46eed786e04d9ee68d39f375e30001"}, + {file = "gevent-22.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:58898dbabb5b11e4d0192aae165ad286dc6742c543e1be9d30dc82753547c508"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:4197d423e198265eef39a0dea286ef389da9148e070310f34455ecee8172c391"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da4183f0b9d9a1e25e1758099220d32c51cc2c6340ee0dea3fd236b2b37598e4"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5488eba6a568b4d23c072113da4fc0feb1b5f5ede7381656dc913e0d82204e2"}, + {file = "gevent-22.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319d8b1699b7b8134de66d656cd739b308ab9c45ace14d60ae44de7775b456c9"}, + {file = "gevent-22.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f3329bedbba4d3146ae58c667e0f9ac1e6f1e1e6340c7593976cdc60aa7d1a47"}, + {file = "gevent-22.10.2-cp39-cp39-win32.whl", hash = "sha256:172caa66273315f283e90a315921902cb6549762bdcb0587fd60cb712a9d6263"}, + {file = "gevent-22.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:323b207b281ba0405fea042067fa1a61662e5ac0d574ede4ebbda03efd20c350"}, + {file = "gevent-22.10.2-pp27-pypy_73-win_amd64.whl", hash = "sha256:ed7f16613eebf892a6a744d7a4a8f345bc6f066a0ff3b413e2479f9c0a180193"}, + {file = "gevent-22.10.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a47a4e77e2bc668856aad92a0b8de7ee10768258d93cd03968e6c7ba2e832f76"}, + {file = "gevent-22.10.2.tar.gz", hash = "sha256:1ca01da176ee37b3527a2702f7d40dbc9ffb8cfc7be5a03bfa4f9eec45e55c46"}, +] +gitdb = [ + {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, + {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, +] +gitpython = [ + {file = "GitPython-3.1.27-py3-none-any.whl", hash = "sha256:5b68b000463593e05ff2b261acff0ff0972df8ab1b70d3cdbd41b546c8b8fc3d"}, + {file = "GitPython-3.1.27.tar.gz", hash = "sha256:1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704"}, +] +grandalf = [ + {file = "grandalf-0.8-py3-none-any.whl", hash = "sha256:793ca254442f4a79252ea9ff1ab998e852c1e071b863593e5383afee906b4185"}, + {file = "grandalf-0.8.tar.gz", hash = "sha256:2813f7aab87f0d20f334a3162ccfbcbf085977134a17a5b516940a93a77ea974"}, +] +greenlet = [ + {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, + {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, + {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, + {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, + {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, + {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, + {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, + {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, + {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, + {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, + {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, + {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, + {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, + {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, + {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, + {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, + {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, + {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, + {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, + {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, + {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, + {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, +] +gunicorn = [ + {file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"}, + {file = "gunicorn-20.1.0.tar.gz", hash = "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"}, +] +humanfriendly = [ + {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"}, + {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"}, +] +humanize = [ + {file = "humanize-4.0.0-py3-none-any.whl", hash = "sha256:8d86333b8557dacffd4dce1dbe09c81c189e2caf7bb17a970b2212f0f58f10f2"}, + {file = "humanize-4.0.0.tar.gz", hash = "sha256:ee1f872fdfc7d2ef4a28d4f80ddde9f96d36955b5d6b0dac4bdeb99502bddb00"}, +] +idna = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, + {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, +] +importlib-resources = [ + {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, + {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +inject = [ + {file = "Inject-4.3.1.tar.gz", hash = "sha256:7f996f2c9ed2082af776ddf6b528d97036898ac63040385feb1d12286a73c3cc"}, +] +isodate = [ + {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, + {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, +] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +itsdangerous = [ + {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, + {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, +] +jinja2 = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] +jinxed = [ + {file = "jinxed-1.2.0-py2.py3-none-any.whl", hash = "sha256:cfc2b2e4e3b4326954d546ba6d6b9a7a796ddcb0aef8d03161d005177eb0d48b"}, + {file = "jinxed-1.2.0.tar.gz", hash = "sha256:032acda92d5c57cd216033cbbd53de731e6ed50deb63eb4781336ca55f72cda5"}, +] +json-rpc = [ + {file = "json-rpc-1.14.0.tar.gz", hash = "sha256:ff5df1c7fd86e1dbd0259f06599751ce91a7c790f290414793a565ab586ddc52"}, + {file = "json_rpc-1.14.0-py2.py3-none-any.whl", hash = "sha256:eabc796da090fb705885085444a75831d370506804fff760d77f7cb30e80c427"}, +] +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"}, +] +lockfile = [ + {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"}, + {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"}, +] +lxml = [ + {file = "lxml-4.9.1-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed"}, + {file = "lxml-4.9.1-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc"}, + {file = "lxml-4.9.1-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc"}, + {file = "lxml-4.9.1-cp27-cp27m-win32.whl", hash = "sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3"}, + {file = "lxml-4.9.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627"}, + {file = "lxml-4.9.1-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84"}, + {file = "lxml-4.9.1-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837"}, + {file = "lxml-4.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad"}, + {file = "lxml-4.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5"}, + {file = "lxml-4.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8"}, + {file = "lxml-4.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8"}, + {file = "lxml-4.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d"}, + {file = "lxml-4.9.1-cp310-cp310-win32.whl", hash = "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7"}, + {file = "lxml-4.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b"}, + {file = "lxml-4.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d"}, + {file = "lxml-4.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3"}, + {file = "lxml-4.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29"}, + {file = "lxml-4.9.1-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d"}, + {file = "lxml-4.9.1-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318"}, + {file = "lxml-4.9.1-cp35-cp35m-win32.whl", hash = "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7"}, + {file = "lxml-4.9.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4"}, + {file = "lxml-4.9.1-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf"}, + {file = "lxml-4.9.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3"}, + {file = "lxml-4.9.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391"}, + {file = "lxml-4.9.1-cp36-cp36m-win32.whl", hash = "sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e"}, + {file = "lxml-4.9.1-cp36-cp36m-win_amd64.whl", hash = "sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7"}, + {file = "lxml-4.9.1-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca"}, + {file = "lxml-4.9.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785"}, + {file = "lxml-4.9.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785"}, + {file = "lxml-4.9.1-cp37-cp37m-win32.whl", hash = "sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a"}, + {file = "lxml-4.9.1-cp37-cp37m-win_amd64.whl", hash = "sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e"}, + {file = "lxml-4.9.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715"}, + {file = "lxml-4.9.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036"}, + {file = "lxml-4.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387"}, + {file = "lxml-4.9.1-cp38-cp38-win32.whl", hash = "sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94"}, + {file = "lxml-4.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345"}, + {file = "lxml-4.9.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000"}, + {file = "lxml-4.9.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25"}, + {file = "lxml-4.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd"}, + {file = "lxml-4.9.1-cp39-cp39-win32.whl", hash = "sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb"}, + {file = "lxml-4.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d"}, + {file = "lxml-4.9.1-pp37-pypy37_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c"}, + {file = "lxml-4.9.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b"}, + {file = "lxml-4.9.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc"}, + {file = "lxml-4.9.1-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b"}, + {file = "lxml-4.9.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2"}, + {file = "lxml-4.9.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73"}, + {file = "lxml-4.9.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c"}, + {file = "lxml-4.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9"}, + {file = "lxml-4.9.1.tar.gz", hash = "sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f"}, +] +markupsafe = [ + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] +marshmallow = [ + {file = "marshmallow-3.17.1-py3-none-any.whl", hash = "sha256:1172ce82765bf26c24a3f9299ed6dbeeca4d213f638eaa39a37772656d7ce408"}, + {file = "marshmallow-3.17.1.tar.gz", hash = "sha256:48e2d88d4ab431ad5a17c25556d9da529ea6e966876f2a38d274082e270287f0"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +mistune = [ + {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, + {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, +] +msgpack = [ + {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250"}, + {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88"}, + {file = "msgpack-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467"}, + {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6"}, + {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa"}, + {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6"}, + {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba"}, + {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e"}, + {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db"}, + {file = "msgpack-1.0.4-cp310-cp310-win32.whl", hash = "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef"}, + {file = "msgpack-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075"}, + {file = "msgpack-1.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52"}, + {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9"}, + {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9"}, + {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08"}, + {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8"}, + {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6"}, + {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae"}, + {file = "msgpack-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6"}, + {file = "msgpack-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661"}, + {file = "msgpack-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c"}, + {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0"}, + {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227"}, + {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff"}, + {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd"}, + {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e"}, + {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236"}, + {file = "msgpack-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44"}, + {file = "msgpack-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1"}, + {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d"}, + {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab"}, + {file = "msgpack-1.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb"}, + {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9"}, + {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e"}, + {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1"}, + {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e"}, + {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43"}, + {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243"}, + {file = "msgpack-1.0.4-cp38-cp38-win32.whl", hash = "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2"}, + {file = "msgpack-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6"}, + {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae"}, + {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55"}, + {file = "msgpack-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da"}, + {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f"}, + {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92"}, + {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f"}, + {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624"}, + {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8"}, + {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae"}, + {file = "msgpack-1.0.4-cp39-cp39-win32.whl", hash = "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c"}, + {file = "msgpack-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce"}, + {file = "msgpack-1.0.4.tar.gz", hash = "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +networkx = [ + {file = "networkx-2.6.3-py3-none-any.whl", hash = "sha256:80b6b89c77d1dfb64a4c7854981b60aeea6360ac02c6d4e4913319e0a313abef"}, + {file = "networkx-2.6.3.tar.gz", hash = "sha256:c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51"}, +] +ordered-set = [ + {file = "ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"}, + {file = "ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562"}, +] +owlrl = [ + {file = "owlrl-5.2.3-py3-none-any.whl", hash = "sha256:0514239bfbf72fa67f3e5813a40bcc5bd88fd16093d9f76b45a0d4c84ee1c5e2"}, + {file = "owlrl-5.2.3.tar.gz", hash = "sha256:b1891d75b2c2fb0db9e1504a9b12dab738ed89236414c51393d1030597004342"}, +] +packaging = [ + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, +] +pathspec = [ + {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, + {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, +] +patool = [ + {file = "patool-1.12-py2.py3-none-any.whl", hash = "sha256:3f642549c9a78f5b8bef1af92df385b521d360520d1f34e4dba3fd1dee2a21bc"}, + {file = "patool-1.12.tar.gz", hash = "sha256:e3180cf8bfe13bedbcf6f5628452fca0c2c84a3b5ae8c2d3f55720ea04cb1097"}, +] +persistent = [ + {file = "persistent-4.9.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:6ffc7e720cf124a45b890e655d80b644f8c12b1fb97da7df78c5278ef28b2d8b"}, + {file = "persistent-4.9.0-cp27-cp27m-win32.whl", hash = "sha256:9ec24d5a704fee4bd5aca12bb0f17e05f1386bd8d3903657a89c50214afb547e"}, + {file = "persistent-4.9.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ec0f6774a9b668ef842ef564cc1871caeef1b3735a7566ad8e47a81a1d98e940"}, + {file = "persistent-4.9.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:b3a5de9f4760245f6c6000763f2f8e8cabbb06ea5bc804ea1f219b17c4526dee"}, + {file = "persistent-4.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90e3de2bd66df303b1fa90086ef82d8cf9eef87fe3503da03e29f2f62a2f8884"}, + {file = "persistent-4.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7333f96f7f140fdd223bb3e0966ac0ce76321865c37ff11ac45f561fea302f29"}, + {file = "persistent-4.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2e4fda36e7754faa64a8b81a1f8885813c59815a38f9f41560a7f5ef795514"}, + {file = "persistent-4.9.0-cp310-cp310-win32.whl", hash = "sha256:5392d9b1451d6a1da2b59e27e10eb45d0ffbcecfe0e14aae4b98b8b2547a7286"}, + {file = "persistent-4.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:f37b157dcc13a64f97d14520b9a892dfc14385d034409f6c735bc9ee4ab7607e"}, + {file = "persistent-4.9.0-cp35-cp35m-win32.whl", hash = "sha256:c1405c4928b9399d25b98097fa1a4694d172b2af7c9afb67d7ae12709ea48bf3"}, + {file = "persistent-4.9.0-cp35-cp35m-win_amd64.whl", hash = "sha256:73a55f1b09f48c99adc87e208db7e115a201ad1e0bd2de328587e993c85c6bd2"}, + {file = "persistent-4.9.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:ec8983c0253a44a43360462312d6d810762edeb96a392da031db20763ac404ca"}, + {file = "persistent-4.9.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5be31f034709ab6833b7bd9c3b4835664f0971a2e8ff403380d861f7899dde79"}, + {file = "persistent-4.9.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:57fc77be949ad6bedf077c456b58d31b98690512567e9e676c6171972bb0da50"}, + {file = "persistent-4.9.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b9c25ea6920f322344b25fc1beca24fb04944fc28b7157b36f42cdb9c5ce3846"}, + {file = "persistent-4.9.0-cp36-cp36m-win32.whl", hash = "sha256:7e2650c619ad8acc67caad27f0caa856b3c3aaa474edf4cd9d39fd5b9389ae2b"}, + {file = "persistent-4.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:78be12da25a20c8ce053065ec8a24837a2f445fa5dd53b284e26dafa066585d2"}, + {file = "persistent-4.9.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:a9618487416445243094d87dcc865c32a2c6039020afb51cdeca63e6fcb3c624"}, + {file = "persistent-4.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e612bfa55cbbb30a4bfd566e56844087edd525783f8c15edd530bc3236e68f34"}, + {file = "persistent-4.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8bf0f183637508e4e588a64c61bd8be2e34086a37687f733c7cad1e6dbe7bc2c"}, + {file = "persistent-4.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e0b2a16319686fd1b5bbb385e3b83a3224568d13cb0a3417536279194d41b119"}, + {file = "persistent-4.9.0-cp37-cp37m-win32.whl", hash = "sha256:7996d05b539352d7b612aa350a1f024f7e32ab24e23f8b5ebac275e43669bdb1"}, + {file = "persistent-4.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c45e88c8f9daffdddd033d840b3ea89fd4b954c262f010b19d9fc64dce6c16bf"}, + {file = "persistent-4.9.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3277daca96db74b32ae24ca418bcb8f6d2480fe5794a4c67832a16ffc2e74a31"}, + {file = "persistent-4.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6af3b724b0993f9a72e2a644837bc0dc8c44526a6c17ecd32bf60672e37b8608"}, + {file = "persistent-4.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5c9d55dd9bf238beb3565ab0b274552c2c4121921580464988586ed09b5ecbcb"}, + {file = "persistent-4.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1adb850f642be7e5d21814ec23c6d6299315c90274baef3d5940e4346644951c"}, + {file = "persistent-4.9.0-cp38-cp38-win32.whl", hash = "sha256:6413db4d784846436c4a00d9a66b3c6bce3f45cad2eb3247d39ced8e41b942b7"}, + {file = "persistent-4.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:e5ff4a80e781190debbc940d3e2736439a224fbe9fb8694f4eba164bb9510f84"}, + {file = "persistent-4.9.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:3baa155d2a686ecea1ce9ac2b60fc44967b132beee49150bd079925e3b3c46d8"}, + {file = "persistent-4.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfceb7f4feb738fe8a60c22a47ee402e2a4ae213f6808329c0902ce3c19ade2b"}, + {file = "persistent-4.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d6934976b239727caa516adec22e943abb9db1c9fef66440e5e373989f6e30a"}, + {file = "persistent-4.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d1bbf615e067bb8bc35c418265b6b5a573cd27e3f37cf2695a319c8fb85a1b5"}, + {file = "persistent-4.9.0-cp39-cp39-win32.whl", hash = "sha256:4f78de2ee1e7469f8c9347a5ca724a068cae52935d5b0b4401b1683b5cea2097"}, + {file = "persistent-4.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:2d71550ac2aa601b96fc1dd64c87b97c9d54c9ca81aedcad6776e00c8f80011d"}, + {file = "persistent-4.9.0.tar.gz", hash = "sha256:4701b31d81c1042265725af390450e9d916ad74b9c178b7010053853591e0c6a"}, +] +platformdirs = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +poetry-dynamic-versioning = [ + {file = "poetry_dynamic_versioning-0.21.5-py3-none-any.whl", hash = "sha256:4f299e4bfe780e0dd85e8e9ed3ddfa42d050447a36ac8f5e8c1ebd66f66c82cc"}, + {file = "poetry_dynamic_versioning-0.21.5.tar.gz", hash = "sha256:aa3ff2883394daf80d0cfb1e12d10ecdedc407a8b7c296545ad8b6124979dffc"}, +] +portalocker = [ + {file = "portalocker-2.4.0-py2.py3-none-any.whl", hash = "sha256:b092f48e1e30a234ab3dd1cfd44f2f235e8a41f4e310e463fc8d6798d1c3c235"}, + {file = "portalocker-2.4.0.tar.gz", hash = "sha256:a648ad761b8ea27370cb5915350122cd807b820d2193ed5c9cc28f163df637f4"}, +] +prefixed = [ + {file = "prefixed-0.7.0-py2.py3-none-any.whl", hash = "sha256:537b0e4ff4516c4578f277a41d7104f769d6935ae9cdb0f88fed82ec7b3c0ca5"}, + {file = "prefixed-0.7.0.tar.gz", hash = "sha256:0b54d15e602eb8af4ac31b1db21a37ea95ce5890e0741bb0dd9ded493cefbbe9"}, +] +prettytable = [ + {file = "prettytable-2.5.0-py3-none-any.whl", hash = "sha256:1411c65d21dca9eaa505ba1d041bed75a6d629ae22f5109a923f4e719cfecba4"}, + {file = "prettytable-2.5.0.tar.gz", hash = "sha256:f7da57ba63d55116d65e5acb147bfdfa60dceccabf0d607d6817ee2888a05f2c"}, +] +prov = [ + {file = "prov-1.5.1-py2.py3-none-any.whl", hash = "sha256:5c930cbbd05424aa3066d336dc31d314dd9fa0280caeab064288e592ed716bea"}, + {file = "prov-1.5.1.tar.gz", hash = "sha256:7a2d72b0df43cd9c6e374d815c8ce3cd5ca371d54f98f837853ac9fcc98aee4c"}, +] +psutil = [ + {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"}, + {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"}, + {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"}, + {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"}, + {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"}, + {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"}, + {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"}, + {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"}, + {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"}, + {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"}, + {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"}, + {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"}, + {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"}, + {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"}, + {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"}, + {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"}, + {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"}, + {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"}, + {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"}, + {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"}, + {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"}, + {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"}, + {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"}, + {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"}, + {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"}, + {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"}, + {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"}, + {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"}, + {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"}, + {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"}, + {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"}, + {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"}, +] +py-tes = [ + {file = "py-tes-0.4.2.tar.gz", hash = "sha256:f6926cd59b7dfc8e37840955bf1cc7c43ad4d99ba5eae100b6156c918617472c"}, +] +pycodestyle = [ + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] +pydantic = [ + {file = "pydantic-1.10.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e79e999e539872e903767c417c897e729e015872040e56b96e67968c3b918b2d"}, + {file = "pydantic-1.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:01aea3a42c13f2602b7ecbbea484a98169fb568ebd9e247593ea05f01b884b2e"}, + {file = "pydantic-1.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:516f1ed9bc2406a0467dd777afc636c7091d71f214d5e413d64fef45174cfc7a"}, + {file = "pydantic-1.10.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae150a63564929c675d7f2303008d88426a0add46efd76c3fc797cd71cb1b46f"}, + {file = "pydantic-1.10.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ecbbc51391248116c0a055899e6c3e7ffbb11fb5e2a4cd6f2d0b93272118a209"}, + {file = "pydantic-1.10.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f4a2b50e2b03d5776e7f21af73e2070e1b5c0d0df255a827e7c632962f8315af"}, + {file = "pydantic-1.10.7-cp310-cp310-win_amd64.whl", hash = "sha256:a7cd2251439988b413cb0a985c4ed82b6c6aac382dbaff53ae03c4b23a70e80a"}, + {file = "pydantic-1.10.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:68792151e174a4aa9e9fc1b4e653e65a354a2fa0fed169f7b3d09902ad2cb6f1"}, + {file = "pydantic-1.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe2507b8ef209da71b6fb5f4e597b50c5a34b78d7e857c4f8f3115effaef5fe"}, + {file = "pydantic-1.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10a86d8c8db68086f1e30a530f7d5f83eb0685e632e411dbbcf2d5c0150e8dcd"}, + {file = "pydantic-1.10.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75ae19d2a3dbb146b6f324031c24f8a3f52ff5d6a9f22f0683694b3afcb16fb"}, + {file = "pydantic-1.10.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:464855a7ff7f2cc2cf537ecc421291b9132aa9c79aef44e917ad711b4a93163b"}, + {file = "pydantic-1.10.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:193924c563fae6ddcb71d3f06fa153866423ac1b793a47936656e806b64e24ca"}, + {file = "pydantic-1.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:b4a849d10f211389502059c33332e91327bc154acc1845f375a99eca3afa802d"}, + {file = "pydantic-1.10.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cc1dde4e50a5fc1336ee0581c1612215bc64ed6d28d2c7c6f25d2fe3e7c3e918"}, + {file = "pydantic-1.10.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0cfe895a504c060e5d36b287ee696e2fdad02d89e0d895f83037245218a87fe"}, + {file = "pydantic-1.10.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:670bb4683ad1e48b0ecb06f0cfe2178dcf74ff27921cdf1606e527d2617a81ee"}, + {file = "pydantic-1.10.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:950ce33857841f9a337ce07ddf46bc84e1c4946d2a3bba18f8280297157a3fd1"}, + {file = "pydantic-1.10.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c15582f9055fbc1bfe50266a19771bbbef33dd28c45e78afbe1996fd70966c2a"}, + {file = "pydantic-1.10.7-cp37-cp37m-win_amd64.whl", hash = "sha256:82dffb306dd20bd5268fd6379bc4bfe75242a9c2b79fec58e1041fbbdb1f7914"}, + {file = "pydantic-1.10.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c7f51861d73e8b9ddcb9916ae7ac39fb52761d9ea0df41128e81e2ba42886cd"}, + {file = "pydantic-1.10.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6434b49c0b03a51021ade5c4daa7d70c98f7a79e95b551201fff682fc1661245"}, + {file = "pydantic-1.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64d34ab766fa056df49013bb6e79921a0265204c071984e75a09cbceacbbdd5d"}, + {file = "pydantic-1.10.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:701daea9ffe9d26f97b52f1d157e0d4121644f0fcf80b443248434958fd03dc3"}, + {file = "pydantic-1.10.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf135c46099ff3f919d2150a948ce94b9ce545598ef2c6c7bf55dca98a304b52"}, + {file = "pydantic-1.10.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0f85904f73161817b80781cc150f8b906d521fa11e3cdabae19a581c3606209"}, + {file = "pydantic-1.10.7-cp38-cp38-win_amd64.whl", hash = "sha256:9f6f0fd68d73257ad6685419478c5aece46432f4bdd8d32c7345f1986496171e"}, + {file = "pydantic-1.10.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c230c0d8a322276d6e7b88c3f7ce885f9ed16e0910354510e0bae84d54991143"}, + {file = "pydantic-1.10.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:976cae77ba6a49d80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e"}, + {file = "pydantic-1.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d45fc99d64af9aaf7e308054a0067fdcd87ffe974f2442312372dfa66e1001d"}, + {file = "pydantic-1.10.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2a5ebb48958754d386195fe9e9c5106f11275867051bf017a8059410e9abf1f"}, + {file = "pydantic-1.10.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:abfb7d4a7cd5cc4e1d1887c43503a7c5dd608eadf8bc615413fc498d3e4645cd"}, + {file = "pydantic-1.10.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:80b1fab4deb08a8292d15e43a6edccdffa5377a36a4597bb545b93e79c5ff0a5"}, + {file = "pydantic-1.10.7-cp39-cp39-win_amd64.whl", hash = "sha256:d71e69699498b020ea198468e2480a2f1e7433e32a3a99760058c6520e2bea7e"}, + {file = "pydantic-1.10.7-py3-none-any.whl", hash = "sha256:0cd181f1d0b1d00e2b705f1bf1ac7799a2d938cce3376b8007df62b29be3c2c6"}, + {file = "pydantic-1.10.7.tar.gz", hash = "sha256:cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e"}, +] +pydot = [ + {file = "pydot-1.4.2-py2.py3-none-any.whl", hash = "sha256:66c98190c65b8d2e2382a441b4c0edfdb4f4c025ef9cb9874de478fb0793a451"}, + {file = "pydot-1.4.2.tar.gz", hash = "sha256:248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"}, +] +pyflakes = [ + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, +] +pygments = [ + {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, + {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, +] +pyhocon = [ + {file = "pyhocon-0.3.60.tar.gz", hash = "sha256:ea18520ea126981e5320a72281f1a5fef2c27923f70cc54e1bd241c26525fd4b"}, +] +pyjwt = [ + {file = "PyJWT-2.3.0-py3-none-any.whl", hash = "sha256:e0c4bb8d9f0af0c7f5b1ec4c5036309617d03d56932877f2f7a0beeb5318322f"}, + {file = "PyJWT-2.3.0.tar.gz", hash = "sha256:b888b4d56f06f6dcd777210c334e69c737be74755d3e5e9ee3fe67dc18a0ee41"}, +] +pyld = [ + {file = "PyLD-2.0.3.tar.gz", hash = "sha256:287445f888c3a332ccbd20a14844c66c2fcbaeab3c99acd506a0788e2ebb2f82"}, +] +pylint = [ + {file = "pylint-2.17.3-py3-none-any.whl", hash = "sha256:a6cbb4c6e96eab4a3c7de7c6383c512478f58f88d95764507d84c899d656a89a"}, + {file = "pylint-2.17.3.tar.gz", hash = "sha256:761907349e699f8afdcd56c4fe02f3021ab5b3a0fc26d19a9bfdc66c7d0d5cd5"}, +] +pyopenssl = [ + {file = "pyOpenSSL-22.0.0-py2.py3-none-any.whl", hash = "sha256:ea252b38c87425b64116f808355e8da644ef9b07e429398bfece610f893ee2e0"}, + {file = "pyOpenSSL-22.0.0.tar.gz", hash = "sha256:660b1b1425aac4a1bea1d94168a85d99f0b3144c869dd4390d27629d0087f1bf"}, +] +pyparsing = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] +pypiwin32 = [ + {file = "pypiwin32-223-py3-none-any.whl", hash = "sha256:67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775"}, + {file = "pypiwin32-223.tar.gz", hash = "sha256:71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"}, +] +pypubsub = [ + {file = "Pypubsub-4.0.3-py3-none-any.whl", hash = "sha256:7f716bae9388afe01ff82b264ba8a96a8ae78b42bb1f114f2716ca8f9e404e2a"}, +] +pyreadline3 = [ + {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, + {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, +] +pyshacl = [ + {file = "pyshacl-0.17.2-py3-none-any.whl", hash = "sha256:ec147758eabadac13d8a981c5b9da9447ac6eb04cc6f013b92902cf24adad373"}, + {file = "pyshacl-0.17.2.tar.gz", hash = "sha256:46f31c7a7f7298aa5b483d92dbc850ff79a144d26f1f41e83267ed84b4d6ae23"}, +] +pytest = [ + {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, + {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, +] +pytest-black = [ + {file = "pytest-black-0.3.12.tar.gz", hash = "sha256:1d339b004f764d6cd0f06e690f6dd748df3d62e6fe1a692d6a5500ac2c5b75a5"}, +] +pytest-cov = [ + {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, + {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, +] +pytest-flake8 = [ + {file = "pytest-flake8-1.1.0.tar.gz", hash = "sha256:358d449ca06b80dbadcb43506cd3e38685d273b4968ac825da871bd4cc436202"}, + {file = "pytest_flake8-1.1.0-py2.py3-none-any.whl", hash = "sha256:f1b19dad0b9f0aa651d391c9527ebc20ac1a0f847aa78581094c747462bfa182"}, +] +pytest-mock = [ + {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"}, + {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"}, +] +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"}, +] +python-editor = [ + {file = "python-editor-1.0.4.tar.gz", hash = "sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b"}, + {file = "python_editor-1.0.4-py2-none-any.whl", hash = "sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8"}, + {file = "python_editor-1.0.4-py3-none-any.whl", hash = "sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d"}, +] +python-gitlab = [ + {file = "python-gitlab-3.1.1.tar.gz", hash = "sha256:cad1338c1ff1a791a7bae7995dc621e26c77dfbf225bade456acec7512782825"}, + {file = "python_gitlab-3.1.1-py3-none-any.whl", hash = "sha256:2a7de39c8976db6d0db20031e71b3e43d262e99e64b471ef09bf00482cd3d9fa"}, +] +pytz = [ + {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, + {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, +] +pywin32 = [ + {file = "pywin32-301-cp35-cp35m-win32.whl", hash = "sha256:93367c96e3a76dfe5003d8291ae16454ca7d84bb24d721e0b74a07610b7be4a7"}, + {file = "pywin32-301-cp35-cp35m-win_amd64.whl", hash = "sha256:9635df6998a70282bd36e7ac2a5cef9ead1627b0a63b17c731312c7a0daebb72"}, + {file = "pywin32-301-cp36-cp36m-win32.whl", hash = "sha256:c866f04a182a8cb9b7855de065113bbd2e40524f570db73ef1ee99ff0a5cc2f0"}, + {file = "pywin32-301-cp36-cp36m-win_amd64.whl", hash = "sha256:dafa18e95bf2a92f298fe9c582b0e205aca45c55f989937c52c454ce65b93c78"}, + {file = "pywin32-301-cp37-cp37m-win32.whl", hash = "sha256:98f62a3f60aa64894a290fb7494bfa0bfa0a199e9e052e1ac293b2ad3cd2818b"}, + {file = "pywin32-301-cp37-cp37m-win_amd64.whl", hash = "sha256:fb3b4933e0382ba49305cc6cd3fb18525df7fd96aa434de19ce0878133bf8e4a"}, + {file = "pywin32-301-cp38-cp38-win32.whl", hash = "sha256:88981dd3cfb07432625b180f49bf4e179fb8cbb5704cd512e38dd63636af7a17"}, + {file = "pywin32-301-cp38-cp38-win_amd64.whl", hash = "sha256:8c9d33968aa7fcddf44e47750e18f3d034c3e443a707688a008a2e52bbef7e96"}, + {file = "pywin32-301-cp39-cp39-win32.whl", hash = "sha256:595d397df65f1b2e0beaca63a883ae6d8b6df1cdea85c16ae85f6d2e648133fe"}, + {file = "pywin32-301-cp39-cp39-win_amd64.whl", hash = "sha256:87604a4087434cd814ad8973bd47d6524bd1fa9e971ce428e76b62a5e0860fdf"}, +] +pyyaml = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +rdflib = [ + {file = "rdflib-6.0.2-py3-none-any.whl", hash = "sha256:b7642daac8cdad1ba157fecb236f5d1b2aa1de64e714dcee80d65e2b794d88a6"}, + {file = "rdflib-6.0.2.tar.gz", hash = "sha256:6136ae056001474ee2aff5fc5b956e62a11c3a9c66bb0f3d9c0aaa5fbb56854e"}, +] +renku = [ + {file = "renku-2.5.0-py3-none-any.whl", hash = "sha256:72b0884d12059ff953b0f7136ea69eb12e25abfc1db6723aabc73d60e6810846"}, + {file = "renku-2.5.0.tar.gz", hash = "sha256:c9f628a12387457b109e99a6d5a1de5a8ff6cbc36e54bd60fcd8194f0059d1e8"}, +] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] +requests-toolbelt = [ + {file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"}, + {file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"}, +] +rich = [ + {file = "rich-12.2.0-py3-none-any.whl", hash = "sha256:c50f3d253bc6a9bb9c79d61a26d510d74abdf1b16881260fab5edfc3edfb082f"}, + {file = "rich-12.2.0.tar.gz", hash = "sha256:ea74bc9dad9589d8eea3e3fd0b136d8bf6e428888955f215824c2894f0da8b47"}, +] +"ruamel.yaml" = [ + {file = "ruamel.yaml-0.17.17-py3-none-any.whl", hash = "sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f"}, + {file = "ruamel.yaml-0.17.17.tar.gz", hash = "sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be"}, +] +"ruamel.yaml.clib" = [ + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, + {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, +] +schema-salad = [ + {file = "schema-salad-8.4.20230606143604.tar.gz", hash = "sha256:f19a3d6614b4afecec93b9c7121d31ee01d8c1aa169b272d41844ca61d3d9af6"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:5a7e84f7f6a5e7d97b55a342d81e2969014a1b135bba749479b694c0264e043d"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3ffda242c3b957ab79a07877c81c4488eda3cbb7c6796943a077462f84d14f8"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:accd90fd11a203df7c20505e8187873f36ede9b12379afdd440fa893ab68b6f0"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:46e1f334fd51f09e500ff4fe80c68fb5497bc293742ac599d9c40c6ee2baf82d"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6489c690cdea3a0989136d2b7ad46e99303b5de57564f4b10c70331dec08d6d1"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12cba653cb1ecae6e15fb4705cf34c647acbce56ffd9cb051933229b004a28b8"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ea0ed53039666f2c8ff3d3a53a95f0240c70091529cb731a14c5027827e33461"}, + {file = "schema_salad-8.4.20230606143604-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ee112e555bada3d2941905bf01ac6ca5531bf4b09fcef9ab98b4ba313a9014"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:6d3df5263a7be8c74bf11d46cccf77d004970edb8342a0125a14fba57d4a1033"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08112507a4dc5102876fce6d9b2138ae5f0b90d04690a17fd9dee8d11687d91d"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c9b601a7f7430f0582dc6be0fda7b7aa6cc112e622ecf60f1236786c4597f86"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:4ff932dcbc5ab487e959cab5ab7856d367c8e339d105b9d1fc4659c44668456a"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b88d26ddd67b6682599502b1958b5d74622dcd1f0f82501dc3a210935a5ebf4c"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b37445c4f4336fcdc278388f2dbc97c9058e06a0935c4f84ad9659e336f7bc1"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:68e65194388ad29b399f94c22d4affa63bf9f2602c1dca57acf5a2eaa504dfd0"}, + {file = "schema_salad-8.4.20230606143604-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3e463d658db5640145a4983420721efcd908bbf9342da22a2dc83514cc8ccea3"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:217aff85c2eac567dd490fd3c5fc44f0c6323e5c772ab04c599396e05e556f67"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc8fc3f9b25305a2bd660d3343ec099a4d620a659b62530a543f5f5aa30939a2"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a496464826b187b6a4a0da14ab9754940e6310a35ba5f22b37de411f4267ae9f"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:4e88d3f46895a15c3356840a84cfc965a60ffa16233d3a7237425c294fb08975"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2c4550c83760138a242010bd75db589104f19c9071b4edb805dd101137097c70"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0006e17d5c2d3edb5f6dc7e915a2355d4ec22a686960f0eecb22bba9c40acfc"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d33c3c0a1820fd21bb3b94061a971e5fc5156ed69398ef3eb487779891a396ee"}, + {file = "schema_salad-8.4.20230606143604-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:eb1581920d96c8044376a072cb45189a5aac743789d9b203fe5351a5d1ab7d58"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:639fe4c9ca2fa3f577ae6661a4a538ff10d76a7a85c309d480dc278e0ddd635d"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be63416d551ac8e4eb6ecc83268a6ce1775a363f965c60957a27083acff8d96"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85cdf3850f1215a3c741d729c1f65514f2ba90dec3ee3597a3a44ac7cb2657e0"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6f13c693dbd954d36696f42c7eeb03755ffe1ffdc1e778010d55786671c332b5"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1baf114f9128fdbe89f816f7abf93cd2a7927e3e9fc30633ec741badcfe475d4"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c55f5ecb7fa1fe844fbdb50f4400a7339f12d053394c51955263541a5ead3cd7"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2c0c9f3112627b01bf1eba7633de4d191f0e7dc617604228f810379a65cfc6cd"}, + {file = "schema_salad-8.4.20230606143604-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ea0d4c3942317ad3f9a2c0c9dd9ed8d74752b67736721db07a267dab301d1d6c"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:2abe3c6c0308257d5ee9a2755094c60983e5ce9ff1a0594b74d83f982b434ebf"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa35788cdf38becde9166d1703622176f30a1dc62b71fc7b654faea30fb2c3be"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:441bc6b2c868e9e8d158b6392fda5c87d1adaf508aa43b101fa7bd6d2dd97eba"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6789d1d40066c527b8710c69f17b62f485ef92762ea35ba50334b9fe5c1b5c6e"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6c0c26d12f9081d65621e491708f3c75d8f7ffe0877f980c90c34e779d45d6c"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6488b7194fe2542f982476795ea5db6b86e32d9f6454a7ad9d5a4049d033f296"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:74a6f5645cbc6236c1b3d90a15987c748590765a24297c25e2f35b6c0981655d"}, + {file = "schema_salad-8.4.20230606143604-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:aadf5899a3fae74badfa71d59dd170cd92eadf5904b4dd6c58656651b9179c9f"}, + {file = "schema_salad-8.4.20230606143604-py3-none-any.whl", hash = "sha256:0f3a9adcafccdfe4728591ee61cce96f9ddb78a6cc664d189d0bb212389e8c54"}, +] +sentry-sdk = [ + {file = "sentry-sdk-1.22.2.tar.gz", hash = "sha256:5932c092c6e6035584eb74d77064e4bce3b7935dfc4a331349719a40db265840"}, + {file = "sentry_sdk-1.22.2-py2.py3-none-any.whl", hash = "sha256:cf89a5063ef84278d186aceaed6fb595bfe67d099298e537634a323664265669"}, +] +setuptools = [ + {file = "setuptools-65.5.1-py3-none-any.whl", hash = "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31"}, + {file = "setuptools-65.5.1.tar.gz", hash = "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f"}, +] +shellescape = [ + {file = "shellescape-3.8.1-py2.py3-none-any.whl", hash = "sha256:f17127e390fa3f9aaa80c69c16ea73615fd9b5318fd8309c1dca6168ae7d85bf"}, + {file = "shellescape-3.8.1.tar.gz", hash = "sha256:40b310b30479be771bf3ab28bd8d40753778488bd46ea0969ba0b35038c3ec26"}, +] +shellingham = [ + {file = "shellingham-1.5.0.post1-py2.py3-none-any.whl", hash = "sha256:368bf8c00754fd4f55afb7bbb86e272df77e4dc76ac29dbcbb81a59e9fc15744"}, + {file = "shellingham-1.5.0.post1.tar.gz", hash = "sha256:823bc5fb5c34d60f285b624e7264f4dda254bc803a3774a147bf99c0e3004a28"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +smmap = [ + {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, + {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, +] +tabulate = [ + {file = "tabulate-0.8.9-py3-none-any.whl", hash = "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4"}, + {file = "tabulate-0.8.9.tar.gz", hash = "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"}, +] +termcolor = [ + {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, +] +toil = [ + {file = "toil-5.10.0-py3-none-any.whl", hash = "sha256:3a56046c456e6c9c7814c2ae677d9b47987a2ce041f09395fb8f00fa29a1cd1a"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] +tomlkit = [ + {file = "tomlkit-0.11.4-py3-none-any.whl", hash = "sha256:25d4e2e446c453be6360c67ddfb88838cfc42026322770ba13d1fbd403a93a5c"}, + {file = "tomlkit-0.11.4.tar.gz", hash = "sha256:3235a9010fae54323e727c3ac06fb720752fe6635b3426e379daec60fbd44a83"}, +] +tqdm = [ + {file = "tqdm-4.62.3-py2.py3-none-any.whl", hash = "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c"}, + {file = "tqdm-4.62.3.tar.gz", hash = "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"}, +] +transaction = [ + {file = "transaction-3.0.1-py2.py3-none-any.whl", hash = "sha256:2329a6e6b82d1d8d4de9267ea6ee790532c375e5911d3c7633a234e94a4a0a9e"}, + {file = "transaction-3.0.1.tar.gz", hash = "sha256:0c15ef0b7ff3518357ceea75722a30d974c3f85e11aa5cec5d5a2b6a40cfcf68"}, +] +typing-extensions = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] +urllib3 = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] +websocket-client = [ + {file = "websocket-client-1.3.3.tar.gz", hash = "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1"}, + {file = "websocket_client-1.3.3-py3-none-any.whl", hash = "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877"}, +] +werkzeug = [ {file = "Werkzeug-2.2.2-py3-none-any.whl", hash = "sha256:f979ab81f58d7318e064e99c4506445d60135ac5cd2e177a2de0089bfd4c9bd5"}, {file = "Werkzeug-2.2.2.tar.gz", hash = "sha256:7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f"}, ] - -[package.dependencies] -MarkupSafe = ">=2.1.1" - -[package.extras] -watchdog = ["watchdog"] - -[[package]] -name = "wrapt" -version = "1.14.1" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ +wrapt = [ {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, @@ -3178,209 +3445,44 @@ files = [ {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, ] - -[[package]] -name = "yagup" -version = "0.1.1" -description = "Parsing and validating git urls." -category = "main" -optional = false -python-versions = "*" -files = [ +yagup = [ {file = "yagup-0.1.1.tar.gz", hash = "sha256:247bdeec4dd2b5bac7f33f42551f3cc248aee1f87f7831274a71501c902a9673"}, ] - -[package.dependencies] -attrs = "*" -pyparsing = "*" - -[[package]] -name = "yaspin" -version = "2.1.0" -description = "Yet Another Terminal Spinner" -category = "main" -optional = false -python-versions = ">=3.6.2,<4.0.0" -files = [ +yaspin = [ {file = "yaspin-2.1.0-py3-none-any.whl", hash = "sha256:d574cbfaf0a349df466c91f7f81b22460ae5ebb15ecb8bf9411d6049923aee8d"}, {file = "yaspin-2.1.0.tar.gz", hash = "sha256:c8d34eca9fda3f4dfbe59f57f3cf0f3641af3eefbf1544fbeb9b3bacf82c580a"}, ] - -[package.dependencies] -termcolor = ">=1.1.0,<2.0.0" - -[[package]] -name = "zc.lockfile" -version = "2.0" -description = "Basic inter-process locks" -category = "main" -optional = false -python-versions = "*" -files = [ +"zc.lockfile" = [ {file = "zc.lockfile-2.0-py2.py3-none-any.whl", hash = "sha256:cc33599b549f0c8a248cb72f3bf32d77712de1ff7ee8814312eb6456b42c015f"}, {file = "zc.lockfile-2.0.tar.gz", hash = "sha256:307ad78227e48be260e64896ec8886edc7eae22d8ec53e4d528ab5537a83203b"}, ] - -[package.dependencies] -setuptools = "*" - -[package.extras] -test = ["zope.testing"] - -[[package]] -name = "zc.relation" -version = "1.1.post2" -description = "Index intransitive and transitive n-ary relationships." -category = "main" -optional = false -python-versions = "*" -files = [ +"zc.relation" = [ {file = "zc.relation-1.1.post2-py2.py3-none-any.whl", hash = "sha256:57218b4d18e1842eba33b96b53a13004fa2e187bc849887c3150be299e6fc261"}, {file = "zc.relation-1.1.post2.tar.gz", hash = "sha256:b1aeb9e97ead0206a210e7f1fe32ae60f43630109e46e2ff40e99294fb892add"}, ] - -[package.dependencies] -setuptools = "*" -six = "*" -ZODB3 = ">=3.8dev" -"zope.interface" = "*" -"zope.testing" = "*" - -[package.extras] -test = ["zc.relationship (>=2.0c1)"] - -[[package]] -name = "zconfig" -version = "3.6.0" -description = "Structured Configuration Library" -category = "main" -optional = false -python-versions = "*" -files = [ +zconfig = [ {file = "ZConfig-3.6.0-py2.py3-none-any.whl", hash = "sha256:d36cebe34b49fb2a9123472c8a22dbbf25837f33d31300d391403810cb1557d7"}, {file = "ZConfig-3.6.0.tar.gz", hash = "sha256:a28e95a0ae335795747eccad35b2cb708f37d44c7f325e2acb201e98330b16e5"}, ] - -[package.extras] -docs = ["sphinxcontrib-programoutput"] -test = ["docutils", "manuel", "zope.exceptions", "zope.testrunner"] - -[[package]] -name = "zdaemon" -version = "4.3" -description = "Daemon process control library and tools for Unix-based systems" -category = "main" -optional = false -python-versions = "*" -files = [ +zdaemon = [ {file = "zdaemon-4.3.tar.gz", hash = "sha256:f249fc6885646d165d7d6b228a7b71f5170fc7117de9e0688271f8fb97840f72"}, ] - -[package.dependencies] -setuptools = "*" -ZConfig = "*" - -[package.extras] -test = ["manuel", "mock", "zc.customdoctests", "zope.testing", "zope.testrunner"] - -[[package]] -name = "zeo" -version = "5.3.0" -description = "ZEO - Single-server client-server database server for ZODB" -category = "main" -optional = false -python-versions = ">=2.7.9,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" -files = [ +zeo = [ {file = "ZEO-5.3.0-py2.py3-none-any.whl", hash = "sha256:cec59227cb87d938b000a875fa0049433f7a3cc2f0452b95876c890f485584b6"}, {file = "ZEO-5.3.0.tar.gz", hash = "sha256:ffc54334f8384d6faf1693dce823c0a5fcd429fa015c47d2d49d1bd689997157"}, ] - -[package.dependencies] -persistent = ">=4.1.0" -six = "*" -transaction = ">=2.0.3" -"zc.lockfile" = "*" -ZConfig = "*" -zdaemon = "*" -ZODB = ">=5.1.1" -"zope.interface" = "*" - -[package.extras] -docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"] -msgpack = ["msgpack-python"] -test = ["ZODB (>=5.5.1)", "manuel", "mock", "msgpack (<1)", "random2", "zope.testing", "zope.testrunner"] -uvloop = ["uvloop (>=0.5.1)"] - -[[package]] -name = "zipp" -version = "3.8.1" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ +zipp = [ {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, ] - -[package.extras] -docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] -testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] - -[[package]] -name = "zodb" -version = "5.6.0" -description = "ZODB, a Python object-oriented database" -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" -files = [ - {file = "ZODB-5.6.0-py2.py3-none-any.whl", hash = "sha256:b34fe2515c4f18cf247989b891254a64a0835c7d80a450f461efe8fd843e18d0"}, - {file = "ZODB-5.6.0.tar.gz", hash = "sha256:4654fb543393533291cfbf8adfb4ea2658ff385871d4b926d725508142cb07fe"}, +zodb = [ + {file = "ZODB-5.8.0-py2.py3-none-any.whl", hash = "sha256:52db974ae558cc184eb45f82d79f6fc75174158ef415742f9763224eab890d14"}, + {file = "ZODB-5.8.0.tar.gz", hash = "sha256:28dba00ef626de10589ededab85ad0f0edf72925e75d36a15c99c63ac05fe764"}, ] - -[package.dependencies] -BTrees = ">=4.2.0" -persistent = ">=4.4.0" -six = "*" -transaction = ">=2.4" -"zc.lockfile" = "*" -ZConfig = "*" -zodbpickle = ">=1.0.1" -"zope.interface" = "*" - -[package.extras] -test = ["manuel", "mock", "zope.testing", "zope.testrunner (>=4.4.6)"] - -[[package]] -name = "zodb3" -version = "3.11.0" -description = "ZODB3 - Meta release for ZODB, persistent, BTrees and ZEO" -category = "main" -optional = false -python-versions = "*" -files = [ +zodb3 = [ {file = "ZODB3-3.11.0.tar.gz", hash = "sha256:b5767028e732c619f45c27189dd001e14ec155d7984807991fce751b35b4fcb0"}, ] - -[package.dependencies] -BTrees = ">=4.0.0dev" -persistent = ">=4.0.0dev" -transaction = "*" -ZEO = ">=4.0.0dev" -ZODB = ">=4.0.0dev" - -[package.extras] -test = ["BTrees[test]", "ZEO[test]", "ZODB[test]", "persistent[test]"] - -[[package]] -name = "zodbpickle" -version = "2.3" -description = "Fork of Python 2 and 3 pickle module." -category = "main" -optional = false -python-versions = "*" -files = [ +zodbpickle = [ {file = "zodbpickle-2.3-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:d4b780bd44f868a19e8cf8051356cd4e41f70eb01f312797a773a425dbdf072f"}, {file = "zodbpickle-2.3-cp27-cp27m-win32.whl", hash = "sha256:f3f0ce06be972f501ba7be7d8303c7216eded882b41d9659839f7a28c5399493"}, {file = "zodbpickle-2.3-cp27-cp27m-win_amd64.whl", hash = "sha256:738a4d05cb0d6d4754e7b3be1d736aefeb74f2b2507472c1c6bd74cf2ebc070b"}, @@ -3418,40 +3520,11 @@ files = [ {file = "zodbpickle-2.3-cp39-cp39-win_amd64.whl", hash = "sha256:568bbca7cd75e7fa0764f991618cf95423edcf111948649e8b53f16c5b68cf1d"}, {file = "zodbpickle-2.3.tar.gz", hash = "sha256:e4cb5c719705e8bb1e8eee4aa24e2071a3094ecf2783d87407ab822f166da3a2"}, ] - -[package.dependencies] -setuptools = "*" - -[package.extras] -test = ["zope.testrunner"] - -[[package]] -name = "zope.event" -version = "4.5.0" -description = "Very basic event publishing system" -category = "main" -optional = false -python-versions = "*" -files = [ +"zope.event" = [ {file = "zope.event-4.5.0-py2.py3-none-any.whl", hash = "sha256:2666401939cdaa5f4e0c08cf7f20c9b21423b95e88f4675b1443973bdb080c42"}, {file = "zope.event-4.5.0.tar.gz", hash = "sha256:5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330"}, ] - -[package.dependencies] -setuptools = "*" - -[package.extras] -docs = ["Sphinx"] -test = ["zope.testrunner"] - -[[package]] -name = "zope.interface" -version = "5.4.0" -description = "Interfaces for Python" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ +"zope.interface" = [ {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"}, {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"}, {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"}, @@ -3504,42 +3577,11 @@ files = [ {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"}, {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"}, ] - -[package.dependencies] -setuptools = "*" - -[package.extras] -docs = ["Sphinx", "repoze.sphinx.autointerface"] -test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] -testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] - -[[package]] -name = "zope.testing" -version = "4.10" -description = "Zope testing helpers" -category = "main" -optional = false -python-versions = "*" -files = [ +"zope.testing" = [ {file = "zope.testing-4.10-py2.py3-none-any.whl", hash = "sha256:aa32eeb971aa5e50aaa1657d97ff97669e4c1054db0dc92ee6338361f2864be4"}, {file = "zope.testing-4.10.tar.gz", hash = "sha256:3b6e5906caddd148c23fe958e6aae3fadc8a08a8a53f747d9791c2d8135ee56e"}, ] - -[package.dependencies] -setuptools = "*" - -[package.extras] -docs = ["mock", "repoze.sphinx.autointerface", "sphinx", "zope.exceptions", "zope.interface"] -test = ["zope.testrunner"] - -[[package]] -name = "zstandard" -version = "0.17.0" -description = "Zstandard bindings for Python" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ +zstandard = [ {file = "zstandard-0.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a1991cdf2e81e643b53fb8d272931d2bdf5f4e70d56a457e1ef95bde147ae627"}, {file = "zstandard-0.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4768449d8d1b0785309ace288e017cc5fa42e11a52bf08c90d9c3eb3a7a73cc6"}, {file = "zstandard-0.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ad6d2952b41d9a0ea702a474cc08c05210c6289e29dd496935c9ca3c7fb45c"}, @@ -3585,14 +3627,3 @@ files = [ {file = "zstandard-0.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:b4e671c4c0804cdf752be26f260058bb858fbdaaef1340af170635913ecca01e"}, {file = "zstandard-0.17.0.tar.gz", hash = "sha256:fa9194cb91441df7242aa3ddc4cb184be38876cb10dd973674887f334bafbfb6"}, ] - -[package.dependencies] -cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\""} - -[package.extras] -cffi = ["cffi (>=1.11)"] - -[metadata] -lock-version = "2.0" -python-versions = ">=3.8,<4.0" -content-hash = "7181480bf50fc7cac80f8c3ecd7a5aee65ba8f21d94b9a1c498aecdcbfc50905" diff --git a/git_services/pyproject.toml b/git_services/pyproject.toml index 3351ea022..47d9b8df5 100644 --- a/git_services/pyproject.toml +++ b/git_services/pyproject.toml @@ -5,7 +5,7 @@ description = "" authors = ["Swiss Data Science Center "] [tool.poetry.dependencies] -python = ">=3.8,<4.0" +python = ">=3.8.1,<3.12" requests = "^2.28.1" dataconf = "^2.2.0" json-rpc = "^1.14.0" @@ -13,7 +13,7 @@ sentry-sdk = {extras = ["flask"], version = "^1.22.2"} Flask = "2.2.4" gevent = "^22.10.2" gunicorn = "^20.1.0" -renku = "2.3.2" +renku = "2.5.0" [tool.poetry.dev-dependencies] pylint = "^2.17.3" From 2635ddec74eaa700e8330797461a60139cb75319 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Wed, 5 Jul 2023 10:43:06 +0200 Subject: [PATCH 19/20] squashme: address comments --- renku_notebooks/api/classes/server.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/renku_notebooks/api/classes/server.py b/renku_notebooks/api/classes/server.py index d02a39e93..5e8042054 100644 --- a/renku_notebooks/api/classes/server.py +++ b/renku_notebooks/api/classes/server.py @@ -231,7 +231,8 @@ def _get_session_k8s_resources(self): "limits": {"memory": mem}, } if config.sessions.enforce_cpu_limits == "lax": - resources["limits"]["cpu"] = 3 * cpu_request + lax_cpu_limit_allowance_factor = 3 + resources["limits"]["cpu"] = lax_cpu_limit_allowance_factor * cpu_request elif config.sessions.enforce_cpu_limits == "strict": resources["limits"]["cpu"] = cpu_request if gpu: From b84aa325a469b9e1e3bac8dc59bf6dccd739d05c Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Wed, 5 Jul 2023 13:29:46 +0200 Subject: [PATCH 20/20] squashme: fix tests --- .github/workflows/integration-tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index c23526c0a..200872f8d 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -85,6 +85,7 @@ jobs: oidc_issuer: https://gitlab.dev.renku.ch gitlab_token: $RENKUBOT_DEV_GITLAB_ACCESS_TOKEN debug: false + dummyStores: true EOF - name: Install poetry run: |