crc-pulp-python-client 20250929.1__py3-none-any.whl → 20260113.6__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.
Files changed (30) hide show
  1. crc_pulp_python_client-20260113.6.dist-info/METADATA +8856 -0
  2. {crc_pulp_python_client-20250929.1.dist-info → crc_pulp_python_client-20260113.6.dist-info}/RECORD +29 -22
  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/distributions_pypi_api.py +16 -10
  11. pulpcore/client/pulp_python/api/remotes_python_api.py +16 -10
  12. pulpcore/client/pulp_python/api/repositories_python_api.py +16 -10
  13. pulpcore/client/pulp_python/api/repositories_python_versions_api.py +279 -0
  14. pulpcore/client/pulp_python/configuration.py +3 -3
  15. pulpcore/client/pulp_python/models/__init__.py +5 -0
  16. pulpcore/client/pulp_python/models/filetype_enum.py +38 -0
  17. pulpcore/client/pulp_python/models/metadata_version_enum.py +44 -0
  18. pulpcore/client/pulp_python/models/paginatedpython_package_provenance_response_list.py +112 -0
  19. pulpcore/client/pulp_python/models/patchedpython_python_distribution.py +8 -1
  20. pulpcore/client/pulp_python/models/patchedpython_python_remote.py +4 -2
  21. pulpcore/client/pulp_python/models/protocol_version_enum.py +37 -0
  22. pulpcore/client/pulp_python/models/python_package_provenance_response.py +124 -0
  23. pulpcore/client/pulp_python/models/python_python_distribution.py +8 -1
  24. pulpcore/client/pulp_python/models/python_python_distribution_response.py +8 -1
  25. pulpcore/client/pulp_python/models/python_python_package_content_response.py +18 -3
  26. pulpcore/client/pulp_python/models/python_python_remote.py +4 -2
  27. pulpcore/client/pulp_python/models/python_python_remote_response.py +4 -2
  28. crc_pulp_python_client-20250929.1.dist-info/METADATA +0 -25
  29. {crc_pulp_python_client-20250929.1.dist-info → crc_pulp_python_client-20260113.6.dist-info}/WHEEL +0 -0
  30. {crc_pulp_python_client-20250929.1.dist-info → crc_pulp_python_client-20260113.6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,38 @@
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 json
18
+ from enum import Enum
19
+ from typing_extensions import Self
20
+
21
+
22
+ class FiletypeEnum(str, Enum):
23
+ """
24
+ * `bdist_wheel` - bdist_wheel * `sdist` - sdist
25
+ """
26
+
27
+ """
28
+ allowed enum values
29
+ """
30
+ BDIST_WHEEL = 'bdist_wheel'
31
+ SDIST = 'sdist'
32
+
33
+ @classmethod
34
+ def from_json(cls, json_str: str) -> Self:
35
+ """Create an instance of FiletypeEnum from a JSON string"""
36
+ return cls(json.loads(json_str))
37
+
38
+
@@ -0,0 +1,44 @@
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 json
18
+ from enum import Enum
19
+ from typing_extensions import Self
20
+
21
+
22
+ class MetadataVersionEnum(str, Enum):
23
+ """
24
+ * `1.0` - 1.0 * `1.1` - 1.1 * `1.2` - 1.2 * `2.0` - 2.0 * `2.1` - 2.1 * `2.2` - 2.2 * `2.3` - 2.3 * `2.4` - 2.4
25
+ """
26
+
27
+ """
28
+ allowed enum values
29
+ """
30
+ ENUM_1_DOT_0 = '1.0'
31
+ ENUM_1_DOT_1 = '1.1'
32
+ ENUM_1_DOT_2 = '1.2'
33
+ ENUM_2_DOT_0 = '2.0'
34
+ ENUM_2_DOT_1 = '2.1'
35
+ ENUM_2_DOT_2 = '2.2'
36
+ ENUM_2_DOT_3 = '2.3'
37
+ ENUM_2_DOT_4 = '2.4'
38
+
39
+ @classmethod
40
+ def from_json(cls, json_str: str) -> Self:
41
+ """Create an instance of MetadataVersionEnum from a JSON string"""
42
+ return cls(json.loads(json_str))
43
+
44
+
@@ -0,0 +1,112 @@
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 pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from pulpcore.client.pulp_python.models.python_package_provenance_response import PythonPackageProvenanceResponse
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class PaginatedpythonPackageProvenanceResponseList(BaseModel):
28
+ """
29
+ PaginatedpythonPackageProvenanceResponseList
30
+ """ # noqa: E501
31
+ count: StrictInt
32
+ next: Optional[StrictStr] = None
33
+ previous: Optional[StrictStr] = None
34
+ results: List[PythonPackageProvenanceResponse]
35
+ __properties: ClassVar[List[str]] = ["count", "next", "previous", "results"]
36
+
37
+ model_config = ConfigDict(
38
+ populate_by_name=True,
39
+ validate_assignment=True,
40
+ protected_namespaces=(),
41
+ )
42
+
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
51
+ return json.dumps(self.to_dict())
52
+
53
+ @classmethod
54
+ def from_json(cls, json_str: str) -> Optional[Self]:
55
+ """Create an instance of PaginatedpythonPackageProvenanceResponseList from a JSON string"""
56
+ return cls.from_dict(json.loads(json_str))
57
+
58
+ def to_dict(self) -> Dict[str, Any]:
59
+ """Return the dictionary representation of the model using alias.
60
+
61
+ This has the following differences from calling pydantic's
62
+ `self.model_dump(by_alias=True)`:
63
+
64
+ * `None` is only added to the output dict for nullable fields that
65
+ were set at model initialization. Other fields with value `None`
66
+ are ignored.
67
+ """
68
+ excluded_fields: Set[str] = set([
69
+ ])
70
+
71
+ _dict = self.model_dump(
72
+ by_alias=True,
73
+ exclude=excluded_fields,
74
+ exclude_none=True,
75
+ )
76
+ # override the default output from pydantic by calling `to_dict()` of each item in results (list)
77
+ _items = []
78
+ if self.results:
79
+ for _item_results in self.results:
80
+ if _item_results:
81
+ _items.append(_item_results.to_dict())
82
+ _dict['results'] = _items
83
+ # set to None if next (nullable) is None
84
+ # and model_fields_set contains the field
85
+ if self.next is None and "next" in self.model_fields_set:
86
+ _dict['next'] = None
87
+
88
+ # set to None if previous (nullable) is None
89
+ # and model_fields_set contains the field
90
+ if self.previous is None and "previous" in self.model_fields_set:
91
+ _dict['previous'] = None
92
+
93
+ return _dict
94
+
95
+ @classmethod
96
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
97
+ """Create an instance of PaginatedpythonPackageProvenanceResponseList from a dict"""
98
+ if obj is None:
99
+ return None
100
+
101
+ if not isinstance(obj, dict):
102
+ return cls.model_validate(obj)
103
+
104
+ _obj = cls.model_validate({
105
+ "count": obj.get("count"),
106
+ "next": obj.get("next"),
107
+ "previous": obj.get("previous"),
108
+ "results": [PythonPackageProvenanceResponse.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None
109
+ })
110
+ return _obj
111
+
112
+
@@ -35,9 +35,10 @@ class PatchedpythonPythonDistribution(BaseModel):
35
35
  name: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="A unique name. Ex, `rawhide` and `stable`.")
36
36
  repository: Optional[StrictStr] = Field(default=None, description="The latest RepositoryVersion for this Repository will be served.")
37
37
  publication: Optional[StrictStr] = Field(default=None, description="Publication to be served")
38
+ repository_version: Optional[StrictStr] = Field(default=None, description="RepositoryVersion to be served.")
38
39
  allow_uploads: Optional[StrictBool] = Field(default=True, description="Allow packages to be uploaded to this index.")
39
40
  remote: Optional[StrictStr] = Field(default=None, description="Remote that can be used to fetch content when using pull-through caching.")
40
- __properties: ClassVar[List[str]] = ["base_path", "content_guard", "hidden", "pulp_labels", "name", "repository", "publication", "allow_uploads", "remote"]
41
+ __properties: ClassVar[List[str]] = ["base_path", "content_guard", "hidden", "pulp_labels", "name", "repository", "publication", "repository_version", "allow_uploads", "remote"]
41
42
 
42
43
  model_config = ConfigDict(
43
44
  populate_by_name=True,
@@ -93,6 +94,11 @@ class PatchedpythonPythonDistribution(BaseModel):
93
94
  if self.publication is None and "publication" in self.model_fields_set:
94
95
  _dict['publication'] = None
95
96
 
97
+ # set to None if repository_version (nullable) is None
98
+ # and model_fields_set contains the field
99
+ if self.repository_version is None and "repository_version" in self.model_fields_set:
100
+ _dict['repository_version'] = None
101
+
96
102
  # set to None if remote (nullable) is None
97
103
  # and model_fields_set contains the field
98
104
  if self.remote is None and "remote" in self.model_fields_set:
@@ -117,6 +123,7 @@ class PatchedpythonPythonDistribution(BaseModel):
117
123
  "name": obj.get("name"),
118
124
  "repository": obj.get("repository"),
119
125
  "publication": obj.get("publication"),
126
+ "repository_version": obj.get("repository_version"),
120
127
  "allow_uploads": obj.get("allow_uploads") if obj.get("allow_uploads") is not None else True,
121
128
  "remote": obj.get("remote")
122
129
  })
