Categorize the `dir()` of a python object.
Project description
spect
Categorize the dir()
of a python object.
Essentially filters Python's dir() built-in for a given object nicely. Might become a dir()
pretty printer on steroids at some point and/or a nice helper for quick, interactive debugging / introspecting.
Usage
import spect
import re
respect = spect(re)
print(respect.dunder) # {'__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__'}
print(respect.private) # {'_compile', '_locale', '_alphanum_bytes', '_expand', '_alphanum_str', '_MAXCACHE', '_pickle', '_subx', '_pattern_type', '_compile_repl', '_cache'}
print(repsect.const_private) # {'_MAXCACHE'}
So far spect
knows these categories:
-
regular:
varname
-
alias:
varname_
-
dunder:
__varname__
-
private:
_varname
-
superprivate:
__varname
-
general: an alias for regular, so
varname
as well -
magic: double underscore delimitered (dunder) and callable (e.g.
__init__
) -
const: any of the above as long as it has letters and all of them are uppercase (e.g.
_MAXCACHE
)
The categories can be combined and are sets (as are their combinations):
-
const_dunder_superprivate: all that are either double underscore delimitered or superprivate and contain at least one upper case letter no lower case.
x = spect(...) x.const_dunder_superprivate == (x.dunder | x.superprivate) & x.const # True
-
private_alias: combination of alias and private from above, i.e. equivalent to the set notation:
x.private_alias == x.alias | x.private # True # has all in x.private and x.alias
Installation
python -m pip install --user spect
ToDo
- Make Python 2 compatible (maybe)
- Ponder getting magic methods from a list (version dependent!
hard to future-proof! but no false positives)
- Think about the use
callable
for Python versions 3.0 to 3.2 wherecallable
was deprecated
- Think about the use
- Maybe add a filter for
snake_case
,camelCase
andPascalCase
(kebab-case
does not make for valid variable names)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.