MakeObj is a Python module, compatible with Python versions 2.6+ and 3.0+, to help developers create powerful enumeration classes that provide support to attributes specific for each element.
Using it
MakeObj lets you create enumerations with a simple language like that:
@obj: RGBColors =:
@keys = 'red', 'green', 'blue'
@attr: hex = 'ff0000', '00ff00', '0000ff'
@attr: is_nice =:
@default = False
@set => 'blue': True
Then you can use like this:
RGBColors = makeobj.parse(text)
if RGBColors.blue.is_nice:
print('I like blue')
print('The hex value of {0.name} is #{0.hex}'.format(RGBColors.red))
If you have simple enums, you can use like this:
RGBColors = makeobj.make('RGBColors', ['red', 'green', 'blue'])
or, with some more data:
RGBColors = makeobj.make('RGBColors', {'red': {'hex': 'ff0000'},
'green': {'hex': '00ff00'},
'blue': {'hex': '0000ff'}})
Product's homepage
Here are some key features of "MakeObj":
· Enumerations with simple attributes, methods or even small objects with their own attributes.
· An Enumeration Language for easy creation of objects.
· The enumeration by default use the values 0 to N-1 but you may specify your own values.
· The elements of the class are really instances of it and can take advantage of the isinstance function. Because of a metaclass factory, the classes do not share unwanted attributes with the instances.
· The elements come with two attributes by default: name and value (also _name and _value in case you want to override them).
· Elements can (and should!) be checked with the is comparison and can be retrieved by name in string form or value from their class: RGBColors('red') or RGBColors[0] or RGBColors.red result in the same object.
Requirements:
· Python