The README currently says that the Django implementation is used, but I believe the implementation was originally the work of Marcel Hellkamp (@defnull) in bottle.py.
While it will always be tricky to pin down the "true source" of a piece of code, the git histories of bottle and django may be of some help. The cached_property decorator appeared in bottle a month before it appeared in django.
in bottle, Aug 2011: bottlepy/bottle@fa7733e
in django, Sept 2011: django/django@5009e45
Also, your docstring and variables names are exactly identical to Marcel's.
And one last friendly reminder: the licenses of both bottle and django (MIT and BSD, respectively) require a copyright notice to be posted.
The README currently says that the Django implementation is used, but I believe the implementation was originally the work of Marcel Hellkamp (@defnull) in bottle.py.
While it will always be tricky to pin down the "true source" of a piece of code, the git histories of bottle and django may be of some help. The
cached_propertydecorator appeared in bottle a month before it appeared in django.in bottle, Aug 2011: bottlepy/bottle@fa7733e
in django, Sept 2011: django/django@5009e45
Also, your docstring and variables names are exactly identical to Marcel's.
And one last friendly reminder: the licenses of both bottle and django (MIT and BSD, respectively) require a copyright notice to be posted.