Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/swaroopch/edn_format
EDN reader and writer implementation in Python, using PLY (lex, yacc)
https://github.com/swaroopch/edn_format
clojure deserialization edn edn-format python serialization
Last synced: 2 days ago
JSON representation
EDN reader and writer implementation in Python, using PLY (lex, yacc)
- Host: GitHub
- URL: https://github.com/swaroopch/edn_format
- Owner: swaroopch
- License: other
- Created: 2012-12-22T14:51:59.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2024-07-09T17:30:33.000Z (6 months ago)
- Last Synced: 2025-01-11T17:04:27.260Z (9 days ago)
- Topics: clojure, deserialization, edn, edn-format, python, serialization
- Language: Python
- Homepage: https://www.swaroopch.com/Wrote-an-EDN-format-reader-and-writer-in-Python-11e0924249b181e3af8bdb9af1456373
- Size: 217 KB
- Stars: 138
- Watchers: 10
- Forks: 31
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# edn_format #
Implements the [EDN format](https://github.com/edn-format/edn) in Python.
All features of EDN are implemented, including custom tagged elements.
![Build Status](https://github.com/swaroopch/edn_format/workflows/build/badge.svg)
[![PyPI version](https://img.shields.io/pypi/v/edn_format.svg)](https://pypi.org/project/edn_format/)## Installation ##
pip install edn_format
## Usage ##
```pycon
>>> import edn_format
>>> edn_format.dumps({1, 2, 3})
'#{1 2 3}'
>>> edn_format.loads("[1 true nil]")
[1, True, None]
>>> edn_format.loads_all("1 2 3 4")
[1, 2, 3, 4]
```In general, `edn_format.loads(edn_format.dumps(obj)) == obj`. If this is
false, it may be a bug.See `tests.py` for full details.
## Contributors ##
Special thanks to the following contributors for making this library
usable:- [@bfontaine](https://github.com/bfontaine)
- [@marianoguerra](https://github.com/marianoguerra)
- [@bitemyapp](https://github.com/bitemyapp)
- [@jashugan](https://github.com/jashugan)
- [@exilef](https://github.com/exilef)## FAQ ##
### Why immutable list & dict? ###
IIRC, it was related to https://github.com/edn-format/edn#rationale :
> edn will yield distinct object identities when read, unless a reader implementation goes out of its way to make such a promise. Thus **the resulting values should be considered immutable**, and a reader implementation should yield values that ensure this, to the extent possible.