libfyaml 1.0.0a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- libfyaml-1.0.0a2/LICENSE +21 -0
- libfyaml-1.0.0a2/MANIFEST.in +17 -0
- libfyaml-1.0.0a2/PKG-INFO +74 -0
- libfyaml-1.0.0a2/QUICKSTART.md +41 -0
- libfyaml-1.0.0a2/README.md +40 -0
- libfyaml-1.0.0a2/docs/API.md +816 -0
- libfyaml-1.0.0a2/libfyaml/__init__.py +125 -0
- libfyaml-1.0.0a2/libfyaml/__init__.pyi +449 -0
- libfyaml-1.0.0a2/libfyaml/_libfyaml.c +5866 -0
- libfyaml-1.0.0a2/libfyaml.egg-info/PKG-INFO +74 -0
- libfyaml-1.0.0a2/libfyaml.egg-info/SOURCES.txt +14 -0
- libfyaml-1.0.0a2/libfyaml.egg-info/dependency_links.txt +1 -0
- libfyaml-1.0.0a2/libfyaml.egg-info/top_level.txt +1 -0
- libfyaml-1.0.0a2/pyproject.toml +61 -0
- libfyaml-1.0.0a2/setup.cfg +4 -0
- libfyaml-1.0.0a2/setup.py +256 -0
libfyaml-1.0.0a2/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2025 Pantelis Antoniou <pantelis.antoniou@konsulko.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Include essential files for source distribution
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include QUICKSTART.md
|
|
5
|
+
include docs/API.md
|
|
6
|
+
include pyproject.toml
|
|
7
|
+
include setup.py
|
|
8
|
+
|
|
9
|
+
# Include package sources
|
|
10
|
+
recursive-include libfyaml *.c *.py *.pyi
|
|
11
|
+
|
|
12
|
+
# Exclude build artifacts
|
|
13
|
+
global-exclude *.pyc
|
|
14
|
+
global-exclude *.pyo
|
|
15
|
+
global-exclude *.so
|
|
16
|
+
global-exclude *.pyd
|
|
17
|
+
global-exclude __pycache__
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: libfyaml
|
|
3
|
+
Version: 1.0.0a2
|
|
4
|
+
Summary: Python bindings for libfyaml's generic YAML/JSON value model
|
|
5
|
+
Author-email: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
|
|
6
|
+
Maintainer: libfyaml contributors
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/pantoniou/libfyaml
|
|
9
|
+
Project-URL: Documentation, https://github.com/pantoniou/libfyaml/tree/master/python-libfyaml
|
|
10
|
+
Project-URL: Repository, https://github.com/pantoniou/libfyaml
|
|
11
|
+
Project-URL: Bug Reports, https://github.com/pantoniou/libfyaml/issues
|
|
12
|
+
Project-URL: Changelog, https://github.com/pantoniou/libfyaml/blob/master/CHANGELOG.md
|
|
13
|
+
Keywords: yaml,json,parser,fast,performance,memory-efficient
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Operating System :: POSIX :: BSD
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
19
|
+
Classifier: Programming Language :: C
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
27
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
29
|
+
Classifier: Topic :: Text Processing :: Markup
|
|
30
|
+
Requires-Python: >=3.8
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
License-File: LICENSE
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# libfyaml Python Binding
|
|
36
|
+
|
|
37
|
+
Python bindings for libfyaml's generic YAML/JSON value model.
|
|
38
|
+
|
|
39
|
+
The binding exposes lazy `FyGeneric` wrappers on top of libfyaml's generic API.
|
|
40
|
+
It supports value-oriented parsing, access, conversion, and emission while
|
|
41
|
+
keeping the same data model used by the C generic runtime.
|
|
42
|
+
|
|
43
|
+
## Highlights
|
|
44
|
+
|
|
45
|
+
* YAML and JSON parsing through libfyaml
|
|
46
|
+
* lazy wrappers for mappings, sequences, and scalars
|
|
47
|
+
* direct correspondence with the C `fy_generic` API
|
|
48
|
+
* wheels built from the bundled libfyaml source tree on supported platforms
|
|
49
|
+
|
|
50
|
+
## Platform Support
|
|
51
|
+
|
|
52
|
+
The core libfyaml library supports Linux, macOS, FreeBSD, NetBSD, OpenBSD, and
|
|
53
|
+
Windows.
|
|
54
|
+
|
|
55
|
+
The Python packaging in this directory currently targets:
|
|
56
|
+
|
|
57
|
+
* wheel builds on Linux and macOS
|
|
58
|
+
* source builds on macOS and the BSDs
|
|
59
|
+
* Windows support is not yet part of the Python wheel build matrix
|
|
60
|
+
|
|
61
|
+
## Build Modes
|
|
62
|
+
|
|
63
|
+
When the full libfyaml repository is available, the Python extension builds
|
|
64
|
+
against a bundled static `libfyaml` produced from the parent source tree.
|
|
65
|
+
|
|
66
|
+
When the repository sources are not available, the build falls back to a
|
|
67
|
+
system-installed `libfyaml` discovered through `pkg-config` or standard system
|
|
68
|
+
paths.
|
|
69
|
+
|
|
70
|
+
## Links
|
|
71
|
+
|
|
72
|
+
* API reference: `docs/API.md`
|
|
73
|
+
* Quickstart: `QUICKSTART.md`
|
|
74
|
+
* Project repository: <https://github.com/pantoniou/libfyaml>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Quickstart
|
|
2
|
+
|
|
3
|
+
## Install From Source
|
|
4
|
+
|
|
5
|
+
Source builds are the expected path on macOS, FreeBSD, NetBSD, and OpenBSD
|
|
6
|
+
when a prebuilt wheel is not available. Windows support for the Python binding
|
|
7
|
+
is still being validated.
|
|
8
|
+
|
|
9
|
+
From a full libfyaml checkout:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
python3 -m pip install ./python-libfyaml
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This builds a bundled static `libfyaml` and links the Python extension against
|
|
16
|
+
it.
|
|
17
|
+
|
|
18
|
+
From an environment with `libfyaml` already installed:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
LIBFYAML_USE_SYSTEM=1 python3 -m pip install ./python-libfyaml
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Basic Usage
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
import libfyaml as fy
|
|
28
|
+
|
|
29
|
+
doc = fy.loads("server: {host: localhost, port: 8080}")
|
|
30
|
+
server = doc["server"]
|
|
31
|
+
|
|
32
|
+
print(str(server["host"]))
|
|
33
|
+
print(int(server["port"]))
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Tests
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cd python-libfyaml
|
|
40
|
+
python3 -m pytest tests/
|
|
41
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# libfyaml Python Binding
|
|
2
|
+
|
|
3
|
+
Python bindings for libfyaml's generic YAML/JSON value model.
|
|
4
|
+
|
|
5
|
+
The binding exposes lazy `FyGeneric` wrappers on top of libfyaml's generic API.
|
|
6
|
+
It supports value-oriented parsing, access, conversion, and emission while
|
|
7
|
+
keeping the same data model used by the C generic runtime.
|
|
8
|
+
|
|
9
|
+
## Highlights
|
|
10
|
+
|
|
11
|
+
* YAML and JSON parsing through libfyaml
|
|
12
|
+
* lazy wrappers for mappings, sequences, and scalars
|
|
13
|
+
* direct correspondence with the C `fy_generic` API
|
|
14
|
+
* wheels built from the bundled libfyaml source tree on supported platforms
|
|
15
|
+
|
|
16
|
+
## Platform Support
|
|
17
|
+
|
|
18
|
+
The core libfyaml library supports Linux, macOS, FreeBSD, NetBSD, OpenBSD, and
|
|
19
|
+
Windows.
|
|
20
|
+
|
|
21
|
+
The Python packaging in this directory currently targets:
|
|
22
|
+
|
|
23
|
+
* wheel builds on Linux and macOS
|
|
24
|
+
* source builds on macOS and the BSDs
|
|
25
|
+
* Windows support is not yet part of the Python wheel build matrix
|
|
26
|
+
|
|
27
|
+
## Build Modes
|
|
28
|
+
|
|
29
|
+
When the full libfyaml repository is available, the Python extension builds
|
|
30
|
+
against a bundled static `libfyaml` produced from the parent source tree.
|
|
31
|
+
|
|
32
|
+
When the repository sources are not available, the build falls back to a
|
|
33
|
+
system-installed `libfyaml` discovered through `pkg-config` or standard system
|
|
34
|
+
paths.
|
|
35
|
+
|
|
36
|
+
## Links
|
|
37
|
+
|
|
38
|
+
* API reference: `docs/API.md`
|
|
39
|
+
* Quickstart: `QUICKSTART.md`
|
|
40
|
+
* Project repository: <https://github.com/pantoniou/libfyaml>
|