django-bananas 2.4__tar.gz → 3.0__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.
- {django_bananas-2.4 → django_bananas-3.0}/MANIFEST.in +1 -1
- {django_bananas-2.4/src/django_bananas.egg-info → django_bananas-3.0}/PKG-INFO +10 -13
- {django_bananas-2.4 → django_bananas-3.0}/README.rst +5 -7
- {django_bananas-2.4 → django_bananas-3.0}/pyproject.toml +1 -1
- {django_bananas-2.4 → django_bananas-3.0}/setup.cfg +4 -5
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/__init__.py +1 -1
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/views.py +2 -2
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/query.py +5 -4
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/bananas/css/banansive.css +4 -0
- {django_bananas-2.4 → django_bananas-3.0/src/django_bananas.egg-info}/PKG-INFO +10 -13
- {django_bananas-2.4 → django_bananas-3.0}/src/django_bananas.egg-info/requires.txt +1 -1
- {django_bananas-2.4 → django_bananas-3.0}/AUTHORS +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/LICENSE +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/setup.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/mixins.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/permissions.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/router.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/schemas/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/schemas/base.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/schemas/decorators.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/schemas/yasg.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/serializers.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/urls.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/v1_0/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/v1_0/urls.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/api/versioning.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/extension.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/admin/i18n.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/drf/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/drf/errors.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/drf/fencing.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/drf/utils.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/environment.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/lazy.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/management/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/management/commands/__init__.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/management/commands/show_urls.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/management/commands/syncpermissions.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/models.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/py.typed +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/secrets.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/settings.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/bananas/css/bananas.css +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/bananas/img/django.svg +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/bananas/img/search.svg +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/bananas/js/bananas.js +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/css/responsive.css +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/templates/admin/base_site.html +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/templates/admin/view.html +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/bananas/url.py +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/django_bananas.egg-info/SOURCES.txt +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/django_bananas.egg-info/dependency_links.txt +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/django_bananas.egg-info/not-zip-safe +0 -0
- {django_bananas-2.4 → django_bananas-3.0}/src/django_bananas.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
include setup.py README.rst MANIFEST.in LICENSE AUTHORS
|
|
2
|
-
exclude tox.ini *.yml *.yaml Makefile Dockerfile .editorconfig
|
|
2
|
+
exclude tox.ini *.yml *.yaml Makefile Dockerfile .editorconfig flake.nix flake.lock .dockerignore
|
|
3
3
|
|
|
4
4
|
recursive-include src/bananas/templates *
|
|
5
5
|
recursive-include src/bananas/static *
|
|
@@ -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.
|
|
@@ -32,13 +32,11 @@ with the ``drf`` extra to keep those in sync:
|
|
|
32
32
|
|
|
33
33
|
Currently tested only for
|
|
34
34
|
|
|
35
|
-
- Django
|
|
36
|
-
- Django 4.0 under Python 3.8-3.10
|
|
37
|
-
- Django 4.1 under Python 3.8-3.13
|
|
38
|
-
- Django 4.2 under Python 3.8-3.13
|
|
35
|
+
- Django 4.2 under Python 3.8-3.12
|
|
39
36
|
- Django 5.0 under Python 3.10-3.13
|
|
40
37
|
- Django 5.1 under Python 3.10-3.13
|
|
41
|
-
- Django 5.2 under Python 3.10-3.
|
|
38
|
+
- Django 5.2 under Python 3.10-3.14
|
|
39
|
+
- Django 6.0 under Python 3.12-3.14
|
|
42
40
|
|
|
43
41
|
Pull requests welcome!
|
|
44
42
|
|
|
@@ -529,12 +527,12 @@ Testing and development requirements can be installed using package extras
|
|
|
529
527
|
``drf`` extra when installing ``dev``.
|
|
530
528
|
|
|
531
529
|
To get started, setup a virtualenv and then install test requirements and run
|
|
532
|
-
tests and
|
|
530
|
+
tests and typehints on Python 3.14/Django 6.0 with:
|
|
533
531
|
|
|
534
532
|
.. code-block:: bash
|
|
535
533
|
|
|
536
534
|
python3 -m pip install -e .[test]
|
|
537
|
-
TOXENV=
|
|
535
|
+
TOXENV=py314-django60,type-check python3 -m tox
|
|
538
536
|
|
|
539
537
|
You can install development requirements into your virtualenv. Linting and
|
|
540
538
|
formatting uses pre-commit which you could also install on a system level.
|
|
@@ -15,14 +15,13 @@ classifiers =
|
|
|
15
15
|
Programming Language :: Python :: 3.11
|
|
16
16
|
Programming Language :: Python :: 3.12
|
|
17
17
|
Programming Language :: Python :: 3.13
|
|
18
|
+
Programming Language :: Python :: 3.14
|
|
18
19
|
Framework :: Django
|
|
19
|
-
Framework :: Django :: 3.2
|
|
20
|
-
Framework :: Django :: 4.0
|
|
21
|
-
Framework :: Django :: 4.1
|
|
22
20
|
Framework :: Django :: 4.2
|
|
23
21
|
Framework :: Django :: 5.0
|
|
24
22
|
Framework :: Django :: 5.1
|
|
25
23
|
Framework :: Django :: 5.2
|
|
24
|
+
Framework :: Django :: 6.0
|
|
26
25
|
Intended Audience :: Developers
|
|
27
26
|
License :: OSI Approved :: MIT License
|
|
28
27
|
Operating System :: OS Independent
|
|
@@ -34,7 +33,7 @@ license_file = LICENSE
|
|
|
34
33
|
packages = find:
|
|
35
34
|
package_dir =
|
|
36
35
|
=src
|
|
37
|
-
python_requires = >=3.
|
|
36
|
+
python_requires = >=3.8
|
|
38
37
|
include_package_data = True
|
|
39
38
|
exclude =
|
|
40
39
|
tests
|
|
@@ -42,7 +41,7 @@ exclude =
|
|
|
42
41
|
example
|
|
43
42
|
zip_safe = False
|
|
44
43
|
install_requires =
|
|
45
|
-
Django>=
|
|
44
|
+
Django>=4.2
|
|
46
45
|
typing-extensions>=3.7.4.3
|
|
47
46
|
|
|
48
47
|
[options.packages.find]
|
|
@@ -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)
|
|
@@ -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
|
|
{django_bananas-2.4 → django_bananas-3.0}/src/bananas/static/admin/bananas/css/banansive.css
RENAMED
|
@@ -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.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_bananas-2.4 → django_bananas-3.0}/src/bananas/management/commands/syncpermissions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|