propobject

propobject: Low level object to inherit from


License
Apache-2.0
Install
pip install propobject==0.1.3

Documentation

propobject

Source Object to inherit from to help building clean classes

PyPI

How to use propobject

This module enables to easily make use of @property decorator to create simple (to read and to use) object oriented python. propobject is built upon 3 object global variables:

  • PROPERTIES
  • SIDE_PROPERTIES
  • DERIVED_PROPERTIES

While you build an new object, you should define in one of the above entries the name of the variable you have. You can set it to any of them but you are invited to use PROPERTIES for the fundamental entries, SIDE_PROPERTIES for the optional entries and DERIVED_PROPERTIES for the variable created by the class, i.e. that can not be set by the user.

When you generate an instance of your object, the entries _properties, _side_properties and _derived_properties will be created. These are dictionaries containing the entries for the PROPERTIES, SIDE_PROPERTIES and DERIVED_PROPERTIES. By default, they are None.

For instance:

from propobject import BaseObject

class Foo( BaseObject):
    PROPERTIES = ["a","b"]
    SIDE_PROPERTIES = ["aa","bb"]
    DERIVED_PROPERTIES = ["derived_v"]
    
    @property
    def a(self):
        return self._properties['a']
    
    

Inherating an object conserves the PROPERTIES, SIDE_PROPERTIES, DERIVED_PROPERTIES

class FooFoo( Foo ):
    PROPERTIES = ["c"]
    
    @property
    def a2(self):
        return self._properties['a']**2

    @property
    def c(self):
        return self._properties['c']**2