plain.admin 0.14.1__tar.gz → 0.15.1__tar.gz

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 (91) hide show
  1. {plain_admin-0.14.1 → plain_admin-0.15.1}/.gitignore +0 -3
  2. {plain_admin-0.14.1 → plain_admin-0.15.1}/PKG-INFO +1 -1
  3. plain_admin-0.15.1/plain/admin/impersonate/urls.py +12 -0
  4. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/querystats/core.py +0 -1
  5. plain_admin-0.15.1/plain/admin/querystats/urls.py +11 -0
  6. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/urls.py +11 -11
  7. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/base.py +8 -1
  8. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/registry.py +4 -4
  9. {plain_admin-0.14.1 → plain_admin-0.15.1}/pyproject.toml +1 -5
  10. plain_admin-0.15.1/tests/app/urls.py +24 -0
  11. plain_admin-0.15.1/tests/app/users/migrations/0001_initial.py +21 -0
  12. plain_admin-0.15.1/tests/app/users/migrations/__init__.py +0 -0
  13. {plain_admin-0.14.1 → plain_admin-0.15.1}/tests/app/users/models.py +1 -0
  14. plain_admin-0.14.1/plain/admin/impersonate/urls.py +0 -10
  15. plain_admin-0.14.1/plain/admin/querystats/urls.py +0 -9
  16. plain_admin-0.14.1/tests/app/urls.py +0 -22
  17. plain_admin-0.14.1/uv.lock +0 -378
  18. {plain_admin-0.14.1 → plain_admin-0.15.1}/LICENSE +0 -0
  19. {plain_admin-0.14.1 → plain_admin-0.15.1}/README.md +0 -0
  20. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/README.md +0 -0
  21. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/__init__.py +0 -0
  22. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/admin.css +0 -0
  23. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/admin.js +0 -0
  24. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/chart.js +0 -0
  25. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/jquery-3.6.1.slim.min.js +0 -0
  26. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/list.js +0 -0
  27. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/popper.min.js +0 -0
  28. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/admin/tippy-bundle.umd.min.js +0 -0
  29. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/assets/toolbar/toolbar.js +0 -0
  30. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/cards/__init__.py +0 -0
  31. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/cards/base.py +0 -0
  32. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/cards/charts.py +0 -0
  33. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/cards/tables.py +0 -0
  34. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/config.py +0 -0
  35. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/dates.py +0 -0
  36. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/default_settings.py +0 -0
  37. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/README.md +0 -0
  38. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/__init__.py +0 -0
  39. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/middleware.py +0 -0
  40. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/models.py +0 -0
  41. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/permissions.py +0 -0
  42. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/settings.py +0 -0
  43. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/impersonate/views.py +0 -0
  44. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/middleware.py +0 -0
  45. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/querystats/README.md +0 -0
  46. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/querystats/__init__.py +0 -0
  47. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/querystats/middleware.py +0 -0
  48. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/querystats/views.py +0 -0
  49. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/base.html +0 -0
  50. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/cards/base.html +0 -0
  51. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/cards/card.html +0 -0
  52. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/cards/chart.html +0 -0
  53. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/cards/table.html +0 -0
  54. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/delete.html +0 -0
  55. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/detail.html +0 -0
  56. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/form.html +0 -0
  57. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/index.html +0 -0
  58. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/list.html +0 -0
  59. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/page.html +0 -0
  60. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/search.html +0 -0
  61. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/UUID.html +0 -0
  62. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/bool.html +0 -0
  63. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/datetime.html +0 -0
  64. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/default.html +0 -0
  65. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/dict.html +0 -0
  66. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/get_display.html +0 -0
  67. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/img.html +0 -0
  68. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/list.html +0 -0
  69. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/model.html +0 -0
  70. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/admin/values/queryset.html +0 -0
  71. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/Checkbox.html +0 -0
  72. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/CheckboxField.html +0 -0
  73. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/FieldErrors.html +0 -0
  74. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/Input.html +0 -0
  75. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/InputField.html +0 -0
  76. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/Label.html +0 -0
  77. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/Select.html +0 -0
  78. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/SelectField.html +0 -0
  79. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/elements/admin/Submit.html +0 -0
  80. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/querystats/querystats.html +0 -0
  81. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/querystats/toolbar.html +0 -0
  82. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates/toolbar/toolbar.html +0 -0
  83. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/templates.py +0 -0
  84. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/toolbar.py +0 -0
  85. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/__init__.py +0 -0
  86. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/models.py +0 -0
  87. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/objects.py +0 -0
  88. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/types.py +0 -0
  89. {plain_admin-0.14.1 → plain_admin-0.15.1}/plain/admin/views/viewsets.py +0 -0
  90. {plain_admin-0.14.1 → plain_admin-0.15.1}/tests/app/settings.py +0 -0
  91. {plain_admin-0.14.1 → plain_admin-0.15.1}/tests/test_admin.py +0 -0
