feature-check - query a program for supported features
The feature_check library obtains the list of supported features from
a program via various methods and allows programs to check for the presence
and, possibly, versions of specific features.
The feature_check library is fully typed.
Obtaining the features supported by a program
The obtain_features() function in the feature_check module runs
a program with the appropriate option to obtain its list of features;
the default is to pass the --features option, but this may be overridden.
The obtain_features() function then examines the output to find a line
that matches the specified prefix (or the default Features: prefix) and
expects the rest of the line to be a whitespace-separated list of either
feature names or name=version pairs. It returns a dictionary of
the features obtained with their versions (or 1.0 if only a feature name
was found in the program's output).
import feature_check
data = feature_check.obtain_features("timelimit")
print(data.get("subsecond", "not supported"))
For programs that need a different command-line option to list features:
import feature_check
print("SSL" in feature_check.obtain_features("curl", option="--version"))
Testing for feature versions
The feature_check library also provides a simple expression evaluation
mechanism for examining feature versions - the expr module defines
several Expr and Result classes and also provides the parse_simple()
function (also exported by feature_check() itself) for creating simple
version comparisons:
import feature_check
data = feature_check.obtain_features("timelimit")
expr = feature_check.parse_simple("subsecond >= 1")
print(expr.evaluate(data).value)
Contact the author
For more information, please see the feature_check library's
homepage or contact the author, Peter Pentchev.
Metadata
Release files for feature-check 2.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| feature_check-2.3.2.tar.gz | 48.2 kB | Without provenance | Details for feature_check-2.3.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| feature_check-2.3.2-py3-none-any.whl | Python 3 | none | any | Details for feature_check-2.3.2-py3-none-any.whl |
Total release size: 60.8 kB
Release files / feature_check-2.3.2.tar.gz
| Download URL | feature_check-2.3.2.tar.gz |
|---|---|
| Size | 48.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e011f595e3b6ba61d69da55497f8f982ba6908b4e3e7e612049b30180af8ee1d
|
|
BLAKE2b-256 checksum How to use checksums |
e0c25f52193ca4470c786a5442dc21ab0cbb555f976ef1d0cefa60da131f9b91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / feature_check-2.3.2-py3-none-any.whl
| Download URL | feature_check-2.3.2-py3-none-any.whl |
|---|---|
| Size | 12.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e4d01ccac1ecd738d0a605150b96ff8ab97658fdad357f52826fa9d85a8f16d9
|
|
BLAKE2b-256 checksum How to use checksums |
096d2a91e634d0763d1278f46d51f8e11df65806ca24a617e29263e8f3056750
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for feature-check 2.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.