@@ -58,7 +58,8 @@ class PatchedpythonPythonRemote(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 PatchedpythonPythonRemote(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
 
@@ -0,0 +1,37 @@
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 json
18
+ from enum import Enum
19
+ from typing_extensions import Self
20
+
21
+
22
+ class ProtocolVersionEnum(int, Enum):
23
+ """
24
+ * `1` - 1
25
+ """
26
+
27
+ """
28
+ allowed enum values
29
+ """
30
+ NUMBER_1 = 1
31
+
32
+ @classmethod
33
+ def from_json(cls, json_str: str) -> Self:
34
+ """Create an instance of ProtocolVersionEnum from a JSON string"""
35
+ return cls(json.loads(json_str))
36
+
37
+
@@ -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
+
@@ -35,9 +35,10 @@ class PythonPythonDistribution(BaseModel):
35
35
  name: Annotated[str, Field(min_length=1, strict=True)] = Field(description="A unique name. Ex, `rawhide` and `stable`.")
36
36
  repository: Optional[StrictStr] = Field(default=None, description="The latest RepositoryVersion for this Repository will be served.")
37
37
  publication: Optional[StrictStr] = Field(default=None, description="Publication to be served")
38
+ repository_version: Optional[StrictStr] = Field(default=None, description="RepositoryVersion to be served.")
38
39
  allow_uploads: Optional[StrictBool] = Field(default=True, description="Allow packages to be uploaded to this index.")
39
40
  remote: Optional[StrictStr] = Field(default=None, description="Remote that can be used to fetch content when using pull-through caching.")
40
- __properties: ClassVar[List[str]] = ["base_path", "content_guard", "hidden", "pulp_labels", "name", "repository", "publication", "allow_uploads", "remote"]
41
+ __properties: ClassVar[List[str]] = ["base_path", "content_guard", "hidden", "pulp_labels", "name", "repository", "publication", "repository_version", "allow_uploads", "remote"]
41
42
 
42
43
  model_config = ConfigDict(
43
44
  populate_by_name=True,
@@ -93,6 +94,11 @@ class PythonPythonDistribution(BaseModel):
93
94
  if self.publication is None and "publication" in self.model_fields_set:
94
95
  _dict['publication'] = None
95
96
 
97
+ # set to None if repository_version (nullable) is None
98
+ # and model_fields_set contains the field
99
+ if self.repository_version is None and "repository_version" in self.model_fields_set:
100
+ _dict['repository_version'] = None
101
+
96
102
  # set to None if remote (nullable) is None
97
103
  # and model_fields_set contains the field
98
104
  if self.remote is None and "remote" in self.model_fields_set:
@@ -117,6 +123,7 @@ class PythonPythonDistribution(BaseModel):
117
123
  "name": obj.get("name"),
118
124
  "repository": obj.get("repository"),
119
125
  "publication": obj.get("publication"),
126
+ "repository_version": obj.get("repository_version"),
120
127
  "allow_uploads": obj.get("allow_uploads") if obj.get("allow_uploads") is not None else True,
121
128
  "remote": obj.get("remote")
122
129
  })
@@ -41,9 +41,10 @@ class PythonPythonDistributionResponse(BaseModel):
41
41
  name: StrictStr = Field(description="A unique name. Ex, `rawhide` and `stable`.")
42
42
  repository: Optional[StrictStr] = Field(default=None, description="The latest RepositoryVersion for this Repository will be served.")
43
43
  publication: Optional[StrictStr] = Field(default=None, description="Publication to be served")
44
+ repository_version: Optional[StrictStr] = Field(default=None, description="RepositoryVersion to be served.")
44
45
  allow_uploads: Optional[StrictBool] = Field(default=True, description="Allow packages to be uploaded to this index.")
45
46
  remote: Optional[StrictStr] = Field(default=None, description="Remote that can be used to fetch content when using pull-through caching.")
46
- __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "base_path", "base_url", "content_guard", "no_content_change_since", "hidden", "pulp_labels", "name", "repository", "publication", "allow_uploads", "remote"]
47
+ __properties: ClassVar[List[str]] = ["pulp_href", "prn", "pulp_created", "pulp_last_updated", "base_path", "base_url", "content_guard", "no_content_change_since", "hidden", "pulp_labels", "name", "repository", "publication", "repository_version", "allow_uploads", "remote"]
47
48
 
