Skip to main content

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)

Source distribution for feature-check 2.3.2
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)

Table of built distributions (wheels) for feature-check 2.3.2
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page