@@ -6,9 +6,6 @@ __pycache__
6
6
  *.DS_Store
7
7
  .coverage
8
8
 
9
- # Build files from publish
10
- plain*/dist/
11
-
12
9
  # Test apps
13
10
  plain*/tests/.plain
14
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.admin
3
- Version: 0.14.1
3
+ Version: 0.15.1
4
4
  Summary: Admin dashboard and tools for Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -0,0 +1,12 @@
1
+ from plain.urls import RouterBase, path, register_router
2
+
3
+ from .views import ImpersonateStartView, ImpersonateStopView
4
+
5
+
6
+ @register_router
7
+ class Router(RouterBase):
8
+ namespace = "impersonate"
9
+ urls = [
10
+ path("stop/", ImpersonateStopView, name="stop"),
11
+ path("start/<pk>/", ImpersonateStartView, name="start"),
12
+ ]
@@ -16,7 +16,6 @@ IGNORE_STACK_FILES = [
16
16
  "querystats/core",
17
17
  "plain/template/base",
18
18
  "plain/utils/decorators",
19
- "plain/utils/deprecation",
20
19
  "plain/db",
21
20
  "plain/utils/functional",
22
21
  "plain/core/servers",
@@ -0,0 +1,11 @@
1
+ from plain.urls import RouterBase, path, register_router
2
+
3
+ from . import views
4
+
5
+
6
+ @register_router
7
+ class Router(RouterBase):
8
+ namespace = "querystats"
9
+ urls = [
10
+ path("", views.QuerystatsView, name="querystats"),
11
+ ]
@@ -1,5 +1,5 @@
1
1
  from plain.http import ResponseRedirect
2
- from plain.urls import include, path
2
+ from plain.urls import RouterBase, include, path, register_router
3
3
 
4
4
  from .impersonate import urls as impersonate_urls
5
5
  from .querystats import urls as querystats_urls
@@ -33,13 +33,13 @@ class AdminSearchView(AdminView):
33
33
  return context
34
34
 
35
35
 
36
- default_namespace = "admin"
37
-
38
-
39
- urlpatterns = [
40
- path("search/", AdminSearchView, name="search"),
41
- path("impersonate/", include(impersonate_urls)),
42
- path("querystats/", include(querystats_urls)),
43
- path("", include(registry.get_urls())),
44
- path("", AdminIndexView, name="index"),
45
- ]
36
+ @register_router
37
+ class Router(RouterBase):
38
+ namespace = "admin"
39
+ urls = [
40
+ path("search/", AdminSearchView, name="search"),
41
+ include("impersonate/", impersonate_urls),
42
+ include("querystats/", querystats_urls),
43
+ include("", registry.get_urls()),
44
+ path("", AdminIndexView, name="index"),
45
+ ]
@@ -42,6 +42,13 @@ class AdminView(AuthViewMixin, TemplateView):
42
42
  template_name = "admin/page.html"
43
43
  cards: list["Card"] = []
44
44
 
45
+ def get_response(self):
46
+ response = super().get_response()
47
+ response.headers["Cache-Control"] = (
48
+ "no-cache, no-store, must-revalidate, max-age=0"
49
+ )
50
+ return response
51
+
45
52
  def get_template_context(self):
46
53
  context = super().get_template_context()
47
54
  context["title"] = self.get_title()
@@ -129,7 +136,7 @@ class AdminView(AuthViewMixin, TemplateView):
129
136
  @classmethod
130
137
  def get_view_url(cls, obj=None) -> str:
131
138
  if obj:
132
- return reverse(f"{URL_NAMESPACE}:" + cls.view_name(), kwargs={"pk": obj.pk})
139
+ return reverse(f"{URL_NAMESPACE}:" + cls.view_name(), pk=obj.pk)
133
140
  else:
134
141
  return reverse(f"{URL_NAMESPACE}:" + cls.view_name())
135
142
 
@@ -65,7 +65,7 @@ class AdminViewRegistry:
65
65
  # return root_nav_items
66
66
 
67
67
  def get_urls(self):
68
- urlpatterns = []
68
+ urls = []
69
69
 
70
70
  paths_seen = set()
71
71
 
@@ -75,12 +75,12 @@ class AdminViewRegistry:
75
75
  paths_seen.add(_path)
76
76
  if not _path.endswith("/"):
77
77
  _path += "/"
78
- urlpatterns.append(path(_path, view, name=view.view_name()))
78
+ urls.append(path(_path, view, name=view.view_name()))
79
79
 
80
80
  for view in self.registered_views:
81
81
  add_view_path(view, f"p/{view.get_path()}")
82
82
 
83
- return urlpatterns
83
+ return urls
84
84
 
85
85
  def get_searchable_views(self):
86
86
  views = [
@@ -107,7 +107,7 @@ class AdminViewRegistry:
107
107
  if view.model == instance.__class__:
108
108
  return reverse_lazy(
109
109
  f"{URL_NAMESPACE}:{view.view_name()}",
110
- kwargs={"pk": instance.pk},
110
+ pk=instance.pk,
111
111
  )
112
112
 
113
113
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain.admin"
3
- version = "0.14.1"
3
+ version = "0.15.1"
4
4
  description = "Admin dashboard and tools for Plain."
5
5
  authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
6
6
  license = "BSD-3-Clause"
@@ -19,10 +19,6 @@ dev-dependencies = [
19
19
  "plain.pytest<1.0.0",
20
20
  ]
21
21
 
22
- [tool.uv.sources]
23
- "plain.pytest" = {path = "../plain-pytest", editable = true}
24
- "plain.auth" = {path = "../plain-auth", editable = true}
25
-
26
22
  [tool.hatch.build.targets.wheel]
27
23
  packages = ["plain"]
28
24
 
@@ -0,0 +1,24 @@
1
+ import plain.admin.urls
2
+ import plain.assets.urls
3
+ from plain.urls import RouterBase, include, path, register_router
4
+ from plain.views import View
5
+
6
+
7
+ class LoginView(View):
8
+ def get(self):
9
+ return "Login!"
10
+
11
+
12
+ class LogoutView(View):
13
+ def get(self):
14
+ return "Logout!"
15
+
16
+
17
+ @register_router
18
+ class Router(RouterBase):
19
+ urls = [
20
+ include("admin/", plain.admin.urls),
21
+ include("assets/", plain.assets.urls),
22
+ path("login/", LoginView, name="login"),
23
+ path("logout/", LogoutView, name="logout"),
24
+ ]
@@ -0,0 +1,21 @@
1
+ # Generated by Plain 0.21.5 on 2025-02-17 04:12
2
+
3
+ from plain import models
4
+ from plain.models import migrations
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+ initial = True
9
+
10
+ dependencies = []
11
+
12
+ operations = [
13
+ migrations.CreateModel(
14
+ name="User",
15
+ fields=[
16
+ ("id", models.BigAutoField(auto_created=True, primary_key=True)),
17
+ ("username", models.CharField(max_length=255)),
18
+ ("is_admin", models.BooleanField(default=False)),
19
+ ],
20
+ ),
21
+ ]
@@ -1,6 +1,7 @@
1
1
  from plain import models
2
2
 
3
3
 
4
+ @models.register_model
4
5
  class User(models.Model):
5
6
  username = models.CharField(max_length=255)
6
7
  is_admin = models.BooleanField(default=False)
@@ -1,10 +0,0 @@
1
- from plain.urls import path
2
-
3
- from .views import ImpersonateStartView, ImpersonateStopView
4
-
5
- default_namespace = "impersonate"
6
-
7
- urlpatterns = [
8
- path("stop/", ImpersonateStopView, name="stop"),
9
- path("start/<pk>/", ImpersonateStartView, name="start"),
10
- ]
@@ -1,9 +0,0 @@
1
- from plain.urls import path
2
-
3
- from . import views
4
-
5
- default_namespace = "querystats"
6
-
7
- urlpatterns = [
8
- path("", views.QuerystatsView, name="querystats"),
9
- ]
@@ -1,22 +0,0 @@
1
- import plain.admin.urls
2
- import plain.assets.urls
3
- from plain.urls import include, path
4
- from plain.views import View
5
-
6
-
7
- class LoginView(View):
8
- def get(self):
9
- return "Login!"
10
-
11
-
12
- class LogoutView(View):
13
- def get(self):
14
- return "Logout!"
15
-
16
-
17
- urlpatterns = [
18
- path("admin/", include(plain.admin.urls)),
19
- path("assets/", include(plain.assets.urls)),
20
- path("login/", LoginView, name="login"),
21
- path("logout/", LogoutView, name="logout"),
22
- ]
@@ -1,378 +0,0 @@
1
- version = 1
2
- requires-python = ">=3.11"
3
-
4
- [[package]]
5
- name = "certifi"
6
- version = "2024.12.14"
7
- source = { registry = "https://pypi.org/simple" }
8
- sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 }
9
- wheels = [
10
- { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 },
11
- ]
12
-
13
- [[package]]
14
- name = "charset-normalizer"
15
- version = "3.4.0"
16
- source = { registry = "https://pypi.org/simple" }
17
- sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 }
18
- wheels = [
19
- { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 },
20
- { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 },
21
- { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 },
22
- { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 },
23
- { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 },
24
- { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 },
25
- { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 },
26
- { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 },
27
- { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 },
28
- { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 },
29
- { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 },
30
- { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 },
31
- { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 },
32
- { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 },
33
- { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 },
34
- { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 },
35
- { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 },
36
- { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 },
37
- { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 },
38
- { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 },
39
- { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 },
40
- { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 },
41
- { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 },
42
- { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 },
43
- { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 },
44
- { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 },
45
- { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 },
46
- { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 },
47
- { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 },
48
- { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 },
49
- { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 },
50
- { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 },
51
- { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 },
52
- { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 },
53
- { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 },
54
- { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 },
55
- { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 },
56
- { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 },
57
- { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 },
58
- { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 },
59
- { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 },
60
- { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 },
61
- { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 },
62
- { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 },
63
- { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 },
64
- { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 },
65
- ]
66
-
67
- [[package]]
68
- name = "click"
69
- version = "8.1.8"
70
- source = { registry = "https://pypi.org/simple" }
71
- dependencies = [
72
- { name = "colorama", marker = "sys_platform == 'win32'" },
73
- ]
74
- sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
75
- wheels = [
76
- { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
77
- ]
78
-
79
- [[package]]
80
- name = "colorama"
81
- version = "0.4.6"
82
- source = { registry = "https://pypi.org/simple" }
83
- sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
84
- wheels = [
85
- { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
86
- ]
87
-
88
- [[package]]
89
- name = "idna"
90
- version = "3.10"
91
- source = { registry = "https://pypi.org/simple" }
92
- sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
93
- wheels = [
94
- { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
95
- ]
96
-
97
- [[package]]
98
- name = "iniconfig"
99
- version = "2.0.0"
100
- source = { registry = "https://pypi.org/simple" }
101
- sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 }
102
- wheels = [
103
- { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
104
- ]
105
-
106
- [[package]]
107
- name = "jinja2"
108
- version = "3.1.5"
109
- source = { registry = "https://pypi.org/simple" }
110
- dependencies = [
111
- { name = "markupsafe" },
112
- ]
113
- sdist = { url = "https://files.pythonhosted.org/packages/af/92/b3130cbbf5591acf9ade8708c365f3238046ac7cb8ccba6e81abccb0ccff/jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb", size = 244674 }
114
- wheels = [
115
- { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 },
116
- ]
117
-
118
- [[package]]
119
- name = "markupsafe"
120
- version = "3.0.2"
121
- source = { registry = "https://pypi.org/simple" }
122
- sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 }
123
- wheels = [
124
- { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 },
125
- { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 },
126
- { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 },
127
- { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 },
128
- { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 },
129
- { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 },
130
- { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 },
131
- { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 },
132
- { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 },
133
- { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 },
134
- { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 },
135
- { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 },
136
- { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 },
137
- { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 },
138
- { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 },
139
- { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 },
140
- { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 },
141
- { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 },
142
- { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 },
143
- { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 },
144
- { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 },
145
- { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 },
146
- { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 },
147
- { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 },
148
- { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 },
149
- { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 },
150
- { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 },
151
- { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 },
152
- { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 },
153
- { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 },
154
- { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 },
155
- { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 },
156
- { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 },
157
- { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 },
158
- { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 },
159
- { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 },
160
- { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 },
161
- { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 },
162
- { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 },
163
- { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 },
164
- ]
165
-
166
- [[package]]
167
- name = "packaging"
168
- version = "24.2"
169
- source = { registry = "https://pypi.org/simple" }
170
- sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
171
- wheels = [
172
- { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
173
- ]
174
-
175
- [[package]]
176
- name = "plain"
177
- version = "0.13.1"
178
- source = { registry = "https://pypi.org/simple" }
179
- dependencies = [
180
- { name = "click" },
181
- { name = "jinja2" },
182
- ]
183
- sdist = { url = "https://files.pythonhosted.org/packages/99/00/19a66c84567141d0f45bc7a8adbfa70824df9207364f87a83fdfa5e325ab/plain-0.13.1.tar.gz", hash = "sha256:4b53f3be7cc050aba974e4acf67cb2bae4487126ab04d112fce20b6593d7b28c", size = 178784 }
184
- wheels = [
185
- { url = "https://files.pythonhosted.org/packages/19/24/60ac389dee373b9b0bb4c5da8704f39358e7dc28eda3c3e22ccb5fb9c91c/plain-0.13.1-py3-none-any.whl", hash = "sha256:ebfb935517ca63af223eac1c058cae1394c5fca17fb4e00315f5b776ab947e72", size = 221883 },
186
- ]
187
-
188
- [[package]]
189
- name = "plain-admin"
190
- version = "0.14.0"
191
- source = { editable = "." }
192
- dependencies = [
193
- { name = "plain" },
194
- { name = "plain-auth" },
195
- { name = "plain-htmx" },
196
- { name = "plain-tailwind" },
197
- { name = "sqlparse" },
198
- ]
199
-
200
- [package.dev-dependencies]
201
- dev = [
202
- { name = "plain-pytest" },
203
- ]
204
-
205
- [package.metadata]
206
- requires-dist = [
207
- { name = "plain", specifier = "<1.0.0" },
208
- { name = "plain-auth", editable = "../plain-auth" },
209
- { name = "plain-htmx", specifier = "<1.0.0" },
210
- { name = "plain-tailwind", specifier = "<1.0.0" },
211
- { name = "sqlparse", specifier = ">=0.2.2" },
212
- ]
213
-
214
- [package.metadata.requires-dev]
215
- dev = [{ name = "plain-pytest", editable = "../plain-pytest" }]
216
-
217
- [[package]]
218
- name = "plain-auth"
219
- version = "0.4.0"
220
- source = { editable = "../plain-auth" }
221
- dependencies = [
222
- { name = "plain" },
223
- { name = "plain-models" },
224
- { name = "plain-sessions" },
225
- ]
226
-
227
- [package.metadata]
228
- requires-dist = [
229
- { name = "plain", specifier = "<1.0.0" },
230
- { name = "plain-models", specifier = "<1.0.0" },
231
- { name = "plain-sessions", specifier = "<1.0.0" },
232
- ]
233
-
234
- [[package]]
235
- name = "plain-htmx"
236
- version = "0.3.0"
237
- source = { registry = "https://pypi.org/simple" }
238
- dependencies = [
239
- { name = "plain" },
240
- ]
241
- sdist = { url = "https://files.pythonhosted.org/packages/73/84/c756071be1607f24575f2c7edc112eabe864fb14f39cb93829d660d68d1c/plain_htmx-0.3.0.tar.gz", hash = "sha256:b379fa7ec70b4731a3caad775f769e5e500503d9757c00f27a59af04893d5da9", size = 181278 }
242
- wheels = [
243
- { url = "https://files.pythonhosted.org/packages/b1/0e/25ad2d1f99cff37f2df95692469df2e1ae86a935c36172b27f588134c4c2/plain_htmx-0.3.0-py3-none-any.whl", hash = "sha256:56bcf0f452bf0bbb54807d795cabfbcec602782f8ad69d83cfec6078ca33b9a6", size = 197682 },
244
- ]
245
-
246
- [[package]]
247
- name = "plain-models"
248
- version = "0.10.0"
249
- source = { registry = "https://pypi.org/simple" }
250
- dependencies = [
251
- { name = "plain" },
252
- { name = "sqlparse" },
253
- ]
254
- sdist = { url = "https://files.pythonhosted.org/packages/69/8c/111556c468c3810680f44209983f625ade9171a56522f3cf5dd4924d9133/plain_models-0.10.0.tar.gz", hash = "sha256:d3b069fd7f0fa6f3b58345752b711b476489743c3adf4cf45b043563710d7df2", size = 390074 }
255
- wheels = [
256
- { url = "https://files.pythonhosted.org/packages/7b/20/0e4a5bcb411fca74d8f49bbdfd7fb9a42f8d3056c4cef4039373b96259d3/plain_models-0.10.0-py3-none-any.whl", hash = "sha256:e8c00418031d33de529854672bd97f475defe0d581f817a87726a23c50cddccc", size = 441902 },
257
- ]
258
-
259
- [[package]]
260
- name = "plain-pytest"
261
- version = "0.3.1"
262
- source = { editable = "../plain-pytest" }
263
- dependencies = [
264
- { name = "click" },
265
- { name = "plain" },
266
- { name = "pytest" },
267
- { name = "python-dotenv" },
268
- ]
269
-
270
- [package.metadata]
271
- requires-dist = [
272
- { name = "click", specifier = ">=8.0.0" },
273
- { name = "plain", specifier = "<1.0.0" },
274
- { name = "pytest", specifier = ">=7.0.0" },
275
- { name = "python-dotenv", specifier = "~=1.0.0" },
276
- ]
277
-
278
- [[package]]
279
- name = "plain-sessions"
280
- version = "0.6.0"
281
- source = { registry = "https://pypi.org/simple" }
282
- dependencies = [
283
- { name = "plain" },
284
- ]
285
- sdist = { url = "https://files.pythonhosted.org/packages/14/9b/bb88e54525d198cfdd9ce69e86d4213aa9964c79b38bd9f273bd93324778/plain_sessions-0.6.0.tar.gz", hash = "sha256:6b57ead0c4329672e7478c8f0a7296b5579e6c55da09f166320cee33d672b7ee", size = 9270 }
286
- wheels = [
287
- { url = "https://files.pythonhosted.org/packages/08/0d/8dd68f8ec4a2c5d6a92640b4f863c20882301acf7d12fd6ccacacc3fbcd0/plain_sessions-0.6.0-py3-none-any.whl", hash = "sha256:f0de88726dc58231bb10f05e36f911cf3aa580290e6cb39440dd5ed90ab84115", size = 13468 },
288
- ]
289
-
290
- [[package]]
291
- name = "plain-tailwind"
292
- version = "0.4.0"
293
- source = { registry = "https://pypi.org/simple" }
294
- dependencies = [
295
- { name = "click" },
296
- { name = "plain" },
297
- { name = "requests" },
298
- { name = "tomlkit" },
299
- ]
300
- sdist = { url = "https://files.pythonhosted.org/packages/e2/f6/f51f5ece62b7d48888eef46252dfc3962b71195f3eb6849821e82459738a/plain_tailwind-0.4.0.tar.gz", hash = "sha256:ea2f880e2ea3c213332472ed8d6d6bbf1ddab564407cdf2958ccb4822f8eb4c0", size = 6008 }
301
- wheels = [
302
- { url = "https://files.pythonhosted.org/packages/70/5c/0bc12a282a5f9bfd8e0c75bdd23dc1dca51d0181b4762bce038532b20cd1/plain_tailwind-0.4.0-py3-none-any.whl", hash = "sha256:4cf4db91f99f2153808e39a0eece0f713ffab46228d679bfe4be6fc3eaf876f9", size = 9496 },
303
- ]
304
-
305
- [[package]]
306
- name = "pluggy"
307
- version = "1.5.0"
308
- source = { registry = "https://pypi.org/simple" }
309
- sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 }
310
- wheels = [
311
- { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 },
312
- ]
313
-
314
- [[package]]
315
- name = "pytest"
316
- version = "8.3.4"
317
- source = { registry = "https://pypi.org/simple" }
318
- dependencies = [
319
- { name = "colorama", marker = "sys_platform == 'win32'" },
320
- { name = "iniconfig" },
321
- { name = "packaging" },
322
- { name = "pluggy" },
323
- ]
324
- sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 }
325
- wheels = [
326
- { url = "https://files.pythonhosted.org/packages/11/92/76a1c94d3afee238333bc0a42b82935dd8f9cf8ce9e336ff87ee14d9e1cf/pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6", size = 343083 },
327
- ]
328
-
329
- [[package]]
330
- name = "python-dotenv"
331
- version = "1.0.1"
332
- source = { registry = "https://pypi.org/simple" }
333
- sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 }
334
- wheels = [
335
- { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 },
336
- ]
337
-
338
- [[package]]
339
- name = "requests"
340
- version = "2.32.3"
341
- source = { registry = "https://pypi.org/simple" }
342
- dependencies = [
343
- { name = "certifi" },
344
- { name = "charset-normalizer" },
345
- { name = "idna" },
346
- { name = "urllib3" },
347
- ]
348
- sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 }
349
- wheels = [
350
- { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
351
- ]
352
-
353
- [[package]]
354
- name = "sqlparse"
355
- version = "0.5.3"
356
- source = { registry = "https://pypi.org/simple" }
357
- sdist = { url = "https://files.pythonhosted.org/packages/e5/40/edede8dd6977b0d3da179a342c198ed100dd2aba4be081861ee5911e4da4/sqlparse-0.5.3.tar.gz", hash = "sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272", size = 84999 }
358
- wheels = [
359
- { url = "https://files.pythonhosted.org/packages/a9/5c/bfd6bd0bf979426d405cc6e71eceb8701b148b16c21d2dc3c261efc61c7b/sqlparse-0.5.3-py3-none-any.whl", hash = "sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca", size = 44415 },
360
- ]
361
-
362
- [[package]]
363
- name = "tomlkit"
364
- version = "0.12.5"
365
- source = { registry = "https://pypi.org/simple" }
366
- sdist = { url = "https://files.pythonhosted.org/packages/2b/ab/18f4c8f2bec75eb1a7aebcc52cdb02ab04fd39ff7025bb1b1c7846cc45b8/tomlkit-0.12.5.tar.gz", hash = "sha256:eef34fba39834d4d6b73c9ba7f3e4d1c417a4e56f89a7e96e090dd0d24b8fb3c", size = 191420 }
367
- wheels = [
368
- { url = "https://files.pythonhosted.org/packages/73/6d/b5406752c4e4ba86692b22fab0afed8b48f16bdde8f92e1d852976b61dc6/tomlkit-0.12.5-py3-none-any.whl", hash = "sha256:af914f5a9c59ed9d0762c7b64d3b5d5df007448eb9cd2edc8a46b1eafead172f", size = 37685 },
369
- ]
370
-
371
- [[package]]
372
- name = "urllib3"
373
- version = "2.3.0"
374
- source = { registry = "https://pypi.org/simple" }
375
- sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 }
376
- wheels = [
377
- { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 },
378
- ]
File without changes
File without changes