Skip to content

the automatic loading of the files required for your module

License

BSD-2-Clause, Unknown licenses found

Licenses found

BSD-2-Clause
LICENSE
Unknown
LICENSE.md
Notifications You must be signed in to change notification settings

ablaternae/py-autoload

Repository files navigation

import autoload

когда ты слишком ленивый, чтобы перечислять отдельные компоненты модулей при импорте

"""example.py"""
from test_package import package_file_0
from test_package import package_file_1
...
from test_package import package_file_n

на помощь приходят importlib.import_module(), или importlib.__import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)

но самые хитрые автоматизируют

pip install -U import-autoload
"""__init__.py"""
from autoload import autoload

__all__ = autoload()
"""example.py"""
from test_package import *

расширенный вариант

"""main.py"""
from autoload import autoload

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

параметры

  1. module_name указывает путь до пакета (каталога), пишется через точку(!), как при импорте from module_name import. по-умолчанию берется путь к текущему модулю, так что одну точку можно не указывать. а две точки, как ссылка на каталог выше, должны сработать, но я не пробовал
  2. pattern как при поиске файлов, например в fnmatch(filename, pattern), по-умолчанию *.py
  • параметры можно комбинировать
  • если нужно выбрать один файл из каталога, его лучше прописать в pattern, а не в хвост пути: так autoload("package.sub.name", "module"), а не так autoload("package.sub.name.module")
  • но если выбираете один файл из текущего модуля, пишите его имя в первый параметр autoload("module"); с точкой autoload(".", "module") вроде бы работает, но я не проверял

предыдущий проект

доделать

  • для module_name добавить обработку системных разделителей путей

Lines of code Downloads Statistic GitHub

About

the automatic loading of the files required for your module

Topics

Resources

License

BSD-2-Clause, Unknown licenses found

Licenses found

BSD-2-Clause
LICENSE
Unknown
LICENSE.md

Stars

Watchers

Forks

Languages