From e8e842db20f7f5665eec4265461bf426f11a4871 Mon Sep 17 00:00:00 2001 From: Benjamin Einaudi Date: Tue, 14 Jan 2025 07:59:20 +0100 Subject: [PATCH] Putting back prefixes in managers (#226) * feature(dependencies) add twine * release - prepare 1.38.1 * fixes(navigation) put back /v2 and /v3 in path managers Close #224 --- cloudfoundry_client/__init__.py | 2 +- cloudfoundry_client/client.py | 22 +- cloudfoundry_client/v2/apps.py | 2 +- cloudfoundry_client/v2/buildpacks.py | 2 +- cloudfoundry_client/v2/events.py | 2 +- cloudfoundry_client/v2/jobs.py | 2 +- cloudfoundry_client/v2/resources.py | 2 +- cloudfoundry_client/v2/routes.py | 2 +- cloudfoundry_client/v2/service_bindings.py | 2 +- cloudfoundry_client/v2/service_brokers.py | 2 +- cloudfoundry_client/v2/service_instances.py | 2 +- cloudfoundry_client/v2/service_keys.py | 2 +- .../v2/service_plan_visibilities.py | 2 +- cloudfoundry_client/v2/service_plans.py | 2 +- cloudfoundry_client/v2/spaces.py | 2 +- cloudfoundry_client/v3/apps.py | 2 +- cloudfoundry_client/v3/buildpacks.py | 2 +- cloudfoundry_client/v3/domains.py | 4 +- cloudfoundry_client/v3/feature_flags.py | 2 +- cloudfoundry_client/v3/isolation_segments.py | 2 +- cloudfoundry_client/v3/jobs.py | 2 +- cloudfoundry_client/v3/organization_quotas.py | 2 +- cloudfoundry_client/v3/organizations.py | 2 +- cloudfoundry_client/v3/processes.py | 2 +- cloudfoundry_client/v3/roles.py | 2 +- cloudfoundry_client/v3/security_groups.py | 2 +- cloudfoundry_client/v3/service_brokers.py | 2 +- .../v3/service_credential_bindings.py | 2 +- cloudfoundry_client/v3/service_instances.py | 2 +- cloudfoundry_client/v3/service_offerings.py | 2 +- cloudfoundry_client/v3/service_plans.py | 2 +- cloudfoundry_client/v3/spaces.py | 2 +- cloudfoundry_client/v3/tasks.py | 6 +- main/__init__.py | 0 poetry.lock | 536 +++++++++++++++++- pyproject.toml | 3 +- 36 files changed, 584 insertions(+), 47 deletions(-) delete mode 100644 main/__init__.py diff --git a/cloudfoundry_client/__init__.py b/cloudfoundry_client/__init__.py index 5740c67..0767387 100644 --- a/cloudfoundry_client/__init__.py +++ b/cloudfoundry_client/__init__.py @@ -2,4 +2,4 @@ This module provides a client library for cloudfoundry_client v2/v3. """ -__version__ = "1.37.1" +__version__ = "1.38.1" diff --git a/cloudfoundry_client/client.py b/cloudfoundry_client/client.py index 7794741..6c85d5f 100644 --- a/cloudfoundry_client/client.py +++ b/cloudfoundry_client/client.py @@ -81,7 +81,8 @@ def __init__(self, target_endpoint: str, credential_manager: "CloudFoundryClient class V2(object): - def __init__(self, target_endpoint: str, credential_manager: "CloudFoundryClient"): + def __init__(self, cloud_controller_v2_url: str, credential_manager: "CloudFoundryClient"): + target_endpoint = cloud_controller_v2_url.removesuffix("/v2") self.apps = AppManagerV2(target_endpoint, credential_manager) self.buildpacks = BuildpackManagerV2(target_endpoint, credential_manager) self.jobs = JobManagerV2(target_endpoint, credential_manager) @@ -93,24 +94,25 @@ def __init__(self, target_endpoint: str, credential_manager: "CloudFoundryClient self.service_plans = ServicePlanManagerV2(target_endpoint, credential_manager) # Default implementations self.event = EventManager(target_endpoint, credential_manager) - self.organizations = EntityManagerV2(target_endpoint, credential_manager, "/organizations") - self.private_domains = EntityManagerV2(target_endpoint, credential_manager, "/private_domains") + self.organizations = EntityManagerV2(target_endpoint, credential_manager, "/v2/organizations") + self.private_domains = EntityManagerV2(target_endpoint, credential_manager, "/v2/private_domains") self.routes = RouteManager(target_endpoint, credential_manager) - self.services = EntityManagerV2(target_endpoint, credential_manager, "/services") - self.shared_domains = EntityManagerV2(target_endpoint, credential_manager, "/shared_domains") + self.services = EntityManagerV2(target_endpoint, credential_manager, "/v2/services") + self.shared_domains = EntityManagerV2(target_endpoint, credential_manager, "/v2/shared_domains") self.spaces = SpaceManagerV2(target_endpoint, credential_manager) - self.stacks = EntityManagerV2(target_endpoint, credential_manager, "/stacks") + self.stacks = EntityManagerV2(target_endpoint, credential_manager, "/v2/stacks") self.user_provided_service_instances = EntityManagerV2( - target_endpoint, credential_manager, "/user_provided_service_instances" + target_endpoint, credential_manager, "/v2/user_provided_service_instances" ) - self.security_groups = EntityManagerV2(target_endpoint, credential_manager, "/security_groups") - self.users = EntityManagerV2(target_endpoint, credential_manager, "/users") + self.security_groups = EntityManagerV2(target_endpoint, credential_manager, "/v2/security_groups") + self.users = EntityManagerV2(target_endpoint, credential_manager, "/v2/users") # Resources implementation used by push operation self.resources = ResourceManager(target_endpoint, credential_manager) class V3(object): - def __init__(self, target_endpoint: str, credential_manager: "CloudFoundryClient"): + def __init__(self, cloud_controller_v3_url: str, credential_manager: "CloudFoundryClient"): + target_endpoint = cloud_controller_v3_url.removesuffix("/v3") self.apps = AppManager(target_endpoint, credential_manager) self.buildpacks = BuildpackManager(target_endpoint, credential_manager) self.domains = DomainManager(target_endpoint, credential_manager) diff --git a/cloudfoundry_client/v2/apps.py b/cloudfoundry_client/v2/apps.py index d060bff..cf68ed8 100644 --- a/cloudfoundry_client/v2/apps.py +++ b/cloudfoundry_client/v2/apps.py @@ -77,7 +77,7 @@ class AppManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): super(AppManager, self).__init__( - target_endpoint, client, "/apps", lambda pairs: Application(target_endpoint, client, pairs) + target_endpoint, client, "/v2/apps", lambda pairs: Application(target_endpoint, client, pairs) ) def get_stats(self, application_guid: str) -> Dict[str, JsonObject]: diff --git a/cloudfoundry_client/v2/buildpacks.py b/cloudfoundry_client/v2/buildpacks.py index 8e1276b..958a283 100644 --- a/cloudfoundry_client/v2/buildpacks.py +++ b/cloudfoundry_client/v2/buildpacks.py @@ -8,7 +8,7 @@ class BuildpackManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(BuildpackManager, self).__init__(target_endpoint, client, "/buildpacks") + super(BuildpackManager, self).__init__(target_endpoint, client, "/v2/buildpacks") def update(self, buildpack_guid: str, parameters: dict) -> Entity: return super(BuildpackManager, self)._update(buildpack_guid, parameters) diff --git a/cloudfoundry_client/v2/events.py b/cloudfoundry_client/v2/events.py index cdec234..9822165 100644 --- a/cloudfoundry_client/v2/events.py +++ b/cloudfoundry_client/v2/events.py @@ -8,7 +8,7 @@ class EventManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(EventManager, self).__init__(target_endpoint, client, "/events") + super(EventManager, self).__init__(target_endpoint, client, "/v2/events") def list_by_type(self, event_type: str) -> Generator[Entity, None, None]: return self._list(self.entity_uri, type=event_type) diff --git a/cloudfoundry_client/v2/jobs.py b/cloudfoundry_client/v2/jobs.py index f1a6f53..68bdaed 100644 --- a/cloudfoundry_client/v2/jobs.py +++ b/cloudfoundry_client/v2/jobs.py @@ -12,4 +12,4 @@ def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): self.client = client def get(self, job_guid: str) -> JsonObject: - return self.client.get("%s/jobs/%s" % (self.target_endpoint, job_guid)).json(object_pairs_hook=JsonObject) + return self.client.get("%s/v2/jobs/%s" % (self.target_endpoint, job_guid)).json(object_pairs_hook=JsonObject) diff --git a/cloudfoundry_client/v2/resources.py b/cloudfoundry_client/v2/resources.py index 2b0dae3..d962daa 100644 --- a/cloudfoundry_client/v2/resources.py +++ b/cloudfoundry_client/v2/resources.py @@ -12,5 +12,5 @@ def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): self.client = client def match(self, items: List[dict]) -> List[JsonObject]: - response = self.client.put("%s/resource_match" % self.client.info.api_endpoint, json=items) + response = self.client.put("%s/v2/resource_match" % self.client.info.api_endpoint, json=items) return response.json(object_pairs_hook=JsonObject) diff --git a/cloudfoundry_client/v2/routes.py b/cloudfoundry_client/v2/routes.py index bf9d425..1e4d52c 100644 --- a/cloudfoundry_client/v2/routes.py +++ b/cloudfoundry_client/v2/routes.py @@ -8,7 +8,7 @@ class RouteManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(RouteManager, self).__init__(target_endpoint, client, "/routes") + super(RouteManager, self).__init__(target_endpoint, client, "/v2/routes") def create_tcp_route(self, domain_guid: str, space_guid: str, port: Optional[int] = None) -> Entity: request = self._request(domain_guid=domain_guid, space_guid=space_guid) diff --git a/cloudfoundry_client/v2/service_bindings.py b/cloudfoundry_client/v2/service_bindings.py index 95f9f5b..00fc625 100644 --- a/cloudfoundry_client/v2/service_bindings.py +++ b/cloudfoundry_client/v2/service_bindings.py @@ -8,7 +8,7 @@ class ServiceBindingManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceBindingManager, self).__init__(target_endpoint, client, "/service_bindings") + super(ServiceBindingManager, self).__init__(target_endpoint, client, "/v2/service_bindings") def create(self, app_guid: str, instance_guid: str, parameters: Optional[dict] = None, name: Optional[str] = None) -> Entity: request = self._request(app_guid=app_guid, service_instance_guid=instance_guid) diff --git a/cloudfoundry_client/v2/service_brokers.py b/cloudfoundry_client/v2/service_brokers.py index afc2c1a..abe44c7 100644 --- a/cloudfoundry_client/v2/service_brokers.py +++ b/cloudfoundry_client/v2/service_brokers.py @@ -8,7 +8,7 @@ class ServiceBrokerManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceBrokerManager, self).__init__(target_endpoint, client, "/service_brokers") + super(ServiceBrokerManager, self).__init__(target_endpoint, client, "/v2/service_brokers") def create( self, broker_url: str, broker_name: str, auth_username: str, auth_password: str, space_guid: Optional[str] = None diff --git a/cloudfoundry_client/v2/service_instances.py b/cloudfoundry_client/v2/service_instances.py index edeac74..f17fa7f 100644 --- a/cloudfoundry_client/v2/service_instances.py +++ b/cloudfoundry_client/v2/service_instances.py @@ -10,7 +10,7 @@ class ServiceInstanceManager(EntityManager): list_query_parameters = ["page", "results-per-page", "order-direction", "return_user_provided_service_instances"] def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceInstanceManager, self).__init__(target_endpoint, client, "/service_instances") + super(ServiceInstanceManager, self).__init__(target_endpoint, client, "/v2/service_instances") def create( self, diff --git a/cloudfoundry_client/v2/service_keys.py b/cloudfoundry_client/v2/service_keys.py index 4f4da97..cb87c3e 100644 --- a/cloudfoundry_client/v2/service_keys.py +++ b/cloudfoundry_client/v2/service_keys.py @@ -8,7 +8,7 @@ class ServiceKeyManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceKeyManager, self).__init__(target_endpoint, client, "/service_keys") + super(ServiceKeyManager, self).__init__(target_endpoint, client, "/v2/service_keys") def create(self, service_instance_guid: str, name: str, parameters: Optional[dict] = None) -> Entity: request = self._request(service_instance_guid=service_instance_guid, name=name) diff --git a/cloudfoundry_client/v2/service_plan_visibilities.py b/cloudfoundry_client/v2/service_plan_visibilities.py index 47bcedf..4d7d513 100644 --- a/cloudfoundry_client/v2/service_plan_visibilities.py +++ b/cloudfoundry_client/v2/service_plan_visibilities.py @@ -8,7 +8,7 @@ class ServicePlanVisibilityManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServicePlanVisibilityManager, self).__init__(target_endpoint, client, "/service_plan_visibilities") + super(ServicePlanVisibilityManager, self).__init__(target_endpoint, client, "/v2/service_plan_visibilities") def create(self, service_plan_guid: str, organization_guid: str) -> Entity: request = self._request() diff --git a/cloudfoundry_client/v2/service_plans.py b/cloudfoundry_client/v2/service_plans.py index 8c8e766..9a94aa8 100644 --- a/cloudfoundry_client/v2/service_plans.py +++ b/cloudfoundry_client/v2/service_plans.py @@ -9,7 +9,7 @@ class ServicePlanManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServicePlanManager, self).__init__(target_endpoint, client, "/service_plans") + super(ServicePlanManager, self).__init__(target_endpoint, client, "/v2/service_plans") def create_from_resource_file(self, path: str) -> Entity: raise NotImplementedError("No creation allowed") diff --git a/cloudfoundry_client/v2/spaces.py b/cloudfoundry_client/v2/spaces.py index b00743c..6f6254a 100644 --- a/cloudfoundry_client/v2/spaces.py +++ b/cloudfoundry_client/v2/spaces.py @@ -8,7 +8,7 @@ class SpaceManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(SpaceManager, self).__init__(target_endpoint, client, "/spaces") + super(SpaceManager, self).__init__(target_endpoint, client, "/v2/spaces") def delete_unmapped_routes(self, space_guid: str): url = "%s%s/%s/unmapped_routes" % (self.target_endpoint, self.entity_uri, space_guid) diff --git a/cloudfoundry_client/v3/apps.py b/cloudfoundry_client/v3/apps.py index 338c86c..1453575 100644 --- a/cloudfoundry_client/v3/apps.py +++ b/cloudfoundry_client/v3/apps.py @@ -9,7 +9,7 @@ class AppManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(AppManager, self).__init__(target_endpoint, client, "/apps") + super(AppManager, self).__init__(target_endpoint, client, "/v3/apps") def restart(self, application_guid: str): return super(AppManager, self)._post("%s%s/%s/actions/restart" % (self.target_endpoint, diff --git a/cloudfoundry_client/v3/buildpacks.py b/cloudfoundry_client/v3/buildpacks.py index f8930b2..f6a1284 100644 --- a/cloudfoundry_client/v3/buildpacks.py +++ b/cloudfoundry_client/v3/buildpacks.py @@ -8,7 +8,7 @@ class BuildpackManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(BuildpackManager, self).__init__(target_endpoint, client, "/buildpacks") + super(BuildpackManager, self).__init__(target_endpoint, client, "/v3/buildpacks") def create( self, diff --git a/cloudfoundry_client/v3/domains.py b/cloudfoundry_client/v3/domains.py index 0077115..d1f5db3 100644 --- a/cloudfoundry_client/v3/domains.py +++ b/cloudfoundry_client/v3/domains.py @@ -21,7 +21,7 @@ def __init__(self, target_endpoint: str, client: "CloudFoundryClient", **kwargs) class DomainManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(DomainManager, self).__init__(target_endpoint, client, "/domains", Domain) + super(DomainManager, self).__init__(target_endpoint, client, "/v3/domains", Domain) def create( self, @@ -44,7 +44,7 @@ def create( return super(DomainManager, self)._create(data) def list_domains_for_org(self, org_guid: str, **kwargs) -> Pagination[Entity]: - uri = "/organizations/{guid}/domains".format(guid=org_guid) + uri = "/v3/organizations/{guid}/domains".format(guid=org_guid) return self._list(uri, **kwargs) def update(self, domain_guid: str, meta_labels: Optional[dict] = None, meta_annotations: Optional[dict] = None) -> Domain: diff --git a/cloudfoundry_client/v3/feature_flags.py b/cloudfoundry_client/v3/feature_flags.py index 3c280ad..47c35d8 100644 --- a/cloudfoundry_client/v3/feature_flags.py +++ b/cloudfoundry_client/v3/feature_flags.py @@ -8,7 +8,7 @@ class FeatureFlagManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(FeatureFlagManager, self).__init__(target_endpoint, client, "/feature_flags") + super(FeatureFlagManager, self).__init__(target_endpoint, client, "/v3/feature_flags") def update(self, name: str, enabled: Optional[bool] = True, custom_error_message: Optional[str] = None) -> Entity: data = {"enabled": enabled, "custom_error_message": custom_error_message} diff --git a/cloudfoundry_client/v3/isolation_segments.py b/cloudfoundry_client/v3/isolation_segments.py index 391e4d5..67fa114 100644 --- a/cloudfoundry_client/v3/isolation_segments.py +++ b/cloudfoundry_client/v3/isolation_segments.py @@ -8,7 +8,7 @@ class IsolationSegmentManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(IsolationSegmentManager, self).__init__(target_endpoint, client, "/isolation_segments") + super(IsolationSegmentManager, self).__init__(target_endpoint, client, "/v3/isolation_segments") def create(self, name: str, meta_labels: Optional[dict] = None, meta_annotations: Optional[dict] = None) -> Entity: data = {"name": name, "metadata": {"labels": meta_labels, "annotations": meta_annotations}} diff --git a/cloudfoundry_client/v3/jobs.py b/cloudfoundry_client/v3/jobs.py index 5fd10fb..80bd510 100644 --- a/cloudfoundry_client/v3/jobs.py +++ b/cloudfoundry_client/v3/jobs.py @@ -15,7 +15,7 @@ class JobTimeout(Exception): class JobManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(JobManager, self).__init__(target_endpoint, client, "/jobs") + super(JobManager, self).__init__(target_endpoint, client, "/v3/jobs") def wait_for_job_completion( self, diff --git a/cloudfoundry_client/v3/organization_quotas.py b/cloudfoundry_client/v3/organization_quotas.py index 2779f9c..abe5015 100644 --- a/cloudfoundry_client/v3/organization_quotas.py +++ b/cloudfoundry_client/v3/organization_quotas.py @@ -35,7 +35,7 @@ class DomainsQuota: class OrganizationQuotaManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super().__init__(target_endpoint, client, "/organization_quotas") + super().__init__(target_endpoint, client, "/v3/organization_quotas") def remove(self, guid: str, asynchronous: bool = True) -> Optional[str]: return super()._remove(guid, asynchronous) diff --git a/cloudfoundry_client/v3/organizations.py b/cloudfoundry_client/v3/organizations.py index e7b4639..2086d31 100644 --- a/cloudfoundry_client/v3/organizations.py +++ b/cloudfoundry_client/v3/organizations.py @@ -8,7 +8,7 @@ class OrganizationManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(OrganizationManager, self).__init__(target_endpoint, client, "/organizations") + super(OrganizationManager, self).__init__(target_endpoint, client, "/v3/organizations") def create( self, name: str, suspended: bool, meta_labels: Optional[dict] = None, meta_annotations: Optional[dict] = None diff --git a/cloudfoundry_client/v3/processes.py b/cloudfoundry_client/v3/processes.py index f7ee291..cb632f3 100644 --- a/cloudfoundry_client/v3/processes.py +++ b/cloudfoundry_client/v3/processes.py @@ -8,4 +8,4 @@ class ProcessManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ProcessManager, self).__init__(target_endpoint, client, "/processes") + super(ProcessManager, self).__init__(target_endpoint, client, "/v3/processes") diff --git a/cloudfoundry_client/v3/roles.py b/cloudfoundry_client/v3/roles.py index ed466b9..9123d5a 100644 --- a/cloudfoundry_client/v3/roles.py +++ b/cloudfoundry_client/v3/roles.py @@ -8,7 +8,7 @@ class RoleManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(RoleManager, self).__init__(target_endpoint, client, "/roles") + super(RoleManager, self).__init__(target_endpoint, client, "/v3/roles") def remove(self, role_guid: str, asynchronous: bool = True) -> Optional[str]: return super(RoleManager, self)._remove(role_guid, asynchronous) diff --git a/cloudfoundry_client/v3/security_groups.py b/cloudfoundry_client/v3/security_groups.py index fdde7a2..b134e03 100644 --- a/cloudfoundry_client/v3/security_groups.py +++ b/cloudfoundry_client/v3/security_groups.py @@ -37,7 +37,7 @@ class GloballyEnabled: class SecurityGroupManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(SecurityGroupManager, self).__init__(target_endpoint, client, "/security_groups") + super(SecurityGroupManager, self).__init__(target_endpoint, client, "/v3/security_groups") def create(self, name: str, diff --git a/cloudfoundry_client/v3/service_brokers.py b/cloudfoundry_client/v3/service_brokers.py index a354de9..c39795b 100644 --- a/cloudfoundry_client/v3/service_brokers.py +++ b/cloudfoundry_client/v3/service_brokers.py @@ -8,7 +8,7 @@ class ServiceBrokerManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceBrokerManager, self).__init__(target_endpoint, client, "/service_brokers") + super(ServiceBrokerManager, self).__init__(target_endpoint, client, "/v3/service_brokers") def create( self, diff --git a/cloudfoundry_client/v3/service_credential_bindings.py b/cloudfoundry_client/v3/service_credential_bindings.py index 6599686..d587b7a 100644 --- a/cloudfoundry_client/v3/service_credential_bindings.py +++ b/cloudfoundry_client/v3/service_credential_bindings.py @@ -9,7 +9,7 @@ class ServiceCredentialBindingManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): super(ServiceCredentialBindingManager, self).__init__(target_endpoint, client, - "/service_credential_bindings") + "/v3/service_credential_bindings") def create( self, diff --git a/cloudfoundry_client/v3/service_instances.py b/cloudfoundry_client/v3/service_instances.py index 695b0ef..ad33614 100644 --- a/cloudfoundry_client/v3/service_instances.py +++ b/cloudfoundry_client/v3/service_instances.py @@ -9,7 +9,7 @@ class ServiceInstanceManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceInstanceManager, self).__init__(target_endpoint, client, "/service_instances") + super(ServiceInstanceManager, self).__init__(target_endpoint, client, "/v3/service_instances") def create( self, diff --git a/cloudfoundry_client/v3/service_offerings.py b/cloudfoundry_client/v3/service_offerings.py index c784ca2..37f7d0c 100644 --- a/cloudfoundry_client/v3/service_offerings.py +++ b/cloudfoundry_client/v3/service_offerings.py @@ -8,7 +8,7 @@ class ServiceOfferingsManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServiceOfferingsManager, self).__init__(target_endpoint, client, "/service_offerings") + super(ServiceOfferingsManager, self).__init__(target_endpoint, client, "/v3/service_offerings") def update(self, guid: str, meta_labels: Optional[dict] = None, meta_annotations: Optional[dict] = None) -> Entity: payload = dict() diff --git a/cloudfoundry_client/v3/service_plans.py b/cloudfoundry_client/v3/service_plans.py index 9e27e15..257c3bf 100644 --- a/cloudfoundry_client/v3/service_plans.py +++ b/cloudfoundry_client/v3/service_plans.py @@ -8,7 +8,7 @@ class ServicePlanManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(ServicePlanManager, self).__init__(target_endpoint, client, "/service_plans") + super(ServicePlanManager, self).__init__(target_endpoint, client, "/v3/service_plans") def update( self, diff --git a/cloudfoundry_client/v3/spaces.py b/cloudfoundry_client/v3/spaces.py index acb3597..f871a43 100644 --- a/cloudfoundry_client/v3/spaces.py +++ b/cloudfoundry_client/v3/spaces.py @@ -8,7 +8,7 @@ class SpaceManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(SpaceManager, self).__init__(target_endpoint, client, "/spaces") + super(SpaceManager, self).__init__(target_endpoint, client, "/v3/spaces") def create(self, name: str, org_guid: str) -> Entity: return super(SpaceManager, self)._create(dict(name=name, relationships=dict(organization=ToOneRelationship(org_guid)))) diff --git a/cloudfoundry_client/v3/tasks.py b/cloudfoundry_client/v3/tasks.py index 1367348..a7ce16e 100644 --- a/cloudfoundry_client/v3/tasks.py +++ b/cloudfoundry_client/v3/tasks.py @@ -8,7 +8,7 @@ class TaskManager(EntityManager): def __init__(self, target_endpoint: str, client: "CloudFoundryClient"): - super(TaskManager, self).__init__(target_endpoint, client, "/tasks") + super(TaskManager, self).__init__(target_endpoint, client, "/v3/tasks") def create( self, @@ -24,7 +24,7 @@ def create( request["disk_in_mb"] = disk_in_mb request["memory_in_mb"] = memory_in_mb request["droplet_guid"] = droplet_guid - return self._post("%s/apps/%s/tasks" % (self.target_endpoint, application_guid), data=request) + return self._post("%s/v3/apps/%s/tasks" % (self.target_endpoint, application_guid), data=request) def cancel(self, task_guid: str) -> Entity: - return self._post("%s/tasks/%s/actions/cancel" % (self.target_endpoint, task_guid)) + return self._post("%s/v3/tasks/%s/actions/cancel" % (self.target_endpoint, task_guid)) diff --git a/main/__init__.py b/main/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/poetry.lock b/poetry.lock index 6ff95e0..cd99825 100644 --- a/poetry.lock +++ b/poetry.lock @@ -153,6 +153,21 @@ docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphi tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +[[package]] +name = "backports-tarfile" +version = "1.2.0" +description = "Backport of CPython tarfile module" +optional = false +python-versions = ">=3.8" +files = [ + {file = "backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34"}, + {file = "backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["jaraco.test", "pytest (!=8.0.*)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)"] + [[package]] name = "black" version = "24.10.0" @@ -210,6 +225,85 @@ files = [ {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "charset-normalizer" version = "3.4.1" @@ -336,6 +430,66 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "docutils" +version = "0.21.2" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.9" +files = [ + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, +] + [[package]] name = "exceptiongroup" version = "1.2.2" @@ -481,6 +635,29 @@ files = [ [package.extras] all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] +[[package]] +name = "importlib-metadata" +version = "8.5.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, +] + +[package.dependencies] +zipp = ">=3.20" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +perf = ["ipython"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] + [[package]] name = "iniconfig" version = "2.0.0" @@ -492,6 +669,132 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "jaraco-classes" +version = "3.4.0" +description = "Utility functions for Python class constructs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790"}, + {file = "jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd"}, +] + +[package.dependencies] +more-itertools = "*" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +description = "Useful decorators and context managers" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4"}, + {file = "jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3"}, +] + +[package.dependencies] +"backports.tarfile" = {version = "*", markers = "python_version < \"3.12\""} + +[package.extras] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["portend", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "jaraco-functools" +version = "4.1.0" +description = "Functools like those found in stdlib" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.functools-4.1.0-py3-none-any.whl", hash = "sha256:ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649"}, + {file = "jaraco_functools-4.1.0.tar.gz", hash = "sha256:70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d"}, +] + +[package.dependencies] +more-itertools = "*" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.classes", "pytest (>=6,!=8.1.*)"] +type = ["pytest-mypy"] + +[[package]] +name = "jeepney" +version = "0.8.0" +description = "Low-level, pure Python DBus protocol wrapper." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, + {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, +] + +[package.extras] +test = ["async-timeout", "pytest", "pytest-asyncio (>=0.17)", "pytest-trio", "testpath", "trio"] +trio = ["async_generator", "trio"] + +[[package]] +name = "keyring" +version = "25.6.0" +description = "Store and access your passwords safely." +optional = false +python-versions = ">=3.9" +files = [ + {file = "keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd"}, + {file = "keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66"}, +] + +[package.dependencies] +importlib_metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} +"jaraco.classes" = "*" +"jaraco.context" = "*" +"jaraco.functools" = "*" +jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""} +pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} +SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +completion = ["shtab (>=1.1.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["pyfakefs", "pytest (>=6,!=8.1.*)"] +type = ["pygobject-stubs", "pytest-mypy", "shtab", "types-pywin32"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "mccabe" version = "0.7.0" @@ -503,6 +806,28 @@ files = [ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "more-itertools" +version = "10.5.0" +description = "More routines for operating on iterables, beyond itertools" +optional = false +python-versions = ">=3.8" +files = [ + {file = "more-itertools-10.5.0.tar.gz", hash = "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6"}, + {file = "more_itertools-10.5.0-py3-none-any.whl", hash = "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef"}, +] + [[package]] name = "multidict" version = "6.1.0" @@ -618,6 +943,39 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "nh3" +version = "0.2.20" +description = "Python binding to Ammonia HTML sanitizer Rust crate" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nh3-0.2.20-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:e1061a4ab6681f6bdf72b110eea0c4e1379d57c9de937db3be4202f7ad6043db"}, + {file = "nh3-0.2.20-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb4254b1dac4a1ee49919a5b3f1caf9803ea8dada1816d9e8289e63d3cd0dd9a"}, + {file = "nh3-0.2.20-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ae9cbd713524cdb81e64663d0d6aae26f678db9f2cd9db0bf162606f1f9f20c"}, + {file = "nh3-0.2.20-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1f7370b4e14cc03f5ae141ef30a1caf81fa5787711f80be9081418dd9eb79d2"}, + {file = "nh3-0.2.20-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:ac4d27dc836a476efffc6eb661994426b8b805c951b29c9cf2ff36bc9ad58bc5"}, + {file = "nh3-0.2.20-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4fd2e9248725ebcedac3997a8d3da0d90a12a28c9179c6ba51f1658938ac30d0"}, + {file = "nh3-0.2.20-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f7d564871833ddbe54df3aa59053b1110729d3a800cb7628ae8f42adb3d75208"}, + {file = "nh3-0.2.20-cp313-cp313t-win32.whl", hash = "sha256:d2a176fd4306b6f0f178a3f67fac91bd97a3a8d8fafb771c9b9ef675ba5c8886"}, + {file = "nh3-0.2.20-cp313-cp313t-win_amd64.whl", hash = "sha256:6ed834c68452a600f517dd3e1534dbfaff1f67f98899fecf139a055a25d99150"}, + {file = "nh3-0.2.20-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:76e2f603b30c02ff6456b233a83fc377dedab6a50947b04e960a6b905637b776"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:181063c581defe683bd4bb78188ac9936d208aebbc74c7f7c16b6a32ae2ebb38"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:231addb7643c952cd6d71f1c8702d703f8fe34afcb20becb3efb319a501a12d7"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1b9a8340a0aab991c68a5ca938d35ef4a8a3f4bf1b455da8855a40bee1fa0ace"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10317cd96fe4bbd4eb6b95f3920b71c902157ad44fed103fdcde43e3b8ee8be6"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8698db4c04b140800d1a1cd3067fda399e36e1e2b8fc1fe04292a907350a3e9b"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3eb04b9c3deb13c3a375ea39fd4a3c00d1f92e8fb2349f25f1e3e4506751774b"}, + {file = "nh3-0.2.20-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92f3f1c4f47a2c6f3ca7317b1d5ced05bd29556a75d3a4e2715652ae9d15c05d"}, + {file = "nh3-0.2.20-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ddefa9fd6794a87e37d05827d299d4b53a3ec6f23258101907b96029bfef138a"}, + {file = "nh3-0.2.20-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ce3731c8f217685d33d9268362e5b4f770914e922bba94d368ab244a59a6c397"}, + {file = "nh3-0.2.20-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:09f037c02fc2c43b211ff1523de32801dcfb0918648d8e651c36ef890f1731ec"}, + {file = "nh3-0.2.20-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:813f1c8012dd64c990514b795508abb90789334f76a561fa0fd4ca32d2275330"}, + {file = "nh3-0.2.20-cp38-abi3-win32.whl", hash = "sha256:47b2946c0e13057855209daeffb45dc910bd0c55daf10190bb0b4b60e2999784"}, + {file = "nh3-0.2.20-cp38-abi3-win_amd64.whl", hash = "sha256:da87573f03084edae8eb87cfe811ec338606288f81d333c07d2a9a0b9b976c0b"}, + {file = "nh3-0.2.20.tar.gz", hash = "sha256:9705c42d7ff88a0bea546c82d7fe5e59135e3d3f057e485394f491248a1f8ed5"}, +] + [[package]] name = "oauth2-client" version = "1.4.2" @@ -654,6 +1012,20 @@ files = [ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] +[[package]] +name = "pkginfo" +version = "1.12.0" +description = "Query metadata from sdists / bdists / installed packages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pkginfo-1.12.0-py3-none-any.whl", hash = "sha256:dcd589c9be4da8973eceffa247733c144812759aa67eaf4bbf97016a02f39088"}, + {file = "pkginfo-1.12.0.tar.gz", hash = "sha256:8ad91a0445a036782b9366ef8b8c2c50291f83a553478ba8580c73d3215700cf"}, +] + +[package.extras] +testing = ["pytest", "pytest-cov", "wheel"] + [[package]] name = "platformdirs" version = "4.3.6" @@ -818,6 +1190,17 @@ files = [ {file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"}, ] +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + [[package]] name = "pyflakes" version = "3.2.0" @@ -829,6 +1212,20 @@ files = [ {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, ] +[[package]] +name = "pygments" +version = "2.19.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.19.0-py3-none-any.whl", hash = "sha256:4755e6e64d22161d5b61432c0600c923c5927214e7c956e31c23923c89251a9b"}, + {file = "pygments-2.19.0.tar.gz", hash = "sha256:afc4146269910d4bdfabcd27c24923137a74d562a23a320a41a55ad303e19783"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + [[package]] name = "pytest" version = "8.2.2" @@ -851,6 +1248,17 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"}, + {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"}, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -913,6 +1321,25 @@ files = [ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] +[[package]] +name = "readme-renderer" +version = "44.0" +description = "readme_renderer is a library for rendering readme descriptions for Warehouse" +optional = false +python-versions = ">=3.9" +files = [ + {file = "readme_renderer-44.0-py3-none-any.whl", hash = "sha256:2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151"}, + {file = "readme_renderer-44.0.tar.gz", hash = "sha256:8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1"}, +] + +[package.dependencies] +docutils = ">=0.21.2" +nh3 = ">=0.2.14" +Pygments = ">=2.5.1" + +[package.extras] +md = ["cmarkgfm (>=0.8.0)"] + [[package]] name = "requests" version = "2.32.3" @@ -934,6 +1361,68 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +description = "A utility belt for advanced users of python-requests" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, + {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, +] + +[package.dependencies] +requests = ">=2.0.1,<3.0.0" + +[[package]] +name = "rfc3986" +version = "2.0.0" +description = "Validating URI References per RFC 3986" +optional = false +python-versions = ">=3.7" +files = [ + {file = "rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd"}, + {file = "rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"}, +] + +[package.extras] +idna2008 = ["idna"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "secretstorage" +version = "3.3.3" +description = "Python bindings to FreeDesktop.org Secret Service API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"}, + {file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"}, +] + +[package.dependencies] +cryptography = ">=2.0" +jeepney = ">=0.6" + [[package]] name = "tomli" version = "2.2.1" @@ -975,6 +1464,32 @@ files = [ {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] +[[package]] +name = "twine" +version = "6.0.1" +description = "Collection of utilities for publishing packages on PyPI" +optional = false +python-versions = ">=3.8" +files = [ + {file = "twine-6.0.1-py3-none-any.whl", hash = "sha256:9c6025b203b51521d53e200f4a08b116dee7500a38591668c6a6033117bdc218"}, + {file = "twine-6.0.1.tar.gz", hash = "sha256:36158b09df5406e1c9c1fb8edb24fc2be387709443e7376689b938531582ee27"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} +keyring = {version = ">=15.1", markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\""} +packaging = "*" +pkginfo = ">=1.8.1" +readme-renderer = ">=35.0" +requests = ">=2.20" +requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" +rfc3986 = ">=1.4.0" +rich = ">=12.0.0" +urllib3 = ">=1.26.0" + +[package.extras] +keyring = ["keyring (>=15.1)"] + [[package]] name = "typing-extensions" version = "4.12.2" @@ -1115,7 +1630,26 @@ idna = ">=2.0" multidict = ">=4.0" propcache = ">=0.2.0" +[[package]] +name = "zipp" +version = "3.21.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + [metadata] lock-version = "2.0" python-versions = ">=3.9" -content-hash = "1a7ece3e142ed461135a07c5000dd043a1ea9a517e7199c3c93e0788d481119b" +content-hash = "7bdbca53bb1649a03058590ca7d26086d9c1a224a23e87a68a7e570cde860283" diff --git a/pyproject.toml b/pyproject.toml index be25d17..1def3b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ exclude = ''' [tool.poetry] name = "cloudfoundry_client" -version = "1.37.1" +version = "1.38.1" description = "A client library for CloudFoundry" authors = ["Benjamin Einaudi "] readme = "README.rst" @@ -31,6 +31,7 @@ polling2= "0.5.0" black= "24.10.0" flake8= "7.1.1" pytest = "~8.2.2" +twine = "~6.0.0" [tool.poetry.scripts] cloudfoundry-client = "cloudfoundry_client.main.main:main"