Dummy package to mark extras installation
Project description
extras
Package that allows to make assertions about extras being installed or not.
For the detailed explanation read this blog post.
Usage
For the pyproject.toml users
[tool.poetry.dependencies]
package-extras = { version = "^0.2.0", optional = true }
# your actual extras below
psycopg2 = { version = "^2.9", optional = true }
mysqlclient = { version = "^1.3", optional = true }
[tool.poetry.extras]
databases = ["package-extras", "mysqlclient", "psycopg2"]
setup.py equivalent
extras_require = \
{'databases': ['package-extras>=0.2.0',
'psycopg2>=2.9,<3.0',
'mysqlclient>=1.3,<2.0']}
setup_kwargs = {
# ... rest of the arguments
'extras_require': extras_require,
}
setup(**setup_kwargs)
Add this or similar block to your code (likely top-level __init__.py file)
import warnings
try:
import package_extras
except ModuleNotFoundError:
pass
else:
warnings.warn(
"'test_package[databases]' extra is deprecated "
"and will be removed in a future release.",
category=DeprecationWarning,
stacklevel=2,
)
Or in case you want to assert the opposite (make sure that extras have been installed)
import warnings
try:
import package_extras
except ModuleNotFoundError:
warnings.warn(
"You are going to use functionality that depends on 'databases' extras. "
"Please install 'test_package[databases]' to proceed.",
category=ImportWarning,
stacklevel=2,
)
NOTE:
ImportWarningis ignored by default, so you either need to runpython -W allor useRuntimeWarninginstead.
After installation via pip install test_package[databases] your package users will get this warning.
>>> import test_package
DeprecationWarning: 'test_package[databases]' extra is deprecated and will be removed in a future release.
Development
$ poetry install
$ poetry build
$ poetry config pypi-token.pypi my-token
$ poetry publish
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 package-extras-0.3.0.tar.gz.
File metadata
- Download URL: package-extras-0.3.0.tar.gz
- Upload date:
- Size: 2.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.1 CPython/3.10.6 Linux/5.14.0-1054-oem
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b84ec71a5ae28448d389d3ae0d62be13e98ccb155ebf27dc679e25fbe5b23e82
|
|
| MD5 |
041eab90a88d7af14704155175e537c2
|
|
| BLAKE2b-256 |
731a342e0b1d90d69ef13cafb4cb3cafb7f801e941a87a6a37374898e59e0b58
|
File details
Details for the file package_extras-0.3.0-py3-none-any.whl.
File metadata
- Download URL: package_extras-0.3.0-py3-none-any.whl
- Upload date:
- Size: 2.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.1 CPython/3.10.6 Linux/5.14.0-1054-oem
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7e2ea8d9473be667105da6e0ac8044582fc42ab84ca72516d2f916d13b56844
|
|
| MD5 |
9fbb1cf87d935776810467e5172af69f
|
|
| BLAKE2b-256 |
34f6ab6717c21541012248de0cb5154781f4d7c163271f908e6b9978a6c29dc0
|