U \UV< � @ sx d Z dZdZdZddlmZ ddlZG dd� de�ZG d d � d e�ZG dd� de�Z e Z e ZG d d� de �ZeZ eZdS )zDaniel Greenfeldzpydanny@gmail.comz1.3.0ZBSD� )�timeNc @ s e Zd ZdZdd� Zdd� ZdS )�cached_propertya A property that is only computed once per instance and then replaces itself with an ordinary attribute. Deleting the attribute resets the property. Source: https://github.com/bottlepy/bottle/commit/fa7733e075da0d790d809aa3d2f53071897e6f76 c C s t |d�| _|| _d S �N�__doc__)�getattrr �func��selfr � r �/cached_property.py�__init__ s zcached_property.__init__c C s( |d kr| S | � |� }|j| j j<