48
49
  model_config = ConfigDict(
49
50
  populate_by_name=True,
@@ -111,6 +112,11 @@ class PythonPythonDistributionResponse(BaseModel):
111
112
  if self.publication is None and "publication" in self.model_fields_set:
112
113
  _dict['publication'] = None
113
114
 
115
+ # set to None if repository_version (nullable) is None
116
+ # and model_fields_set contains the field
117
+ if self.repository_version is None and "repository_version" in self.model_fields_set:
118
+ _dict['repository_version'] = None
119
+
114
120
  # set to None if remote (nullable) is None
115
121
  # and model_fields_set contains the field
116
122
  if self.remote is None and "remote" in self.model_fields_set:
@@ -141,6 +147,7 @@ class PythonPythonDistributionResponse(BaseModel):
141
147
  "name": obj.get("name"),
142
148
  "repository": obj.get("repository"),
143
149
  "publication": obj.get("publication"),
150
+ "repository_version": obj.get("repository_version"),
144
151
  "allow_uploads": obj.get("allow_uploads") if obj.get("allow_uploads") is not None else True,
145
152
  "remote": obj.get("remote")
146
153
  })
@@ -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
 
@@ -1,25 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: crc-pulp_python-client
3
- Version: 20250929.1
4
- Summary: Pulp 3 API
5
- Home-page:
6
- Author: Pulp Team
7
- Author-email: pulp-list@redhat.com
8
- License: GPLv2+
9
- Keywords: pulp,pulpcore,client,Pulp 3 API
10
- Description-Content-Type: text/markdown
11
- Requires-Dist: urllib3<3.0.0,>=1.25.3
12
- Requires-Dist: python-dateutil<2.10.0,>=2.8.1
13
- Requires-Dist: pydantic>=2
14
- Requires-Dist: typing-extensions>=4.7.1
15
- Dynamic: author
16
- Dynamic: author-email
17
- Dynamic: description
18
- Dynamic: description-content-type
19
- Dynamic: keywords
20
- Dynamic: license
21
- Dynamic: requires-dist
22
- Dynamic: summary
23
-
24
- Fetch, Upload, Organize, and Distribute Software Packages
25
-