Skip to main content

This helper provides simplified loading of modules (files) from package (dir)

Project description

import autoload

Lines of code Downloads Statistic GitHub

What is autoloading?

Autoloading means the automatic loading of the files required for your module. That is including the files required for your application without explicitly including each file with from modulename import filename construct.

1. problem

  • let directory struct be like
main.py
project_dir/
|-- example.py
|-- README.md
|-- setup.py
|-- test_package
|   |-- __init__.py
|   |-- package_file_0.py
|   |-- package_file_1.py
|   |-- package_file_2.py
  • and code
"""example.py"""
from test_package import package_file_0
from test_package import package_file_1
...
from test_package import package_file_n

but we are too lazy to type a lot letters

2. solution

  • install
pip install -UIv "import-autoload>=0.2.4a"
  • add two lines to __init__.py
"""__init__.py"""
from autoload import autoload

__all__ = autoload()
"""example.py"""
from test_package import *
  • or variant
"""main.py"""
from autoload import autoload

autoload("project_dir.test_package", pattern="package_file_[0123]")

parameters

  1. module_name path to module dir with dot separator, like in from module_name import, default current module
  2. pattern like in fnmatch(filename, pattern), default *.py

attention

  • it seems to require python version >= 3.4. if you were able to test an early version, please contact me

how it work

  • checks path to module and call importlib.import_module()

License

  • It's opensource and free software, see the LICENSE for more details

similar projects

TODO

  • handle system path separator for module_name

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

import_autoload-0.3.1-py3-none-any.whl (5.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page