class-utils

Utils for simplifying work with classes


License
MIT
Install
pip install class-utils==0.0.5

Documentation

Utils for simplifying work with classes

Usage:

pip install class-utils


Properties:

  1. default_property
  2. default_getter
  3. typed_property

Mixins:

  1. DefaultRepresentationMixin

default_property

from class_utils import default_property


class Point():
    x = default_property('x')
    y = default_property('y')

    def __init__(self, x, y):
        self.x = x
        self.y = y


point1 = Point(1, 4)

print(point1.x) # => 1

point1.x = 3
print(point1.x) # => 3

default_getter

from class_utils import default_getter


class Point():
    x = default_getter('x')
    y = default_getter('y')

    def __init__(self, x, y):
        self._x = x
        self._y = y


point1 = Point(1, 4)

print(point1.x) # => 1

typed_property

from class_utils import typed_property


class Person():
    name = typed_property('name', str)

    def __init__(self, name):
        self.name = name


person1 = Person('Bill')
print(person1.name) # => 'Bill'

person1.name = 123 # => TypeError: name must be a <class 'str'>

DefaultRepresentationMixin

from class_utils import default_property, DefaultRepresentationMixin


class Date(DefaultRepresentationMixin):
    day = default_property('day')
    month = default_property('month')
    year = default_property('year')

    def __init__(self, day, month, year):
        self.day = day
        self.month = month
        self.year = year


date1 = Date(12, 12, 2012)
print(date1) # => Date({'_day': 12, '_month': 12, '_year': 2012})