wagtail 6.4.1__py3-none-any.whl → 6.4.2__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.
@@ -427,6 +427,7 @@ class ListBlock(Block):
427
427
  child_block = kwargs.get("child_block")
428
428
  if isinstance(child_block, Block):
429
429
  block_id = lookup.add_block(child_block)
430
+ kwargs = kwargs.copy() # avoid mutating the original kwargs stored in self._constructor_args
430
431
  kwargs["child_block"] = block_id
431
432
 
432
433
  return path, args, kwargs
@@ -552,15 +552,39 @@ class TestFormsSubmissionsList(WagtailTestUtils, TestCase):
552
552
  self.assertEqual(len(response.context["data_rows"]), 1)
553
553
 
554
554
  def test_list_submissions_filtering_range(self):
555
- response = self.client.get(
556
- reverse("wagtailforms:list_submissions", args=(self.form_page.id,)),
557
- {"date_from": "12/31/2013", "date_to": "01/02/2014"},
558
- )
555
+ url = reverse("wagtailforms:list_submissions", args=(self.form_page.id,))
556
+ params = {"date_from": "12/31/2013", "date_to": "01/02/2014"}
557
+ response = self.client.get(url, params)
559
558
 
560
559
  # Check response
561
560
  self.assertEqual(response.status_code, 200)
562
561
  self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
563
562
  self.assertEqual(len(response.context["data_rows"]), 1)
563
+ soup = self.get_soup(response.content)
564
+ next_input = soup.select_one('input[name="next"]')
565
+ self.assertIsNotNone(next_input)
566
+ self.assertEqual(next_input["value"], f"{url}?{urlencode(params)}")
567
+
568
+ def test_list_submissions_filtering_results(self):
569
+ index_url = reverse("wagtailforms:list_submissions", args=(self.form_page.id,))
570
+ results_url = reverse(
571
+ "wagtailforms:list_submissions_results",
572
+ args=(self.form_page.id,),
573
+ )
574
+ params = {"date_from": "12/31/2013", "date_to": "01/02/2014"}
575
+ response = self.client.get(results_url, params)
576
+
577
+ # Check response
578
+ self.assertEqual(response.status_code, 200)
579
+ self.assertTemplateNotUsed(response, "wagtailforms/submissions_index.html")
580
+ self.assertTemplateUsed(response, "wagtailforms/list_submissions.html")
581
+ self.assertEqual(len(response.context["data_rows"]), 1)
582
+ soup = self.get_soup(response.content)
583
+ next_input = soup.select_one('input[name="next"]')
584
+ self.assertIsNotNone(next_input)
585
+ # The next URL should point to the index page (instead of results page)
586
+ # with the same query params to preserve the filter
587
+ self.assertEqual(next_input["value"], f"{index_url}?{urlencode(params)}")
564
588
 
565
589
  def test_list_submissions_pagination(self):
566
590
  self.make_list_submissions()
@@ -363,5 +363,5 @@ class SubmissionsListView(SpreadsheetExportMixin, BaseListingView):
363
363
  }
364
364
  )
365
365
 
366
- context["next_url"] = self.request.get_full_path()
366
+ context["next_url"] = f"{self.get_index_url()}?{self.request.GET.urlencode()}"
367
367
  return context
File without changes
@@ -48,6 +48,7 @@ from django.utils import translation as translation
48
48
  from django.utils.cache import patch_cache_control
49
49
  from django.utils.encoding import force_bytes, force_str
50
50
  from django.utils.functional import Promise, cached_property
51
+ from django.utils.log import log_response
51
52
  from django.utils.module_loading import import_string
52
53
  from django.utils.text import capfirst, slugify
53
54
  from django.utils.translation import gettext_lazy as _
@@ -2174,13 +2175,15 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
2174
2175
  """
2175
2176
  allowed_methods = self.allowed_http_method_names()
2176
2177
  if request.method not in allowed_methods:
2177
- logger.warning(
2178
+ response = HttpResponseNotAllowed(allowed_methods)
2179
+ log_response(
2178
2180
  "Method Not Allowed (%s): %s",
2179
2181
  request.method,
2180
2182
  request.path,
2181
- extra={"status_code": 405, "request": request},
2183
+ request=request,
2184
+ response=response,
2182
2185
  )
2183
- return HttpResponseNotAllowed(allowed_methods)
2186
+ return response
2184
2187
 
2185
2188
  def handle_options_request(self, request, *args, **kwargs):
2186
2189
  """
