C binding automation
Project description
C parser and bindings automation for Python.
Fork of https://launchpad.net/pyclibrary.
PyCLibrary includes 1) a pure-python C parser and 2) an automation library that uses C header file definitions to simplify the use of c bindings. The C parser currently processes all macros, typedefs, structs, unions, enums, function prototypes, and global variable declarations, and can evaluate typedefs down to their fundamental C types + pointers/arrays/function signatures. Pyclibrary can automatically build c structs/unions and perform type conversions when calling functions via cdll/windll.
PyCLibrary tries to present a ffi agnostic API to allow using different bindings. For the time being only the ctypes based backend is implemented but a cffi backend should be possible to implement (the rational for it would be that the CParser can be used on raw header files which are not always well supported by the cffi parser).
However if you need to manipulate the C object coming back from the library which cannot simply be mapped to Python object your code will most likely not be backend independent so it is discouraged to try to switch between backends.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyclibrary-0.3.0.tar.gz.
File metadata
- Download URL: pyclibrary-0.3.0.tar.gz
- Upload date:
- Size: 583.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3eaa9ab728c11b077644275af4e05ca24ddcad491f47eb45b75db6be52c654
|
|
| MD5 |
ad1114eb42a7cc65cafe1d2133e27537
|
|
| BLAKE2b-256 |
9c3e791a63041d3d237c591b5bf4a50d46d0de7e62a16a0ab8173d2d7e8c79a0
|
Provenance
The following attestation bundles were made for pyclibrary-0.3.0.tar.gz:
Publisher:
release.yml on MatthieuDartiailh/pyclibrary
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyclibrary-0.3.0.tar.gz -
Subject digest:
8a3eaa9ab728c11b077644275af4e05ca24ddcad491f47eb45b75db6be52c654 - Sigstore transparency entry: 462966078
- Sigstore integration time:
-
Permalink:
MatthieuDartiailh/pyclibrary@b3ef135a379abd82d323f8b8017b8b8d02b13272 -
Branch / Tag:
refs/tags/0.3.0 - Owner: https://github.com/MatthieuDartiailh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b3ef135a379abd82d323f8b8017b8b8d02b13272 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyclibrary-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pyclibrary-0.3.0-py3-none-any.whl
- Upload date:
- Size: 562.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b704145eee612d88f0623b4d6a68ea65af77b34aa2d92ed75c61ef3592edc3a1
|
|
| MD5 |
99bd8cf034209cbbac64b25b1fa7a0ff
|
|
| BLAKE2b-256 |
562f5b214a00afd5407d7e174a35e8244174f6f4445a0a9f0a55cafd209af963
|
Provenance
The following attestation bundles were made for pyclibrary-0.3.0-py3-none-any.whl:
Publisher:
release.yml on MatthieuDartiailh/pyclibrary
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyclibrary-0.3.0-py3-none-any.whl -
Subject digest:
b704145eee612d88f0623b4d6a68ea65af77b34aa2d92ed75c61ef3592edc3a1 - Sigstore transparency entry: 462966091
- Sigstore integration time:
-
Permalink:
MatthieuDartiailh/pyclibrary@b3ef135a379abd82d323f8b8017b8b8d02b13272 -
Branch / Tag:
refs/tags/0.3.0 - Owner: https://github.com/MatthieuDartiailh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b3ef135a379abd82d323f8b8017b8b8d02b13272 -
Trigger Event:
push
-
Statement type: