summaryrefslogtreecommitdiff
path: root/tablib
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.com>2011-03-23 01:38:31 -0400
committerKenneth Reitz <me@kennethreitz.com>2011-03-23 01:38:31 -0400
commitb07512071e2e4d81a4334c9cdad24220694731b5 (patch)
tree9022a04f202215143e1faaacd3dcf4a60ccb4b59 /tablib
parente4881809d64c369989987f86ed80f493da9f5952 (diff)
downloadtablib-b07512071e2e4d81a4334c9cdad24220694731b5.tar.gz
cyaml fixes
Diffstat (limited to 'tablib')
-rw-r--r--tablib/packages/yaml/__init__.py29
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)