./devel/py-cffi, Foreign Function Interface for Python calling C code

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.17.1nb1, Package name: py312-cffi-1.17.1nb1, Maintainer: pkgsrc-users

Foreign Function Interface for Python calling C code. The aim of
this project is to provide a convenient and reliable way of calling
C code from Python. The interface is based on LuaJIT's FFI and
follows a few principles:

o The goal is to call C code from Python. You should be able to do
so without learning a 3rd language: every alternative requires
you to learn their own language (Cython, SWIG) or API (ctypes).
So we tried to assume that you know Python and C and minimize
the extra bits of API that you need to learn.
o Keep all the Python-related logic in Python so that you don't
need to write much C code.
o Work either at the level of the ABI (Application Binary Interface)
or the API (Application Programming Interface). Usually, C
libraries have a specified C API but often not an ABI.
o We try to be complete. For now some C99 constructs are not
supported, but all C89 should be, including macros.
o We attempt to support both PyPy and CPython, with a reasonable
path for other Python implementations like IronPython and Jython.
o Note that this project is not about embedding executable C code
in Python, unlike Weave. This is about calling existing C libraries
from Python.


Required to run:
[devel/py-setuptools] [devel/libffi] [devel/py-cparser] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 504.513 KB

Version history: (Expand)


CVS history: (Expand)


   2025-04-12 11:50:46 by Adam Ciarcinski | Files touched by this commit (18) | Package updated
Log message:
Fix PLIST after py-setuptools update; bump depends and revision
   2025-02-02 11:38:04 by Havard Eidnes | Files touched by this commit (28)
Log message:
lang/python and a number of python packages: re-do atomic64.mk issue.

Evidently, python 3.13 brought in the need to support 64-bit atomics.
This means that python extension packages built with C needs to
use mk/atomic64.mk to make -latomic available on the required 32-bit
ports.  Sadly, there is no reliable way to detect in the .mk files
whether the package is using C (or C++), so this change adds an
unconditional include of mk/atomic64.mk when the python version is
equal to or larger than 3.13 for packages using egg.mk or wheel.mk.

This undoes the individual package Makefile inclusions of mk/atomic64.mk
that I've added over the last few days.
   2025-01-18 11:09:21 by Havard Eidnes | Files touched by this commit (1)
Log message:
devel/py-cffi: use atomic64.mk to fix build with python 3.13 on macppc.
   2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862)
Log message:
py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
   2024-09-06 15:48:57 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-cffi: updated to 1.17.1

v1.17.1

* Fix failing ``distutils.msvc9compiler`` imports under Windows
* ``ffibuilder.emit_python_code()`` and ``ffibuiler.emit_c_code()`` accept \ 
file-like objects
* ``ffiplatform`` calls are bypassed by ``ffibuilder.emit_python_code()`` and \ 
``ffibuilder.emit_c_code()``
   2024-03-19 11:49:47 by Nia Alarie | Files touched by this commit (2)
Log message:
py-cffi: Do not attempt to peek past pkg-config on Darwin/FreeBSD
   2023-11-05 14:44:36 by Thomas Klausner | Files touched by this commit (2)
Log message:
py-cffi: convert to wheel.mk

Does not support Python 2 any longer.

Bump PKGREVISION.
   2023-10-29 19:32:21 by Thomas Klausner | Files touched by this commit (1)
Log message:
py-cffi: fix for Python 2