setuptools plugin to configure the dependency among commands
Project description
setuptools-cmd-deps
Configure setuptools command dependencies easily.
Why I need this plugin
Once a custom setuptools command is defined and needs to be run before some build-in command,
traditionally, there's no simple way and the solution is to override the build-in command,
to call the new custom command before the command implemented in the super class.
In this way, having an additional class and digging into setuptools,
are just to configure the command order or dependency.
This could be simplified by using setuptools-cmd-deps:
enable the plugin and add custom configuration.
Command dependency in the project
If your command is just for the project and it won't be reused,
you could use new setup keyword cmd_deps to define the dependencies.
Enable setuptools-cmd-deps
-
If your
setup.pywill run only after all depending packages are installed, addsetuptools-cmd-depsin your dependency list, such asrequirements.txt, orPipfile. -
If your
setup.pysupports running out of venv, you may not want these packages to be installed in the system. Then addsetuptools-cmd-depsin thesetup_requiresoption of yoursetuptools.
Define dependency
setuptools.setup(
cmdclass={'generate_py': GenereatePy},
cmd_deps={'build_py': ['generate_py']},
)
Command dependency to be shared
If you are developing a setuptools plugin,
and want the command definition to be used by other project and run before some command,
specify the dependency in the setuptools.cmd_deps section in your entry_points.
Enable setuptools-cmd-deps for the target
Add setuptools-cmd-deps in the install_requires option of your setuptools,
so that any project uses your package, will automatically uses setuptools-cmd-deps.
Define dependency
Generally speaking, you already have distutils.commands in your entry_points.
For example, you defined gernate_py command in the entry_points as follows,
distutils.commands =
generate_py = command:GeneratePy
and want it always run before build_py.
Simply add setuptools.cmd_deps in the entry_points as follows,
setuptools.cmd_deps =
build_py_dep = build_py:generate_py
Note that the name build_py_dep is not used here.
It is just for the TOML syntax.
For the same reason, if there are multiple dependencies for one command,
it should use dot . as delimiter,
setuptools.cmd_deps =
command_dep = command:cmd1.cmd2
Both cmd1 and cmd2 will be run before command.
Or you can have multiple rules,
setuptools.cmd_deps =
command_dep1 = command:cmd1
command_dep2 = command:cmd2
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 setuptools-cmd-deps-1.0.1.tar.gz.
File metadata
- Download URL: setuptools-cmd-deps-1.0.1.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6001a8a5bb4f417e239f1ed86180bad77ccac4aa37232e9371c47c40a63e8f1f
|
|
| MD5 |
5b923ae0652b7bdc30c86c2325bec12c
|
|
| BLAKE2b-256 |
b704bbf89e7f50fbd55fd0f54692fcde4c33f297a3af7cb3ffd60fe3051c9975
|
File details
Details for the file setuptools_cmd_deps-1.0.1-py3-none-any.whl.
File metadata
- Download URL: setuptools_cmd_deps-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e883071e161d4fabbbfc510a31aa94441e83b995553a7e45c7611fd317e7ab2
|
|
| MD5 |
98ef13110795054935e718987d72c27f
|
|
| BLAKE2b-256 |
306c9fb32399d2e22ac7cfd6f3db5133f5d29a81713d2325388a4c7646007bc8
|