pulpcore 3.83.2__py3-none-any.whl → 3.85.0__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 pulpcore might be problematic. Click here for more details.

Files changed (169) hide show
  1. pulp_certguard/app/__init__.py +1 -1
  2. pulp_certguard/app/models.py +7 -26
  3. pulp_certguard/app/serializers.py +0 -2
  4. pulp_certguard/rhsm/__init__.py +4 -0
  5. pulp_certguard/rhsm/rhsm_check_path.py +198 -0
  6. pulp_certguard/tests/unit/certdata.py +249 -0
  7. pulp_certguard/tests/unit/test_rhsm_check_path.py +213 -0
  8. pulp_file/app/__init__.py +1 -1
  9. pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py +0 -20
  10. pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +1 -1
  11. pulpcore/app/apps.py +2 -12
  12. pulpcore/app/entrypoint.py +22 -22
  13. pulpcore/app/migrations/0001_squashed_0090_char_to_text_field.py +0 -95
  14. pulpcore/app/migrations/0091_systemid.py +1 -1
  15. pulpcore/app/migrations/0134_task_insert_trigger.py +81 -0
  16. pulpcore/app/migrations/0135_task_pulp_task_resources_index.py +25 -0
  17. pulp_file/app/migrations/0006_delete_filefilesystemexporter.py → pulpcore/app/migrations/0136_delete_basedistribution.py +3 -3
  18. pulpcore/app/migrations/0137_appstatus.py +33 -0
  19. pulpcore/app/migrations/0138_vulnerabilityreport.py +33 -0
  20. pulpcore/app/models/__init__.py +4 -1
  21. pulpcore/app/models/publication.py +0 -41
  22. pulpcore/app/models/status.py +145 -0
  23. pulpcore/app/models/task.py +8 -0
  24. pulpcore/app/models/vulnerability_report.py +34 -0
  25. pulpcore/app/serializers/__init__.py +1 -0
  26. pulpcore/app/serializers/content.py +13 -1
  27. pulpcore/app/serializers/repository.py +8 -1
  28. pulpcore/app/serializers/vulnerability_report.py +27 -0
  29. pulpcore/app/settings.py +13 -38
  30. pulpcore/app/tasks/__init__.py +2 -0
  31. pulpcore/app/tasks/purge.py +8 -5
  32. pulpcore/app/tasks/vulnerability_report.py +159 -0
  33. pulpcore/app/viewsets/__init__.py +1 -0
  34. pulpcore/app/viewsets/vulnerability_report.py +20 -0
  35. pulpcore/constants.py +8 -0
  36. pulpcore/content/__init__.py +23 -22
  37. pulpcore/content/handler.py +5 -2
  38. pulpcore/migrations.py +38 -11
  39. pulpcore/openapi/__init__.py +8 -0
  40. pulpcore/plugin/models/__init__.py +2 -0
  41. pulpcore/plugin/serializers/__init__.py +2 -0
  42. pulpcore/plugin/tasking.py +2 -0
  43. pulpcore/plugin/viewsets/__init__.py +2 -0
  44. pulpcore/pytest_plugin.py +21 -21
  45. pulpcore/tasking/entrypoint.py +12 -2
  46. pulpcore/tasking/tasks.py +5 -30
  47. pulpcore/tasking/worker.py +115 -74
  48. pulpcore/tests/functional/api/test_auth.py +18 -3
  49. pulpcore/tests/functional/api/test_login.py +62 -32
  50. pulpcore/tests/functional/api/test_openapi_schema.py +32 -15
  51. pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +23 -1
  52. pulpcore/tests/functional/api/using_plugin/test_proxy.py +1 -1
  53. pulpcore/tests/unit/content/test_heartbeat.py +11 -8
  54. pulpcore/tests/unit/test_vulnerability_report.py +74 -0
  55. {pulpcore-3.83.2.dist-info → pulpcore-3.85.0.dist-info}/METADATA +13 -18
  56. {pulpcore-3.83.2.dist-info → pulpcore-3.85.0.dist-info}/RECORD +60 -156
  57. pulp_certguard/app/utils.py +0 -28
  58. pulp_certguard/tests/unit/test_models.py +0 -9
  59. pulp_file/app/migrations/0001_initial.py +0 -59
  60. pulp_file/app/migrations/0002_file_related_names.py +0 -55
  61. pulp_file/app/migrations/0003_auto_20191014_1721.py +0 -18
  62. pulp_file/app/migrations/0004_filefilesystemexporter.py +0 -21
  63. pulp_file/app/migrations/0005_filerepository.py +0 -24
  64. pulp_file/app/migrations/0007_filefilesystemexporter.py +0 -25
  65. pulp_file/app/migrations/0008_add_manifest_field.py +0 -19
  66. pulp_file/app/migrations/0009_move_data_to_new_master_distribution_model.py +0 -77
  67. pulp_file/app/migrations/0010_auto_publish.py +0 -23
  68. pulp_file/app/migrations/0011_fix_auto_publish.py +0 -36
  69. pulp_file/app/migrations/0012_delete_filefilesystemexporter.py +0 -28
  70. pulp_file/app/migrations/0013_file_acs.py +0 -24
  71. pulp_file/app/migrations/0014_new_rbac_permissions.py +0 -33
  72. pulp_file/app/migrations/0015_allow_null_manifest.py +0 -23
  73. pulp_file/app/migrations/0016_add_domain.py +0 -25
  74. pulpcore/app/migrations/0001_initial.py +0 -451
  75. pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -18
  76. pulpcore/app/migrations/0003_remove_upload_completed.py +0 -17
  77. pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -45
  78. pulpcore/app/migrations/0005_progressreport_code.py +0 -19
  79. pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -18
  80. pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -19
  81. pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -44
  82. pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -17
  83. pulpcore/app/migrations/0010_pulp_fields.py +0 -570
  84. pulpcore/app/migrations/0011_relative_path.py +0 -28
  85. pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -31
  86. pulpcore/app/migrations/0013_repository_pulp_type.py +0 -18
  87. pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -17
  88. pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -33
  89. pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -68
  90. pulpcore/app/migrations/0017_remove_task_parent.py +0 -17
  91. pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -20
  92. pulpcore/app/migrations/0019_add_signing_service_model.py +0 -27
  93. pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -17
  94. pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -24
  95. pulpcore/app/migrations/0022_rename_last_version.py +0 -27
  96. pulpcore/app/migrations/0023_change_exporter_models.py +0 -82
  97. pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -19
  98. pulpcore/app/migrations/0025_task_parent_task.py +0 -19
  99. pulpcore/app/migrations/0026_task_group.py +0 -32
  100. pulpcore/app/migrations/0027_export_backend.py +0 -31
  101. pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -85
  102. pulpcore/app/migrations/0029_export_delete.py +0 -19
  103. pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -24
  104. pulpcore/app/migrations/0031_import_export_validate_params.py +0 -19
  105. pulpcore/app/migrations/0032_export_to_chunks.py +0 -27
  106. pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -18
  107. pulpcore/app/migrations/0034_groupprogressreport.py +0 -32
  108. pulpcore/app/migrations/0035_content_upstream_id.py +0 -18
  109. pulpcore/app/migrations/0036_unprotect_last_export.py +0 -19
  110. pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -28
  111. pulpcore/app/migrations/0038_repository_remote.py +0 -19
  112. pulpcore/app/migrations/0039_change_download_concurrency.py +0 -25
  113. pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -28
  114. pulpcore/app/migrations/0041_accesspolicy.py +0 -29
  115. pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -56
  116. pulpcore/app/migrations/0043_toc_attribute.py +0 -19
  117. pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -20
  118. pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -19
  119. pulpcore/app/migrations/0046_task__resource_job_id.py +0 -35
  120. pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -59
  121. pulpcore/app/migrations/0048_fips_checksums.py +0 -38
  122. pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -24
  123. pulpcore/app/migrations/0050_namespace_access_policies.py +0 -28
  124. pulpcore/app/migrations/0051_timeoutfields.py +0 -34
  125. pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -18
  126. pulpcore/app/migrations/0053_remote_headers.py +0 -19
  127. pulpcore/app/migrations/0054_add_public_key.py +0 -104
  128. pulpcore/app/migrations/0055_label.py +0 -31
  129. pulpcore/app/migrations/0056_remote_rate_limit.py +0 -18
  130. pulpcore/app/migrations/0057_add_label_indexes.py +0 -23
  131. pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -18
  132. pulpcore/app/migrations/0059_proxy_creds.py +0 -23
  133. pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -45
  134. pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -87
  135. pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -36
  136. pulpcore/app/migrations/0063_repository_retained_versions.py +0 -18
  137. pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -109
  138. pulpcore/app/migrations/0064_repository_user_hidden.py +0 -18
  139. pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -14
  140. pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -24
  141. pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -19
  142. pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -23
  143. pulpcore/app/migrations/0069_update_json_fields.py +0 -63
  144. pulpcore/app/migrations/0070_rename_retained_versions.py +0 -18
  145. pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -35
  146. pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -18
  147. pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -139
  148. pulpcore/app/migrations/0074_acs.py +0 -47
  149. pulpcore/app/migrations/0075_rbaccontentguard.py +0 -25
  150. pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -39
  151. pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -41
  152. pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -70
  153. pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -18
  154. pulpcore/app/migrations/0080_proxy_group_model.py +0 -37
  155. pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -59
  156. pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -17
  157. pulpcore/app/migrations/0083_alter_group_options.py +0 -17
  158. pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -17
  159. pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -26
  160. pulpcore/app/migrations/0086_task_json_fields.py +0 -77
  161. pulpcore/app/migrations/0087_taskschedule.py +0 -34
  162. pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -18
  163. pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -17
  164. pulpcore/app/migrations/0090_char_to_text_field.py +0 -79
  165. pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -35
  166. {pulpcore-3.83.2.dist-info → pulpcore-3.85.0.dist-info}/WHEEL +0 -0
  167. {pulpcore-3.83.2.dist-info → pulpcore-3.85.0.dist-info}/entry_points.txt +0 -0
  168. {pulpcore-3.83.2.dist-info → pulpcore-3.85.0.dist-info}/licenses/LICENSE +0 -0
  169. {pulpcore-3.83.2.dist-info → pulpcore-3.85.0.dist-info}/top_level.txt +0 -0