wagtail/test/settings.py CHANGED
@@ -49,8 +49,12 @@ if DATABASES["default"]["ENGINE"] == "sql_server.pyodbc":
49
49
 
50
50
  # explicitly set charset / collation to utf8 on mysql
51
51
  if DATABASES["default"]["ENGINE"] == "django.db.backends.mysql":
52
- DATABASES["default"]["TEST"]["CHARSET"] = "utf8"
53
- DATABASES["default"]["TEST"]["COLLATION"] = "utf8_general_ci"
52
+ DATABASES["default"]["OPTIONS"] = {
53
+ "charset": "utf8mb4",
54
+ "collation": "utf8mb4_general_ci",
55
+ }
56
+ DATABASES["default"]["TEST"]["CHARSET"] = "utf8mb4"
57
+ DATABASES["default"]["TEST"]["COLLATION"] = "utf8mb4_general_ci"
54
58
 
55
59
 
56
60
  SECRET_KEY = "not needed"
@@ -979,6 +979,54 @@ class TestDeconstructStreamFieldWithLookup(TestCase):
979
979
  },
980
980
  )
981
981
 
982
+ def test_deconstruct_with_listblock_with_child_block_kwarg_idempotence(self):
983
+ # See https://github.com/wagtail/wagtail/issues/13137. When a ListBlock is defined with
984
+ # a child_block keyword argument, its deconstruct_with_lookup method inserts that child
985
+ # block into the lookup to obtain an ID, and returns that ID as the child_block kwarg
986
+ # in its result. However, an implementation bug meant that this was mutating the kwargs
987
+ # dict stored in the block's _constructor_args attribute. As a result, subsequent calls
988
+ # to deconstruct_with_lookup (which happen routinely during makemigrations) would
989
+ # encounter the ID in child_block, leave it alone (because it isn't a block object as
990
+ # expected), and return that ID in the result without adding it to the lookup, messing
991
+ # up the ID sequence in the process.
992
+ field = StreamField(
993
+ [
994
+ ("heading", blocks.CharBlock(required=True)),
995
+ (
996
+ "bullets",
997
+ blocks.ListBlock(child_block=blocks.CharBlock(required=False)),
998
+ ),
999
+ ],
1000
+ blank=True,
1001
+ )
1002
+ field.set_attributes_from_name("body")
1003
+
1004
+ expected_args = [
1005
+ [
1006
+ ("heading", 0),
1007
+ ("bullets", 2),
1008
+ ]
1009
+ ]
1010
+ expected_kwargs = {
1011
+ "blank": True,
1012
+ "block_lookup": {
1013
+ 0: ("wagtail.blocks.CharBlock", (), {"required": True}),
1014
+ 1: ("wagtail.blocks.CharBlock", (), {"required": False}),
1015
+ 2: ("wagtail.blocks.ListBlock", (), {"child_block": 1}),
1016
+ },
1017
+ }
1018
+ name, path, args, kwargs = field.deconstruct()
1019
+ self.assertEqual(name, "body")
1020
+ self.assertEqual(path, "wagtail.fields.StreamField")
1021
+ self.assertEqual(kwargs, expected_kwargs)
1022
+ self.assertEqual(args, expected_args)
1023
+
1024
+ name, path, args, kwargs = field.deconstruct()
1025
+ self.assertEqual(name, "body")
1026
+ self.assertEqual(path, "wagtail.fields.StreamField")
1027
+ self.assertEqual(kwargs, expected_kwargs)
1028
+ self.assertEqual(args, expected_args)
1029
+
982
1030
  def test_deconstruct_with_listblock_subclass(self):
983
1031
  # See https://github.com/wagtail/wagtail/issues/12164 - unlike StructBlock and StreamBlock,
984
1032
  # ListBlock's deconstruct method doesn't reduce subclasses to the base ListBlock class.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: wagtail
3
- Version: 6.4.1
3
+ Version: 6.4.2
4
4
  Summary: A Django content management system.
5
5
  Home-page: https://wagtail.org/
6
6
  Author: Wagtail core team + contributors
@@ -37,23 +37,16 @@ Requires-Dist: django-taggit<7,>=5.0
37
37
  Requires-Dist: django-treebeard<5.0,>=4.5.1
38
38
  Requires-Dist: djangorestframework<4.0,>=3.15.1
