Import non-python files
Project description
An ext-tensible loader to import anything like it is a python module.
Supports Python 3.6+.
Usage
Example json file in your path foo.json:
{
"why": "not",
}
# Extend the ExtensionLoader and implement 'handle_module' method
# where you will get a module object and the path to that module.
>>> from import_x import ExtensionLoader
>>> class JsonLoader(ExtensionLoader):
extension = '.json'
auto_enable = False
@staticmethod
def handle_module(module, path):
"""
Load the json file and set as `data` attribute of the module.
"""
json_file = Path(path)
content = json_file.read_text()
try:
data = json.loads(content)
except (json.JSONDecodeError, ValueError):
data = {}
module.data = data
>>> json_imports = JsonLoader()
>>> with json_imports:
import foo
>>> foo.data
>>> {"why": "not"}
If you want to enable imports automatically without the context_manager then just do auto_enable = True in your loader.
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
import-x-0.1.0.tar.gz
(3.6 kB
view hashes)