crc-pulp-python-client 20251023.2__py3-none-any.whl → 20260115.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of crc-pulp-python-client might be problematic. Click here for more details.

Files changed (23) hide show
  1. {crc_pulp_python_client-20251023.2.dist-info → crc_pulp_python_client-20260115.3.dist-info}/METADATA +1173 -236
  2. {crc_pulp_python_client-20251023.2.dist-info → crc_pulp_python_client-20260115.3.dist-info}/RECORD +23 -16
  3. pulpcore/client/pulp_python/__init__.py +8 -1
  4. pulpcore/client/pulp_python/api/__init__.py +2 -0
  5. pulpcore/client/pulp_python/api/api_integrity_provenance_api.py +407 -0
  6. pulpcore/client/pulp_python/api/api_legacy_api.py +61 -1
  7. pulpcore/client/pulp_python/api/api_simple_api.py +108 -5
  8. pulpcore/client/pulp_python/api/content_packages_api.py +66 -6
  9. pulpcore/client/pulp_python/api/content_provenance_api.py +1900 -0
  10. pulpcore/client/pulp_python/api/repositories_python_versions_api.py +279 -0
  11. pulpcore/client/pulp_python/configuration.py +3 -3
  12. pulpcore/client/pulp_python/models/__init__.py +5 -0
  13. pulpcore/client/pulp_python/models/filetype_enum.py +38 -0
  14. pulpcore/client/pulp_python/models/metadata_version_enum.py +44 -0
  15. pulpcore/client/pulp_python/models/paginatedpython_package_provenance_response_list.py +112 -0
  16. pulpcore/client/pulp_python/models/patchedpython_python_remote.py +4 -2
  17. pulpcore/client/pulp_python/models/protocol_version_enum.py +37 -0
  18. pulpcore/client/pulp_python/models/python_package_provenance_response.py +124 -0
  19. pulpcore/client/pulp_python/models/python_python_package_content_response.py +18 -3
  20. pulpcore/client/pulp_python/models/python_python_remote.py +4 -2
  21. pulpcore/client/pulp_python/models/python_python_remote_response.py +4 -2
  22. {crc_pulp_python_client-20251023.2.dist-info → crc_pulp_python_client-20260115.3.dist-info}/WHEEL +0 -0
  23. {crc_pulp_python_client-20251023.2.dist-info → crc_pulp_python_client-20260115.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,124 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pulp 3 API
5
+
6
+ Fetch, Upload, Organize, and Distribute Software Packages
7
+
8
+ The version of the OpenAPI document: v3
9
+ Contact: pulp-list@redhat.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from datetime import datetime
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
23
+ from typing import Any, ClassVar, Dict, List, Optional
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class PythonPackageProvenanceResponse(BaseModel):
28
+ """
29
+ A Serializer for PackageProvenance.
30
+ """ # noqa: E501
31
+ pulp_href: Optional[StrictStr] = None
32
+ prn: Optional[StrictStr] = Field(default=None, description="The Pulp Resource Name (PRN).")
33
+ pulp_created: Optional[datetime] = Field(default=None, description="Timestamp of creation.")
34
+ pulp_last_updated: Optional[datetime] = Field(default=None, description="Timestamp of the last time this resource was updated. Note: for immutable resources - like content, repository versions, and publication - pulp_created and pulp_last_updated dates will be the same.")
35
+ pulp_labels: Optional[Dict[str, Optional[StrictStr]]] = Field(default=None, description="A dictionary of arbitrary key/value pairs used to describe a specific Content instance.")
36
+ vuln_report: Optional[StrictStr] = None
37
+ package: StrictStr = Field(description="The package that the provenance is for.")
38
+ provenance: Optional[Any] = None
39
+ sha256: Optional[StrictStr] = None
40
+ __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "pulp_labels", "vuln_report", "package", "provenance", "sha256"]
41
+
42
+ model_config = ConfigDict(
43
+ populate_by_name=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of PythonPackageProvenanceResponse from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ * OpenAPI `readOnly` fields are excluded.
73
+ * OpenAPI `readOnly` fields are excluded.
74
+ * OpenAPI `readOnly` fields are excluded.
75
+ * OpenAPI `readOnly` fields are excluded.
76
+ * OpenAPI `readOnly` fields are excluded.
77
+ * OpenAPI `readOnly` fields are excluded.
78
+ * OpenAPI `readOnly` fields are excluded.
79
+ """
80
+ excluded_fields: Set[str] = set([
81
+ "pulp_href",
82
+ "prn",
83
+ "pulp_created",
84
+ "pulp_last_updated",
85
+ "vuln_report",
86
+ "provenance",
87
+ "sha256",
88
+ ])
89
+
90
+ _dict = self.model_dump(
91
+ by_alias=True,
92
+ exclude=excluded_fields,
93
+ exclude_none=True,
94
+ )
95
+ # set to None if provenance (nullable) is None
96
+ # and model_fields_set contains the field
97
+ if self.provenance is None and "provenance" in self.model_fields_set:
98
+ _dict['provenance'] = None
99
+
100
+ return _dict
101
+
102
+ @classmethod
103
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
104
+ """Create an instance of PythonPackageProvenanceResponse from a dict"""
105
+ if obj is None:
106
+ return None
107
+
108
+ if not isinstance(obj, dict):
109
+ return cls.model_validate(obj)
110
+
111
+ _obj = cls.model_validate({
112
+ "pulp_href": obj.get("pulp_href"),
113
+ "prn": obj.get("prn"),
114
+ "pulp_created": obj.get("pulp_created"),
115
+ "pulp_last_updated": obj.get("pulp_last_updated"),
116
+ "pulp_labels": obj.get("pulp_labels"),
117
+ "vuln_report": obj.get("vuln_report"),
118
+ "package": obj.get("package"),
119
+ "provenance": obj.get("provenance"),
120
+ "sha256": obj.get("sha256")
121
+ })
122
+ return _obj
123
+
124
+
@@ -19,7 +19,7 @@ import re # noqa: F401
19
19
  import json
20
20
 
21
21
  from datetime import datetime
22
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
23
23
  from typing import Any, ClassVar, Dict, List, Optional
24
24
  from typing import Optional, Set
25
25
  from typing_extensions import Self
@@ -66,8 +66,11 @@ class PythonPythonPackageContentResponse(BaseModel):
66
66
  filename: Optional[StrictStr] = Field(default=None, description="The name of the distribution package, usually of the format: {distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.{packagetype}")
67
67
  packagetype: Optional[StrictStr] = Field(default=None, description="The type of the distribution package (e.g. sdist, bdist_wheel, bdist_egg, etc)")
68
68
  python_version: Optional[StrictStr] = Field(default=None, description="The tag that indicates which Python implementation or version the package requires.")
69
+ size: Optional[StrictInt] = Field(default=None, description="The size of the package in bytes.")
69
70
  sha256: Optional[StrictStr] = Field(default='', description="The SHA256 digest of this package.")
70
- __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "pulp_labels", "vuln_report", "artifact", "author", "author_email", "description", "home_page", "keywords", "license", "metadata_version", "name", "platform", "summary", "version", "classifiers", "download_url", "supported_platform", "maintainer", "maintainer_email", "obsoletes_dist", "project_url", "project_urls", "provides_dist", "requires_external", "requires_dist", "requires_python", "description_content_type", "provides_extras", "dynamic", "license_expression", "license_file", "filename", "packagetype", "python_version", "sha256"]
71
+ metadata_sha256: Optional[StrictStr] = Field(default=None, description="The SHA256 digest of the package's METADATA file.")
72
+ provenance: Optional[StrictStr] = Field(default=None, description="The created provenance object on upload.")
73
+ __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "pulp_labels", "vuln_report", "artifact", "author", "author_email", "description", "home_page", "keywords", "license", "metadata_version", "name", "platform", "summary", "version", "classifiers", "download_url", "supported_platform", "maintainer", "maintainer_email", "obsoletes_dist", "project_url", "project_urls", "provides_dist", "requires_external", "requires_dist", "requires_python", "description_content_type", "provides_extras", "dynamic", "license_expression", "license_file", "filename", "packagetype", "python_version", "size", "sha256", "metadata_sha256", "provenance"]
71
74
 
72
75
  model_config = ConfigDict(
73
76
  populate_by_name=True,
@@ -110,6 +113,8 @@ class PythonPythonPackageContentResponse(BaseModel):
110
113
  * OpenAPI `readOnly` fields are excluded.
111
114
  * OpenAPI `readOnly` fields are excluded.
112
115
  * OpenAPI `readOnly` fields are excluded.
116
+ * OpenAPI `readOnly` fields are excluded.
117
+ * OpenAPI `readOnly` fields are excluded.
113
118
  """
114
119
  excluded_fields: Set[str] = set([
115
120
  "pulp_href",
@@ -123,6 +128,8 @@ class PythonPythonPackageContentResponse(BaseModel):
123
128
  "filename",
124
129
  "packagetype",
125
130
  "python_version",
131
+ "size",
132
+ "provenance",
126
133
  ])
127
134
 
128
135
  _dict = self.model_dump(
@@ -175,6 +182,11 @@ class PythonPythonPackageContentResponse(BaseModel):
175
182
  if self.license_file is None and "license_file" in self.model_fields_set:
176
183
  _dict['license_file'] = None
177
184
 
185
+ # set to None if metadata_sha256 (nullable) is None
186
+ # and model_fields_set contains the field
187
+ if self.metadata_sha256 is None and "metadata_sha256" in self.model_fields_set:
188
+ _dict['metadata_sha256'] = None
189
+
178
190
  return _dict
179
191
 
180
192
  @classmethod
@@ -225,7 +237,10 @@ class PythonPythonPackageContentResponse(BaseModel):
225
237
  "filename": obj.get("filename"),
226
238
  "packagetype": obj.get("packagetype"),
227
239
  "python_version": obj.get("python_version"),
228
- "sha256": obj.get("sha256") if obj.get("sha256") is not None else ''
240
+ "size": obj.get("size"),
241
+ "sha256": obj.get("sha256") if obj.get("sha256") is not None else '',
242
+ "metadata_sha256": obj.get("metadata_sha256"),
243
+ "provenance": obj.get("provenance")
229
244
  })
