a native cpython extension to parse zig object notation strings
Project description
Python Zig Zon Parser
A native python extension built with zig to parse zig-object-notation strings into python objects.
On PyPi it is only distributed in source, and built during install.
It therefore needs to download the ziglang python package.
Depending on your OS, you may need the python development headers
(e.g. python3-dev) installed.
Usage
install from source on pypi:
pip install zig-zon
running:
import zig_zon
parsed = zig_zon.parse('.{.allyourcode = .are_belong_to_us, .asd = 123}')
print(parsed)
or, look at the test file
Supported values and their python type
structs->dicttuples->listinteger literals->inthex literals->intfloat literals->floatbooleans->boolnull->Nonestring literals->strbare enum literals->strquoted enum literals->str
Not supported values
bigint
How it works
The zig build commands produces a python source distribution archive ready
for uploading to Pypi. It includes the sources of zig-python-sdist
and a custom setup.py that handles the build of the cpython extension.
When you run pip install, the source distribution is downloaded, and since
this source distribution depends on the ziglang python package at build time,
a zig build command is used to compile the extension.
Developing
as opposed to other solutions for building cpython extensions in zig, i want to develop this using:
zig build
for linking against the local python installation zig-python-sdist
runs a python script that imports the cpython headers into zig's build cache,
run translate-c on the result and offers a cpython module to import
in our zig code.
On windows, the extension library is also linked against
the python runtime static lib and renamed to a .pyd file for importing.
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
File details
Details for the file zig_zon-0.2.2.tar.gz.
File metadata
- Download URL: zig_zon-0.2.2.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8ceb2b860d11604aed6017b1d612e5f30f4df1cfe1cbe31dbcf4fa0a02b0bbf
|
|
| MD5 |
5dba16767208171a67c3e2fa58af0563
|
|
| BLAKE2b-256 |
b9b6d5a8418372234e879f013419f9b12e2f4fe20a78f6b8f13fadf73432992a
|