{ "info": { "author": "Peter Pentchev", "author_email": "roam@ringlet.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: DFSG approved", "License :: Freely Distributable", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "feature-check - query a program for supported features\n======================================================\n\nThe `feature_check` library obtains the list of supported features from\na program via various methods and allows programs to check for the presence\nand, possibly, versions of specific features.\n\nThe `feature_check` library is fully typed.\n\nObtaining the features supported by a program\n---------------------------------------------\n\nThe `obtain_features()` function in the `feature_check` module runs\na program with the appropriate option to obtain its list of features;\nthe default is to pass the `--features` option, but this may be overridden.\nThe `obtain_features()` function then examines the output to find a line\nthat matches the specified prefix (or the default `Features: ` prefix) and\nexpects the rest of the line to be a whitespace-separated list of either\nfeature names or `name=version` pairs. It returns a dictionary of\nthe features obtained with their versions (or `1.0` if only a feature name\nwas found in the program's output).\n\n import feature_check\n\n data = feature_check.obtain_features(\"timelimit\")\n print(data.get(\"subsecond\", \"not supported\"))\n\nFor programs that need a different command-line option to list features:\n\n import feature_check\n\n print(\"SSL\" in feature_check.obtain_features(\"curl\", option=\"--version\"))\n\nTesting for feature versions\n----------------------------\n\nThe `feature_check` library also provides a simple expression evaluation\nmechanism for examining feature versions - the `expr` module defines\nseveral `Expr` and `Result` classes and also provides the `parse_simple()`\nfunction (also exported by `feature_check()` itself) for creating simple\nversion comparisons:\n\n import feature_check\n\n data = feature_check.obtain_features(\"timelimit\")\n expr = feature_check.parse_simple(\"subsecond >= 1\")\n print(expr.evaluate(data).value)\n\nContact the author\n------------------\n\nFor more information, please see the `feature_check` library's\n[homepage][ringlet] or contact the author, [Peter Pentchev][roam].\n\n[ringlet]: https://devel.ringlet.net/misc/feature-check/\n[roam]: \n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://devel.ringlet.net/misc/feature-check/", "keywords": "", "license": "BSD-2", "maintainer": "", "maintainer_email": "", "name": "feature-check", "package_url": "https://pypi.org/project/feature-check/", "platform": "", "project_url": "https://pypi.org/project/feature-check/", "project_urls": { "Homepage": "https://devel.ringlet.net/misc/feature-check/" }, "release_url": "https://pypi.org/project/feature-check/0.2.1/", "requires_dist": [ "six" ], "requires_python": "", "summary": "Query a program for supported features", "version": "0.2.1" }, "last_serial": 4521838, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "8a1c4d5178a4ae24492c15001547e625", "sha256": "47acfb2947555f9a9c347ffeb27175de2317541daaaba6d1e8f7efe0a7b25092" }, "downloads": -1, "filename": "feature_check-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8a1c4d5178a4ae24492c15001547e625", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16539, "upload_time": "2018-11-22T18:25:36", "url": "https://files.pythonhosted.org/packages/37/a1/4274f8c68513bdac035cfcd7528d80895bb4182ed8e4e9b837ccff29fd01/feature_check-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70b9a5429ca748d9679a42f2b21fef06", "sha256": "97d775062199a7c548f00f7124396693535517d6a4953d94e2ba438b6cb11814" }, "downloads": -1, "filename": "feature_check-0.2.0.tar.gz", "has_sig": true, "md5_digest": "70b9a5429ca748d9679a42f2b21fef06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9710, "upload_time": "2018-11-22T18:25:39", "url": "https://files.pythonhosted.org/packages/5d/4d/b0acc899223d29cc02bc10cd2061e162eef5ae0a02e134902443785beb12/feature_check-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c8ced95928a0d3b5be9ecc8c91b4bce9", "sha256": "33d69cf18dea6c24491aa1cbfecfac7c4172d50eb313eafc94a8b97fabeed2d7" }, "downloads": -1, "filename": "feature_check-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c8ced95928a0d3b5be9ecc8c91b4bce9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16608, "upload_time": "2018-11-23T22:18:27", "url": "https://files.pythonhosted.org/packages/7e/f4/b01a9d7dc1593add017a9a18b12df7ae66735a248a127ac9064e7becd111/feature_check-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c197610cf6e7419b5c6f83e0236c88d8", "sha256": "7d27b9a4403a7ce787a11cabfffc600e123dc132fdfdfb557e01850cdc39341b" }, "downloads": -1, "filename": "feature_check-0.2.1.tar.gz", "has_sig": true, "md5_digest": "c197610cf6e7419b5c6f83e0236c88d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9658, "upload_time": "2018-11-23T22:18:29", "url": "https://files.pythonhosted.org/packages/0a/36/c2ea9d87f60dd3637e9df5b56203cac389606ddfa13617cde531b91d1aa6/feature_check-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c8ced95928a0d3b5be9ecc8c91b4bce9", "sha256": "33d69cf18dea6c24491aa1cbfecfac7c4172d50eb313eafc94a8b97fabeed2d7" }, "downloads": -1, "filename": "feature_check-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c8ced95928a0d3b5be9ecc8c91b4bce9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16608, "upload_time": "2018-11-23T22:18:27", "url": "https://files.pythonhosted.org/packages/7e/f4/b01a9d7dc1593add017a9a18b12df7ae66735a248a127ac9064e7becd111/feature_check-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c197610cf6e7419b5c6f83e0236c88d8", "sha256": "7d27b9a4403a7ce787a11cabfffc600e123dc132fdfdfb557e01850cdc39341b" }, "downloads": -1, "filename": "feature_check-0.2.1.tar.gz", "has_sig": true, "md5_digest": "c197610cf6e7419b5c6f83e0236c88d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9658, "upload_time": "2018-11-23T22:18:29", "url": "https://files.pythonhosted.org/packages/0a/36/c2ea9d87f60dd3637e9df5b56203cac389606ddfa13617cde531b91d1aa6/feature_check-0.2.1.tar.gz" } ] }