39
39
  Requires-Dist: django-filter>=23.3
40
- Requires-Dist: draftjs-exporter<6.0,>=2.1.5
40
+ Requires-Dist: draftjs_exporter<6.0,>=2.1.5
41
41
  Requires-Dist: Pillow<12.0.0,>=9.1.0
42
42
  Requires-Dist: beautifulsoup4<5,>=4.8
43
- Requires-Dist: Willow[heif]<2,>=1.8.0
43
+ Requires-Dist: Willow[heif]<2,>=1.10.0
44
44
  Requires-Dist: requests<3.0,>=2.11.1
45
45
  Requires-Dist: openpyxl<4.0,>=3.0.10
46
46
  Requires-Dist: anyascii>=0.1.5
47
47
  Requires-Dist: telepath<1,>=0.3.1
48
48
  Requires-Dist: laces<0.2,>=0.1
49
49
  Requires-Dist: django-tasks<0.7,>=0.6.1
50
- Provides-Extra: docs
51
- Requires-Dist: pyenchant<4,>=3.1.1; extra == "docs"
52
- Requires-Dist: sphinxcontrib-spelling<8,>=7; extra == "docs"
53
- Requires-Dist: Sphinx>=7.3; extra == "docs"
54
- Requires-Dist: sphinx-autobuild>=0.6.0; extra == "docs"
55
- Requires-Dist: sphinx-wagtail-theme==6.5.0; extra == "docs"
56
- Requires-Dist: myst-parser==2.0.0; extra == "docs"
57
50
  Provides-Extra: testing
58
51
  Requires-Dist: python-dateutil>=2.7; extra == "testing"
59
52
  Requires-Dist: Jinja2<3.2,>=3.0; extra == "testing"
@@ -71,6 +64,25 @@ Requires-Dist: djhtml==3.0.6; extra == "testing"
71
64
  Requires-Dist: polib<2.0,>=1.1; extra == "testing"
72
65
  Requires-Dist: factory-boy>=3.2; extra == "testing"
73
66
  Requires-Dist: tblib<3.0,>=2.0; extra == "testing"
67
+ Provides-Extra: docs
68
+ Requires-Dist: pyenchant<4,>=3.1.1; extra == "docs"
69
+ Requires-Dist: sphinxcontrib-spelling<8,>=7; extra == "docs"
70
+ Requires-Dist: Sphinx>=7.3; extra == "docs"
71
+ Requires-Dist: sphinx-autobuild>=0.6.0; extra == "docs"
72
+ Requires-Dist: sphinx-wagtail-theme==6.5.0; extra == "docs"
73
+ Requires-Dist: myst_parser==2.0.0; extra == "docs"
74
+ Dynamic: author
75
+ Dynamic: author-email
76
+ Dynamic: classifier
77
+ Dynamic: description
78
+ Dynamic: home-page
79
+ Dynamic: license
80
+ Dynamic: license-file
81
+ Dynamic: project-url
82
+ Dynamic: provides-extra
83
+ Dynamic: requires-dist
84
+ Dynamic: requires-python
85
+ Dynamic: summary
74
86
 
75
87
  Wagtail is an open source content management system built on Django, with a strong community and commercial support. It’s focused on user experience, and offers precise control for designers and developers.
76
88
 
@@ -1,4 +1,4 @@
1
- wagtail/__init__.py,sha256=cKkoT7QEBp788U7c_1ydX2H72WezJwcfjjjuDM6xsQ0,724
1
+ wagtail/__init__.py,sha256=6kAC5GDpHXRt2XNe1QfIMvT2viZuqmBiGFudQHszaeU,724
2
2
  wagtail/apps.py,sha256=38kXTdHoQzFnpUqDNxFpsqn2dut4V0u9rLOkhqCoYkc,713
3
3
  wagtail/compat.py,sha256=kK3I3oWKRatDu62zrZitqtLcxW5eVXg0Nnc5f_9nJEk,838
4
4
  wagtail/coreutils.py,sha256=8wQC7LCRJ3dCILhpAsODCDCxlU0x--6UXDVX4Tx3gnQ,20417
@@ -387,7 +387,7 @@ wagtail/admin/static/wagtailadmin/js/chooser-modal.js,sha256=xsI0wn2M1JTtvlIPZ2g
387
387
  wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js,sha256=0myTII_jGu4g320xO_a9DVtKNoNWVetFmJYdg4khxYg,1589