@@ -144,7 +144,7 @@ def test_sync_https_through_https_proxy(
144
144
  manifest_path=basic_manifest_path,
145
145
  policy="on_demand",
146
146
  proxy_url=https_proxy.proxy_url,
147
- tls_validation="false",
147
+ tls_validation=False,
148
148
  )
149
149
 
150
150
  _run_basic_sync_and_assert(file_bindings, monitor_task, remote_on_demand, file_repo)
@@ -5,29 +5,32 @@ from django.db.utils import InterfaceError, OperationalError
5
5
 
6
6
  from pulpcore.content import _heartbeat
7
7
  from pulpcore.content.handler import Handler
8
- from pulpcore.app.models import ContentAppStatus
8
+ from pulpcore.app.models.status import AppStatusManager
9
9
 
10
10
 
11
11
  class MockException(Exception):
12
12
  pass
13
13
 
14
14
 
15
+ @pytest.mark.parametrize("error_class", [InterfaceError, OperationalError])
15
16
  @pytest.mark.asyncio
16
- async def test_db_connection_interface_error(monkeypatch, settings):
17
+ async def test_db_connection_interface_error(monkeypatch, settings, error_class):
17
18
  """
18
19
  Test that if an InterfaceError or OperationalError is raised,
19
20
  Handler._reset_db_connection() is called
20
21
  """
