Skip to main content

Query a program for supported features

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

feature_check-2.3.2.tar.gz (48.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

feature_check-2.3.2-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file feature_check-2.3.2.tar.gz.

File metadata

  • Download URL: feature_check-2.3.2.tar.gz
  • Upload date:
  • Size: 48.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for feature_check-2.3.2.tar.gz
Algorithm Hash digest
SHA256 e011f595e3b6ba61d69da55497f8f982ba6908b4e3e7e612049b30180af8ee1d
MD5 81504bef320b4aeb33eb9be81dee23bd
BLAKE2b-256 e0c25f52193ca4470c786a5442dc21ab0cbb555f976ef1d0cefa60da131f9b91

See more details on using hashes here.

File details

Details for the file feature_check-2.3.2-py3-none-any.whl.

File metadata

  • Download URL: feature_check-2.3.2-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for feature_check-2.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e4d01ccac1ecd738d0a605150b96ff8ab97658fdad357f52826fa9d85a8f16d9
MD5 8a3e8df52ed5eb937ab5f025b037f5c6
BLAKE2b-256 096d2a91e634d0763d1278f46d51f8e11df65806ca24a617e29263e8f3056750

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page