388
388
  wagtail/admin/static/wagtailadmin/js/chooser-widget.js,sha256=6QeU2LKqS3m9bYTd6MqNrSSgM0NeuRu1xK7ZxKff8-U,1546
389
389
  wagtail/admin/static/wagtailadmin/js/comments.js,sha256=zhwZWIsExywGVsNJyNxp_1K0w2XOalECzT-hqMMY0h8,52907
390
- wagtail/admin/static/wagtailadmin/js/core.js,sha256=n7O7NmQWzNJSAv2kdxPoeCrRx_NwztN1Ej9hlhWoFVk,670561
390
+ wagtail/admin/static/wagtailadmin/js/core.js,sha256=4H6sO1tcgo71REE3HaFolUhcLNZRfwXm0inxqo-uOFw,670565
391
391
  wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt,sha256=sKbCnxKnzkZQ7Id26iMCn_-jm0zMDH0HG0Arzopv7og,452
392
392
  wagtail/admin/static/wagtailadmin/js/date-time-chooser.js,sha256=3hETl9qsULtkBwcnuZRFLahg4YggsY0xUeDD6SZUEYw,3376
393
393
  wagtail/admin/static/wagtailadmin/js/draftail.js,sha256=IB8bIrrGw6Za5HAAIi_DgSaU1LWaHi6oa01RWL5y9EE,294815
@@ -1040,7 +1040,7 @@ wagtail/blocks/__init__.py,sha256=VjRA2jnSMItNEqkMGtYQxFHzoefy8QbqTysjlFHnxpU,31
1040
1040
  wagtail/blocks/base.py,sha256=bnwGXbY4untnGdvuDcti720ekSuaBktqjOPVev62xGg,32714
1041
1041
  wagtail/blocks/definition_lookup.py,sha256=JkSwFcqEkavq-M6kWNfeDZtvIXnQJ58QT2FeaKrFPEA,3274
1042
1042
  wagtail/blocks/field_block.py,sha256=t9hdmfCvedAtJKzKzlx6b2_0-9Xc4tE5xN6p9dB3-20,32671
1043
- wagtail/blocks/list_block.py,sha256=n3PXsnljlrEUrBu6MMK-uw1QAOziA_Ndp7rUzdN4LWI,18524
1043
+ wagtail/blocks/list_block.py,sha256=zqxCXaBZQCPRHiQnNLccPXr7CX1jFnpPAEW5iXjQAQY,18638
1044
1044
  wagtail/blocks/static_block.py,sha256=3XXU8AKEnazLaiCJX4BMMdaJd9B6LjB2BovtUbmhK-M,1914
1045
1045
  wagtail/blocks/stream_block.py,sha256=-IPO6fnHeb7OF0PO9PmUQ-LxUBeAdi9bpTCzCvRLO9g,32606
1046
1046
  wagtail/blocks/struct_block.py,sha256=-wXvi3AlkksrZbU9XkXQTaAhTUgT-6cs3xGacb1chs4,16380
@@ -1056,7 +1056,7 @@ wagtail/contrib/forms/models.py,sha256=IqLRh9a9W0hDsO2HUgwfAOUzKWqeaTMvP-KT8VLWV
1056
1056
  wagtail/contrib/forms/panels.py,sha256=zI3bFM1X5iT_fnxQUe5BWWN5iQKm6tEFEiaFhNRZcwk,1556
1057
1057
  wagtail/contrib/forms/urls.py,sha256=VZ4LDq6SkdEi3iXL7zoxDRSNZeGS5ZSeiNUsfqZ-nOI,776
1058
1058
  wagtail/contrib/forms/utils.py,sha256=Gu3WS-X37KQeDuHZliEwkhHJaqDgUwF1ObuVp3ai2fM,1279
1059
- wagtail/contrib/forms/views.py,sha256=xOSyAMn0CpGpDWAMMlaVK4vBaJIzLBUpQlMikwaB1zU,13355
1059
+ wagtail/contrib/forms/views.py,sha256=-pBvZObLNKdwo7Hq5TiAXvrkstba0kKpm3-hjG3VZ18,13383
1060
1060
  wagtail/contrib/forms/wagtail_hooks.py,sha256=VbHWejKs7Pp-KXtrcIqWOS476hpK9UuWBn1XF8qLmug,876