21
22
 
22
- mock_aget_or_create = AsyncMock()
23
- mock_aget_or_create.side_effect = [InterfaceError(), OperationalError(), MockException()]
24
- monkeypatch.setattr(ContentAppStatus.objects, "aget_or_create", mock_aget_or_create)
23
+ mock_app_status = AsyncMock()
24
+ mock_app_status.asave_heartbeat.side_effect = [error_class(), error_class()]
25
+ mock_acreate = AsyncMock()
26
+ mock_acreate.return_value = mock_app_status
27
+ monkeypatch.setattr(AppStatusManager, "acreate", mock_acreate)
25
28
  mock_reset_db = Mock()
26
29
  monkeypatch.setattr(Handler, "_reset_db_connection", mock_reset_db)
27
30
  settings.CONTENT_APP_TTL = 1
28
31
 
29
- with pytest.raises(MockException):
32
+ with pytest.raises(SystemExit):
30
33
  await _heartbeat()
31
34
 
32
- mock_aget_or_create.assert_called()
33
- mock_reset_db.assert_has_calls([call(), call()])
35
+ mock_app_status.asave_heartbeat.assert_called()
36
+ mock_reset_db.assert_has_calls([call()])
@@ -0,0 +1,74 @@
1
+ import pytest
2
+
3
+ from unittest.mock import Mock, AsyncMock, patch
4
+
5
+ from pulpcore.app.tasks.vulnerability_report import VulnerabilityReportScanner
6
+ from pulpcore.constants import OSV_QUERY_URL
7
+
8
+
9
+ class TestVulnerabilityReportScanner:
10
+ """Test cases for VulnerabilityReportScanner class methods."""
11
+
12
+ @pytest.mark.asyncio
13
+ async def test_process_reports(self):
14
+ """Test _process_reports method with basic input data."""
15
+ mock_semaphore = AsyncMock()
16
+ mock_generator = AsyncMock()
17
+ mock_session = Mock()
18
+ scanner = VulnerabilityReportScanner(mock_semaphore, mock_generator, mock_session)
19
+
20
+ mock_content = Mock()
21
+ mock_repo_version = Mock()
22
+
23
+ repo_content_osv_data = {
24
+ "package": {"name": "requests", "ecosystem": "PyPI"},
25
+ "version": "2.28.0",
26
+ "content": mock_content,
27
+ "repo_version": mock_repo_version,
28
+ }
29
+ expected_vulns = [{"id": "GHSA-test-1234", "summary": "Test vulnerability"}]
30
+ vulnerability_response = {"vulns": expected_vulns}
31
+
32
+ with patch.object(scanner, "_query_osv_api", return_value=vulnerability_response):
33
+ # Mock the semaphore context manager
34
+ mock_semaphore.__aenter__ = AsyncMock()
35
+ mock_semaphore.__aexit__ = AsyncMock()
36
+
37
+ with patch.object(scanner.total_scanned, "aincrement", new_callable=AsyncMock):
38
+ vulns, content, repo_version = await scanner._process_reports(repo_content_osv_data)
39
+ assert vulns == expected_vulns
40
+ assert content == mock_content
41
+ assert repo_version == mock_repo_version
42
+
43
+ @pytest.mark.asyncio
44
+ async def test_query_osv_api_success(self):
45
+ """Test _query_osv_api method with successful response."""
46
+ mock_semaphore = AsyncMock()
47
+ mock_generator = AsyncMock()
48
+ scanner = VulnerabilityReportScanner(mock_semaphore, mock_generator)
49
+
50
+ osv_data = {"package": {"name": "requests", "ecosystem": "PyPI"}, "version": "2.25.0"}
51
+ expected_response = {
52
+ "vulns": [
53
+ {
54
+ "id": "GHSA-abcd-1234",
55
+ "summary": "Test vulnerability",
56
+ "details": "Detailed vulnerability description",
57
+ }
58
+ ]
59
+ }
60
+
61
+ # Mock the HTTP response
62
+ mock_response = AsyncMock()
63
+ mock_response.json.return_value = expected_response
64
+
65
+ # Mock the session's post method context manager
66
+ mock_post_cm = AsyncMock()
67
+ mock_post_cm.__aenter__.return_value = mock_response
68
+ mock_post_cm.__aexit__.return_value = None
69
+
70
+ with patch.object(scanner.session, "post", return_value=mock_post_cm) as mock_post:
71
+ result = await scanner._query_osv_api(osv_data)
72
+ assert result == expected_response
73
+ mock_post.assert_called_once_with(url=OSV_QUERY_URL, json=osv_data)
74
+ mock_response.json.assert_called_once()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.83.2
3
+ Version: 3.85.0
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  Project-URL: Homepage, https://pulpproject.org
@@ -14,54 +14,50 @@ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Framework :: Django
15
15
  Classifier: Programming Language :: Python
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.9
18
- Classifier: Programming Language :: Python :: 3.10
19
17
  Classifier: Programming Language :: Python :: 3.11
