pulp-python 3.30.1__py3-none-any.whl → 3.30.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.
@@ -12,7 +12,7 @@ class PulpPythonPluginAppConfig(PulpPluginAppConfig):
12
12
 
13
13
  name = "pulp_python.app"
14
14
  label = "python"
15
- version = "3.30.1"
15
+ version = "3.30.3"
16
16
  python_package_name = "pulp-python"
17
17
  domain_compatible = True
18
18
 
@@ -7,7 +7,7 @@ from urllib.parse import urljoin, urlparse, urlunsplit
7
7
  from django.contrib.sessions.models import Session
8
8
  from django.core.exceptions import ObjectDoesNotExist
9
9
  from django.db import transaction
10
- from django.db.models import OuterRef, Subquery
10
+ from django.db.models import Exists, F, FilteredRelation, OuterRef, Q
11
11
  from django.db.utils import DatabaseError
12
12
  from django.http.response import (
13
13
  Http404,
@@ -26,7 +26,6 @@ from rest_framework.renderers import BrowsableAPIRenderer, JSONRenderer, Templat
26
26
  from rest_framework.response import Response
27
27
  from rest_framework.viewsets import ViewSet
28
28
 
29
- from pulpcore.plugin.models import RepositoryContent
30
29
  from pulpcore.plugin.tasking import dispatch
31
30
  from pulpcore.plugin.util import get_domain, get_url
32
31
  from pulpcore.plugin.viewsets import OperationPostponedResponse
@@ -368,13 +367,16 @@ class SimpleView(PackageUploadMixin, ViewSet):
368
367
  return redirect(urljoin(self.base_content_url, f"{path}/simple/{normalized}/"))
369
368
  if content is not None:
370
369
  local_packages = content.filter(name_normalized=normalized)
371
- repo_added_subquery = RepositoryContent.objects.filter(
372
- content_id=OuterRef("pk"),
373
- repository=repo_ver.repository,
374
- version_removed=None,
375
- ).values("pulp_created")[:1]
376
370
  packages = local_packages.annotate(
377
- repo_added_time=Subquery(repo_added_subquery)
371
+ active_membership=FilteredRelation(
372
+ "version_memberships",
373
+ condition=Q(
374
+ version_memberships__repository=repo_ver.repository,
375
+ version_memberships__version_removed=None,
376
+ ),
377
+ ),
378
+ repo_added_time=F("active_membership__pulp_created"),
379
+ has_provenance=Exists(PackageProvenance.objects.filter(package_id=OuterRef("pk"))),
378
380
  ).values(
379
381
  "filename",
380
382
  "sha256",
@@ -383,9 +385,7 @@ class SimpleView(PackageUploadMixin, ViewSet):
383
385
  "size",
384
386
  "repo_added_time",
385
387
  "version",
386
- )
387
- provenances = PackageProvenance.objects.filter(package__in=local_packages).values_list(
388
- "package__filename", flat=True
388
+ "has_provenance",
389
389
  )
390
390
  local_releases = {
391
391
  p["filename"]: {
@@ -394,7 +394,7 @@ class SimpleView(PackageUploadMixin, ViewSet):
394
394
  "upload_time": p["repo_added_time"],
395
395
  "provenance": (
396
396
  self.get_provenance_url(normalized, p["version"], p["filename"])
397
- if p["filename"] in provenances
397
+ if p["has_provenance"]
398
398
  else None
399
399
  ),
400
400
  }
pulp_python/app/utils.py CHANGED
@@ -11,7 +11,7 @@ from datetime import timezone
11
11
  import pkginfo
12
12
  from aiohttp.client_exceptions import ClientError
13
13
  from django.conf import settings
14
- from django.db.models import OuterRef, Subquery
14
+ from django.db.models import F, FilteredRelation, Q
15
15
  from django.db.utils import IntegrityError
16
16
  from jinja2 import Template
17
17
  from packaging.requirements import Requirement
@@ -20,7 +20,7 @@ from packaging.version import InvalidVersion, parse
20
20
  from pypi_simple import ACCEPT_JSON_PREFERRED, ProjectPage
21
21
 
22
22
  from pulpcore.plugin.exceptions import TimeoutException
23
- from pulpcore.plugin.models import Artifact, Remote, RepositoryContent
23
+ from pulpcore.plugin.models import Artifact, Remote
24
24
  from pulpcore.plugin.util import get_domain
25
25
 
26
26
  log = logging.getLogger(__name__)
@@ -375,12 +375,16 @@ def python_content_to_json(
375
375
  Returns None if version is specified but not found within content_query
376
376
  """
377
377
  if repository_version:
378
- repo_added_subquery = RepositoryContent.objects.filter(
379
- content_id=OuterRef("pk"),
380
- repository=repository_version.repository,
381
- version_removed=None,
382
- ).values("pulp_created")[:1]
383
- content_query = content_query.annotate(repo_added_time=Subquery(repo_added_subquery))
378
+ content_query = content_query.annotate(
379
+ active_membership=FilteredRelation(
380
+ "version_memberships",
381
+ condition=Q(
382
+ version_memberships__repository=repository_version.repository,
383
+ version_memberships__version_removed=None,
384
+ ),
385
+ ),
386
+ repo_added_time=F("active_membership__pulp_created"),
387
+ )
384
388
  full_metadata = {"last_serial": 0} # For now the serial field isn't supported by Pulp
385
389
  latest_content = latest_content_version(content_query, version)
386
390
  if not latest_content:
@@ -260,7 +260,7 @@ class PythonBlocklistEntryViewSet(
260
260
  parent_lookup_kwargs = {"repository_pk": "repository__pk"}
261
261
  serializer_class = python_serializers.PythonBlocklistEntrySerializer
262
262
  queryset = python_models.PythonBlocklistEntry.objects.all()
263
- filterset_fields = {"name": ["exact"], "version": ["exact"], "filename": ["exact"]}
263
+ filterset_fields = {"name": ["exact"], "version": ["exact", "isnull"], "filename": ["exact"]}
264
264
  ordering = ("-pulp_created",)
265
265
 
266
266
  DEFAULT_ACCESS_POLICY = {
@@ -174,7 +174,10 @@ def test_domain_content_replication(
174
174
  pulpcore_bindings.UpstreamPulpsApi, upstream_pulp_body, pulp_domain=replica_domain.name
175
175
  )
176
176
  # Run the replicate task and assert that all tasks successfully complete.
177
- response = pulpcore_bindings.UpstreamPulpsApi.replicate(upstream_pulp.pulp_href)
177
+ response = pulpcore_bindings.UpstreamPulpsApi.replicate(
178
+ upstream_pulp.pulp_href,
179
+ upstream_pulp_replicate=pulpcore_bindings.module.UpstreamPulpReplicate(),
180
+ )
178
181
  monitor_task_group(response.task_group)
179
182
 
180
183
  counts = {}
@@ -198,7 +201,10 @@ def test_domain_content_replication(
198
201
  body = {"remote": remote.pulp_href}
199
202
  monitor_task(python_bindings.RepositoriesPythonApi.sync(repo.pulp_href, body).task)
200
203
 
201
- response = pulpcore_bindings.UpstreamPulpsApi.replicate(upstream_pulp.pulp_href)
204
+ response = pulpcore_bindings.UpstreamPulpsApi.replicate(
205
+ upstream_pulp.pulp_href,
206
+ upstream_pulp_replicate=pulpcore_bindings.module.UpstreamPulpReplicate(),
207
+ )
202
208
  monitor_task_group(response.task_group)
203
209
 
204
210
  response = python_bindings.ContentPackagesApi.list(pulp_domain=replica_domain.name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulp-python
3
- Version: 3.30.1
3
+ Version: 3.30.3
4
4
  Summary: pulp-python plugin for the Pulp Project
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  Project-URL: Homepage, https://pulpproject.org
@@ -1,6 +1,6 @@
1
1
  pulp_python/__init__.py,sha256=GIuTLoBTc-07dSLJUh8xrZPRz8x-jJ61pfR0J1IjnzI,65
2
2
  pulp_python/pytest_plugin.py,sha256=LNnLjOkeEu2X4gJi614bHVmbsHyEwooHYIeecr96Qy4,8606
3
- pulp_python/app/__init__.py,sha256=kvIZAie_YepDZxtZCUo9YVSjAZXhIjWL7sq7aSI88L8,2490
3
+ pulp_python/app/__init__.py,sha256=VKkMV6VGzjAXuAn4JdLyxxMWYfMBI9VZcsviliiedEU,2490
4
4
  pulp_python/app/global_access_conditions.py,sha256=MZJtyoVsr-4hRaty6mKDqh3caOHd5UKJjEWLV2crOLs,1080
5
5
  pulp_python/app/modelresource.py,sha256=4SFAdqk6lozi_cZz4uqDIqhqPAZF-7l5jJwPn-xGZFs,1249
6
6
  pulp_python/app/models.py,sha256=Y7MDTl2nKz1dz2S4KQIQQ4oWcYgBA4TyDVxJGBYPHY4,17705
@@ -9,8 +9,8 @@ pulp_python/app/replica.py,sha256=qiWRP7tM_v4yP_XLIQfumfGolru-Jt6ZA0KVb-9g2cA,18
9
9
  pulp_python/app/serializers.py,sha256=Wg83g7LE9Qkf1S7hkkvG2_EJUi7D12l8UyCA1wmwf-I,33819
10
10
  pulp_python/app/settings.py,sha256=Cyc_p6U0HQjKpyrRL6JFrK3R7RMQJ9MAgNMJCfzPEiA,255
11
11
  pulp_python/app/urls.py,sha256=M2xjQ0j47BwQVpi75QCa5eUnQDcroKv3Cee7UrQ3QcA,1387
12
- pulp_python/app/utils.py,sha256=f9sCzZ58Sf7EBNqzBG0NBGtWE6gE2eIcnoSTAhdVIIg,27303
13
- pulp_python/app/viewsets.py,sha256=EyeuNNvklB74tSyL4MRfTnh4a5KVv2kUPgmeTUd6oSY,34209
12
+ pulp_python/app/utils.py,sha256=aFBd0llndGiBb6VlvoOvGkD3G3ciWyQierykpqxue_8,27386
13
+ pulp_python/app/viewsets.py,sha256=yN1gHaT9vosqTbEP6emyMzoitliTzeHZTEqBVyn_2vA,34219
14
14
  pulp_python/app/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  pulp_python/app/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  pulp_python/app/management/commands/repair-python-metadata.py,sha256=knvTPcPwyfgCH0-KNNCK1Mj0mQKzXUdYEwo-v6F94XU,4548
@@ -40,7 +40,7 @@ pulp_python/app/migrations/0022_pythonblocklistentry.py,sha256=EbtjZuN65myTAHVWr
40
40
  pulp_python/app/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  pulp_python/app/pypi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  pulp_python/app/pypi/serializers.py,sha256=rE0Cci2IMg4NbNWlVdo-8zPaJCAUq2Re57q_T3jMt0Y,5030
43
- pulp_python/app/pypi/views.py,sha256=D2lsHijKp3ZJemt-iwWxjJEin5rAkc0pZzi9kZyQgwk,21651
43
+ pulp_python/app/pypi/views.py,sha256=F55Zp4GPAQDVk936Szu2ECge8p1-5A160iqzrMDTZGc,21668
44
44
  pulp_python/app/tasks/__init__.py,sha256=lTFpVvpDKbqv9RC0b2RYU8Bo6svDjrA-djt16pADFr8,284
45
45
  pulp_python/app/tasks/publish.py,sha256=bjsJzqJbLu7TF5rLb-UsZMmlNnc_LKw-sdHX9Gcatbw,4334
46
46
  pulp_python/app/tasks/repair.py,sha256=5InzdbjW8y3AC4Vj2PsNLm3wGGTr8D3LcfPw_WA2Fks,12257
@@ -62,7 +62,7 @@ pulp_python/tests/functional/api/test_consume_content.py,sha256=-7b6KOrIT3NLSUaf
62
62
  pulp_python/tests/functional/api/test_crud_content_unit.py,sha256=R5Gvl4ZjW1eQHmrbqsR0zfzKANBxEKwlr_lugHir7Kk,13794
63
63
  pulp_python/tests/functional/api/test_crud_publications.py,sha256=3cuSDC9C9M1opt0lh5ObGj8t7gq5jUW-RWj6MrA4Teo,5647
64
64
  pulp_python/tests/functional/api/test_crud_remotes.py,sha256=clFFhgG5udyKzWOLwxpmwjhiVz8r5JEPAQHkztcAf9w,5812
65
- pulp_python/tests/functional/api/test_domains.py,sha256=BnWBwid_RA0xenBBHwvkT5_23RPe19DjQCICdMWad3w,10227
65
+ pulp_python/tests/functional/api/test_domains.py,sha256=uEA7dIBXaXah3WQ6g6xSIjdXOR_hrsQnSFrfbdtz8bg,10421
66
66
  pulp_python/tests/functional/api/test_download_content.py,sha256=5IuaHXyLakPkjm5sLTxtTl7Dq0yl7N36HpObnIa0Sks,4950
67
67
  pulp_python/tests/functional/api/test_export_import.py,sha256=rHns9wdaeP-vtfW_qoGHU9EVuJ4YuWE0-rjl_8otAgU,4530
68
68
  pulp_python/tests/functional/api/test_full_mirror.py,sha256=eU5HzgBBFOnX1q4m8ELx-t-I3U4TWXL-LNrlc2BcWVc,12045
@@ -77,9 +77,9 @@ pulp_python/tests/functional/assets/shelf-reader-0.1.tar.gz.publish.attestation,
77
77
  pulp_python/tests/functional/assets/shelf_reader-0.1-py2-none-any.whl.publish.attestation,sha256=muTQ8dqYSSdx76DlaPjB1REcNIS-aak-Na0TkASxu8M,10426
78
78
  pulp_python/tests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
79
  pulp_python/tests/unit/test_models.py,sha256=TBI0yKsrdbnJSPeBFfxSqhXK7zaNvR6qg5JehGH3Pds,229
80
- pulp_python-3.30.1.dist-info/licenses/LICENSE,sha256=2ylvL381vKOhdO-w6zkrOxe9lLNBhRQpo9_0EbHC_HM,18046
81
- pulp_python-3.30.1.dist-info/METADATA,sha256=BcaJBgi3HQekc7OK4Ub3IBxMf5q42FQJDfnfRvQbevY,1744
82
- pulp_python-3.30.1.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
83
- pulp_python-3.30.1.dist-info/entry_points.txt,sha256=HvqLEXjw_dS5jqAwnE5JiRZFE6f-y5SRtitKLPml2To,115
84
- pulp_python-3.30.1.dist-info/top_level.txt,sha256=X0hXgXc_bpbiKqVrkt8jD5_QEiQviKbHDwveQcOcJjo,12
85
- pulp_python-3.30.1.dist-info/RECORD,,
80
+ pulp_python-3.30.3.dist-info/licenses/LICENSE,sha256=2ylvL381vKOhdO-w6zkrOxe9lLNBhRQpo9_0EbHC_HM,18046
81
+ pulp_python-3.30.3.dist-info/METADATA,sha256=O3QRZ0GzgXIs45OgII_NKjTkSFVYoo3xmEP3xE_hazc,1744
82
+ pulp_python-3.30.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
83
+ pulp_python-3.30.3.dist-info/entry_points.txt,sha256=HvqLEXjw_dS5jqAwnE5JiRZFE6f-y5SRtitKLPml2To,115
84
+ pulp_python-3.30.3.dist-info/top_level.txt,sha256=X0hXgXc_bpbiKqVrkt8jD5_QEiQviKbHDwveQcOcJjo,12
85
+ pulp_python-3.30.3.dist-info/RECORD,,