{ "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.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" ], "description": "Python ``ctypes``-based ``callable`` reimplementation\n=====================================================\n\nImplements ``callable`` using ctypes (useful on Python 3.0 and 3.1)\n\nMost Python versions have a native builtin function called ``callable``\nwhich checks if the argument is a callable object.\n\nPython 3 initially removed the builtin function (but kept the internal\nC function), before adding it back in Python 3.2 because no alternative\nis truly equivalent in all cases.\n\nThis module provides a function named ``callable`` which is equivalent\nto the native ``callable``, by directly accessing the underlying CPython\nAPI through the ``ctypes`` module.\n\nThis isn't very useful by itself for most Python versions, but it is an\nessential building block for enabling code relying on ``callable`` to\nwork on Python 3.0 and 3.1.\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 ctypes-callable\n\n\nUsage\n-----\n\nThe use-case for using this module is if:\n\n1. You are using an **early** CPython 3 release missing ``callable``.\n2. You cannot upgrade to a newer CPython 3 for some reason.\n3. You want to use code which uses the ``callable`` builtin.\n\nTo do this, run this before any code that uses ``callable`` (for\nexample, `usercustomize` or `sitecustomize` might be good places):\n\n.. code:: python\n\n import ctypes_callable\n import builtins\n builtins.callable = ctypes_callable.callable\n\n\nPortability\n-----------\n\nThis module relies on accessing the Python C API through `ctypes`, which\nmeans it will fail on import on Jython, IronPython, PyPy, MicroPython,\nPyPy.js, Brython, Transcrypt, and probably every other implementation\nbesides CPython.\n\nIf you're looking for something that's basically this, but won't break\nupon import on other Python implementations, you can use\n`the ``polyfill-callable`` module\n`_ instead.\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-ctypes-callable", "keywords": "", "license": "0BSD (BSD Zero Clause License)", "maintainer": "", "maintainer_email": "", "name": "ctypes-callable", "package_url": "https://pypi.org/project/ctypes-callable/", "platform": "", "project_url": "https://pypi.org/project/ctypes-callable/", "project_urls": { "Homepage": "https://github.com/mentalisttraceur/python-ctypes-callable" }, "release_url": "https://pypi.org/project/ctypes-callable/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Implements ``callable`` using ctypes (useful on Python 3.0 and 3.1)", "version": "1.0.0" }, "last_serial": 3590171, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "7557ff8d8b95325c420687c7368bb103", "sha256": "90e8088d41592b3f95165941fee3043afff6e6b2fa9b1347c41998640fc38082" }, "downloads": -1, "filename": "ctypes_callable-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7557ff8d8b95325c420687c7368bb103", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5319, "upload_time": "2018-02-17T08:34:24", "url": "https://files.pythonhosted.org/packages/70/bd/a2906e53a9ca534248e61776d8acbd601fedaf55c55fe0b74b48911ca87a/ctypes_callable-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c142d22722d8b2d916bf798f72246c88", "sha256": "2d68eaec023b47af74b64da3a1377c5fa2730429c353cbda07e62df39c843da1" }, "downloads": -1, "filename": "ctypes-callable-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c142d22722d8b2d916bf798f72246c88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3094, "upload_time": "2018-02-17T08:34:26", "url": "https://files.pythonhosted.org/packages/43/bb/d13964891d61e3236b423fafc917daa049ee66f1ef7985769a7de86055e4/ctypes-callable-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7557ff8d8b95325c420687c7368bb103", "sha256": "90e8088d41592b3f95165941fee3043afff6e6b2fa9b1347c41998640fc38082" }, "downloads": -1, "filename": "ctypes_callable-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7557ff8d8b95325c420687c7368bb103", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5319, "upload_time": "2018-02-17T08:34:24", "url": "https://files.pythonhosted.org/packages/70/bd/a2906e53a9ca534248e61776d8acbd601fedaf55c55fe0b74b48911ca87a/ctypes_callable-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c142d22722d8b2d916bf798f72246c88", "sha256": "2d68eaec023b47af74b64da3a1377c5fa2730429c353cbda07e62df39c843da1" }, "downloads": -1, "filename": "ctypes-callable-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c142d22722d8b2d916bf798f72246c88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3094, "upload_time": "2018-02-17T08:34:26", "url": "https://files.pythonhosted.org/packages/43/bb/d13964891d61e3236b423fafc917daa049ee66f1ef7985769a7de86055e4/ctypes-callable-1.0.0.tar.gz" } ] }