20
18
  Classifier: Programming Language :: Python :: 3.12
21
- Requires-Python: >=3.9
19
+ Requires-Python: >=3.11
22
20
  Description-Content-Type: text/markdown
23
21
  License-File: LICENSE
24
22
  Requires-Dist: aiodns<3.6,>=3.3.0
25
23
  Requires-Dist: aiofiles<=24.1.0,>=22.1
26
24
  Requires-Dist: aiohttp<3.13,>=3.8.3
27
25
  Requires-Dist: asyncio-throttle<=1.0.2,>=1.0
28
- Requires-Dist: async-timeout<4.0.4,>=4.0.3; python_version < "3.11"
29
26
  Requires-Dist: backoff<2.3,>=2.1.2
30
- Requires-Dist: click<8.2,>=8.1.0
31
- Requires-Dist: cryptography<46.0,>=38.0.1
27
+ Requires-Dist: click<8.3,>=8.1.0
28
+ Requires-Dist: cryptography<46.0,>=44.0.3
32
29
  Requires-Dist: Django~=4.2.0
33
30
  Requires-Dist: django-filter<=25.1,>=23.1
34
31
  Requires-Dist: django-guid<3.6,>=3.3.0
35
32
  Requires-Dist: django-import-export<3.4.0,>=2.9
