o ÞñÐa-ã@s.ddlmZGdd„deƒZGdd„dƒZdS)é)Úabcc@seZdZdZdd„ZdS)Ú ClassPropertya™ An implementation of a property callable on a class. Used to decorate a classmethod but to then treat it like a property. Example: >>> class MyClass: ... @ClassProperty ... @classmethod ... def skillz(cls): ... return cls.__name__.startswith('My') >>> MyClass.skillz True >>> class YourClass(MyClass): pass >>> YourClass.skillz False cCs|j d|¡ƒS©N)ÚfgetÚ__get__)ÚselfÚclsÚowner©r ú9/usr/lib/python3/dist-packages/keyring/util/properties.pyrszClassProperty.__get__N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr r r r rs rc@s"eZdZdZdd„Zddd„ZdS)ÚNonDataPropertyaMuch like the property builtin, but only implements __get__, making it a non-data property, and can be subsequently reset. See http://users.rcn.com/python/download/Descriptor.htm for more information. >>> class X: ... @NonDataProperty ... def foo(self): ... return 3 >>> x = X() >>> x.foo 3 >>> x.foo = 4 >>> x.foo 4 cCs.|dusJdƒ‚t|tjƒsJdƒ‚||_dS)Nzfget cannot be nonezfget must be callable)Ú isinstancerÚCallabler)rrr r r Ú__init__1s zNonDataProperty.__init__NcCs|dur|S| |¡Sr)r)rÚobjÚobjtyper r r r6s zNonDataProperty.__get__r)r r rrrrr r r r rsrN)Ú collectionsrÚpropertyrrr r r r Ús