diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2011-03-23 01:38:31 -0400 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2011-03-23 01:38:31 -0400 |
| commit | b07512071e2e4d81a4334c9cdad24220694731b5 (patch) | |
| tree | 9022a04f202215143e1faaacd3dcf4a60ccb4b59 /tablib | |
| parent | e4881809d64c369989987f86ed80f493da9f5952 (diff) | |
| download | tablib-b07512071e2e4d81a4334c9cdad24220694731b5.tar.gz | |
cyaml fixes
Diffstat (limited to 'tablib')
| -rw-r--r-- | tablib/packages/yaml/__init__.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/tablib/packages/yaml/__init__.py b/tablib/packages/yaml/__init__.py index cd2ea5a..f36267a 100644 --- a/tablib/packages/yaml/__init__.py +++ b/tablib/packages/yaml/__init__.py @@ -9,14 +9,13 @@ from .loader import * from .dumper import * __version__ = '3.09' + try: - from .cyaml import * + from cyaml import * __with_libyaml__ = True except ImportError: __with_libyaml__ = False -import io - def scan(stream, Loader=Loader): """ Scan a YAML stream and produce scanning tokens. @@ -92,7 +91,8 @@ def emit(events, stream=None, Dumper=Dumper, """ getvalue = None if stream is None: - stream = io.StringIO() + from StringIO import StringIO + stream = StringIO() getvalue = stream.getvalue dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, allow_unicode=allow_unicode, line_break=line_break) @@ -104,7 +104,7 @@ def emit(events, stream=None, Dumper=Dumper, def serialize_all(nodes, stream=None, Dumper=Dumper, canonical=None, indent=None, width=None, allow_unicode=None, line_break=None, - encoding=None, explicit_start=None, explicit_end=None, + encoding='utf-8', explicit_start=None, explicit_end=None, version=None, tags=None): """ Serialize a sequence of representation trees into a YAML stream. @@ -113,9 +113,10 @@ def serialize_all(nodes, stream=None, Dumper=Dumper, getvalue = None if stream is None: if encoding is None: - stream = io.StringIO() + from StringIO import StringIO else: - stream = io.BytesIO() + from cStringIO import StringIO + stream = StringIO() getvalue = stream.getvalue dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, allow_unicode=allow_unicode, line_break=line_break, @@ -139,7 +140,7 @@ def dump_all(documents, stream=None, Dumper=Dumper, default_style=None, default_flow_style=None, canonical=None, indent=None, width=None, allow_unicode=None, line_break=None, - encoding=None, explicit_start=None, explicit_end=None, + encoding='utf-8', explicit_start=None, explicit_end=None, version=None, tags=None): """ Serialize a sequence of Python objects into a YAML stream. @@ -148,9 +149,10 @@ def dump_all(documents, stream=None, Dumper=Dumper, getvalue = None if stream is None: if encoding is None: - stream = io.StringIO() + from io import StringIO else: - stream = io.BytesIO() + from io import StringIO + stream = StringIO() getvalue = stream.getvalue dumper = Dumper(stream, default_style=default_style, default_flow_style=default_flow_style, @@ -254,12 +256,13 @@ class YAMLObjectMetaclass(type): cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml) cls.yaml_dumper.add_representer(cls, cls.to_yaml) -class YAMLObject(metaclass=YAMLObjectMetaclass): +class YAMLObject(object): """ An object that can dump itself to a YAML stream and load itself from a YAML stream. """ + __metaclass__ = YAMLObjectMetaclass __slots__ = () # no direct instantiation, so allow immutable subclasses yaml_loader = Loader @@ -268,18 +271,18 @@ class YAMLObject(metaclass=YAMLObjectMetaclass): yaml_tag = None yaml_flow_style = None - @classmethod def from_yaml(cls, loader, node): """ Convert a representation node to a Python object. """ return loader.construct_yaml_object(node, cls) + from_yaml = classmethod(from_yaml) - @classmethod def to_yaml(cls, dumper, data): """ Convert a Python object to a representation node. """ return dumper.represent_yaml_object(cls.yaml_tag, data, cls, flow_style=cls.yaml_flow_style) + to_yaml = classmethod(to_yaml) |