36
33
  Requires-Dist: django-lifecycle<=1.2.4,>=1.0
37
- Requires-Dist: djangorestframework<=3.16.0,>=3.14.0
34
+ Requires-Dist: djangorestframework<=3.16.1,>=3.14.0
38
35
  Requires-Dist: djangorestframework-queryfields<=1.1.0,>=1.0
39
36
  Requires-Dist: drf-access-policy<1.5.1,>=1.1.2
40
37
  Requires-Dist: drf-nested-routers<=0.94.2,>=0.93.4
41
38
  Requires-Dist: drf-spectacular==0.27.2
42
39
  Requires-Dist: dynaconf<3.3.0,>=3.2.5
43
40
  Requires-Dist: gunicorn<23.1.0,>=22.0
44
- Requires-Dist: importlib-metadata<=6.0.1,>=6.0.1
45
41
  Requires-Dist: jinja2<=3.1.6,>=3.1
46
42
  Requires-Dist: json_stream<2.4,>=2.3.2
47
- Requires-Dist: jq<1.10.0,>=1.6.0
43
+ Requires-Dist: jq<1.11.0,>=1.6.0
48
44
  Requires-Dist: PyOpenSSL<26.0
49
- Requires-Dist: opentelemetry-api<1.35,>=1.27.0
50
- Requires-Dist: opentelemetry-sdk<1.35,>=1.27.0
51
- Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.35,>=1.27.0
45
+ Requires-Dist: opentelemetry-api<1.37,>=1.27.0
46
+ Requires-Dist: opentelemetry-sdk<1.37,>=1.27.0
47
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.37,>=1.27.0
52
48
  Requires-Dist: protobuf<6.0,>=4.21.1
53
- Requires-Dist: pulp-glue<0.35,>=0.28.0
49
+ Requires-Dist: pulp-glue<0.36,>=0.28.0
54
50
  Requires-Dist: pygtrie<=2.5.0,>=2.5
55
51
  Requires-Dist: psycopg[binary]<3.3,>=3.1.8
56
52
  Requires-Dist: pyparsing<3.3,>=3.1.0
57
53
  Requires-Dist: python-gnupg<=0.5.4,>=0.5
58
54
  Requires-Dist: PyYAML<6.1,>=5.1.1
59
- Requires-Dist: redis<5.3,>=4.3.0
55
+ Requires-Dist: redis<6.5,>=4.3.0
60
56
  Requires-Dist: tablib<3.6,>=3.5.0
61
57
  Requires-Dist: url-normalize<2.3,>=1.4.3
62
58
  Requires-Dist: uuid6<=2025.0.1,>=2023.5.2
63
59
  Requires-Dist: whitenoise<6.10.0,>=5.0
64
- Requires-Dist: yarl<1.21,>=1.8
60
+ Requires-Dist: yarl<1.21,>=1.9.1
65
61
  Provides-Extra: sftp
66
62
  Requires-Dist: django-storages[sftp]==1.14.6; extra == "sftp"
67
63
  Provides-Extra: s3
@@ -70,12 +66,11 @@ Provides-Extra: google
70
66
  Requires-Dist: django-storages[google]==1.14.6; extra == "google"
71
67
  Provides-Extra: azure
72
68
  Requires-Dist: django-storages[azure]==1.14.6; extra == "azure"
73
- Requires-Dist: azure-storage-blob<12.26.0; extra == "azure"
74
69
  Provides-Extra: prometheus
75
70
  Requires-Dist: django-prometheus; extra == "prometheus"
76
71
  Provides-Extra: kafka
77
72
  Requires-Dist: cloudevents==1.11.0; extra == "kafka"
78
- Requires-Dist: confluent-kafka<2.11.0,>=2.4.0; extra == "kafka"
73
+ Requires-Dist: confluent-kafka<2.12.0,>=2.4.0; extra == "kafka"
79
74
  Provides-Extra: diagnostics
80
75
  Requires-Dist: pyinstrument~=5.0; extra == "diagnostics"
81
76
  Requires-Dist: memray~=1.17; extra == "diagnostics"