Skip to content

Commit 7d306f1

Browse files
authored
Merge pull request #69 from bckohan/1.3.x
1.3.3
2 parents 2a41d56 + daf1eba commit 7d306f1

File tree

5 files changed

+55
-20
lines changed

5 files changed

+55
-20
lines changed

.github/workflows/test.yml

+37-8
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,57 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
10+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13.0-rc.1']
1111
django-version:
1212
- '3.2' # LTS April 2024
1313
- '4.2' # LTS April 2026
1414
- '5.0' # April 2025
1515
- '5.1' # December 2025
16+
drf-version:
17+
- '3.14'
18+
- '3.15'
19+
filter-version:
20+
- '23.5'
21+
- '24.0'
1622
exclude:
17-
- python-version: '3.7'
18-
django-version: '5.0'
19-
- python-version: '3.7'
20-
django-version: '4.2'
2123
- python-version: '3.8'
2224
django-version: '5.0'
2325
- python-version: '3.9'
2426
django-version: '5.0'
2527
- python-version: '3.11'
2628
django-version: '3.2'
27-
- python-version: '3.12'
29+
- python-version: '3.11'
2830
django-version: '3.2'
29-
- python-version: '3.7'
31+
- python-version: '3.12'
3032
django-version: '5.1'
3133
- python-version: '3.8'
3234
django-version: '5.1'
3335
- python-version: '3.9'
3436
django-version: '5.1'
37+
- python-version: '3.13.0-rc.1'
38+
django-version: '3.2'
39+
- python-version: '3.13.0-rc.1'
40+
django-version: '4.2'
41+
- python-version: '3.13.0-rc.1'
42+
django-version: '5.0'
43+
44+
- django-version: '3.2'
45+
drf-version: '3.15'
46+
- django-version: '4.2'
47+
drf-version: '3.14'
48+
- django-version: '5.0'
49+
drf-version: '3.14'
50+
- django-version: '5.1'
51+
drf-version: '3.14'
52+
53+
- django-version: '3.2'
54+
filter-version: '24.0'
55+
- django-version: '4.2'
56+
filter-version: '23.5'
57+
- django-version: '5.0'
58+
filter-version: '23.5'
59+
- django-version: '5.1'
60+
filter-version: '23.5'
3561

3662
steps:
3763
- uses: actions/checkout@v4
@@ -43,7 +69,6 @@ jobs:
4369
- name: Install Poetry
4470
uses: snok/install-poetry@v1
4571
with:
46-
version: 1.5.1
4772
virtualenvs-create: true
4873
virtualenvs-in-project: true
4974
- name: Install Basic Dependencies
@@ -58,6 +83,7 @@ jobs:
5883
- name: Install enum-properties
5984
run: |
6085
poetry install -E properties
86+
poetry run pip install -U "Django~=${{ matrix.django-version }}"
6187
- name: Unit Tests w/ enum-properties
6288
run: |
6389
poetry run pytest --cov-fail-under=30
@@ -67,18 +93,21 @@ jobs:
6793
- name: Install djangorestframework
6894
run: |
6995
poetry install -E djangorestframework
96+
poetry run pip install -U "Django~=${{ matrix.django-version }}" "djangorestframework~=${{ matrix.drf-version }}"
7097
- name: Run Unit Tests w/ djangorestframework
7198
run: |
7299
poetry run pytest --cov-fail-under=30
73100
- name: Install django-filters
74101
run: |
75102
poetry install -E filters
103+
poetry run pip install -U "Django~=${{ matrix.django-version }}" "djangorestframework~=${{ matrix.drf-version }}" "django-filter~=${{ matrix.filter-version }}"
76104
- name: Run Unit Tests w/ django-filter
77105
run: |
78106
poetry run pytest --cov-fail-under=30
79107
- name: Install all deps
80108
run: |
81109
poetry install -E all
110+
poetry run pip install -U "Django~=${{ matrix.django-version }}" "djangorestframework~=${{ matrix.drf-version }}" "django-filter~=${{ matrix.filter-version }}"
82111
- name: Run Full Unit Tests
83112
run: |
84113
poetry run pytest

django_enum/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
'EnumFilter'
4848
]
4949

50-
VERSION = (1, 3, 2)
50+
VERSION = (1, 3, 3)
5151

