null-object

Null object


License
MIT
Install
pip install null-object==0.1.0

Documentation

Null object

Tested for python 2.7 and python 3.5

Use case

import json

from null_object import Null, json_dumper


class SomeClassA(object):
    def __init__(self, name):
        self.name = name
        self.weight = 3.1415

    def pretty_name(self):
        return self.name.capitalize()


class SomeClassB(object):
    @property
    def some_obj(self):
        return a_objects.get('obj2', Null)

    def __init__(self, pk):
        self.id = pk


some_obj_a = SomeClassA('obj1')
a_objects = {
    some_obj_a.name: some_obj_a
}
some_obj_b = SomeClassB(42)
data = {
    'id': some_obj_b.id,
    'name_a': some_obj_b.some_obj.pretty_name().upper(),
    'weight': some_obj_b.some_obj.weight,
    'r_weight': round(some_obj_b.some_obj.weight or 0, 2),
    'alt_weight': (+some_obj_b.some_obj.weight - 2.71) ** 2 or 0
}
json.dumps(data, default=json_dumper)