import functools import inspect class property_nondata: '''@property, but using non-data descriptor protocol''' def __init__(self, fget): self.fget = fget functools.update_wrapper(self, fget) def __get__(self, instance, owner=None): return self.fget(instance) class property_exp(property): '''@property, but blacklist tab completers like rlcompleter from getattr''' def __init__(self, fget, *, doc=None): super().__init__(fget) self.__doc__ = doc def __get__(self, instance, owner=None): try: frame = inspect.currentframe() try: frame = frame.f_back if frame.f_globals['__name__'] == 'rlcompleter': return None finally: del frame except Exception: pass return super().__get__(instance, owner)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
Cat.py | File | 3.99 KB | 0644 |
|
Code.py | File | 1.03 KB | 0644 |
|
Descriptor.py | File | 903 B | 0644 |
|
FSA.py | File | 7.2 KB | 0644 |
|
Glue.py | File | 13.68 KB | 0644 |
|
Help.py | File | 6.71 KB | 0644 |
|
IterPermute.py | File | 2.22 KB | 0644 |
|
KanExtension.py | File | 20.71 KB | 0644 |
|
KnuthBendix.py | File | 8.81 KB | 0644 |
|
RE.py | File | 23.59 KB | 0644 |
|
RE_Rect.py | File | 10.39 KB | 0644 |
|
__init__.py | File | 87 B | 0644 |
|
cmd.py | File | 14.72 KB | 0644 |
|
etc.py | File | 1.66 KB | 0644 |
|
textView.py | File | 3.07 KB | 0644 |
|
tkcursors.py | File | 2.13 KB | 0644 |
|
xterm.py | File | 2.31 KB | 0644 |
|