@@ -27,29 +27,30 @@ implement our style enumeration like so:
2727
2828.. code-block :: python
2929
30+ import typing as t
3031 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
3334
3435 class Map (models .Model ):
3536
36- class MapBoxStyle (
37- IntegerChoices ,
38- s (' slug' , case_fold = True ),
39- p (' version' )
40- ):
37+ class MapBoxStyle (IntEnumProperties ):
4138 """
4239 https://docs.mapbox.com/api/maps/styles/
4340 """
44- _symmetric_builtins_ = [' name' , ' uri' , ' label ' ]
41+ _symmetric_builtins_ = [' name' , ' uri' ]
4542
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
5152 SATELLITE = 5 , ' Satellite' , ' satellite' , 9
52- SATELLITE_STREETS = 6 , ' Satellite Streets' , ' satellite-streets' , 11
53+ SATELLITE_STREETS = 6 , ' Satellite Streets' , ' satellite-streets' , 12
5354 NAVIGATION_DAY = 7 , ' Navigation Day' , ' navigation-day' , 1
5455 NAVIGATION_NIGHT = 8 , ' Navigation Night' , ' navigation-night' , 1
5556
@@ -88,12 +89,12 @@ We can use our enumeration like so:
8889
8990 map = Map.objects.create()
9091
91- map .style.uri == ' mapbox://styles/mapbox/streets-v11'
92+ assert map .style.uri == ' mapbox://styles/mapbox/streets-v11'
9293
9394 # uri's are symmetric
9495 map .style = ' mapbox://styles/mapbox/light-v10'
9596 map .full_clean()
96- assert map .style == Map.MapBoxStyle.LIGHT
97+ assert map .style is Map.MapBoxStyle.LIGHT
9798 assert map .style == 3
9899 assert map .style == ' light'
99100
0 commit comments