1061
1061
  wagtail/contrib/forms/locale/af/LC_MESSAGES/django.mo,sha256=IT4kQ2iXzYtsLiFZcjhqZdbNqnigtbo1oWilPNx88L0,455
1062
1062
  wagtail/contrib/forms/locale/af/LC_MESSAGES/django.po,sha256=2560TzbawN8m3PHnxOpsgzNyovC3r5v9VE_0SB2-rwY,667
@@ -1190,7 +1190,7 @@ wagtail/contrib/forms/templates/wagtailforms/panels/form_responses_panel.html,sh
1190
1190
  wagtail/contrib/forms/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1191
1191
  wagtail/contrib/forms/tests/test_forms.py,sha256=7tRUwJA2j9xzr28NpRC9hDYeOEfR1VTmBCPlny7UPVw,13634
1192
1192
  wagtail/contrib/forms/tests/test_models.py,sha256=lcifi_nJHHD9toYVtIY3P-zh-rdCTsLQTgxvAyFKbMM,32465
1193
- wagtail/contrib/forms/tests/test_views.py,sha256=XA5a7eGtvEayt8nJxLGKWqHV81kkwxA0-UpYXEGVal8,84196
1193
+ wagtail/contrib/forms/tests/test_views.py,sha256=x8HSGzJHGB6hwGd5tyPuOTc1uYxabXMVhDmRCppVvPE,85504
1194
1194
  wagtail/contrib/forms/tests/utils.py,sha256=OESefxdqGRgL1lDItVPSFNw_FJNB4X0PvozdvAhrpkc,6043
1195
1195
  wagtail/contrib/frontend_cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1196
1196
  wagtail/contrib/frontend_cache/apps.py,sha256=y-TyHADOpdCrIQ7zfnVD6OOxjo28lnBhPJeBtjlPih4,407
@@ -3047,7 +3047,7 @@ wagtail/migrations/0092_alter_collectionviewrestriction_password_and_more.py,sha
3047
3047
  wagtail/migrations/0093_uploadedfile.py,sha256=wCiFE4yhM3LQVVcVgZmAd5VNlYn0Z3ff98Eflx6SIzc,1787
3048
3048
  wagtail/migrations/0094_alter_page_locale.py,sha256=FNbFTK6DbW2HD9M8BYF7ZwTHJWSD4N6y984rXIp56Wo,528
3049
3049
  wagtail/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3050
- wagtail/models/__init__.py,sha256=9DEpGmha593zJfyGMAB4V14aaixD1Fs-QTzlNzB6lOg,181483
3050
+ wagtail/models/__init__.py,sha256=gYjJGEOT_5y7eddLab1xCdkV5r9EviROnUiL7ohuczc,181559
3051
3051
  wagtail/models/audit_log.py,sha256=bzxNClPCxflh7gYjMPO-Fx5KkFbFchkTgk8lx4skfgE,12268
3052
3052
  wagtail/models/collections.py,sha256=fUjsvN-SF9mML1ZpCXyn97zSU9sXxTejobEHwImh-CE,242
3053
3053
  wagtail/models/copying.py,sha256=LfmaoYySiIcIQdUDHtSL3TvSt1Z3MjGbXK2dr_9yxG0,3909
@@ -3556,7 +3556,7 @@ wagtail/test/manage.py,sha256=JaihE2eqQFMxzd83WWPE4DLnZbzq0bqEkozWAbe-xn8,255
3556
3556
  wagtail/test/middleware.py,sha256=Tvt43O8iGOFvK1tpZFKHQndiJPO5AcrvzqrTzBjuTuY,1395
3557
3557
  wagtail/test/non_root_urls.py,sha256=ZWPGHRmWHmx2Ext6S_TONDj4ZHdBt5BNZoULON1nDlA,556
3558
3558
  wagtail/test/numberformat.py,sha256=FBKsX_92H97xHnb4Er5mAH2i3oFSorCQnKdGcjHlcgE,3771
3559
- wagtail/test/settings.py,sha256=7SdInlKbrArYMl2I_wmDrx7RybGCLI1hrKETmcgSl8Q,9749
3559
+ wagtail/test/settings.py,sha256=xb8uSrGnppkfApvnvV0w9C2wnaZh4VN_mOxOzu0njZc,9874
3560
3560
  wagtail/test/settings_ui.py,sha256=FtNeC3qofOBsdfNT2ES0CDtwPq8Kth1Ym_l0QM5ZspE,886