230
245
  return _obj
231
246
 
@@ -58,7 +58,8 @@ class PythonPythonRemote(BaseModel):
58
58
  package_types: Optional[List[PackageTypesEnum]] = Field(default=None, description="The package types to sync for Python content. Leave blank to get everypackage type.")
59
59
  keep_latest_packages: Optional[StrictInt] = Field(default=0, description="The amount of latest versions of a package to keep on sync, includespre-releases if synced. Default 0 keeps all versions.")
60
60
  exclude_platforms: Optional[List[ExcludePlatformsEnum]] = Field(default=None, description="List of platforms to exclude syncing Python packages for. Possible valuesinclude: windows, macos, freebsd, and linux.")
61
- __properties: ClassVar[List[str]] = ["name", "url", "ca_cert", "client_cert", "client_key", "tls_validation", "proxy_url", "proxy_username", "proxy_password", "username", "password", "pulp_labels", "download_concurrency", "max_retries", "policy", "total_timeout", "connect_timeout", "sock_connect_timeout", "sock_read_timeout", "headers", "rate_limit", "includes", "excludes", "prereleases", "package_types", "keep_latest_packages", "exclude_platforms"]
61
+ provenance: Optional[StrictBool] = Field(default=False, description="Whether to sync available provenances for Python packages.")
62
+ __properties: ClassVar[List[str]] = ["name", "url", "ca_cert", "client_cert", "client_key", "tls_validation", "proxy_url", "proxy_username", "proxy_password", "username", "password", "pulp_labels", "download_concurrency", "max_retries", "policy", "total_timeout", "connect_timeout", "sock_connect_timeout", "sock_read_timeout", "headers", "rate_limit", "includes", "excludes", "prereleases", "package_types", "keep_latest_packages", "exclude_platforms", "provenance"]
62
63
 
