{ "info": { "author": "Alexander Kozhevnikov", "author_email": "mentalisttraceur@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.3", "Programming Language :: Python :: 2.4", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: IronPython", "Programming Language :: Python :: Implementation :: Jython", "Programming Language :: Python :: Implementation :: MicroPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: Implementation :: Stackless" ], "description": "Python ``callable`` polyfill\n============================\n\nAttempts to ensure the ``callable`` builtin is available.\n\nMost Python versions have a native builtin function called ``callable``\nwhich checks if the argument is a callable object.\n\nThis applies to all modern supported versions of CPython (including\nstackless), PyPy, Jython, IronPython, MicroPython, PyPy.js, Brython,\nand probably others, but there is a small handful of Python versions\nwhere ``callable`` isn't implemented.\n\nThe concept behind this module is that it attempts to ensure that the\n``callable`` builtin is available:\n\n* On versions of Python where ``callable`` is already available,\n importing this doesn't break anything and leaves ``callable`` alone.\n\n* On versions without a ``callable`` builtin, on import this will\n attempt to inject an equivalent implementation, so that code invoking\n ``callable`` continues to work.\n\n* If your Python runtime has no ``callable`` builtin and this code is\n unable to polyfill it, it will raise a ``NotImplementedError``.\n\n\nVersioning\n----------\n\nThis library's version numbers follow the `SemVer 2.0.0 specification\n`_.\n\nThe current version number is available in the variable ``__version__``\nas is normal for Python modules.\n\n\nInstallation\n------------\n\n::\n\n pip install polyfill-callable\n\n\nUsage\n-----\n\nJust make sure you run this before you run any other code that uses\n``callable``:\n\n.. code:: python\n\n import polyfill_callable\n\nYou can also catch ``NotImplementedError`` if you'd like to gracefully\nhandle the lack of ``callable``.\n\n.. code:: python\n\n try:\n import polyfill_callable\n except NotImplementedError as error:\n # .. do something ..\n\n\nLimitations\n-----------\n\nAs of this writing on 2018-02-17, this module only has a ``callable``\npolyfill for:\n\n* The early CPython 3 versions that shipped without ``callable`` before\n it was added back in in CPython 3.2. There we can reimplement it using\n ``ctypes``, and polyfill it into the global namespace by using\n ``builtins``.\n\nIf there are other Python implementation versions where it would be\npossible to support a polyfill, they might eventually be added here.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mentalisttraceur/python-polyfill-callable", "keywords": "", "license": "0BSD (BSD Zero Clause License)", "maintainer": "", "maintainer_email": "", "name": "polyfill-callable", "package_url": "https://pypi.org/project/polyfill-callable/", "platform": "", "project_url": "https://pypi.org/project/polyfill-callable/", "project_urls": { "Homepage": "https://github.com/mentalisttraceur/python-polyfill-callable" }, "release_url": "https://pypi.org/project/polyfill-callable/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Attempts to ensure the ``callable`` builtin is available.", "version": "1.0.0" }, "last_serial": 3590179, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "fe1330f65d123193f2f8e1a9e82ce2b7", "sha256": "30174bc0dac48509ac5f0583d397391213b508f8138f734ca7187380b646eedc" }, "downloads": -1, "filename": "polyfill_callable-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fe1330f65d123193f2f8e1a9e82ce2b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5954, "upload_time": "2018-02-17T08:35:07", "url": "https://files.pythonhosted.org/packages/43/ef/b9e488a94b88c2d0b6ca8dd9e0c8988b82255c838b4c57711eb88e572a74/polyfill_callable-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb54482e28dd423288b64ce656e651f2", "sha256": "ded1ac377a5af81be6a13a33e7072b9d2e0e0b79d2c9c6a7347ca898009d68a4" }, "downloads": -1, "filename": "polyfill-callable-1.0.0.tar.gz", "has_sig": false, "md5_digest": "eb54482e28dd423288b64ce656e651f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3964, "upload_time": "2018-02-17T08:35:12", "url": "https://files.pythonhosted.org/packages/49/03/a2bdcf5bc57ca44cae5897db7ce9e09f71f83854032dd24452b28f8151d3/polyfill-callable-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fe1330f65d123193f2f8e1a9e82ce2b7", "sha256": "30174bc0dac48509ac5f0583d397391213b508f8138f734ca7187380b646eedc" }, "downloads": -1, "filename": "polyfill_callable-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fe1330f65d123193f2f8e1a9e82ce2b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5954, "upload_time": "2018-02-17T08:35:07", "url": "https://files.pythonhosted.org/packages/43/ef/b9e488a94b88c2d0b6ca8dd9e0c8988b82255c838b4c57711eb88e572a74/polyfill_callable-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb54482e28dd423288b64ce656e651f2", "sha256": "ded1ac377a5af81be6a13a33e7072b9d2e0e0b79d2c9c6a7347ca898009d68a4" }, "downloads": -1, "filename": "polyfill-callable-1.0.0.tar.gz", "has_sig": false, "md5_digest": "eb54482e28dd423288b64ce656e651f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3964, "upload_time": "2018-02-17T08:35:12", "url": "https://files.pythonhosted.org/packages/49/03/a2bdcf5bc57ca44cae5897db7ce9e09f71f83854032dd24452b28f8151d3/polyfill-callable-1.0.0.tar.gz" } ] }