Import top-level modules from a directory not on `sys.path`
Project description
qualify
A Python package that allows you to import top-level modules which
reside in a directory that is not on sys.path.
Rationale
This is for scenarios where you have a collection of top-level
modules but you want to keep their parent directory off sys.path.
Example:
You have a directory d that contains two top-level modules with
the rather generic names main and utils.
You want to import these modules but also keep their parent
directory d off sys.path to keep the global namespace of
top-level modules from being polluted with these generic names.
However, main refers to utils by its top-level name. So if you
just run import d.main, you’d get an error:
ModuleNotFoundError: No module named 'utils'
Running enable_submodules('d') will allow you to import d.main
successfully.
Running import d.main will add the following modules to
sys.modules:
dd.maind.utils
Note that unlike similar implementations, the python_qualify package
does not touch sys.path. This helps prevent unwanted modules from
being exposed to the global namespace.
Installation
Installing from PyPI
To install qualify from PyPI, open a shell and run:
pip install python-qualify
If that doesn’t work, try:
python3 -m pip install python-qualify
Installing from the AUR
Direct your favorite
AUR helper to the
python-qualify package.
Usage
See USAGE.md
or man python_qualify for details.
Contributing to qualify
See CONTRIBUTING.md.
License
Copyright (c) 2024 Claudia Pellegrino
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. For a copy of the License, see LICENSE.
Configuration
Paste into __init__.py of the affected package:
import python_qualify
python_qualify.enable_submodules(__name__)
Description
A Python package that allows you to import top-level modules which
reside in a directory that is not on sys.path.
This is for scenarios where you have a collection of top-level
modules but you want to keep their parent directory off sys.path.
Example
You have a directory d that contains two top-level modules with
the rather generic names main and utils.
You want to import these modules but also keep their parent
directory d off sys.path to keep the global namespace of
top-level modules from being polluted with these generic names.
However, main refers to utils by its top-level name. So if you
just run import d.main, you’d get an error:
ModuleNotFoundError: No module named 'utils'
Running enable_submodules('d') will allow you to import d.main
successfully.
Notes
Running import d.main will add the following modules to
sys.modules:
dd.maind.utils
Note that unlike similar implementations, the python_qualify package
does not touch sys.path. This helps prevent unwanted modules from
being exposed to the global namespace.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_qualify-0.1.1.tar.gz.
File metadata
- Download URL: python_qualify-0.1.1.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66ed4dfd7eca09388542f37dc4b0274a925eead5e6e2d7f7e3424428ae11ea03
|
|
| MD5 |
f47082d43697558734d717ed77e54514
|
|
| BLAKE2b-256 |
9ce5ad08a2bf948b648089ec39c1cc36b128fc465a266298bbb525b823497bbe
|
File details
Details for the file python_qualify-0.1.1-py3-none-any.whl.
File metadata
- Download URL: python_qualify-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb51b95b956afd2a024fea91c474fb430f113ca911afb19fe088575636b1e20c
|
|
| MD5 |
0d95e57adad177932a900612421c6155
|
|
| BLAKE2b-256 |
e152a0dbe4e00176304f1ce5a5440db003b4188bf416803a3c8c5460e59f3d22
|