django-bananas 2.4__py3-none-any.whl → 3.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.
- bananas/__init__.py +1 -1
- bananas/admin/api/views.py +2 -2
- bananas/query.py +5 -4
- bananas/static/admin/bananas/css/banansive.css +4 -0
- {django_bananas-2.4.dist-info → django_bananas-3.0.dist-info}/METADATA +10 -13
- {django_bananas-2.4.dist-info → django_bananas-3.0.dist-info}/RECORD +9 -9
- {django_bananas-2.4.dist-info → django_bananas-3.0.dist-info}/WHEEL +1 -1
- {django_bananas-2.4.dist-info → django_bananas-3.0.dist-info}/licenses/LICENSE +0 -0
- {django_bananas-2.4.dist-info → django_bananas-3.0.dist-info}/top_level.txt +0 -0
bananas/__init__.py
CHANGED
bananas/admin/api/views.py
CHANGED
|
@@ -53,7 +53,7 @@ class LoginAPI(BananasAdminAPI):
|
|
|
53
53
|
login_form = AuthenticationForm(request, data=request.data)
|
|
54
54
|
|
|
55
55
|
if not login_form.is_valid():
|
|
56
|
-
raise serializers.ValidationError(login_form.errors)
|
|
56
|
+
raise serializers.ValidationError(login_form.errors) # type: ignore[arg-type]
|
|
57
57
|
|
|
58
58
|
auth_login(request, login_form.get_user())
|
|
59
59
|
|
|
@@ -111,7 +111,7 @@ class ChangePasswordAPI(BananasAdminAPI):
|
|
|
111
111
|
password_form = PasswordChangeForm(request.user, data=request.data)
|
|
112
112
|
|
|
113
113
|
if not password_form.is_valid():
|
|
114
|
-
raise serializers.ValidationError(password_form.errors)
|
|
114
|
+
raise serializers.ValidationError(password_form.errors) # type: ignore[arg-type]
|
|
115
115
|
|
|
116
116
|
password_form.save()
|
|
117
117
|
update_session_auth_hash(request, password_form.user)
|
bananas/query.py
CHANGED
|
@@ -11,6 +11,7 @@ from typing import (
|
|
|
11
11
|
Type,
|
|
12
12
|
TypeVar,
|
|
13
13
|
Union,
|
|
14
|
+
cast,
|
|
14
15
|
)
|
|
15
16
|
|
|
16
17
|
from django.db.models import Model
|
|
@@ -66,7 +67,7 @@ _MT_co = TypeVar("_MT_co", bound=Model, covariant=True)
|
|
|
66
67
|
class IsQuerySet(Protocol[_MT_co]):
|
|
67
68
|
def values(
|
|
68
69
|
self, *fields: Union[str, Combinable], **expressions: Any
|
|
69
|
-
) -> "_QuerySet[_MT_co,
|
|
70
|
+
) -> "_QuerySet[_MT_co, dict[str, Any]]": ...
|
|
70
71
|
|
|
71
72
|
|
|
72
73
|
class ModelDictQuerySetMixin:
|
|
@@ -76,8 +77,8 @@ class ModelDictQuerySetMixin:
|
|
|
76
77
|
if named_fields:
|
|
77
78
|
fields += tuple(named_fields.values())
|
|
78
79
|
|
|
79
|
-
clone = self.values(*fields)
|
|
80
|
-
clone._iterable_class = ModelDictIterable
|
|
80
|
+
clone = cast("_QuerySet[_MT_co, ModelDict]", self.values(*fields))
|
|
81
|
+
clone._iterable_class = ModelDictIterable # type: ignore[assignment]
|
|
81
82
|
|
|
82
83
|
# QuerySet._hints is a dict object used by db router
|
|
83
84
|
# to aid deciding which db should get a request. Currently
|
|
@@ -85,7 +86,7 @@ class ModelDictQuerySetMixin:
|
|
|
85
86
|
# fine to set a custom key on this dict as it's a guaranteed
|
|
86
87
|
# way that it'll be returned with the QuerySet instance
|
|
87
88
|
# while leaving the queryset intact
|
|
88
|
-
clone._add_hints(**{"_named_fields": named_fields})
|
|
89
|
+
clone._add_hints(**{"_named_fields": named_fields}) # type: ignore[attr-defined]
|
|
89
90
|
|
|
90
91
|
return clone
|
|
91
92
|
|
|
@@ -56,6 +56,10 @@ body:not(.popup) #header #object-tools {
|
|
|
56
56
|
text-indent: -20000px;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
#changelist .changelist-form-container:has(#changelist-filter) > div {
|
|
60
|
+
max-width: 100%;
|
|
61
|
+
}
|
|
62
|
+
|
|
59
63
|
#header #changelist-search input[type="submit"]:hover {
|
|
60
64
|
background-image: url(../../img/search.svg), linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
|
|
61
65
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-bananas
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0
|
|
4
4
|
Summary: Django Bananas - Django extensions the monkey way
|
|
5
5
|
Home-page: https://github.com/5monkeys/django-bananas
|
|
6
6
|
License: MIT License
|
|
@@ -13,22 +13,21 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
17
|
Classifier: Framework :: Django
|
|
17
|
-
Classifier: Framework :: Django :: 3.2
|
|
18
|
-
Classifier: Framework :: Django :: 4.0
|
|
19
|
-
Classifier: Framework :: Django :: 4.1
|
|
20
18
|
Classifier: Framework :: Django :: 4.2
|
|
21
19
|
Classifier: Framework :: Django :: 5.0
|
|
22
20
|
Classifier: Framework :: Django :: 5.1
|
|
23
21
|
Classifier: Framework :: Django :: 5.2
|
|
22
|
+
Classifier: Framework :: Django :: 6.0
|
|
24
23
|
Classifier: Intended Audience :: Developers
|
|
25
24
|
Classifier: License :: OSI Approved :: MIT License
|
|
26
25
|
Classifier: Operating System :: OS Independent
|
|
27
26
|
Classifier: Framework :: Django
|
|
28
|
-
Requires-Python: >=3.
|
|
27
|
+
Requires-Python: >=3.8
|
|
29
28
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
30
29
|
License-File: LICENSE
|
|
31
|
-
Requires-Dist: Django>=
|
|
30
|
+
Requires-Dist: Django>=4.2
|
|
32
31
|
Requires-Dist: typing-extensions>=3.7.4.3
|
|
33
32
|
Provides-Extra: drf
|
|
34
33
|
Requires-Dist: djangorestframework>=3.10; extra == "drf"
|
|
@@ -81,13 +80,11 @@ with the ``drf`` extra to keep those in sync:
|
|
|
81
80
|
|
|
82
81
|
Currently tested only for
|
|
83
82
|
|
|
84
|
-
- Django
|
|
85
|
-
- Django 4.0 under Python 3.8-3.10
|
|
86
|
-
- Django 4.1 under Python 3.8-3.13
|
|
87
|
-
- Django 4.2 under Python 3.8-3.13
|
|
83
|
+
- Django 4.2 under Python 3.8-3.12
|
|
88
84
|
- Django 5.0 under Python 3.10-3.13
|
|
89
85
|
- Django 5.1 under Python 3.10-3.13
|
|
90
|
-
- Django 5.2 under Python 3.10-3.
|
|
86
|
+
- Django 5.2 under Python 3.10-3.14
|
|
87
|
+
- Django 6.0 under Python 3.12-3.14
|
|
91
88
|
|
|
92
89
|
Pull requests welcome!
|
|
93
90
|
|
|
@@ -578,12 +575,12 @@ Testing and development requirements can be installed using package extras
|
|
|
578
575
|
``drf`` extra when installing ``dev``.
|
|
579
576
|
|
|
580
577
|
To get started, setup a virtualenv and then install test requirements and run
|
|
581
|
-
tests and
|
|
578
|
+
tests and typehints on Python 3.14/Django 6.0 with:
|
|
582
579
|
|
|
583
580
|
.. code-block:: bash
|
|
584
581
|
|
|
585
582
|
python3 -m pip install -e .[test]
|
|
586
|
-
TOXENV=
|
|
583
|
+
TOXENV=py314-django60,type-check python3 -m tox
|
|
587
584
|
|
|
588
585
|
You can install development requirements into your virtualenv. Linting and
|
|
589
586
|
formatting uses pre-commit which you could also install on a system level.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
bananas/__init__.py,sha256=
|
|
1
|
+
bananas/__init__.py,sha256=yml9BS9jMFFoXxex1qXrBIwFeYdTP692zPJd-QQYXZY,686
|
|
2
2
|
bananas/environment.py,sha256=1UwUNjSbnLlWh0XN41_AdEc0TVXQbbswkM34KNPzNwk,7744
|
|
3
3
|
bananas/lazy.py,sha256=XFaqACJ6K5s_MZcxK_5OLQU35F7c7jB3KsdAtHuYQ6k,140
|
|
4
4
|
bananas/models.py,sha256=upapLi3Zvk073G4oMXCobh7RRXDhBLQ0kjPTWWAeYCM,8797
|
|
5
5
|
bananas/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
bananas/query.py,sha256=
|
|
6
|
+
bananas/query.py,sha256=DJeuDY41JRX_45r3hS-1XBN9wThm4f-8PUh6yy8-N5k,3726
|
|
7
7
|
bananas/secrets.py,sha256=WDBZapuPzDGHUwO1J_UjFuoljFkgbLKYy0uFTIl53Fk,1021
|
|
8
8
|
bananas/settings.py,sha256=HGZBxm5BMwHJc9PpQpvkzAuasXvePa-q_4tgeup9DPA,139
|
|
9
9
|
bananas/url.py,sha256=63vR_bK0Py9X-8dA7seEPVrQaU8FRSIOLwUb8XIUDAk,7907
|
|
@@ -17,7 +17,7 @@ bananas/admin/api/router.py,sha256=VWn6O97sbsoPZtKPLPxPDn_raO7Gy8B62N1s7-mGHhU,5
|
|
|
17
17
|
bananas/admin/api/serializers.py,sha256=XziZ1-6h4hn1qgts3qB8W18ctpl6h8vP3dkqa7WxLe8,2964
|
|
18
18
|
bananas/admin/api/urls.py,sha256=fch3C5BhI6d12U9un8I28fFiHZWTWFH5XAhAzXPURxY,398
|
|
19
19
|
bananas/admin/api/versioning.py,sha256=ciyelTzGZtJDPnigRZAJ0Gk1ZHfGxM9FXctS-OoyJ4Y,901
|
|
20
|
-
bananas/admin/api/views.py,sha256=
|
|
20
|
+
bananas/admin/api/views.py,sha256=2jVkpOMA2c6bNINGMM1JYWXmfyvuZqdmYHqsdBE1uzc,4221
|
|
21
21
|
bananas/admin/api/schemas/__init__.py,sha256=n4vZ3Sd1H23krxIIUWvktHimmdfh1n0K-J4z2-QsZxI,336
|
|
22
22
|
bananas/admin/api/schemas/base.py,sha256=XFfSQE_VeUraB_LIge1xEtVYOaTGfx6aDq6eahd6D2o,449
|
|
23
23
|
bananas/admin/api/schemas/decorators.py,sha256=Zwp7AwV_6Y0iWVcsO8VjNHHttYMcdGnrfr7ElwEzJzE,492
|
|
@@ -33,15 +33,15 @@ bananas/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
33
33
|
bananas/management/commands/show_urls.py,sha256=X6ipP04XN1pdrT2Ne5ozbMx068SQ8Io-HpO6Xi7v7d0,2220
|
|
34
34
|
bananas/management/commands/syncpermissions.py,sha256=fmsJpikAPAwvK8Yfkj4A53fdUOz-y0rHEF7xsRiy8W0,1565
|
|
35
35
|
bananas/static/admin/bananas/css/bananas.css,sha256=h7IuijjLYePQ5vwMWNP_Piyxn7IDBMWBM5Of0n6knNE,17882
|
|
36
|
-
bananas/static/admin/bananas/css/banansive.css,sha256=
|
|
36
|
+
bananas/static/admin/bananas/css/banansive.css,sha256=t23KL0bJEO_reIjJh6TsOq_FVYBf2DAT5lP5IkLYEh8,4077
|
|
37
37
|
bananas/static/admin/bananas/img/django.svg,sha256=4S1Cjntojkcoj17oTNufVtnlflhoKsRuQ9O7hTqyx6Q,5291
|
|
38
38
|
bananas/static/admin/bananas/img/search.svg,sha256=59UwyGYVJ4EJ26d5AAIdjtCHR3CnO94in6eQIbkYTu8,458
|
|
39
39
|
bananas/static/admin/bananas/js/bananas.js,sha256=1Xv6JEiTZYeaJSTxkKyMLwIRJ40SnRDPi2N-prpWoU0,4596
|
|
40
40
|
bananas/static/admin/css/responsive.css,sha256=UAMABM7h5rRZ8FocJw4bfx36Q5XtIDm4ddXN8lMC4SQ,17894
|
|
41
41
|
bananas/templates/admin/base_site.html,sha256=RU67gxvx1ozx3-uCyXWf2jC9H6c4adm0BjwmKF8EHEo,7977
|
|
42
42
|
bananas/templates/admin/view.html,sha256=WezwD9qGPch5S29intLVzbY1zVRop4zdIdm4pf7usVw,114
|
|
43
|
-
django_bananas-
|
|
44
|
-
django_bananas-
|
|
45
|
-
django_bananas-
|
|
46
|
-
django_bananas-
|
|
47
|
-
django_bananas-
|
|
43
|
+
django_bananas-3.0.dist-info/licenses/LICENSE,sha256=ezKzVU8KUSkiuP6I5I1PEfOUn33aerXQ_fU8_4Qavos,1081
|
|
44
|
+
django_bananas-3.0.dist-info/METADATA,sha256=DTJIaBDEiXx8bXU14ta7Knj3juyy_TEfiMp5rizlDVo,18589
|
|
45
|
+
django_bananas-3.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
46
|
+
django_bananas-3.0.dist-info/top_level.txt,sha256=5JKVcC99qGcHeOm5WigbcrQbMcsWr6N2A0tF9ZoY6j8,8
|
|
47
|
+
django_bananas-3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|