63
64
  model_config = ConfigDict(
64
65
  populate_by_name=True,
@@ -212,7 +213,8 @@ class PythonPythonRemote(BaseModel):
212
213
  "prereleases": obj.get("prereleases"),
213
214
  "package_types": obj.get("package_types"),
214
215
  "keep_latest_packages": obj.get("keep_latest_packages") if obj.get("keep_latest_packages") is not None else 0,
215
- "exclude_platforms": obj.get("exclude_platforms")
216
+ "exclude_platforms": obj.get("exclude_platforms"),
217
+ "provenance": obj.get("provenance") if obj.get("provenance") is not None else False
216
218
  })
217
219
  return _obj
218
220
 
@@ -60,7 +60,8 @@ class PythonPythonRemoteResponse(BaseModel):
60
60
  package_types: Optional[List[PackageTypesEnum]] = Field(default=None, description="The package types to sync for Python content. Leave blank to get everypackage type.")
61
61
  keep_latest_packages: Optional[StrictInt] = Field(default=0, description="The amount of latest versions of a package to keep on sync, includespre-releases if synced. Default 0 keeps all versions.")
62
62
  exclude_platforms: Optional[List[ExcludePlatformsEnum]] = Field(default=None, description="List of platforms to exclude syncing Python packages for. Possible valuesinclude: windows, macos, freebsd, and linux.")
63
- __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "name", "url", "ca_cert", "client_cert", "tls_validation", "proxy_url", "pulp_labels", "download_concurrency", "max_retries", "policy", "total_timeout", "connect_timeout", "sock_connect_timeout", "sock_read_timeout", "headers", "rate_limit", "hidden_fields", "includes", "excludes", "prereleases", "package_types", "keep_latest_packages", "exclude_platforms"]
63
+ provenance: Optional[StrictBool] = Field(default=False, description="Whether to sync available provenances for Python packages.")
64
+ __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "name", "url", "ca_cert", "client_cert", "tls_validation", "proxy_url", "pulp_labels", "download_concurrency", "max_retries", "policy", "total_timeout", "connect_timeout", "sock_connect_timeout", "sock_read_timeout", "headers", "rate_limit", "hidden_fields", "includes", "excludes", "prereleases", "package_types", "keep_latest_packages", "exclude_platforms", "provenance"]
64
65
 
65
66
  model_config = ConfigDict(
66
67
  populate_by_name=True,
@@ -206,7 +207,8 @@ class PythonPythonRemoteResponse(BaseModel):
206
207
  "prereleases": obj.get("prereleases"),
207
208
  "package_types": obj.get("package_types"),
208
209
  "keep_latest_packages": obj.get("keep_latest_packages") if obj.get("keep_latest_packages") is not None else 0,
209
- "exclude_platforms": obj.get("exclude_platforms")
210
+ "exclude_platforms": obj.get("exclude_platforms"),
211
+ "provenance": obj.get("provenance") if obj.get("provenance") is not None else False
210
212
  })
211
213
  return _obj
212
214