pikhovkin / null_object

Implements the null object pattern

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CircleCI PyPI PyPI - Python Version PyPI - License

null-object

Implements the null object pattern.

Installation

pip install null-object

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)

Licensing

MIT

About

Implements the null object pattern

License:MIT License


Languages

Language:Python 100.0%