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.
- crc_pulp_python_client-20260113.6.dist-info/METADATA +8856 -0
- {crc_pulp_python_client-20250929.1.dist-info → crc_pulp_python_client-20260113.6.dist-info}/RECORD +29 -22
- pulpcore/client/pulp_python/__init__.py +8 -1
- pulpcore/client/pulp_python/api/__init__.py +2 -0
- pulpcore/client/pulp_python/api/api_integrity_provenance_api.py +407 -0
- pulpcore/client/pulp_python/api/api_legacy_api.py +61 -1
- pulpcore/client/pulp_python/api/api_simple_api.py +108 -5
- pulpcore/client/pulp_python/api/content_packages_api.py +66 -6
- pulpcore/client/pulp_python/api/content_provenance_api.py +1900 -0
- pulpcore/client/pulp_python/api/distributions_pypi_api.py +16 -10
- pulpcore/client/pulp_python/api/remotes_python_api.py +16 -10
- pulpcore/client/pulp_python/api/repositories_python_api.py +16 -10
- pulpcore/client/pulp_python/api/repositories_python_versions_api.py +279 -0
- pulpcore/client/pulp_python/configuration.py +3 -3
- pulpcore/client/pulp_python/models/__init__.py +5 -0
- pulpcore/client/pulp_python/models/filetype_enum.py +38 -0
- pulpcore/client/pulp_python/models/metadata_version_enum.py +44 -0
- pulpcore/client/pulp_python/models/paginatedpython_package_provenance_response_list.py +112 -0
- pulpcore/client/pulp_python/models/patchedpython_python_distribution.py +8 -1
- pulpcore/client/pulp_python/models/patchedpython_python_remote.py +4 -2
- pulpcore/client/pulp_python/models/protocol_version_enum.py +37 -0
- pulpcore/client/pulp_python/models/python_package_provenance_response.py +124 -0
- pulpcore/client/pulp_python/models/python_python_distribution.py +8 -1
- pulpcore/client/pulp_python/models/python_python_distribution_response.py +8 -1
- pulpcore/client/pulp_python/models/python_python_package_content_response.py +18 -3
- pulpcore/client/pulp_python/models/python_python_remote.py +4 -2
- pulpcore/client/pulp_python/models/python_python_remote_response.py +4 -2
- crc_pulp_python_client-20250929.1.dist-info/METADATA +0 -25
- {crc_pulp_python_client-20250929.1.dist-info → crc_pulp_python_client-20260113.6.dist-info}/WHEEL +0 -0
- {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
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
{crc_pulp_python_client-20250929.1.dist-info → crc_pulp_python_client-20260113.6.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|