5252
__title__ = 'Django Enum'
5353
__version__ = '.'.join(str(i) for i in VERSION)

django_enum/tests/tests.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -3628,8 +3628,8 @@ def test_benchmark(self):
36283628
no_coerce_time = no_coerce_stop - no_coerce_start
36293629
# flag if performance degrades signficantly - running about 2x for big lookups
36303630
self.assertTrue((enum_time / choice_time) < 3)
3631-
self.assertTrue((enum_direct_time / choice_time) < 2.5)
3632-
self.assertTrue((no_coerce_time / choice_time) < 2.5)
3631+
self.assertTrue((enum_direct_time / choice_time) < 2.7)
3632+
self.assertTrue((no_coerce_time / choice_time) < 2.7)
36333633
print(
36343634
f'(EnumTester) Bulk Create -> '
36353635
f'EnumField: {enum_time} '
@@ -3700,8 +3700,8 @@ def test_single_field_benchmark(self):
37003700
f'ChoiceField: {choice_time}'
37013701
)
37023702
# Enum tends to be about ~12% slower
3703-
self.assertTrue((enum_time / choice_time) < 1.8)
3704-
self.assertTrue((no_coerce_time / choice_time) < 1.7)
3703+
self.assertTrue((enum_time / choice_time) < 2.3)
3704+
self.assertTrue((no_coerce_time / choice_time) < 2.0)
37053705

37063706
enum_start = perf_counter()
37073707
for _ in SingleEnumPerf.objects.iterator(chunk_size=self.CHUNK_SIZE):
@@ -3729,8 +3729,8 @@ def test_single_field_benchmark(self):
37293729
f'ChoiceField: {choice_time}'
37303730
)
37313731
# tends to be about 1.8x slower
3732-
self.assertTrue((enum_time / choice_time) < 2.5)
3733-
self.assertTrue((no_coerce_time / choice_time) < 2.2)
3732+
self.assertTrue((enum_time / choice_time) < 2.7)
3733+
self.assertTrue((no_coerce_time / choice_time) < 2.7)
37343734

37353735

37363736
class ExampleTests(TestCase): # pragma: no cover - why is this necessary?

doc/source/changelog.rst

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
Change Log
33
==========
44

5+
v1.3.3
6+
======
7+
8+
* Implemented `Support python 3.13 <https://github.com/bckohan/django-enum/issues/67>`_
9+
* Implemented `Drop support for Python 3.7 <https://github.com/bckohan/django-enum/issues/68>`_
10+
511
v1.3.2
612
======
713

pyproject.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "django-enum"
3-
version = "1.3.2"
3+
version = "1.3.3"
44
description = "Full and natural support for enumerations as Django model fields."
55
authors = ["Brian Kohan <[email protected]>"]
66
license = "MIT"
@@ -24,12 +24,12 @@ classifiers = [
2424
"License :: OSI Approved :: MIT License",
2525
"Natural Language :: English",
2626
"Programming Language :: Python",
27-
"Programming Language :: Python :: 3.7",
2827
"Programming Language :: Python :: 3.8",
2928
"Programming Language :: Python :: 3.9",
3029
"Programming Language :: Python :: 3.10",
3130
"Programming Language :: Python :: 3.11",
3231
"Programming Language :: Python :: 3.12",
32+
"Programming Language :: Python :: 3.13",
3333
"Topic :: Internet :: WWW/HTTP",
3434
"Topic :: Internet :: WWW/HTTP :: Site Management",
3535
"Topic :: Software Development :: Libraries",
@@ -42,10 +42,10 @@ packages = [
4242
exclude = ["django_enum/tests"]
4343

4444
[tool.poetry.dependencies]
45-
python = ">=3.7,<4.0"
45+
python = ">=3.8,<4.0"
4646
Django = ">=3.2,<6.0"
47-
enum-properties = {version = "^1.7.0", optional = true}
48-
django-filter = {version = ">=21,<24", optional = true}
47+
enum-properties = {version = ">=1.7.0,<2.0", optional = true}
48+
django-filter = {version = ">=21", optional = true}
4949
djangorestframework = {version = "^3.9", optional = true}
5050

5151
[tool.poetry.group.dev.dependencies]

0 commit comments

Comments
 (0)