wiki:PySyck

Version 9 (modified by xi, 8 years ago) (diff)

--

PySyck

Python bindings for the Syck YAML parser and emitter

Overview

 YAML is a data serialization format designed for human readability and interaction with scripting languages.

 Syck is an extension for reading and writing YAML in scripting languages. Syck provides bindings to the  Python programming language, but they are somewhat limited and leak memory.

PySyck is aimed to update the current Python bindings for Syck. The new bindings provide a wrapper for the Syck emitter and give access to YAML representation graphs. Hopefully it will not leak memory as well.

PySyck may be used for various tasks, in particular, as a replacement of the module  pickle.

Projects using PySyck

If your project uses PySyck, feel free to add its URL along with a small note.

 The Official Python Programming Language Website.

 Pyramid is a simple, file based website templating system. Pyramid uses Nevow as its templating system and YAML as the format for its file based data.

Requirements

PySyck requires Python 2.3 or higher and Syck 0.55 or higher.

You may download the latest Syck release from  http://whytheluckystiff.net/syck/, Alternatively you may check out the code from  the Syck SVN repository and apply my SyckPatches.

Download

The latest version

Syck Source

 http://whytheluckystiff.net/ appears to be down, so I prepared an unofficial syck tarball:

Source

Windows binaries

Changes

  • the distutils script checks the presence of syck.h.
  • the extension module releases GIL before calling syck.
  • The treatment of the !str tag is changed. Now !str-tagged scalars are converted to Unicode strings if they are valid UTF-8, but are not valid ASCII.
  • Windows binaries are compiled against syck-0.61+svn231+patches.tar.gz.
  • The site is moved to http://pyyaml.org/wiki/PySyck.

Older versions

Source

Windows binaries

Documentation

Quick example:

>>> from syck import *
>>> print load("""
... - foo
... - bar
... - baz
... """)
['foo', 'bar', 'baz']
>>> print dump(['foo', 'bar', 'baz'])
---
- foo
- bar
- baz

For more details, please check README.txt.

Development and Bug reports

You may check out the PySyck source code from  PySyck SVN repository.

If you find a bug in PySyck, please file a bug report. You may review open bugs through the list of open tickets.

You may use  YAML-core mailing list to discuss PySyck.

Author and Copyright

The PySyck module is written by Kirill Simonov.

PySyck is released under the BSD license like Syck itself.

Notes