Implements ``callable`` using ctypes (useful on Python 3.0 and 3.1)
Project description
Implements callable using ctypes (useful on Python 3.0 and 3.1)
Most Python versions have a native builtin function called callable which checks if the argument is a callable object.
Python 3 initially removed the builtin function (but kept the internal C function), before adding it back in Python 3.2 because no alternative is truly equivalent in all cases.
This module provides a function named callable which is equivalent to the native callable, by directly accessing the underlying CPython API through the ctypes module.
This isn’t very useful by itself for most Python versions, but it is an essential building block for enabling code relying on callable to work on Python 3.0 and 3.1.
Versioning
This library’s version numbers follow the SemVer 2.0.0 specification.
The current version number is available in the variable __version__ as is normal for Python modules.
Installation
pip install ctypes-callable
Usage
The use-case for using this module is if:
You are using an early CPython 3 release missing callable.
You cannot upgrade to a newer CPython 3 for some reason.
You want to use code which uses the callable builtin.
To do this, run this before any code that uses callable (for example, usercustomize or sitecustomize might be good places):
import ctypes_callable
import builtins
builtins.callable = ctypes_callable.callable
Portability
This module will fail on import on Jython, IronPython, PyPy, MicroPython, PyPy.js, Brython, Transcrypt, and probably any other implementation besides CPython, because it relies on accessing the Python C API through ctypes.
If you’re looking for something that’s basically this, but won’t break upon import on other Python implementations, you can use the ``polyfill-callable` module <https://github.com/mentalisttraceur/python-polyfill-callable>`_ instead.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ctypes-callable-1.0.0.post2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53b946f3e1297bf02b8a6eee37aa961df61511706895acbec0a63c1847763fd3 |
|
MD5 | bc9c32fb065b83f8fddebb4b64ec2cc9 |
|
BLAKE2b-256 | a4ee4219c3798c22fbfc5495921e510a26673c013b7d6f559011bc1433c2e94a |
Hashes for ctypes_callable-1.0.0.post2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ea742487ddc85ba1a066839be7d0540577dbcc56585ecc4920d21bd4c6ef4e1 |
|
MD5 | 61ab6a1a5370b9005927411fe2ccb5b6 |
|
BLAKE2b-256 | 5112f858935c54ad6f83856e92d27c9065736bb1c231ec83e4bcb6b7a0b9a56c |