File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- __version__ = "1.7.19 "
1+ __version__ = "1.7.20 "
22
33from .environment import Environment
44
Original file line number Diff line number Diff line change 1- from enum import IntEnum
1+ from . ExtendableEnum import ExtendableEnum
22
33
4- class BuildTarget (IntEnum ):
4+ class BuildTarget (ExtendableEnum ):
55 UnknownPlatform = 3716
66 DashboardWidget = 1
77 StandaloneOSX = 2
@@ -38,13 +38,3 @@ class BuildTarget(IntEnum):
3838 tvOS = 37
3939 Switch = 38
4040 NoTarget = - 2
41-
42- @classmethod
43- def _missing_ (cls , value ):
44- ret = BuildTarget .UnknownPlatform
45- ret ._value = value
46- return ret
47-
48- @property
49- def value (self ):
50- return getattr (self , "_value" , self ._value_ )
Original file line number Diff line number Diff line change 11# https://docs.unity3d.com/Manual/ClassIDReference.html
2- from enum import IntEnum
2+ from . ExtendableEnum import ExtendableEnum
33
44
5- class ClassIDType (IntEnum ):
5+ class ClassIDType (ExtendableEnum ):
66 UnknownType = - 1
77 Object = 0
88 GameObject = 1
@@ -371,22 +371,3 @@ class ClassIDType(IntEnum):
371371 VisualEffect = 2083052967
372372 LocalizationAsset = 2083778819
373373 ScriptedImporter = 2089858483
374-
375- def __str__ (self ):
376- return self .name
377-
378- def __eq__ (self , value ):
379- if isinstance (value , str ):
380- return self .name == value
381- else :
382- return self .value == value
383-
384- @classmethod
385- def _missing_ (cls , value ):
386- ret = ClassIDType .UnknownType
387- ret ._value = value
388- return ret
389-
390- @property
391- def value (self ):
392- return getattr (self , "_value" , self ._value_ )
Original file line number Diff line number Diff line change 1+ from enum import IntEnum
2+
3+ # based on https://stackoverflow.com/a/57179436
4+
5+
6+ class ExtendableEnum (IntEnum ):
7+ @classmethod
8+ def _missing_ (cls , value ):
9+ if isinstance (value , int ):
10+ pseudo_member = cls ._value2member_map_ .get (value , None )
11+ if pseudo_member is None :
12+ new_member = int .__new__ (cls , value )
13+ # I expect a name attribute to hold a string, hence str(value)
14+ # However, new_member._name_ = value works, too
15+ new_member ._name_ = f"Unknown ({ value } )"
16+ new_member ._value_ = value
17+ pseudo_member = cls ._value2member_map_ .setdefault (value , new_member )
18+ return pseudo_member
19+ return None # will raise the ValueError in Enum.__new__
You can’t perform that action at this time.
0 commit comments