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.2.0.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

feature_check-2.2.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: feature_check-2.2.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for feature_check-2.2.0.tar.gz
Algorithm Hash digest
SHA256 2f450ddff0c139029c6c27625d524d7affd735d366ed4eb76a1aad9cba68983c
MD5 59f44c2e8d88d6bb84e1fb3231e69eb5
BLAKE2b-256 39745bc158e666a9a38785b47c66c7c2496664363e0c5520e350f43c95b3c8b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for feature_check-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f575009484f85127b219cd733fcd1ae57109f67c306a73eea009441d877203aa
MD5 0b5f2881670ee1e02323e7607fc7e6d5
BLAKE2b-256 d91feeed1653612733446805661b15d3562a01bc6d9a0e6bdccc66328b2d98da

See more details on using hashes here.

Supported by

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