3561
3561
  wagtail/test/urls.py,sha256=OqO9tjttDsR04DFc5cPmVijFRnAJZiktLuUXSi8_Cok,2599
3562
3562
  wagtail/test/urls_multilang.py,sha256=Pfif5_J3mDcf-AJEADTsm2dfFTQQWOlLMZHdPg2P8eA,310
@@ -3802,7 +3802,7 @@ wagtail/tests/test_revision_model.py,sha256=dvW9fGG6-V2WeNWpsIm9fP3jtRmJ6wj6pgqM
3802
3802
  wagtail/tests/test_rich_text.py,sha256=bBTdI__z5QSq-Z3dPvGLUyHaodmi6mKMBl65dSrsJQw,17795
3803
3803
  wagtail/tests/test_signals.py,sha256=MTP1e3dEQLt-JbV41JRlIeCzx9-g6grAFtOJgpwsEFI,6122
3804
3804
  wagtail/tests/test_sites.py,sha256=syJCEPMHdKXfbxc_Vb7CH9ymuPVZiWDAae4JmJPmPx0,8488
3805
- wagtail/tests/test_streamfield.py,sha256=74JCqS8drDfqb_ARbPAuM_lOeTWbG_m9sVG0zGs6WWI,39637
3805
+ wagtail/tests/test_streamfield.py,sha256=gUr5CtIJlpFr6diW0vqPkjLZn3AN55GqiugD4FNBLDY,41837
3806
3806
  wagtail/tests/test_telepath.py,sha256=muiOryoRmkISEHVu9GPSrKJEVB_EvpOufhvuJF-HrTk,10374
3807
3807
  wagtail/tests/test_tests.py,sha256=BAWYYlrFls1rHsqRVsh_b9eW43t6MaXiswI-CkUI6fs,18272
3808
3808
  wagtail/tests/test_translatablemixin.py,sha256=bCHX65L-3SMtgXU7XEdG0NYV4G5-V93TzzHX24ubcl8,10283
@@ -4012,9 +4012,9 @@ wagtail/utils/urlpatterns.py,sha256=RDhVScxdm-RV4HSMjWElyrbEoTPsXu841_SKMgoFKtY,
4012
4012
  wagtail/utils/utils.py,sha256=nQhfy-fOiZfUFr67kTX4nF_2VVH7_MDtjTDOzZdpPTE,1407
4013
4013
  wagtail/utils/version.py,sha256=jYCDKIGJD3bZHTpgXMXu14oSBArQnf2WVU979D8V4b0,1552
4014
4014
  wagtail/utils/widgets.py,sha256=lQIheCRHFKR05Kih7fZjMTJE8_eFFhobJtwOulnwhv4,1797
4015
- wagtail-6.4.1.dist-info/LICENSE,sha256=0aiL7_RJ2YkOjscmRI7opwmuURrY6h8MR0B24nrdRQU,1512
4016
- wagtail-6.4.1.dist-info/METADATA,sha256=8dYc0cS8egmwHl5jft3boYIMy-GYiE1X4RFGkEGVBVw,3546
4017
- wagtail-6.4.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
4018
- wagtail-6.4.1.dist-info/entry_points.txt,sha256=R14Z0xKoufNcDaku0EWDKM-K8J4ap0EImO8C-df8HVM,53
4019
- wagtail-6.4.1.dist-info/top_level.txt,sha256=zcKgvuRTi0gSgVzJ1qMoERCwhQ_i0n9bkyxza3oh9as,8
4020
- wagtail-6.4.1.dist-info/RECORD,,
4015
+ wagtail-6.4.2.dist-info/licenses/LICENSE,sha256=0aiL7_RJ2YkOjscmRI7opwmuURrY6h8MR0B24nrdRQU,1512
4016
+ wagtail-6.4.2.dist-info/METADATA,sha256=_KSfjPskgPuasz3ELfB7-OKb8QReyFjFok6onZwvVjk,3794
4017
+ wagtail-6.4.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
4018
+ wagtail-6.4.2.dist-info/entry_points.txt,sha256=R14Z0xKoufNcDaku0EWDKM-K8J4ap0EImO8C-df8HVM,53
4019
+ wagtail-6.4.2.dist-info/top_level.txt,sha256=zcKgvuRTi0gSgVzJ1qMoERCwhQ_i0n9bkyxza3oh9as,8
4020
+ wagtail-6.4.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.1)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5