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.1.0.tar.gz (13.1 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.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: feature_check-2.1.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for feature_check-2.1.0.tar.gz
Algorithm Hash digest
SHA256 202d4954daec83f911db157e222c783ef3e4b085eb4cc5cc36ca25661f0537f5
MD5 f46d00313698c747a103405efbe9838a
BLAKE2b-256 364ff490b1d0e5bdbdb6ce5fe392b5ce39cf95eebabe0d8182cc01b41f96ac04

See more details on using hashes here.

File details

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

File metadata

  • Download URL: feature_check-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for feature_check-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a837b0e5aaa31bd9f69a9784e586c4995129b643f4e709126ec8000b83f522cd
MD5 6085fed688f8417b9ed241597de3128e
BLAKE2b-256 437f2b85bee6fcbfe53514a83aaf943d8759252031da3c30a34cbd267c37f46e

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