Core functionPlug-In Foundation Service Collection)
Project description
Plug-In Foundation Services Collection
The Python Development Master offers various extension points.
You can either add plug-ins or signals. Some parts are not very intuitive for the experienced python developer who are used to work with python standard libraries like logging or is hard to test as there are some points that are not that easy to test.
This collection offers a set of services helping to write better plug-ins.
abstractions
This module provides three protocols, that will abstract PDM core and PDM project classes, so that they can easily mocked in unit tests.
actions
Actions are a collection of actions to run. This can be useful, if you want to add different verbal commands.
Each of this action can add options to the parser. They all can be
registered in an ActionRegistry
. This provides an instance method called register
which can be used to decorate implementations of ActionBase
.
config
The configuration section is unstable.
hook
Hooks surround actions
by hooks - an action can provide an implementation of
the HookGenerator
protocol, that must emit instances of HookInfo
, a dataclass
that gives information about the HookBase
class to instantiate and run
before and after the action is executed itself.
logging
The logging
module provides a logger based on the python standard logging facilities.
The TermUIHandler
uses pdm.core.ui.echo
to write data to a log. The TracingLogger
is
created to add a log-level called TRACE
to the logging, which is later used by traced_function
.
The default instance for the logging is added in the logger
variable. It's default value
can be set using setup_logger
. The value passed is identical to the verbose
level
of the pdm
invocation arguments.
The decorator traced_function
can be used to decorate a function for tracing the sequence of
events - just like set -x
does in POSIX scripts.
proc
The CliRunnerMixin
allows you to run child-processes from your plug-in or signal.
It offers a class-var called run_process
, that has the same signature like
subprocess.run
from the python standard library, but can be overwritten for your tests.
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 Distributions
Built Distribution
File details
Details for the file pdm_pfsc-0.11.3-py3-none-any.whl
.
File metadata
- Download URL: pdm_pfsc-0.11.3-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97cd9a2e56fbf09f0016c786f169d7b7cf517302c4331e090192c5b9a5640b46 |
|
MD5 | 9e23440ccb9adfa03287d25813a52a2f |
|
BLAKE2b-256 | a2280a78c050c155d7edbf335ea9a5a637ff70a545c4e862cf89fdc8e728bb68 |