pythoniac port forwardable from Ruby
Project description
pythoniac port forwardable from Ruby
Installation
$ pip install forwardable.py
Example
delegator
>>> from forwardable import Forwardable, def_delegator
>>> class Hoge(Forwardable):
... startswith = def_delegator('aa')
... endswith = def_delegator('aa')
... balse = def_delegator('aa', 'replace') # with proxy
...
... def __init__(self):
... self.aa = 'test hoge'
>>> h = Hoge()
>>> h.startswith('test')
True
>>> h.endswith('test')
False
>>> h.balse('test', 'is it greeeeet')
'is it greeeeet hoge'
multi delegators
>>> from forwardable import Forwardable, def_delegators
>>> class Foo(Forwardable):
... _ = def_delegators('aa', ('startswith', 'endswith', 'replace', ))
...
... def __init__(self):
... self.aa = 'test hoge'
>>> f = Foo()
>>> f.startswith('test')
True
>>> f.endswith('test')
False
>>> f.replace('test', 'is it greeeeet')
'is it greeeeet hoge'
use with Metaclass
>>> from forwardable import _Forwardable, def_delegators
>>> class Foo(object): # if PY3: class Foo(object, metaclass=_Forwardable):
... __metaclass__ = _Forwardable
... _ = def_delegators('aa', ('startswith', 'endswith', 'replace', ))
...
... def __init__(self):
... self.aa = 'test hoge'
>>> f = Foo()
>>> f.startswith('test')
True
>>> f.endswith('test')
False
>>> f.replace('test', 'is it greeeeet')
'is it greeeeet hoge'
Testing
python tests.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
forwardable.py-0.0.3.tar.gz
(2.9 kB
view hashes)