Import non-python files
Project description
Documentation | Get Started | Developer Chat
DeepSource helps you ship good quality code.
import-x
An ext-tensible loader to import anything like it is a python module.
Supports Python 3.6+.
Installation
pip install import-x
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.
This Example JsonLoader
can be used directly by importing
from import_x.loaders.json_loader import JsonLoader
and you are ready to import all the json files.
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.1.tar.gz
(3.9 kB
view hashes)