= PySyck = '''Python bindings for the Syck YAML parser and emitter''' == NOTICE: PySyck is super out of date. Don't use it. Syck (the C library) is old and no longer used, and it supports only YAML 1.0 == Use libyaml (c), and PyYaml (python) == Overview == [http://yaml.org/ YAML] is a data serialization format designed for human readability and interaction with scripting languages. [http://whytheluckystiff.net/syck/ Syck] is an extension for reading and writing YAML in scripting languages. Syck provides bindings to the [http://python.org/ 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. PySyck may be used for various tasks, in particular, as a replacement of the module [http://docs.python.org/lib/module-pickle.html pickle]. == Projects using PySyck == If your project uses PySyck, feel free to add its URL along with a small note. [http://python.org/ The Official Python Programming Language Website]. [http://pyramid.pollenation.net/cgi-bin/trac.cgi 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. [http://www.pollenation.net Pollenation Internet] use yaml and pysyck in many project sites (e.g. The [http://www.superleague.co.uk Super League], The Oman Ministry of Foreign affairs, London Bridge Hospital). It is primarily used for configuration but some non technical clients also use it for general site data. oftcdns - Geolocation aware resolver for irc [http://www.digsby.com Digsby] is a multiprotocol IM client with social networking and email features. It uses YAML for both configuration files and as its skinning language. == 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 download [http://pyyaml.org/download/pysyck/syck-0.61+svn231+patches.tar.gz my unofficial syck tarball]. It is the code from [http://code.whytheluckystiff.net/svn/syck/trunk the Syck SVN repository] with my SyckPatches applied. == Download == === Latest release === The latest release of PySyck is '''0.61.2'''. ==== Syck source ==== I prepared an '''unofficial''' syck tarball: * [http://pyyaml.org/download/pysyck/syck-0.61+svn231+patches.tar.gz syck-0.61+svn231+patches.tar.gz] Debian GNU/Linux includes a recent snapshot of syck: * [http://packages.debian.org/unstable/source/syck] There are source/binary rpm package(s) in a yum repository compiled against Fedora Core 5 at * [http://wraptastic.org/pub/i386-linux/SRPMS/syck-0.61-1.src.rpm SRPMS/syck-0.61-1.src.rpm] * [http://wraptastic.org/pub/i386-linux/RPMS/syck-devel-0.61-1.i386.rpm RPMS/syck-devel-0.61-1.i386.rpm] ==== Source ==== * [http://pyyaml.org/download/pysyck/PySyck-0.61.2.tar.gz PySyck-0.61.2.tar.gz] * [http://pyyaml.org/download/pysyck/PySyck-0.61.2.zip PySyck-0.61.2.zip] ==== Windows binaries ==== * [http://pyyaml.org/download/pysyck/PySyck-0.61.2.win32-py2.5.exe PySyck-0.61.2.win32-py2.5.exe] * [http://pyyaml.org/download/pysyck/PySyck-0.61.2.win32-py2.4.exe PySyck-0.61.2.win32-py2.4.exe] * [http://pyyaml.org/download/pysyck/PySyck-0.61.2.win32-py2.3.exe PySyck-0.61.2.win32-py2.3.exe] ==== Changes from 0.61.1 to 0.61.2 ==== * fix a leak in the parser (thanks to Jeff Johnson). * bump the development status to Production/Stable. ==== Changes from 0.55.1 to 0.61.1 ==== * setup.py build: check the presence of syck.h and print a helpful message if it is not found. * Release GIL when calling syck. * Change the way !str-tagged scalars are converted. If a scalar contains only ASCII characters, it is converted to a plain string object. If it is a valid UTF-8 sequence, it is converted to a Unicode object. Otherwise leave it as is, and issue a warning. * Windows binaries are built against http://pyyaml.org/download/pysyck/syck-0.61+svn231+patches.tar.gz * The new home of PySyck is http://pyyaml.org/wiki/PySyck. === Older releases === ==== 0.61.1 ==== * [http://pyyaml.org/download/pysyck/PySyck-0.61.1.tar.gz PySyck-0.61.1.tar.gz] * [http://pyyaml.org/download/pysyck/PySyck-0.61.1.zip PySyck-0.61.1.zip] * [http://pyyaml.org/download/pysyck/PySyck-0.61.1.win32-py2.4.exe PySyck-0.61.1.win32-py2.4.exe] * [http://pyyaml.org/download/pysyck/PySyck-0.61.1.win32-py2.3.exe PySyck-0.61.1.win32-py2.3.exe] ==== 0.55.1 ==== * [http://pyyaml.org/download/pysyck/PySyck-0.55.1.tar.gz PySyck-0.55.1.tar.gz] * [http://pyyaml.org/download/pysyck/PySyck-0.55.1.zip PySyck-0.55.1.zip] * [http://pyyaml.org/download/pysyck/PySyck-0.55.1.win32-py2.4.exe PySyck-0.55.1.win32-py2.4.exe] * [http://pyyaml.org/download/pysyck/PySyck-0.55.1.win32-py2.3.exe PySyck-0.55.1.win32-py2.3.exe] * [http://pyyaml.org/download/pysyck/PySyck-0.55.1.win32-py2.2.exe PySyck-0.55.1.win32-py2.2.exe] == Documentation == ''Quick example:'' {{{ #!python >>> from syck import * >>> print load(""" ... - foo ... - bar ... - baz ... """) ['foo', 'bar', 'baz'] >>> print dump(['foo', 'bar', 'baz']) --- - foo - bar - baz }}} For more details, please check [http://pyyaml.org/file/pysyck/trunk/README.txt README.txt]. == Development and bug reports == You may check out the PySyck source code from [http://svn.pyyaml.org/pysyck PySyck SVN repository]. If you find a bug in PySyck, please [http://pyyaml.org/newticket?component=pysyck file a bug report]. You may review open bugs through [http://pyyaml.org/query?action=view&component=pysyck&order=priority the list of open tickets]. You may discuss PySyck at [http://lists.sourceforge.net/lists/listinfo/yaml-core the YAML-core mailing list]. == Author and copyright == The PySyck module is written by [mailto:xi@resolvent.net Kirill Simonov]. PySyck is released under the BSD license like Syck itself. == Notes == * SyckPatches * LibSyck