The xinspect module
Project Links
Meta
Author: Jon Crall
Requires Python: >=3.8
Classifiers
Development Status
- 4 - Beta
Intended Audience
- Developers
Topic
- Software Development :: Libraries :: Python Modules
- Utilities
License
- OSI Approved :: Apache Software License
Programming Language
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
Tools for static and dynamic code introspection. This library has not been well maintained, and there are likely other libraries that are better.
Helps with writing doctests
def func(a=1, b=2, c=3):
"""
Example:
>>> from this.module import * # import contextual namespace
>>> import xinspect
>>> globals().update(xinspect.get_func_kwargs(func)) # populates globals with default kwarg value
>>> print(a + b + c)
6
"""
Helps with code that generates code
>>> import ubelt as ub
>>> source = ub.codeblock(
>>> '''
>>> p = os.path.dirname(join('a', 'b'))
>>> glob.glob(p)
>>> ''')
>>> # Generate a list of lines to fix the name errors
>>> lines = autogen_imports(source=source)
>>> print(lines)
['import glob', 'from os.path import join', 'import os']
See Also: https://github.com/Erotemic/xdev