@@ -27,29 +27,30 @@ implement our style enumeration like so:
27
27
28
28
.. code-block :: python
29
29
30
+ import typing as t
30
31
from django.db import models
31
- from django_enum import IntegerChoices, EnumField
32
- from enum_properties import p, s
32
+ from django_enum import EnumField
33
+ from enum_properties import IntEnumProperties, Symmetric
33
34
34
35
class Map (models .Model ):
35
36
36
- class MapBoxStyle (
37
- IntegerChoices ,
38
- s (' slug' , case_fold = True ),
39
- p (' version' )
40
- ):
37
+ class MapBoxStyle (IntEnumProperties ):
41
38
"""
42
39
https://docs.mapbox.com/api/maps/styles/
43
40
"""
44
- _symmetric_builtins_ = [' name' , ' uri' , ' label ' ]
41
+ _symmetric_builtins_ = [' name' , ' uri' ]
45
42
46
- # name value label slug version
47
- STREETS = 1 , ' Streets' , ' streets' , 11
48
- OUTDOORS = 2 , ' Outdoors' , ' outdoors' , 11
49
- LIGHT = 3 , ' Light' , ' light' , 10
50
- DARK = 4 , ' Dark' , ' dark' , 10
43
+ label: t.Annotated[str , Symmetric()]
44
+ slug: t.Annotated[str , Symmetric(case_fold = True )]
45
+ version: int
46
+
47
+ # name value label slug version
48
+ STREETS = 1 , ' Streets' , ' streets' , 12
49
+ OUTDOORS = 2 , ' Outdoors' , ' outdoors' , 12
50
+ LIGHT = 3 , ' Light' , ' light' , 11
51
+ DARK = 4 , ' Dark' , ' dark' , 11
51
52
SATELLITE = 5 , ' Satellite' , ' satellite' , 9
52
- SATELLITE_STREETS = 6 , ' Satellite Streets' , ' satellite-streets' , 11
53
+ SATELLITE_STREETS = 6 , ' Satellite Streets' , ' satellite-streets' , 12
53
54
NAVIGATION_DAY = 7 , ' Navigation Day' , ' navigation-day' , 1
54
55
NAVIGATION_NIGHT = 8 , ' Navigation Night' , ' navigation-night' , 1
55
56
@@ -88,12 +89,12 @@ We can use our enumeration like so:
88
89
89
90
map = Map.objects.create()
90
91
91
- map .style.uri == ' mapbox://styles/mapbox/streets-v11'
92
+ assert map .style.uri == ' mapbox://styles/mapbox/streets-v11'
92
93
93
94
# uri's are symmetric
94
95
map .style = ' mapbox://styles/mapbox/light-v10'
95
96
map .full_clean()
96
- assert map .style == Map.MapBoxStyle.LIGHT
97
+ assert map .style is Map.MapBoxStyle.LIGHT
97
98
assert map .style == 3
98
99
assert map .style == ' light'
99
100
0 commit comments