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.
@@ -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>