Add cached_property.py