diff options
Diffstat (limited to 'third_party/python/PyYAML')
48 files changed, 44178 insertions, 0 deletions
diff --git a/third_party/python/PyYAML/CHANGES b/third_party/python/PyYAML/CHANGES new file mode 100644 index 0000000000..f3facb14cf --- /dev/null +++ b/third_party/python/PyYAML/CHANGES @@ -0,0 +1,242 @@ + +For a complete changelog, see: + +* https://github.com/yaml/pyyaml/commits/ +* https://bitbucket.org/xi/pyyaml/commits/ + +5.3.1 (2020-03-18) + +* https://github.com/yaml/pyyaml/pull/386 -- Prevents arbitrary code execution during python/object/new constructor + +5.3 (2020-01-06) + +* https://github.com/yaml/pyyaml/pull/290 -- Use `is` instead of equality for comparing with `None` +* https://github.com/yaml/pyyaml/pull/270 -- fix typos and stylistic nit +* https://github.com/yaml/pyyaml/pull/309 -- Fix up small typo +* https://github.com/yaml/pyyaml/pull/161 -- Fix handling of __slots__ +* https://github.com/yaml/pyyaml/pull/358 -- Allow calling add_multi_constructor with None +* https://github.com/yaml/pyyaml/pull/285 -- Add use of safe_load() function in README +* https://github.com/yaml/pyyaml/pull/351 -- Fix reader for Unicode code points over 0xFFFF +* https://github.com/yaml/pyyaml/pull/360 -- Enable certain unicode tests when maxunicode not > 0xffff +* https://github.com/yaml/pyyaml/pull/359 -- Use full_load in yaml-highlight example +* https://github.com/yaml/pyyaml/pull/244 -- Document that PyYAML is implemented with Cython +* https://github.com/yaml/pyyaml/pull/329 -- Fix for Python 3.10 +* https://github.com/yaml/pyyaml/pull/310 -- increase size of index, line, and column fields +* https://github.com/yaml/pyyaml/pull/260 -- remove some unused imports +* https://github.com/yaml/pyyaml/pull/163 -- Create timezone-aware datetimes when parsed as such +* https://github.com/yaml/pyyaml/pull/363 -- Add tests for timezone + +5.2 (2019-12-02) +------------------ + +* Repair incompatibilities introduced with 5.1. The default Loader was changed, + but several methods like add_constructor still used the old default + https://github.com/yaml/pyyaml/pull/279 -- A more flexible fix for custom tag constructors + https://github.com/yaml/pyyaml/pull/287 -- Change default loader for yaml.add_constructor + https://github.com/yaml/pyyaml/pull/305 -- Change default loader for add_implicit_resolver, add_path_resolver +* Make FullLoader safer by removing python/object/apply from the default FullLoader + https://github.com/yaml/pyyaml/pull/347 -- Move constructor for object/apply to UnsafeConstructor +* Fix bug introduced in 5.1 where quoting went wrong on systems with sys.maxunicode <= 0xffff + https://github.com/yaml/pyyaml/pull/276 -- Fix logic for quoting special characters +* Other PRs: + https://github.com/yaml/pyyaml/pull/280 -- Update CHANGES for 5.1 + +5.1.2 (2019-07-30) +------------------ + +* Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b2+ + +5.1.1 (2019-06-05) +------------------ + +* Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b1 + +5.1 (2019-03-13) +---------------- + +* https://github.com/yaml/pyyaml/pull/35 -- Some modernization of the test running +* https://github.com/yaml/pyyaml/pull/42 -- Install tox in a virtualenv +* https://github.com/yaml/pyyaml/pull/45 -- Allow colon in a plain scalar in a flow context +* https://github.com/yaml/pyyaml/pull/48 -- Fix typos +* https://github.com/yaml/pyyaml/pull/55 -- Improve RepresenterError creation +* https://github.com/yaml/pyyaml/pull/59 -- Resolves #57, update readme issues link +* https://github.com/yaml/pyyaml/pull/60 -- Document and test Python 3.6 support +* https://github.com/yaml/pyyaml/pull/61 -- Use Travis CI built in pip cache support +* https://github.com/yaml/pyyaml/pull/62 -- Remove tox workaround for Travis CI +* https://github.com/yaml/pyyaml/pull/63 -- Adding support to Unicode characters over codepoint 0xffff +* https://github.com/yaml/pyyaml/pull/75 -- add 3.12 changelog +* https://github.com/yaml/pyyaml/pull/76 -- Fallback to Pure Python if Compilation fails +* https://github.com/yaml/pyyaml/pull/84 -- Drop unsupported Python 3.3 +* https://github.com/yaml/pyyaml/pull/102 -- Include license file in the generated wheel package +* https://github.com/yaml/pyyaml/pull/105 -- Removed Python 2.6 & 3.3 support +* https://github.com/yaml/pyyaml/pull/111 -- Remove commented out Psyco code +* https://github.com/yaml/pyyaml/pull/129 -- Remove call to `ord` in lib3 emitter code +* https://github.com/yaml/pyyaml/pull/149 -- Test on Python 3.7-dev +* https://github.com/yaml/pyyaml/pull/158 -- Support escaped slash in double quotes "\/" +* https://github.com/yaml/pyyaml/pull/175 -- Updated link to pypi in release announcement +* https://github.com/yaml/pyyaml/pull/181 -- Import Hashable from collections.abc +* https://github.com/yaml/pyyaml/pull/194 -- Reverting https://github.com/yaml/pyyaml/pull/74 +* https://github.com/yaml/pyyaml/pull/195 -- Build libyaml on travis +* https://github.com/yaml/pyyaml/pull/196 -- Force cython when building sdist +* https://github.com/yaml/pyyaml/pull/254 -- Allow to turn off sorting keys in Dumper (2) +* https://github.com/yaml/pyyaml/pull/256 -- Make default_flow_style=False +* https://github.com/yaml/pyyaml/pull/257 -- Deprecate yaml.load and add FullLoader and UnsafeLoader classes +* https://github.com/yaml/pyyaml/pull/261 -- Skip certain unicode tests when maxunicode not > 0xffff +* https://github.com/yaml/pyyaml/pull/263 -- Windows Appveyor build + +3.13 (2018-07-05) +----------------- + +* Resolved issues around PyYAML working in Python 3.7. + +3.12 (2016-08-28) +----------------- + +* Wheel packages for Windows binaries. +* Adding an implicit resolver to a derived loader should not affect the base loader. +* Uniform representation for OrderedDict? across different versions of Python. +* Fixed comparison to None warning. + +3.11 (2014-03-26) +----------------- + +* Source and binary distributions are rebuilt against the latest + versions of Cython and LibYAML. + +3.10 (2011-05-30) +----------------- + +* Do not try to build LibYAML bindings on platforms other than CPython + (Thank to olt(at)bogosoft(dot)com). +* Clear cyclic references in the parser and the emitter + (Thank to kristjan(at)ccpgames(dot)com). +* Dropped support for Python 2.3 and 2.4. + +3.09 (2009-08-31) +----------------- + +* Fixed an obscure scanner error not reported when there is + no line break at the end of the stream (Thank to Ingy). +* Fixed use of uninitialized memory when emitting anchors with + LibYAML bindings (Thank to cegner(at)yahoo-inc(dot)com). +* Fixed emitting incorrect BOM characters for UTF-16 (Thank to + Valentin Nechayev) +* Fixed the emitter for folded scalars not respecting the preferred + line width (Thank to Ingy). +* Fixed a subtle ordering issue with emitting '%TAG' directives + (Thank to Andrey Somov). +* Fixed performance regression with LibYAML bindings. + + +3.08 (2008-12-31) +----------------- + +* Python 3 support (Thank to Erick Tryzelaar). +* Use Cython instead of Pyrex to build LibYAML bindings. +* Refactored support for unicode and byte input/output streams. + + +3.07 (2008-12-29) +----------------- + +* The emitter learned to use an optional indentation indicator + for block scalar; thus scalars with leading whitespaces + could now be represented in a literal or folded style. +* The test suite is now included in the source distribution. + To run the tests, type 'python setup.py test'. +* Refactored the test suite: dropped unittest in favor of + a custom test appliance. +* Fixed the path resolver in CDumper. +* Forced an explicit document end indicator when there is + a possibility of parsing ambiguity. +* More setup.py improvements: the package should be usable + when any combination of setuptools, Pyrex and LibYAML + is installed. +* Windows binary packages are built against LibYAML-0.1.2. +* Minor typos and corrections (Thank to Ingy dot Net + and Andrey Somov). + + +3.06 (2008-10-03) +----------------- + +* setup.py checks whether LibYAML is installed and if so, builds + and installs LibYAML bindings. To force or disable installation + of LibYAML bindings, use '--with-libyaml' or '--without-libyaml' + respectively. +* The source distribution includes compiled Pyrex sources so + building LibYAML bindings no longer requires Pyrex installed. +* 'yaml.load()' raises an exception if the input stream contains + more than one YAML document. +* Fixed exceptions produced by LibYAML bindings. +* Fixed a dot '.' character being recognized as !!float. +* Fixed Python 2.3 compatibility issue in constructing !!timestamp values. +* Windows binary packages are built against the LibYAML stable branch. +* Added attributes 'yaml.__version__' and 'yaml.__with_libyaml__'. + + +3.05 (2007-05-13) +----------------- + +* Windows binary packages were built with LibYAML trunk. +* Fixed a bug that prevent processing a live stream of YAML documents in + timely manner (Thanks edward(at)sweetbytes(dot)net). +* Fixed a bug when the path in add_path_resolver contains boolean values + (Thanks jstroud(at)mbi(dot)ucla(dot)edu). +* Fixed loss of microsecond precision in timestamps + (Thanks edemaine(at)mit(dot)edu). +* Fixed loading an empty YAML stream. +* Allowed immutable subclasses of YAMLObject. +* Made the encoding of the unicode->str conversion explicit so that + the conversion does not depend on the default Python encoding. +* Forced emitting float values in a YAML compatible form. + + +3.04 (2006-08-20) +----------------- + +* Include experimental LibYAML bindings. +* Fully support recursive structures. +* Sort dictionary keys. Mapping node values are now represented + as lists of pairs instead of dictionaries. No longer check + for duplicate mapping keys as it didn't work correctly anyway. +* Fix invalid output of single-quoted scalars in cases when a single + quote is not escaped when preceded by whitespaces or line breaks. +* To make porting easier, rewrite Parser not using generators. +* Fix handling of unexpected block mapping values. +* Fix a bug in Representer.represent_object: copy_reg.dispatch_table + was not correctly handled. +* Fix a bug when a block scalar is incorrectly emitted in the simple + key context. +* Hold references to the objects being represented. +* Make Representer not try to guess !!pairs when a list is represented. +* Fix timestamp constructing and representing. +* Fix the 'N' plain scalar being incorrectly recognized as !!bool. + + +3.03 (2006-06-19) +----------------- + +* Fix Python 2.5 compatibility issues. +* Fix numerous bugs in the float handling. +* Fix scanning some ill-formed documents. +* Other minor fixes. + + +3.02 (2006-05-15) +----------------- + +* Fix win32 installer. Apparently bdist_wininst does not work well + under Linux. +* Fix a bug in add_path_resolver. +* Add the yaml-highlight example. Try to run on a color terminal: + `python yaml_hl.py <any_document.yaml`. + + +3.01 (2006-05-07) +----------------- + +* Initial release. The version number reflects the codename + of the project (PyYAML 3000) and differentiates it from + the abandoned PyYaml module. + diff --git a/third_party/python/PyYAML/LICENSE b/third_party/python/PyYAML/LICENSE new file mode 100644 index 0000000000..3d82c281ee --- /dev/null +++ b/third_party/python/PyYAML/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2017-2020 Ingy döt Net +Copyright (c) 2006-2016 Kirill Simonov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/python/PyYAML/PKG-INFO b/third_party/python/PyYAML/PKG-INFO new file mode 100644 index 0000000000..bf47ef4b35 --- /dev/null +++ b/third_party/python/PyYAML/PKG-INFO @@ -0,0 +1,38 @@ +Metadata-Version: 1.1 +Name: PyYAML +Version: 5.3.1 +Summary: YAML parser and emitter for Python +Home-page: https://github.com/yaml/pyyaml +Author: Kirill Simonov +Author-email: xi@resolvent.net +License: MIT +Download-URL: https://pypi.org/project/PyYAML/ +Description: YAML is a data serialization format designed for human readability + and interaction with scripting languages. PyYAML is a YAML parser + and emitter for Python. + + PyYAML features a complete YAML 1.1 parser, Unicode support, pickle + support, capable extension API, and sensible error messages. PyYAML + supports standard YAML tags and provides Python-specific tags that + allow to represent an arbitrary Python object. + + PyYAML is applicable for a broad range of tasks from complex + configuration files to object serialization and persistence. +Platform: Any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Cython +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Text Processing :: Markup diff --git a/third_party/python/PyYAML/README b/third_party/python/PyYAML/README new file mode 100644 index 0000000000..49c87e7642 --- /dev/null +++ b/third_party/python/PyYAML/README @@ -0,0 +1,43 @@ +PyYAML - The next generation YAML parser and emitter for Python. + +To install, type 'python setup.py install'. + +By default, the setup.py script checks whether LibYAML is installed +and if so, builds and installs LibYAML bindings. To skip the check +and force installation of LibYAML bindings, use the option '--with-libyaml': +'python setup.py --with-libyaml install'. To disable the check and +skip building and installing LibYAML bindings, use '--without-libyaml': +'python setup.py --without-libyaml install'. + +When LibYAML bindings are installed, you may use fast LibYAML-based +parser and emitter as follows: + + >>> yaml.load(stream, Loader=yaml.CLoader) + >>> yaml.dump(data, Dumper=yaml.CDumper) + +If you don't trust the input stream, you should use: + + >>> yaml.safe_load(stream) + +PyYAML includes a comprehensive test suite. To run the tests, +type 'python setup.py test'. + +For more information, check the PyYAML homepage: +'https://github.com/yaml/pyyaml'. + +For PyYAML tutorial and reference, see: +'http://pyyaml.org/wiki/PyYAMLDocumentation'. + +Discuss PyYAML with the maintainers in IRC #pyyaml irc.freenode.net. + +You may also use the YAML-Core mailing list: +'http://lists.sourceforge.net/lists/listinfo/yaml-core'. + +Submit bug reports and feature requests to the PyYAML bug tracker: +'https://github.com/yaml/pyyaml/issues'. + +The PyYAML module was written by Kirill Simonov <xi@resolvent.net>. +It is currently maintained by the YAML and Python communities. + +PyYAML is released under the MIT license. +See the file LICENSE for more details. diff --git a/third_party/python/PyYAML/examples/pygments-lexer/example.yaml b/third_party/python/PyYAML/examples/pygments-lexer/example.yaml new file mode 100644 index 0000000000..9c0ed9d082 --- /dev/null +++ b/third_party/python/PyYAML/examples/pygments-lexer/example.yaml @@ -0,0 +1,302 @@ + +# +# Examples from the Preview section of the YAML specification +# (http://yaml.org/spec/1.2/#Preview) +# + +# Sequence of scalars +--- +- Mark McGwire +- Sammy Sosa +- Ken Griffey + +# Mapping scalars to scalars +--- +hr: 65 # Home runs +avg: 0.278 # Batting average +rbi: 147 # Runs Batted In + +# Mapping scalars to sequences +--- +american: + - Boston Red Sox + - Detroit Tigers + - New York Yankees +national: + - New York Mets + - Chicago Cubs + - Atlanta Braves + +# Sequence of mappings +--- +- + name: Mark McGwire + hr: 65 + avg: 0.278 +- + name: Sammy Sosa + hr: 63 + avg: 0.288 + +# Sequence of sequences +--- +- [name , hr, avg ] +- [Mark McGwire, 65, 0.278] +- [Sammy Sosa , 63, 0.288] + +# Mapping of mappings +--- +Mark McGwire: {hr: 65, avg: 0.278} +Sammy Sosa: { + hr: 63, + avg: 0.288 + } + +# Two documents in a stream +--- # Ranking of 1998 home runs +- Mark McGwire +- Sammy Sosa +- Ken Griffey +--- # Team ranking +- Chicago Cubs +- St Louis Cardinals + +# Documents with the end indicator +--- +time: 20:03:20 +player: Sammy Sosa +action: strike (miss) +... +--- +time: 20:03:47 +player: Sammy Sosa +action: grand slam +... + +# Comments +--- +hr: # 1998 hr ranking + - Mark McGwire + - Sammy Sosa +rbi: + # 1998 rbi ranking + - Sammy Sosa + - Ken Griffey + +# Anchors and aliases +--- +hr: + - Mark McGwire + # Following node labeled SS + - &SS Sammy Sosa +rbi: + - *SS # Subsequent occurrence + - Ken Griffey + +# Mapping between sequences +--- +? - Detroit Tigers + - Chicago cubs +: + - 2001-07-23 +? [ New York Yankees, + Atlanta Braves ] +: [ 2001-07-02, 2001-08-12, + 2001-08-14 ] + +# Inline nested mapping +--- +# products purchased +- item : Super Hoop + quantity: 1 +- item : Basketball + quantity: 4 +- item : Big Shoes + quantity: 1 + +# Literal scalars +--- | # ASCII art + \//||\/|| + // || ||__ + +# Folded scalars +--- > + Mark McGwire's + year was crippled + by a knee injury. + +# Preserved indented block in a folded scalar +--- +> + Sammy Sosa completed another + fine season with great stats. + + 63 Home Runs + 0.288 Batting Average + + What a year! + +# Indentation determines scope +--- +name: Mark McGwire +accomplishment: > + Mark set a major league + home run record in 1998. +stats: | + 65 Home Runs + 0.278 Batting Average + +# Quoted scalars +--- +unicode: "Sosa did fine.\u263A" +control: "\b1998\t1999\t2000\n" +hex esc: "\x0d\x0a is \r\n" +single: '"Howdy!" he cried.' +quoted: ' # not a ''comment''.' +tie-fighter: '|\-*-/|' + +# Multi-line flow scalars +--- +plain: + This unquoted scalar + spans many lines. +quoted: "So does this + quoted scalar.\n" + +# Integers +--- +canonical: 12345 +decimal: +12_345 +sexagesimal: 3:25:45 +octal: 014 +hexadecimal: 0xC + +# Floating point +--- +canonical: 1.23015e+3 +exponential: 12.3015e+02 +sexagesimal: 20:30.15 +fixed: 1_230.15 +negative infinity: -.inf +not a number: .NaN + +# Miscellaneous +--- +null: ~ +true: boolean +false: boolean +string: '12345' + +# Timestamps +--- +canonical: 2001-12-15T02:59:43.1Z +iso8601: 2001-12-14t21:59:43.10-05:00 +spaced: 2001-12-14 21:59:43.10 -5 +date: 2002-12-14 + +# Various explicit tags +--- +not-date: !!str 2002-04-28 +picture: !!binary | + R0lGODlhDAAMAIQAAP//9/X + 17unp5WZmZgAAAOfn515eXv + Pz7Y6OjuDg4J+fn5OTk6enp + 56enmleECcgggoBADs= +application specific tag: !something | + The semantics of the tag + above may be different for + different documents. + +# Global tags +%TAG ! tag:clarkevans.com,2002: +--- !shape + # Use the ! handle for presenting + # tag:clarkevans.com,2002:circle +- !circle + center: &ORIGIN {x: 73, y: 129} + radius: 7 +- !line + start: *ORIGIN + finish: { x: 89, y: 102 } +- !label + start: *ORIGIN + color: 0xFFEEBB + text: Pretty vector drawing. + +# Unordered sets +--- !!set +# sets are represented as a +# mapping where each key is +# associated with the empty string +? Mark McGwire +? Sammy Sosa +? Ken Griff + +# Ordered mappings +--- !!omap +# ordered maps are represented as +# a sequence of mappings, with +# each mapping having one key +- Mark McGwire: 65 +- Sammy Sosa: 63 +- Ken Griffy: 58 + +# Full length example +--- !<tag:clarkevans.com,2002:invoice> +invoice: 34843 +date : 2001-01-23 +bill-to: &id001 + given : Chris + family : Dumars + address: + lines: | + 458 Walkman Dr. + Suite #292 + city : Royal Oak + state : MI + postal : 48046 +ship-to: *id001 +product: + - sku : BL394D + quantity : 4 + description : Basketball + price : 450.00 + - sku : BL4438H + quantity : 1 + description : Super Hoop + price : 2392.00 +tax : 251.42 +total: 4443.52 +comments: + Late afternoon is best. + Backup contact is Nancy + Billsmer @ 338-4338. + +# Another full-length example +--- +Time: 2001-11-23 15:01:42 -5 +User: ed +Warning: + This is an error message + for the log file +--- +Time: 2001-11-23 15:02:31 -5 +User: ed +Warning: + A slightly different error + message. +--- +Date: 2001-11-23 15:03:17 -5 +User: ed +Fatal: + Unknown variable "bar" +Stack: + - file: TopClass.py + line: 23 + code: | + x = MoreObject("345\n") + - file: MoreClass.py + line: 58 + code: |- + foo = bar + diff --git a/third_party/python/PyYAML/examples/pygments-lexer/yaml.py b/third_party/python/PyYAML/examples/pygments-lexer/yaml.py new file mode 100644 index 0000000000..1a1bbdeb3a --- /dev/null +++ b/third_party/python/PyYAML/examples/pygments-lexer/yaml.py @@ -0,0 +1,431 @@ + +""" +yaml.py + +Lexer for YAML, a human-friendly data serialization language +(http://yaml.org/). + +Written by Kirill Simonov <xi@resolvent.net>. + +License: Whatever suitable for inclusion into the Pygments package. +""" + +from pygments.lexer import \ + ExtendedRegexLexer, LexerContext, include, bygroups +from pygments.token import \ + Text, Comment, Punctuation, Name, Literal + +__all__ = ['YAMLLexer'] + + +class YAMLLexerContext(LexerContext): + """Indentation context for the YAML lexer.""" + + def __init__(self, *args, **kwds): + super(YAMLLexerContext, self).__init__(*args, **kwds) + self.indent_stack = [] + self.indent = -1 + self.next_indent = 0 + self.block_scalar_indent = None + + +def something(TokenClass): + """Do not produce empty tokens.""" + def callback(lexer, match, context): + text = match.group() + if not text: + return + yield match.start(), TokenClass, text + context.pos = match.end() + return callback + +def reset_indent(TokenClass): + """Reset the indentation levels.""" + def callback(lexer, match, context): + text = match.group() + context.indent_stack = [] + context.indent = -1 + context.next_indent = 0 + context.block_scalar_indent = None + yield match.start(), TokenClass, text + context.pos = match.end() + return callback + +def save_indent(TokenClass, start=False): + """Save a possible indentation level.""" + def callback(lexer, match, context): + text = match.group() + extra = '' + if start: + context.next_indent = len(text) + if context.next_indent < context.indent: + while context.next_indent < context.indent: + context.indent = context.indent_stack.pop() + if context.next_indent > context.indent: + extra = text[context.indent:] + text = text[:context.indent] + else: + context.next_indent += len(text) + if text: + yield match.start(), TokenClass, text + if extra: + yield match.start()+len(text), TokenClass.Error, extra + context.pos = match.end() + return callback + +def set_indent(TokenClass, implicit=False): + """Set the previously saved indentation level.""" + def callback(lexer, match, context): + text = match.group() + if context.indent < context.next_indent: + context.indent_stack.append(context.indent) + context.indent = context.next_indent + if not implicit: + context.next_indent += len(text) + yield match.start(), TokenClass, text + context.pos = match.end() + return callback + +def set_block_scalar_indent(TokenClass): + """Set an explicit indentation level for a block scalar.""" + def callback(lexer, match, context): + text = match.group() + context.block_scalar_indent = None + if not text: + return + increment = match.group(1) + if increment: + current_indent = max(context.indent, 0) + increment = int(increment) + context.block_scalar_indent = current_indent + increment + if text: + yield match.start(), TokenClass, text + context.pos = match.end() + return callback + +def parse_block_scalar_empty_line(IndentTokenClass, ContentTokenClass): + """Process an empty line in a block scalar.""" + def callback(lexer, match, context): + text = match.group() + if (context.block_scalar_indent is None or + len(text) <= context.block_scalar_indent): + if text: + yield match.start(), IndentTokenClass, text + else: + indentation = text[:context.block_scalar_indent] + content = text[context.block_scalar_indent:] + yield match.start(), IndentTokenClass, indentation + yield (match.start()+context.block_scalar_indent, + ContentTokenClass, content) + context.pos = match.end() + return callback + +def parse_block_scalar_indent(TokenClass): + """Process indentation spaces in a block scalar.""" + def callback(lexer, match, context): + text = match.group() + if context.block_scalar_indent is None: + if len(text) <= max(context.indent, 0): + context.stack.pop() + context.stack.pop() + return + context.block_scalar_indent = len(text) + else: + if len(text) < context.block_scalar_indent: + context.stack.pop() + context.stack.pop() + return + if text: + yield match.start(), TokenClass, text + context.pos = match.end() + return callback + +def parse_plain_scalar_indent(TokenClass): + """Process indentation spaces in a plain scalar.""" + def callback(lexer, match, context): + text = match.group() + if len(text) <= context.indent: + context.stack.pop() + context.stack.pop() + return + if text: + yield match.start(), TokenClass, text + context.pos = match.end() + return callback + + +class YAMLLexer(ExtendedRegexLexer): + """Lexer for the YAML language.""" + + name = 'YAML' + aliases = ['yaml'] + filenames = ['*.yaml', '*.yml'] + mimetypes = ['text/x-yaml'] + + tokens = { + + # the root rules + 'root': [ + # ignored whitespaces + (r'[ ]+(?=#|$)', Text.Blank), + # line breaks + (r'\n+', Text.Break), + # a comment + (r'#[^\n]*', Comment.Single), + # the '%YAML' directive + (r'^%YAML(?=[ ]|$)', reset_indent(Name.Directive), + 'yaml-directive'), + # the %TAG directive + (r'^%TAG(?=[ ]|$)', reset_indent(Name.Directive), + 'tag-directive'), + # document start and document end indicators + (r'^(?:---|\.\.\.)(?=[ ]|$)', + reset_indent(Punctuation.Document), 'block-line'), + # indentation spaces + (r'[ ]*(?![ \t\n\r\f\v]|$)', + save_indent(Text.Indent, start=True), + ('block-line', 'indentation')), + ], + + # trailing whitespaces after directives or a block scalar indicator + 'ignored-line': [ + # ignored whitespaces + (r'[ ]+(?=#|$)', Text.Blank), + # a comment + (r'#[^\n]*', Comment.Single), + # line break + (r'\n', Text.Break, '#pop:2'), + ], + + # the %YAML directive + 'yaml-directive': [ + # the version number + (r'([ ]+)([0-9]+\.[0-9]+)', + bygroups(Text.Blank, Literal.Version), 'ignored-line'), + ], + + # the %YAG directive + 'tag-directive': [ + # a tag handle and the corresponding prefix + (r'([ ]+)(!|![0-9A-Za-z_-]*!)' + r'([ ]+)(!|!?[0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+)', + bygroups(Text.Blank, Name.Type, Text.Blank, Name.Type), + 'ignored-line'), + ], + + # block scalar indicators and indentation spaces + 'indentation': [ + # trailing whitespaces are ignored + (r'[ ]*$', something(Text.Blank), '#pop:2'), + # whitespaces preceding block collection indicators + (r'[ ]+(?=[?:-](?:[ ]|$))', save_indent(Text.Indent)), + # block collection indicators + (r'[?:-](?=[ ]|$)', set_indent(Punctuation.Indicator)), + # the beginning a block line + (r'[ ]*', save_indent(Text.Indent), '#pop'), + ], + + # an indented line in the block context + 'block-line': [ + # the line end + (r'[ ]*(?=#|$)', something(Text.Blank), '#pop'), + # whitespaces separating tokens + (r'[ ]+', Text.Blank), + # tags, anchors and aliases, + include('descriptors'), + # block collections and scalars + include('block-nodes'), + # flow collections and quoted scalars + include('flow-nodes'), + # a plain scalar + (r'(?=[^ \t\n\r\f\v?:,\[\]{}#&*!|>\'"%@`-]|[?:-][^ \t\n\r\f\v])', + something(Literal.Scalar.Plain), + 'plain-scalar-in-block-context'), + ], + + # tags, anchors, aliases + 'descriptors' : [ + # a full-form tag + (r'!<[0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+>', Name.Type), + # a tag in the form '!', '!suffix' or '!handle!suffix' + (r'!(?:[0-9A-Za-z_-]+)?' + r'(?:![0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+)?', Name.Type), + # an anchor + (r'&[0-9A-Za-z_-]+', Name.Anchor), + # an alias + (r'\*[0-9A-Za-z_-]+', Name.Alias), + ], + + # block collections and scalars + 'block-nodes': [ + # implicit key + (r':(?=[ ]|$)', set_indent(Punctuation.Indicator, implicit=True)), + # literal and folded scalars + (r'[|>]', Punctuation.Indicator, + ('block-scalar-content', 'block-scalar-header')), + ], + + # flow collections and quoted scalars + 'flow-nodes': [ + # a flow sequence + (r'\[', Punctuation.Indicator, 'flow-sequence'), + # a flow mapping + (r'\{', Punctuation.Indicator, 'flow-mapping'), + # a single-quoted scalar + (r'\'', Literal.Scalar.Flow.Quote, 'single-quoted-scalar'), + # a double-quoted scalar + (r'\"', Literal.Scalar.Flow.Quote, 'double-quoted-scalar'), + ], + + # the content of a flow collection + 'flow-collection': [ + # whitespaces + (r'[ ]+', Text.Blank), + # line breaks + (r'\n+', Text.Break), + # a comment + (r'#[^\n]*', Comment.Single), + # simple indicators + (r'[?:,]', Punctuation.Indicator), + # tags, anchors and aliases + include('descriptors'), + # nested collections and quoted scalars + include('flow-nodes'), + # a plain scalar + (r'(?=[^ \t\n\r\f\v?:,\[\]{}#&*!|>\'"%@`])', + something(Literal.Scalar.Plain), + 'plain-scalar-in-flow-context'), + ], + + # a flow sequence indicated by '[' and ']' + 'flow-sequence': [ + # include flow collection rules + include('flow-collection'), + # the closing indicator + (r'\]', Punctuation.Indicator, '#pop'), + ], + + # a flow mapping indicated by '{' and '}' + 'flow-mapping': [ + # include flow collection rules + include('flow-collection'), + # the closing indicator + (r'\}', Punctuation.Indicator, '#pop'), + ], + + # block scalar lines + 'block-scalar-content': [ + # line break + (r'\n', Text.Break), + # empty line + (r'^[ ]+$', + parse_block_scalar_empty_line(Text.Indent, + Literal.Scalar.Block)), + # indentation spaces (we may leave the state here) + (r'^[ ]*', parse_block_scalar_indent(Text.Indent)), + # line content + (r'[^\n\r\f\v]+', Literal.Scalar.Block), + ], + + # the content of a literal or folded scalar + 'block-scalar-header': [ + # indentation indicator followed by chomping flag + (r'([1-9])?[+-]?(?=[ ]|$)', + set_block_scalar_indent(Punctuation.Indicator), + 'ignored-line'), + # chomping flag followed by indentation indicator + (r'[+-]?([1-9])?(?=[ ]|$)', + set_block_scalar_indent(Punctuation.Indicator), + 'ignored-line'), + ], + + # ignored and regular whitespaces in quoted scalars + 'quoted-scalar-whitespaces': [ + # leading and trailing whitespaces are ignored + (r'^[ ]+|[ ]+$', Text.Blank), + # line breaks are ignored + (r'\n+', Text.Break), + # other whitespaces are a part of the value + (r'[ ]+', Literal.Scalar.Flow), + ], + + # single-quoted scalars + 'single-quoted-scalar': [ + # include whitespace and line break rules + include('quoted-scalar-whitespaces'), + # escaping of the quote character + (r'\'\'', Literal.Scalar.Flow.Escape), + # regular non-whitespace characters + (r'[^ \t\n\r\f\v\']+', Literal.Scalar.Flow), + # the closing quote + (r'\'', Literal.Scalar.Flow.Quote, '#pop'), + ], + + # double-quoted scalars + 'double-quoted-scalar': [ + # include whitespace and line break rules + include('quoted-scalar-whitespaces'), + # escaping of special characters + (r'\\[0abt\tn\nvfre "\\N_LP]', Literal.Scalar.Flow.Escape), + # escape codes + (r'\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})', + Literal.Scalar.Flow.Escape), + # regular non-whitespace characters + (r'[^ \t\n\r\f\v\"\\]+', Literal.Scalar.Flow), + # the closing quote + (r'"', Literal.Scalar.Flow.Quote, '#pop'), + ], + + # the beginning of a new line while scanning a plain scalar + 'plain-scalar-in-block-context-new-line': [ + # empty lines + (r'^[ ]+$', Text.Blank), + # line breaks + (r'\n+', Text.Break), + # document start and document end indicators + (r'^(?=---|\.\.\.)', something(Punctuation.Document), '#pop:3'), + # indentation spaces (we may leave the block line state here) + (r'^[ ]*', parse_plain_scalar_indent(Text.Indent), '#pop'), + ], + + # a plain scalar in the block context + 'plain-scalar-in-block-context': [ + # the scalar ends with the ':' indicator + (r'[ ]*(?=:[ ]|:$)', something(Text.Blank), '#pop'), + # the scalar ends with whitespaces followed by a comment + (r'[ ]+(?=#)', Text.Blank, '#pop'), + # trailing whitespaces are ignored + (r'[ ]+$', Text.Blank), + # line breaks are ignored + (r'\n+', Text.Break, 'plain-scalar-in-block-context-new-line'), + # other whitespaces are a part of the value + (r'[ ]+', Literal.Scalar.Plain), + # regular non-whitespace characters + (r'(?::(?![ \t\n\r\f\v])|[^ \t\n\r\f\v:])+', + Literal.Scalar.Plain), + ], + + # a plain scalar is the flow context + 'plain-scalar-in-flow-context': [ + # the scalar ends with an indicator character + (r'[ ]*(?=[,:?\[\]{}])', something(Text.Blank), '#pop'), + # the scalar ends with a comment + (r'[ ]+(?=#)', Text.Blank, '#pop'), + # leading and trailing whitespaces are ignored + (r'^[ ]+|[ ]+$', Text.Blank), + # line breaks are ignored + (r'\n+', Text.Break), + # other whitespaces are a part of the value + (r'[ ]+', Literal.Scalar.Plain), + # regular non-whitespace characters + (r'[^ \t\n\r\f\v,:?\[\]{}]+', Literal.Scalar.Plain), + ], + + } + + def get_tokens_unprocessed(self, text=None, context=None): + if context is None: + context = YAMLLexerContext(text, 0) + return super(YAMLLexer, self).get_tokens_unprocessed(text, context) + + diff --git a/third_party/python/PyYAML/examples/yaml-highlight/yaml_hl.cfg b/third_party/python/PyYAML/examples/yaml-highlight/yaml_hl.cfg new file mode 100644 index 0000000000..69bb847764 --- /dev/null +++ b/third_party/python/PyYAML/examples/yaml-highlight/yaml_hl.cfg @@ -0,0 +1,115 @@ +%YAML 1.1 +--- + +ascii: + + header: "\e[0;1;30;40m" + + footer: "\e[0m" + + tokens: + stream-start: + stream-end: + directive: { start: "\e[35m", end: "\e[0;1;30;40m" } + document-start: { start: "\e[35m", end: "\e[0;1;30;40m" } + document-end: { start: "\e[35m", end: "\e[0;1;30;40m" } + block-sequence-start: + block-mapping-start: + block-end: + flow-sequence-start: { start: "\e[33m", end: "\e[0;1;30;40m" } + flow-mapping-start: { start: "\e[33m", end: "\e[0;1;30;40m" } + flow-sequence-end: { start: "\e[33m", end: "\e[0;1;30;40m" } + flow-mapping-end: { start: "\e[33m", end: "\e[0;1;30;40m" } + key: { start: "\e[33m", end: "\e[0;1;30;40m" } + value: { start: "\e[33m", end: "\e[0;1;30;40m" } + block-entry: { start: "\e[33m", end: "\e[0;1;30;40m" } + flow-entry: { start: "\e[33m", end: "\e[0;1;30;40m" } + alias: { start: "\e[32m", end: "\e[0;1;30;40m" } + anchor: { start: "\e[32m", end: "\e[0;1;30;40m" } + tag: { start: "\e[32m", end: "\e[0;1;30;40m" } + scalar: { start: "\e[36m", end: "\e[0;1;30;40m" } + + replaces: + - "\r\n": "\n" + - "\r": "\n" + - "\n": "\n" + - "\x85": "\n" + - "\u2028": "\n" + - "\u2029": "\n" + +html: &html + + tokens: + stream-start: + stream-end: + directive: { start: <code class="directive_token">, end: </code> } + document-start: { start: <code class="document_start_token">, end: </code> } + document-end: { start: <code class="document_end_token">, end: </code> } + block-sequence-start: + block-mapping-start: + block-end: + flow-sequence-start: { start: <code class="delimiter_token">, end: </code> } + flow-mapping-start: { start: <code class="delimiter_token">, end: </code> } + flow-sequence-end: { start: <code class="delimiter_token">, end: </code> } + flow-mapping-end: { start: <code class="delimiter_token">, end: </code> } + key: { start: <code class="delimiter_token">, end: </code> } + value: { start: <code class="delimiter_token">, end: </code> } + block-entry: { start: <code class="delimiter_token">, end: </code> } + flow-entry: { start: <code class="delimiter_token">, end: </code> } + alias: { start: <code class="anchor_token">, end: </code> } + anchor: { start: <code class="anchor_token">, end: </code> } + tag: { start: <code class="tag_token">, end: </code> } + scalar: { start: <code class="scalar_token">, end: </code> } + + events: + stream-start: { start: <pre class="yaml_stream"> } + stream-end: { end: </pre> } + document-start: { start: <span class="document"> } + document-end: { end: </span> } + sequence-start: { start: <span class="sequence"> } + sequence-end: { end: </span> } + mapping-start: { start: <span class="mapping"> } + mapping-end: { end: </span> } + scalar: { start: <span class="scalar">, end: </span> } + + replaces: + - "\r\n": "\n" + - "\r": "\n" + - "\n": "\n" + - "\x85": "\n" + - "\u2028": "\n" + - "\u2029": "\n" + - "&": "&" + - "<": "<" + - ">": ">" + +html-page: + + header: | + <html> + <head> + <title>A YAML stream</title> + <style type="text/css"> + .document { background: #FFF } + .sequence { background: #EEF } + .mapping { background: #EFE } + .scalar { background: #FEE } + .directive_token { color: #C0C } + .document_start_token { color: #C0C; font-weight: bold } + .document_end_token { color: #C0C; font-weight: bold } + .delimiter_token { color: #600; font-weight: bold } + .anchor_token { color: #090 } + .tag_token { color: #090 } + .scalar_token { color: #000 } + .yaml_stream { color: #999 } + </style> + <body> + + footer: | + </body> + </html> + + <<: *html + + +# vim: ft=yaml diff --git a/third_party/python/PyYAML/examples/yaml-highlight/yaml_hl.py b/third_party/python/PyYAML/examples/yaml-highlight/yaml_hl.py new file mode 100755 index 0000000000..96e0ae7b1b --- /dev/null +++ b/third_party/python/PyYAML/examples/yaml-highlight/yaml_hl.py @@ -0,0 +1,114 @@ +#!/usr/bin/python + +import yaml, codecs, sys, os.path, optparse + +class Style: + + def __init__(self, header=None, footer=None, + tokens=None, events=None, replaces=None): + self.header = header + self.footer = footer + self.replaces = replaces + self.substitutions = {} + for domain, Class in [(tokens, 'Token'), (events, 'Event')]: + if not domain: + continue + for key in domain: + name = ''.join([part.capitalize() for part in key.split('-')]) + cls = getattr(yaml, '%s%s' % (name, Class)) + value = domain[key] + if not value: + continue + start = value.get('start') + end = value.get('end') + if start: + self.substitutions[cls, -1] = start + if end: + self.substitutions[cls, +1] = end + + def __setstate__(self, state): + self.__init__(**state) + +yaml.add_path_resolver(u'tag:yaml.org,2002:python/object:__main__.Style', + [None], dict) +yaml.add_path_resolver(u'tag:yaml.org,2002:pairs', + [None, u'replaces'], list) + +class YAMLHighlight: + + def __init__(self, options): + config = yaml.full_load(file(options.config, 'rb').read()) + self.style = config[options.style] + if options.input: + self.input = file(options.input, 'rb') + else: + self.input = sys.stdin + if options.output: + self.output = file(options.output, 'wb') + else: + self.output = sys.stdout + + def highlight(self): + input = self.input.read() + if input.startswith(codecs.BOM_UTF16_LE): + input = unicode(input, 'utf-16-le') + elif input.startswith(codecs.BOM_UTF16_BE): + input = unicode(input, 'utf-16-be') + else: + input = unicode(input, 'utf-8') + substitutions = self.style.substitutions + tokens = yaml.scan(input) + events = yaml.parse(input) + markers = [] + number = 0 + for token in tokens: + number += 1 + if token.start_mark.index != token.end_mark.index: + cls = token.__class__ + if (cls, -1) in substitutions: + markers.append([token.start_mark.index, +2, number, substitutions[cls, -1]]) + if (cls, +1) in substitutions: + markers.append([token.end_mark.index, -2, number, substitutions[cls, +1]]) + number = 0 + for event in events: + number += 1 + cls = event.__class__ + if (cls, -1) in substitutions: + markers.append([event.start_mark.index, +1, number, substitutions[cls, -1]]) + if (cls, +1) in substitutions: + markers.append([event.end_mark.index, -1, number, substitutions[cls, +1]]) + markers.sort() + markers.reverse() + chunks = [] + position = len(input) + for index, weight1, weight2, substitution in markers: + if index < position: + chunk = input[index:position] + for substring, replacement in self.style.replaces: + chunk = chunk.replace(substring, replacement) + chunks.append(chunk) + position = index + chunks.append(substitution) + chunks.reverse() + result = u''.join(chunks) + if self.style.header: + self.output.write(self.style.header) + self.output.write(result.encode('utf-8')) + if self.style.footer: + self.output.write(self.style.footer) + +if __name__ == '__main__': + parser = optparse.OptionParser() + parser.add_option('-s', '--style', dest='style', default='ascii', + help="specify the highlighting style", metavar='STYLE') + parser.add_option('-c', '--config', dest='config', + default=os.path.join(os.path.dirname(sys.argv[0]), 'yaml_hl.cfg'), + help="set an alternative configuration file", metavar='CONFIG') + parser.add_option('-i', '--input', dest='input', default=None, + help="set the input file (default: stdin)", metavar='FILE') + parser.add_option('-o', '--output', dest='output', default=None, + help="set the output file (default: stdout)", metavar='FILE') + (options, args) = parser.parse_args() + hl = YAMLHighlight(options) + hl.highlight() + diff --git a/third_party/python/PyYAML/ext/_yaml.c b/third_party/python/PyYAML/ext/_yaml.c new file mode 100644 index 0000000000..6784d813f3 --- /dev/null +++ b/third_party/python/PyYAML/ext/_yaml.c @@ -0,0 +1,28743 @@ +/* Generated by Cython 0.29.15 */ + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#ifndef Py_PYTHON_H + #error Python headers needed to compile C extensions, please install development version of Python. +#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) + #error Cython requires Python 2.6+ or Python 3.3+. +#else +#define CYTHON_ABI "0_29_15" +#define CYTHON_HEX_VERSION 0x001D0FF0 +#define CYTHON_FUTURE_DIVISION 0 +#include <stddef.h> +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(WIN32) && !defined(MS_WINDOWS) + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif + #ifndef __fastcall + #define __fastcall + #endif +#endif +#ifndef DL_IMPORT + #define DL_IMPORT(t) t +#endif +#ifndef DL_EXPORT + #define DL_EXPORT(t) t +#endif +#define __PYX_COMMA , +#ifndef HAVE_LONG_LONG + #if PY_VERSION_HEX >= 0x02070000 + #define HAVE_LONG_LONG + #endif +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #undef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 1 + #undef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 0 + #undef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 0 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #ifndef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 1 + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif + #ifndef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #include "longintrepr.h" + #undef SHIFT + #undef BASE + #undef MASK + #ifdef SIZEOF_VOID_P + enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; + #endif +#endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include <stdint.h> +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #elif defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_INLINE inline + #else + #define CYTHON_INLINE + #endif +#endif + +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define Py_OptimizeFlag 0 +#endif +#define __PYX_BUILD_PY_SSIZE_T "n" +#define CYTHON_FORMAT_SSIZE_T "z" +#if PY_MAJOR_VERSION < 3 + #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyClass_Type +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" +#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#endif + #define __Pyx_DefaultClassType PyType_Type +#endif +#ifndef Py_TPFLAGS_CHECKTYPES + #define Py_TPFLAGS_CHECKTYPES 0 +#endif +#ifndef Py_TPFLAGS_HAVE_INDEX + #define Py_TPFLAGS_HAVE_INDEX 0 +#endif +#ifndef Py_TPFLAGS_HAVE_NEWBUFFER + #define Py_TPFLAGS_HAVE_NEWBUFFER 0 +#endif +#ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 +#endif +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif +#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) +#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) +#else +#define __Pyx_PyDict_NewPresized(n) PyDict_New() +#endif +#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION + #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) +#else + #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif +#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) +#else + #define CYTHON_PEP393_ENABLED 0 + #define PyUnicode_1BYTE_KIND 1 + #define PyUnicode_2BYTE_KIND 2 + #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) +#endif +#if CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) +#else + #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ + PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) +#endif +#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t PyInt_AsLong +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(WIN32) || defined(MS_WINDOWS) + #define _USE_MATH_DEFINES +#endif +#include <math.h> +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + + +#define __PYX_ERR(f_index, lineno, Ln_error) \ +{ \ + __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ +} + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE___yaml +#define __PYX_HAVE_API___yaml +/* Early includes */ +#include "_yaml.h" +#ifdef _OPENMP +#include <omp.h> +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) +#define __PYX_DEFAULT_STRING_ENCODING "" +#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString +#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#define __Pyx_uchar_cast(c) ((unsigned char)c) +#define __Pyx_long_cast(x) ((long)x) +#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ + (sizeof(type) < sizeof(Py_ssize_t)) ||\ + (sizeof(type) > sizeof(Py_ssize_t) &&\ + likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX) &&\ + (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ + v == (type)PY_SSIZE_T_MIN))) ||\ + (sizeof(type) == sizeof(Py_ssize_t) &&\ + (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include <cstdlib> + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + + +static const char *__pyx_f[] = { + "ext/_yaml.pyx", + "stringsource", +}; + +/*--- Type declarations ---*/ +struct __pyx_obj_5_yaml_Mark; +struct __pyx_obj_5_yaml_CParser; +struct __pyx_obj_5_yaml_CEmitter; + +/* "_yaml.pyx":64 + * MappingNode = yaml.nodes.MappingNode + * + * cdef class Mark: # <<<<<<<<<<<<<< + * cdef readonly object name + * cdef readonly size_t index + */ +struct __pyx_obj_5_yaml_Mark { + PyObject_HEAD + PyObject *name; + size_t index; + size_t line; + size_t column; + PyObject *buffer; + PyObject *pointer; +}; + + +/* "_yaml.pyx":247 + * # self.style = style + * + * cdef class CParser: # <<<<<<<<<<<<<< + * + * cdef yaml_parser_t parser + */ +struct __pyx_obj_5_yaml_CParser { + PyObject_HEAD + struct __pyx_vtabstruct_5_yaml_CParser *__pyx_vtab; + yaml_parser_t parser; + yaml_event_t parsed_event; + PyObject *stream; + PyObject *stream_name; + PyObject *current_token; + PyObject *current_event; + PyObject *anchors; + PyObject *stream_cache; + int stream_cache_len; + int stream_cache_pos; + int unicode_source; +}; + + +/* "_yaml.pyx":935 + * return 1 + * + * cdef class CEmitter: # <<<<<<<<<<<<<< + * + * cdef yaml_emitter_t emitter + */ +struct __pyx_obj_5_yaml_CEmitter { + PyObject_HEAD + struct __pyx_vtabstruct_5_yaml_CEmitter *__pyx_vtab; + yaml_emitter_t emitter; + PyObject *stream; + int document_start_implicit; + int document_end_implicit; + PyObject *use_version; + PyObject *use_tags; + PyObject *serialized_nodes; + PyObject *anchors; + int last_alias_id; + int closed; + int dump_unicode; + PyObject *use_encoding; +}; + + + +/* "_yaml.pyx":247 + * # self.style = style + * + * cdef class CParser: # <<<<<<<<<<<<<< + * + * cdef yaml_parser_t parser + */ + +struct __pyx_vtabstruct_5_yaml_CParser { + PyObject *(*_parser_error)(struct __pyx_obj_5_yaml_CParser *); + PyObject *(*_scan)(struct __pyx_obj_5_yaml_CParser *); + PyObject *(*_token_to_object)(struct __pyx_obj_5_yaml_CParser *, yaml_token_t *); + PyObject *(*_parse)(struct __pyx_obj_5_yaml_CParser *); + PyObject *(*_event_to_object)(struct __pyx_obj_5_yaml_CParser *, yaml_event_t *); + PyObject *(*_compose_document)(struct __pyx_obj_5_yaml_CParser *); + PyObject *(*_compose_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *, PyObject *); + PyObject *(*_compose_scalar_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *); + PyObject *(*_compose_sequence_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *); + PyObject *(*_compose_mapping_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *); + int (*_parse_next_event)(struct __pyx_obj_5_yaml_CParser *); +}; +static struct __pyx_vtabstruct_5_yaml_CParser *__pyx_vtabptr_5_yaml_CParser; + + +/* "_yaml.pyx":935 + * return 1 + * + * cdef class CEmitter: # <<<<<<<<<<<<<< + * + * cdef yaml_emitter_t emitter + */ + +struct __pyx_vtabstruct_5_yaml_CEmitter { + PyObject *(*_emitter_error)(struct __pyx_obj_5_yaml_CEmitter *); + int (*_object_to_event)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, yaml_event_t *); + int (*_anchor_node)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *); + int (*_serialize_node)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, PyObject *, PyObject *); +}; +static struct __pyx_vtabstruct_5_yaml_CEmitter *__pyx_vtabptr_5_yaml_CEmitter; + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* RaiseArgTupleInvalid.proto */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* RaiseDoubleKeywords.proto */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywords.proto */ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ + const char* function_name); + +/* PyErrExceptionMatches.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) +static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); +#else +#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) +#endif + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* GetAttr.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); + +/* GetAttr3.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); + +/* PyDictVersioning.proto */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* GetModuleGlobalName.proto */ +#if CYTHON_USE_DICT_VERSIONS +#define __Pyx_GetModuleGlobalName(var, name) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ + (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ + __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} +#define __Pyx_GetModuleGlobalNameUncached(var, name) {\ + PY_UINT64_T __pyx_dict_version;\ + PyObject *__pyx_dict_cached_value;\ + (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); +#else +#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) +#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); +#endif + +/* GetTopmostException.proto */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); +#endif + +/* SaveResetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +#else +#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) +#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) +#endif + +/* GetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* PyFunctionFastCall.proto */ +#if CYTHON_FAST_PYCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif + +/* PyCFunctionFastCall.proto */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +#else +#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +#endif + +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); + +/* PySequenceContains.proto */ +static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { + int result = PySequence_Contains(seq, item); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + +/* GetItemInt.proto */ +#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ + (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ + __Pyx_GetItemInt_Generic(o, to_py_func(i)))) +#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck); +#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck); +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, + int is_list, int wraparound, int boundscheck); + +/* ObjectGetItem.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); +#else +#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) +#endif + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallNoArg.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); +#else +#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* None.proto */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); + +/* ListAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + Py_SIZE(list) = len+1; + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) +#endif + +/* PyObjectSetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); +#else +#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) +#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) +#endif + +/* PyObjectCall2Args.proto */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); + +/* HasAttr.proto */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); + +/* IncludeStringH.proto */ +#include <string.h> + +/* BytesEquals.proto */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); + +/* UnicodeEquals.proto */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); + +/* StrEquals.proto */ +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals +#else +#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals +#endif + +/* RaiseTooManyValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); + +/* RaiseNeedMoreValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); + +/* IterFinish.proto */ +static CYTHON_INLINE int __Pyx_IterFinish(void); + +/* UnpackItemEndCheck.proto */ +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); + +/* Import.proto */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); + +/* ImportFrom.proto */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* SetVTable.proto */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable); + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + +static PyObject *__pyx_f_5_yaml_7CParser__parser_error(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__scan(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__token_to_object(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, yaml_token_t *__pyx_v_token); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__parse(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__event_to_object(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, yaml_event_t *__pyx_v_event); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__compose_document(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__compose_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_index); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__compose_scalar_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__compose_sequence_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor); /* proto*/ +static PyObject *__pyx_f_5_yaml_7CParser__compose_mapping_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor); /* proto*/ +static int __pyx_f_5_yaml_7CParser__parse_next_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_5_yaml_8CEmitter__emitter_error(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto*/ +static int __pyx_f_5_yaml_8CEmitter__object_to_event(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object, yaml_event_t *__pyx_v_event); /* proto*/ +static int __pyx_f_5_yaml_8CEmitter__anchor_node(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node); /* proto*/ +static int __pyx_f_5_yaml_8CEmitter__serialize_node(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_parent, PyObject *__pyx_v_index); /* proto*/ + +/* Module declarations from '_yaml' */ +static PyTypeObject *__pyx_ptype_5_yaml_Mark = 0; +static PyTypeObject *__pyx_ptype_5_yaml_CParser = 0; +static PyTypeObject *__pyx_ptype_5_yaml_CEmitter = 0; +static int __pyx_f_5_yaml_input_handler(void *, char *, size_t, size_t *); /*proto*/ +static int __pyx_f_5_yaml_output_handler(void *, char *, size_t); /*proto*/ +static PyObject *__pyx_f_5_yaml___pyx_unpickle_Mark__set_state(struct __pyx_obj_5_yaml_Mark *, PyObject *); /*proto*/ +#define __Pyx_MODULE_NAME "_yaml" +extern int __pyx_module_is_main__yaml; +int __pyx_module_is_main__yaml = 0; + +/* Implementation of '_yaml' */ +static PyObject *__pyx_builtin_MemoryError; +static PyObject *__pyx_builtin_AttributeError; +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_ValueError; +static const char __pyx_k__3[] = "?"; +static const char __pyx_k__6[] = ""; +static const char __pyx_k__7[] = "'"; +static const char __pyx_k__8[] = "\""; +static const char __pyx_k__9[] = "|"; +static const char __pyx_k_TAG[] = "TAG"; +static const char __pyx_k__10[] = ">"; +static const char __pyx_k__19[] = "\r"; +static const char __pyx_k__20[] = "\n"; +static const char __pyx_k__21[] = "\r\n"; +static const char __pyx_k_new[] = "__new__"; +static const char __pyx_k_tag[] = "tag"; +static const char __pyx_k_Mark[] = "Mark"; +static const char __pyx_k_YAML[] = "YAML"; +static const char __pyx_k_dict[] = "__dict__"; +static const char __pyx_k_file[] = "<file>"; +static const char __pyx_k_line[] = "line"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_name[] = "name"; +static const char __pyx_k_read[] = "read"; +static const char __pyx_k_tags[] = "tags"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_yaml[] = "yaml"; +static const char __pyx_k_class[] = "__class__"; +static const char __pyx_k_error[] = "error"; +static const char __pyx_k_index[] = "index"; +static const char __pyx_k_major[] = "major"; +static const char __pyx_k_minor[] = "minor"; +static const char __pyx_k_nodes[] = "nodes"; +static const char __pyx_k_patch[] = "patch"; +static const char __pyx_k_style[] = "style"; +static const char __pyx_k_utf_8[] = "utf-8"; +static const char __pyx_k_value[] = "value"; +static const char __pyx_k_width[] = "width"; +static const char __pyx_k_write[] = "write"; +static const char __pyx_k_anchor[] = "anchor"; +static const char __pyx_k_buffer[] = "buffer"; +static const char __pyx_k_column[] = "column"; +static const char __pyx_k_events[] = "events"; +static const char __pyx_k_id_03d[] = "id%03d"; +static const char __pyx_k_import[] = "__import__"; +static const char __pyx_k_indent[] = "indent"; +static const char __pyx_k_name_2[] = "__name__"; +static const char __pyx_k_parser[] = "parser"; +static const char __pyx_k_pickle[] = "pickle"; +static const char __pyx_k_reader[] = "reader"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_stream[] = "stream"; +static const char __pyx_k_tokens[] = "tokens"; +static const char __pyx_k_update[] = "update"; +static const char __pyx_k_yaml_2[] = "_yaml"; +static const char __pyx_k_CParser[] = "CParser"; +static const char __pyx_k_emitter[] = "emitter"; +static const char __pyx_k_pointer[] = "pointer"; +static const char __pyx_k_resolve[] = "resolve"; +static const char __pyx_k_scanner[] = "scanner"; +static const char __pyx_k_version[] = "version"; +static const char __pyx_k_CEmitter[] = "CEmitter"; +static const char __pyx_k_KeyToken[] = "KeyToken"; +static const char __pyx_k_TagToken[] = "TagToken"; +static const char __pyx_k_composer[] = "composer"; +static const char __pyx_k_encoding[] = "encoding"; +static const char __pyx_k_end_mark[] = "end_mark"; +static const char __pyx_k_explicit[] = "explicit"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_implicit[] = "implicit"; +static const char __pyx_k_pyx_type[] = "__pyx_type"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_YAMLError[] = "YAMLError"; +static const char __pyx_k_canonical[] = "canonical"; +static const char __pyx_k_pyx_state[] = "__pyx_state"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_utf_16_be[] = "utf-16-be"; +static const char __pyx_k_utf_16_le[] = "utf-16-le"; +static const char __pyx_k_AliasEvent[] = "AliasEvent"; +static const char __pyx_k_AliasToken[] = "AliasToken"; +static const char __pyx_k_ScalarNode[] = "ScalarNode"; +static const char __pyx_k_ValueError[] = "ValueError"; +static const char __pyx_k_ValueToken[] = "ValueToken"; +static const char __pyx_k_flow_style[] = "flow_style"; +static const char __pyx_k_line_break[] = "line_break"; +static const char __pyx_k_pyx_result[] = "__pyx_result"; +static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; +static const char __pyx_k_serializer[] = "serializer"; +static const char __pyx_k_start_mark[] = "start_mark"; +static const char __pyx_k_AnchorToken[] = "AnchorToken"; +static const char __pyx_k_MappingNode[] = "MappingNode"; +static const char __pyx_k_MemoryError[] = "MemoryError"; +static const char __pyx_k_ParserError[] = "ParserError"; +static const char __pyx_k_PickleError[] = "PickleError"; +static const char __pyx_k_ReaderError[] = "ReaderError"; +static const char __pyx_k_ScalarEvent[] = "ScalarEvent"; +static const char __pyx_k_ScalarToken[] = "ScalarToken"; +static const char __pyx_k_byte_string[] = "<byte string>"; +static const char __pyx_k_constructor[] = "constructor"; +static const char __pyx_k_get_version[] = "get_version"; +static const char __pyx_k_representer[] = "representer"; +static const char __pyx_k_EmitterError[] = "EmitterError"; +static const char __pyx_k_ScannerError[] = "ScannerError"; +static const char __pyx_k_SequenceNode[] = "SequenceNode"; +static const char __pyx_k_explicit_end[] = "explicit_end"; +static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; +static const char __pyx_k_stringsource[] = "stringsource"; +static const char __pyx_k_BlockEndToken[] = "BlockEndToken"; +static const char __pyx_k_ComposerError[] = "ComposerError"; +static const char __pyx_k_allow_unicode[] = "allow_unicode"; +static const char __pyx_k_ext__yaml_pyx[] = "ext/_yaml.pyx"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_too_many_tags[] = "too many tags"; +static const char __pyx_k_AttributeError[] = "AttributeError"; +static const char __pyx_k_DirectiveToken[] = "DirectiveToken"; +static const char __pyx_k_FlowEntryToken[] = "FlowEntryToken"; +static const char __pyx_k_StreamEndEvent[] = "StreamEndEvent"; +static const char __pyx_k_StreamEndToken[] = "StreamEndToken"; +static const char __pyx_k_explicit_start[] = "explicit_start"; +static const char __pyx_k_unicode_string[] = "<unicode string>"; +static const char __pyx_k_BlockEntryToken[] = "BlockEntryToken"; +static const char __pyx_k_MappingEndEvent[] = "MappingEndEvent"; +static const char __pyx_k_SerializerError[] = "SerializerError"; +static const char __pyx_k_ascend_resolver[] = "ascend_resolver"; +static const char __pyx_k_invalid_event_s[] = "invalid event %s"; +static const char __pyx_k_no_parser_error[] = "no parser error"; +static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_ConstructorError[] = "ConstructorError"; +static const char __pyx_k_DocumentEndEvent[] = "DocumentEndEvent"; +static const char __pyx_k_DocumentEndToken[] = "DocumentEndToken"; +static const char __pyx_k_RepresenterError[] = "RepresenterError"; +static const char __pyx_k_SequenceEndEvent[] = "SequenceEndEvent"; +static const char __pyx_k_StreamStartEvent[] = "StreamStartEvent"; +static const char __pyx_k_StreamStartToken[] = "StreamStartToken"; +static const char __pyx_k_descend_resolver[] = "descend_resolver"; +static const char __pyx_k_no_emitter_error[] = "no emitter error"; +static const char __pyx_k_MappingStartEvent[] = "MappingStartEvent"; +static const char __pyx_k_pyx_unpickle_Mark[] = "__pyx_unpickle_Mark"; +static const char __pyx_k_second_occurrence[] = "second occurrence"; +static const char __pyx_k_DocumentStartEvent[] = "DocumentStartEvent"; +static const char __pyx_k_DocumentStartToken[] = "DocumentStartToken"; +static const char __pyx_k_SequenceStartEvent[] = "SequenceStartEvent"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_get_version_string[] = "get_version_string"; +static const char __pyx_k_unknown_event_type[] = "unknown event type"; +static const char __pyx_k_unknown_token_type[] = "unknown token type"; +static const char __pyx_k_FlowMappingEndToken[] = "FlowMappingEndToken"; +static const char __pyx_k_FlowSequenceEndToken[] = "FlowSequenceEndToken"; +static const char __pyx_k_in_s_line_d_column_d[] = " in \"%s\", line %d, column %d"; +static const char __pyx_k_serializer_is_closed[] = "serializer is closed"; +static const char __pyx_k_tag_must_be_a_string[] = "tag must be a string"; +static const char __pyx_k_FlowMappingStartToken[] = "FlowMappingStartToken"; +static const char __pyx_k_found_undefined_alias[] = "found undefined alias"; +static const char __pyx_k_BlockMappingStartToken[] = "BlockMappingStartToken"; +static const char __pyx_k_FlowSequenceStartToken[] = "FlowSequenceStartToken"; +static const char __pyx_k_value_must_be_a_string[] = "value must be a string"; +static const char __pyx_k_BlockSequenceStartToken[] = "BlockSequenceStartToken"; +static const char __pyx_k_anchor_must_be_a_string[] = "anchor must be a string"; +static const char __pyx_k_serializer_is_not_opened[] = "serializer is not opened"; +static const char __pyx_k_a_string_value_is_expected[] = "a string value is expected"; +static const char __pyx_k_but_found_another_document[] = "but found another document"; +static const char __pyx_k_tag_handle_must_be_a_string[] = "tag handle must be a string"; +static const char __pyx_k_tag_prefix_must_be_a_string[] = "tag prefix must be a string"; +static const char __pyx_k_serializer_is_already_opened[] = "serializer is already opened"; +static const char __pyx_k_Pickling_of_struct_members_such[] = "Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)"; +static const char __pyx_k_Incompatible_checksums_s_vs_0x3f[] = "Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))"; +static const char __pyx_k_a_string_or_stream_input_is_requ[] = "a string or stream input is required"; +static const char __pyx_k_expected_a_single_document_in_th[] = "expected a single document in the stream"; +static const char __pyx_k_found_duplicate_anchor_first_occ[] = "found duplicate anchor; first occurrence"; +static const char __pyx_k_self_parsed_event_cannot_be_conv[] = "self.parsed_event cannot be converted to a Python object for pickling"; +static PyObject *__pyx_n_s_AliasEvent; +static PyObject *__pyx_n_s_AliasToken; +static PyObject *__pyx_n_s_AnchorToken; +static PyObject *__pyx_n_s_AttributeError; +static PyObject *__pyx_n_s_BlockEndToken; +static PyObject *__pyx_n_s_BlockEntryToken; +static PyObject *__pyx_n_s_BlockMappingStartToken; +static PyObject *__pyx_n_s_BlockSequenceStartToken; +static PyObject *__pyx_n_s_CEmitter; +static PyObject *__pyx_n_s_CParser; +static PyObject *__pyx_n_s_ComposerError; +static PyObject *__pyx_n_s_ConstructorError; +static PyObject *__pyx_n_s_DirectiveToken; +static PyObject *__pyx_n_s_DocumentEndEvent; +static PyObject *__pyx_n_s_DocumentEndToken; +static PyObject *__pyx_n_s_DocumentStartEvent; +static PyObject *__pyx_n_s_DocumentStartToken; +static PyObject *__pyx_n_s_EmitterError; +static PyObject *__pyx_n_s_FlowEntryToken; +static PyObject *__pyx_n_s_FlowMappingEndToken; +static PyObject *__pyx_n_s_FlowMappingStartToken; +static PyObject *__pyx_n_s_FlowSequenceEndToken; +static PyObject *__pyx_n_s_FlowSequenceStartToken; +static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x3f; +static PyObject *__pyx_n_s_KeyToken; +static PyObject *__pyx_n_s_MappingEndEvent; +static PyObject *__pyx_n_s_MappingNode; +static PyObject *__pyx_n_s_MappingStartEvent; +static PyObject *__pyx_n_s_Mark; +static PyObject *__pyx_n_s_MemoryError; +static PyObject *__pyx_n_s_ParserError; +static PyObject *__pyx_n_s_PickleError; +static PyObject *__pyx_kp_s_Pickling_of_struct_members_such; +static PyObject *__pyx_n_s_ReaderError; +static PyObject *__pyx_n_s_RepresenterError; +static PyObject *__pyx_n_s_ScalarEvent; +static PyObject *__pyx_n_s_ScalarNode; +static PyObject *__pyx_n_s_ScalarToken; +static PyObject *__pyx_n_s_ScannerError; +static PyObject *__pyx_n_s_SequenceEndEvent; +static PyObject *__pyx_n_s_SequenceNode; +static PyObject *__pyx_n_s_SequenceStartEvent; +static PyObject *__pyx_n_s_SerializerError; +static PyObject *__pyx_n_s_StreamEndEvent; +static PyObject *__pyx_n_s_StreamEndToken; +static PyObject *__pyx_n_s_StreamStartEvent; +static PyObject *__pyx_n_s_StreamStartToken; +static PyObject *__pyx_n_u_TAG; +static PyObject *__pyx_n_s_TagToken; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_n_s_ValueToken; +static PyObject *__pyx_n_u_YAML; +static PyObject *__pyx_n_s_YAMLError; +static PyObject *__pyx_kp_s__10; +static PyObject *__pyx_kp_u__10; +static PyObject *__pyx_kp_s__19; +static PyObject *__pyx_kp_s__20; +static PyObject *__pyx_kp_s__21; +static PyObject *__pyx_kp_s__3; +static PyObject *__pyx_kp_u__3; +static PyObject *__pyx_kp_u__6; +static PyObject *__pyx_kp_s__7; +static PyObject *__pyx_kp_u__7; +static PyObject *__pyx_kp_s__8; +static PyObject *__pyx_kp_u__8; +static PyObject *__pyx_kp_s__9; +static PyObject *__pyx_kp_u__9; +static PyObject *__pyx_kp_s_a_string_or_stream_input_is_requ; +static PyObject *__pyx_kp_u_a_string_or_stream_input_is_requ; +static PyObject *__pyx_kp_s_a_string_value_is_expected; +static PyObject *__pyx_kp_u_a_string_value_is_expected; +static PyObject *__pyx_n_s_allow_unicode; +static PyObject *__pyx_n_s_anchor; +static PyObject *__pyx_kp_s_anchor_must_be_a_string; +static PyObject *__pyx_kp_u_anchor_must_be_a_string; +static PyObject *__pyx_n_s_ascend_resolver; +static PyObject *__pyx_n_s_buffer; +static PyObject *__pyx_kp_s_but_found_another_document; +static PyObject *__pyx_kp_u_but_found_another_document; +static PyObject *__pyx_kp_s_byte_string; +static PyObject *__pyx_kp_u_byte_string; +static PyObject *__pyx_n_s_canonical; +static PyObject *__pyx_n_s_class; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_n_s_column; +static PyObject *__pyx_n_s_composer; +static PyObject *__pyx_n_s_constructor; +static PyObject *__pyx_n_s_descend_resolver; +static PyObject *__pyx_n_s_dict; +static PyObject *__pyx_n_s_emitter; +static PyObject *__pyx_n_s_encoding; +static PyObject *__pyx_n_u_encoding; +static PyObject *__pyx_n_s_end_mark; +static PyObject *__pyx_n_s_error; +static PyObject *__pyx_n_s_events; +static PyObject *__pyx_kp_s_expected_a_single_document_in_th; +static PyObject *__pyx_kp_u_expected_a_single_document_in_th; +static PyObject *__pyx_n_s_explicit; +static PyObject *__pyx_n_s_explicit_end; +static PyObject *__pyx_n_s_explicit_start; +static PyObject *__pyx_kp_s_ext__yaml_pyx; +static PyObject *__pyx_kp_s_file; +static PyObject *__pyx_kp_u_file; +static PyObject *__pyx_n_s_flow_style; +static PyObject *__pyx_kp_s_found_duplicate_anchor_first_occ; +static PyObject *__pyx_kp_u_found_duplicate_anchor_first_occ; +static PyObject *__pyx_kp_s_found_undefined_alias; +static PyObject *__pyx_kp_u_found_undefined_alias; +static PyObject *__pyx_n_s_get_version; +static PyObject *__pyx_n_s_get_version_string; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_kp_u_id_03d; +static PyObject *__pyx_n_s_implicit; +static PyObject *__pyx_n_s_import; +static PyObject *__pyx_kp_s_in_s_line_d_column_d; +static PyObject *__pyx_n_s_indent; +static PyObject *__pyx_n_s_index; +static PyObject *__pyx_kp_s_invalid_event_s; +static PyObject *__pyx_kp_u_invalid_event_s; +static PyObject *__pyx_n_s_line; +static PyObject *__pyx_n_s_line_break; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_major; +static PyObject *__pyx_n_s_minor; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_n_s_name_2; +static PyObject *__pyx_n_s_new; +static PyObject *__pyx_kp_s_no_emitter_error; +static PyObject *__pyx_kp_u_no_emitter_error; +static PyObject *__pyx_kp_s_no_parser_error; +static PyObject *__pyx_kp_u_no_parser_error; +static PyObject *__pyx_n_s_nodes; +static PyObject *__pyx_n_s_parser; +static PyObject *__pyx_n_s_patch; +static PyObject *__pyx_n_s_pickle; +static PyObject *__pyx_n_s_pointer; +static PyObject *__pyx_n_s_pyx_PickleError; +static PyObject *__pyx_n_s_pyx_checksum; +static PyObject *__pyx_n_s_pyx_result; +static PyObject *__pyx_n_s_pyx_state; +static PyObject *__pyx_n_s_pyx_type; +static PyObject *__pyx_n_s_pyx_unpickle_Mark; +static PyObject *__pyx_n_s_pyx_vtable; +static PyObject *__pyx_n_s_read; +static PyObject *__pyx_n_s_reader; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_representer; +static PyObject *__pyx_n_s_resolve; +static PyObject *__pyx_n_s_scanner; +static PyObject *__pyx_kp_s_second_occurrence; +static PyObject *__pyx_kp_u_second_occurrence; +static PyObject *__pyx_kp_s_self_parsed_event_cannot_be_conv; +static PyObject *__pyx_n_s_serializer; +static PyObject *__pyx_kp_s_serializer_is_already_opened; +static PyObject *__pyx_kp_u_serializer_is_already_opened; +static PyObject *__pyx_kp_s_serializer_is_closed; +static PyObject *__pyx_kp_u_serializer_is_closed; +static PyObject *__pyx_kp_s_serializer_is_not_opened; +static PyObject *__pyx_kp_u_serializer_is_not_opened; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_start_mark; +static PyObject *__pyx_n_s_stream; +static PyObject *__pyx_kp_s_stringsource; +static PyObject *__pyx_n_s_style; +static PyObject *__pyx_n_s_tag; +static PyObject *__pyx_kp_s_tag_handle_must_be_a_string; +static PyObject *__pyx_kp_u_tag_handle_must_be_a_string; +static PyObject *__pyx_kp_s_tag_must_be_a_string; +static PyObject *__pyx_kp_u_tag_must_be_a_string; +static PyObject *__pyx_kp_s_tag_prefix_must_be_a_string; +static PyObject *__pyx_kp_u_tag_prefix_must_be_a_string; +static PyObject *__pyx_n_s_tags; +static PyObject *__pyx_n_s_test; +static PyObject *__pyx_n_s_tokens; +static PyObject *__pyx_kp_s_too_many_tags; +static PyObject *__pyx_kp_u_too_many_tags; +static PyObject *__pyx_kp_s_unicode_string; +static PyObject *__pyx_kp_u_unicode_string; +static PyObject *__pyx_kp_s_unknown_event_type; +static PyObject *__pyx_kp_u_unknown_event_type; +static PyObject *__pyx_kp_s_unknown_token_type; +static PyObject *__pyx_kp_u_unknown_token_type; +static PyObject *__pyx_n_s_update; +static PyObject *__pyx_kp_s_utf_16_be; +static PyObject *__pyx_kp_u_utf_16_be; +static PyObject *__pyx_kp_s_utf_16_le; +static PyObject *__pyx_kp_u_utf_16_le; +static PyObject *__pyx_kp_u_utf_8; +static PyObject *__pyx_n_s_value; +static PyObject *__pyx_kp_s_value_must_be_a_string; +static PyObject *__pyx_kp_u_value_must_be_a_string; +static PyObject *__pyx_n_s_version; +static PyObject *__pyx_n_s_width; +static PyObject *__pyx_n_s_write; +static PyObject *__pyx_n_s_yaml; +static PyObject *__pyx_n_s_yaml_2; +static PyObject *__pyx_pf_5_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static int __pyx_pf_5_yaml_4Mark___init__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v_name, size_t __pyx_v_index, size_t __pyx_v_line, size_t __pyx_v_column, PyObject *__pyx_v_buffer, PyObject *__pyx_v_pointer); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_4__str__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_4name___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_5index___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_4line___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_6column___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_6buffer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_7pointer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_6__reduce_cython__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_4Mark_8__setstate_cython__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_pf_5_yaml_7CParser___init__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_stream); /* proto */ +static void __pyx_pf_5_yaml_7CParser_2__dealloc__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_6raw_scan(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_8get_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_10peek_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_12check_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_14raw_parse(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_16get_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_18peek_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_20check_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_22check_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_24get_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_26get_single_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_7CParser_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_pf_5_yaml_8CEmitter___init__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_canonical, PyObject *__pyx_v_indent, PyObject *__pyx_v_width, PyObject *__pyx_v_allow_unicode, PyObject *__pyx_v_line_break, PyObject *__pyx_v_encoding, PyObject *__pyx_v_explicit_start, PyObject *__pyx_v_explicit_end, PyObject *__pyx_v_version, PyObject *__pyx_v_tags); /* proto */ +static void __pyx_pf_5_yaml_8CEmitter_2__dealloc__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_6emit(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_8open(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_10close(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_12serialize(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5_yaml_8CEmitter_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_5_yaml_4__pyx_unpickle_Mark(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_5_yaml_Mark(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_5_yaml_CParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_5_yaml_CEmitter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_int_0; +static PyObject *__pyx_int_1; +static PyObject *__pyx_int_66733494; +static PyObject *__pyx_tuple_; +static PyObject *__pyx_tuple__2; +static PyObject *__pyx_tuple__4; +static PyObject *__pyx_tuple__5; +static PyObject *__pyx_tuple__11; +static PyObject *__pyx_tuple__12; +static PyObject *__pyx_tuple__13; +static PyObject *__pyx_tuple__14; +static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__16; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__18; +static PyObject *__pyx_tuple__22; +static PyObject *__pyx_tuple__23; +static PyObject *__pyx_tuple__24; +static PyObject *__pyx_tuple__25; +static PyObject *__pyx_tuple__26; +static PyObject *__pyx_tuple__27; +static PyObject *__pyx_tuple__28; +static PyObject *__pyx_tuple__29; +static PyObject *__pyx_tuple__30; +static PyObject *__pyx_tuple__31; +static PyObject *__pyx_tuple__32; +static PyObject *__pyx_tuple__33; +static PyObject *__pyx_tuple__34; +static PyObject *__pyx_tuple__35; +static PyObject *__pyx_tuple__36; +static PyObject *__pyx_tuple__37; +static PyObject *__pyx_tuple__38; +static PyObject *__pyx_tuple__39; +static PyObject *__pyx_tuple__40; +static PyObject *__pyx_tuple__42; +static PyObject *__pyx_tuple__44; +static PyObject *__pyx_codeobj__41; +static PyObject *__pyx_codeobj__43; +static PyObject *__pyx_codeobj__45; +/* Late includes */ + +/* "_yaml.pyx":4 + * import yaml + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyMethodDef __pyx_mdef_5_yaml_1get_version_string = {"get_version_string", (PyCFunction)__pyx_pw_5_yaml_1get_version_string, METH_NOARGS, 0}; +static PyObject *__pyx_pw_5_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_version_string (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_get_version_string(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self) { + char *__pyx_v_value; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannySetupContext("get_version_string", 0); + + /* "_yaml.pyx":6 + * def get_version_string(): + * cdef char *value + * value = yaml_get_version_string() # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * return value + */ + __pyx_v_value = yaml_get_version_string(); + + /* "_yaml.pyx":7 + * cdef char *value + * value = yaml_get_version_string() + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * return value + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":8 + * value = yaml_get_version_string() + * if PY_MAJOR_VERSION < 3: + * return value # <<<<<<<<<<<<<< + * else: + * return PyUnicode_FromString(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":7 + * cdef char *value + * value = yaml_get_version_string() + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * return value + * else: + */ + } + + /* "_yaml.pyx":10 + * return value + * else: + * return PyUnicode_FromString(value) # <<<<<<<<<<<<<< + * + * def get_version(): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyUnicode_FromString(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "_yaml.pyx":4 + * import yaml + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("_yaml.get_version_string", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":12 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyMethodDef __pyx_mdef_5_yaml_3get_version = {"get_version", (PyCFunction)__pyx_pw_5_yaml_3get_version, METH_NOARGS, 0}; +static PyObject *__pyx_pw_5_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_version (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_2get_version(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self) { + int __pyx_v_major; + int __pyx_v_minor; + int __pyx_v_patch; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + __Pyx_RefNannySetupContext("get_version", 0); + + /* "_yaml.pyx":14 + * def get_version(): + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) # <<<<<<<<<<<<<< + * return (major, minor, patch) + * + */ + yaml_get_version((&__pyx_v_major), (&__pyx_v_minor), (&__pyx_v_patch)); + + /* "_yaml.pyx":15 + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + * return (major, minor, patch) # <<<<<<<<<<<<<< + * + * #Mark = yaml.error.Mark + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_major); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_minor); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_patch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":12 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("_yaml.get_version", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":72 + * cdef readonly pointer + * + * def __init__(self, object name, size_t index, size_t line, size_t column, # <<<<<<<<<<<<<< + * object buffer, object pointer): + * self.name = name + */ + +/* Python wrapper */ +static int __pyx_pw_5_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_5_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + size_t __pyx_v_index; + size_t __pyx_v_line; + size_t __pyx_v_column; + PyObject *__pyx_v_buffer = 0; + PyObject *__pyx_v_pointer = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_index,&__pyx_n_s_line,&__pyx_n_s_column,&__pyx_n_s_buffer,&__pyx_n_s_pointer,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); __PYX_ERR(0, 72, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_line)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); __PYX_ERR(0, 72, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_column)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); __PYX_ERR(0, 72, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_buffer)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); __PYX_ERR(0, 72, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pointer)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); __PYX_ERR(0, 72, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 72, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + } + __pyx_v_name = values[0]; + __pyx_v_index = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_index == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L3_error) + __pyx_v_line = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_line == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L3_error) + __pyx_v_column = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_column == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L3_error) + __pyx_v_buffer = values[4]; + __pyx_v_pointer = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 72, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("_yaml.Mark.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5_yaml_4Mark___init__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self), __pyx_v_name, __pyx_v_index, __pyx_v_line, __pyx_v_column, __pyx_v_buffer, __pyx_v_pointer); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5_yaml_4Mark___init__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v_name, size_t __pyx_v_index, size_t __pyx_v_line, size_t __pyx_v_column, PyObject *__pyx_v_buffer, PyObject *__pyx_v_pointer) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__", 0); + + /* "_yaml.pyx":74 + * def __init__(self, object name, size_t index, size_t line, size_t column, + * object buffer, object pointer): + * self.name = name # <<<<<<<<<<<<<< + * self.index = index + * self.line = line + */ + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = __pyx_v_name; + + /* "_yaml.pyx":75 + * object buffer, object pointer): + * self.name = name + * self.index = index # <<<<<<<<<<<<<< + * self.line = line + * self.column = column + */ + __pyx_v_self->index = __pyx_v_index; + + /* "_yaml.pyx":76 + * self.name = name + * self.index = index + * self.line = line # <<<<<<<<<<<<<< + * self.column = column + * self.buffer = buffer + */ + __pyx_v_self->line = __pyx_v_line; + + /* "_yaml.pyx":77 + * self.index = index + * self.line = line + * self.column = column # <<<<<<<<<<<<<< + * self.buffer = buffer + * self.pointer = pointer + */ + __pyx_v_self->column = __pyx_v_column; + + /* "_yaml.pyx":78 + * self.line = line + * self.column = column + * self.buffer = buffer # <<<<<<<<<<<<<< + * self.pointer = pointer + * + */ + __Pyx_INCREF(__pyx_v_buffer); + __Pyx_GIVEREF(__pyx_v_buffer); + __Pyx_GOTREF(__pyx_v_self->buffer); + __Pyx_DECREF(__pyx_v_self->buffer); + __pyx_v_self->buffer = __pyx_v_buffer; + + /* "_yaml.pyx":79 + * self.column = column + * self.buffer = buffer + * self.pointer = pointer # <<<<<<<<<<<<<< + * + * def get_snippet(self): + */ + __Pyx_INCREF(__pyx_v_pointer); + __Pyx_GIVEREF(__pyx_v_pointer); + __Pyx_GOTREF(__pyx_v_self->pointer); + __Pyx_DECREF(__pyx_v_self->pointer); + __pyx_v_self->pointer = __pyx_v_pointer; + + /* "_yaml.pyx":72 + * cdef readonly pointer + * + * def __init__(self, object name, size_t index, size_t line, size_t column, # <<<<<<<<<<<<<< + * object buffer, object pointer): + * self.name = name + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":81 + * self.pointer = pointer + * + * def get_snippet(self): # <<<<<<<<<<<<<< + * return None + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_3get_snippet(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_3get_snippet(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_snippet (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_2get_snippet(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_snippet", 0); + + /* "_yaml.pyx":82 + * + * def get_snippet(self): + * return None # <<<<<<<<<<<<<< + * + * def __str__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "_yaml.pyx":81 + * self.pointer = pointer + * + * def get_snippet(self): # <<<<<<<<<<<<<< + * return None + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":84 + * return None + * + * def __str__(self): # <<<<<<<<<<<<<< + * where = " in \"%s\", line %d, column %d" \ + * % (self.name, self.line+1, self.column+1) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_5__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_5__str__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_4__str__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_4__str__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_v_where = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("__str__", 0); + + /* "_yaml.pyx":86 + * def __str__(self): + * where = " in \"%s\", line %d, column %d" \ + * % (self.name, self.line+1, self.column+1) # <<<<<<<<<<<<<< + * return where + * + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t((__pyx_v_self->line + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_FromSize_t((__pyx_v_self->column + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->name); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_in_s_line_d_column_d, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_where = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "_yaml.pyx":87 + * where = " in \"%s\", line %d, column %d" \ + * % (self.name, self.line+1, self.column+1) + * return where # <<<<<<<<<<<<<< + * + * #class YAMLError(Exception): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_where); + __pyx_r = __pyx_v_where; + goto __pyx_L0; + + /* "_yaml.pyx":84 + * return None + * + * def __str__(self): # <<<<<<<<<<<<<< + * where = " in \"%s\", line %d, column %d" \ + * % (self.name, self.line+1, self.column+1) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.Mark.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_where); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":65 + * + * cdef class Mark: + * cdef readonly object name # <<<<<<<<<<<<<< + * cdef readonly size_t index + * cdef readonly size_t line + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_4name___get__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_4name___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->name); + __pyx_r = __pyx_v_self->name; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":66 + * cdef class Mark: + * cdef readonly object name + * cdef readonly size_t index # <<<<<<<<<<<<<< + * cdef readonly size_t line + * cdef readonly size_t column + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_5index_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_5index_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_5index___get__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_5index___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.Mark.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":67 + * cdef readonly object name + * cdef readonly size_t index + * cdef readonly size_t line # <<<<<<<<<<<<<< + * cdef readonly size_t column + * cdef readonly buffer + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_4line_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_4line_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_4line___get__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_4line___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.Mark.line.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":68 + * cdef readonly size_t index + * cdef readonly size_t line + * cdef readonly size_t column # <<<<<<<<<<<<<< + * cdef readonly buffer + * cdef readonly pointer + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_6column_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_6column_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_6column___get__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_6column___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->column); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.Mark.column.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":69 + * cdef readonly size_t line + * cdef readonly size_t column + * cdef readonly buffer # <<<<<<<<<<<<<< + * cdef readonly pointer + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_6buffer_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_6buffer_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_6buffer___get__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_6buffer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->buffer); + __pyx_r = __pyx_v_self->buffer; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":70 + * cdef readonly size_t column + * cdef readonly buffer + * cdef readonly pointer # <<<<<<<<<<<<<< + * + * def __init__(self, object name, size_t index, size_t line, size_t column, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_7pointer_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_7pointer_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_7pointer___get__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_7pointer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->pointer); + __pyx_r = __pyx_v_self->pointer; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_6__reduce_cython__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_6__reduce_cython__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_v_state = 0; + PyObject *__pyx_v__dict = 0; + int __pyx_v_use_setstate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":5 + * cdef object _dict + * cdef bint use_setstate + * state = (self.buffer, self.column, self.index, self.line, self.name, self.pointer) # <<<<<<<<<<<<<< + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->column); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->line); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->buffer); + __Pyx_GIVEREF(__pyx_v_self->buffer); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->buffer); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->name); + __Pyx_INCREF(__pyx_v_self->pointer); + __Pyx_GIVEREF(__pyx_v_self->pointer); + PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->pointer); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_v_state = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "(tree fragment)":6 + * cdef bint use_setstate + * state = (self.buffer, self.column, self.index, self.line, self.name, self.pointer) + * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< + * if _dict is not None: + * state += (_dict,) + */ + __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v__dict = __pyx_t_4; + __pyx_t_4 = 0; + + /* "(tree fragment)":7 + * state = (self.buffer, self.column, self.index, self.line, self.name, self.pointer) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + __pyx_t_5 = (__pyx_v__dict != Py_None); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "(tree fragment)":8 + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + * state += (_dict,) # <<<<<<<<<<<<<< + * use_setstate = True + * else: + */ + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v__dict); + __Pyx_GIVEREF(__pyx_v__dict); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict); + __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "(tree fragment)":9 + * if _dict is not None: + * state += (_dict,) + * use_setstate = True # <<<<<<<<<<<<<< + * else: + * use_setstate = self.buffer is not None or self.name is not None or self.pointer is not None + */ + __pyx_v_use_setstate = 1; + + /* "(tree fragment)":7 + * state = (self.buffer, self.column, self.index, self.line, self.name, self.pointer) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + goto __pyx_L3; + } + + /* "(tree fragment)":11 + * use_setstate = True + * else: + * use_setstate = self.buffer is not None or self.name is not None or self.pointer is not None # <<<<<<<<<<<<<< + * if use_setstate: + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, None), state + */ + /*else*/ { + __pyx_t_5 = (__pyx_v_self->buffer != Py_None); + __pyx_t_7 = (__pyx_t_5 != 0); + if (!__pyx_t_7) { + } else { + __pyx_t_6 = __pyx_t_7; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_7 = (__pyx_v_self->name != Py_None); + __pyx_t_5 = (__pyx_t_7 != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_6 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = (__pyx_v_self->pointer != Py_None); + __pyx_t_7 = (__pyx_t_5 != 0); + __pyx_t_6 = __pyx_t_7; + __pyx_L4_bool_binop_done:; + __pyx_v_use_setstate = __pyx_t_6; + } + __pyx_L3:; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.buffer is not None or self.name is not None or self.pointer is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, None), state + * else: + */ + __pyx_t_6 = (__pyx_v_use_setstate != 0); + if (__pyx_t_6) { + + /* "(tree fragment)":13 + * use_setstate = self.buffer is not None or self.name is not None or self.pointer is not None + * if use_setstate: + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, None), state # <<<<<<<<<<<<<< + * else: + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, state) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Mark); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_66733494); + __Pyx_GIVEREF(__pyx_int_66733494); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_66733494); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.buffer is not None or self.name is not None or self.pointer is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, None), state + * else: + */ + } + + /* "(tree fragment)":15 + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, None), state + * else: + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, state) # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Mark__set_state(self, __pyx_state) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Mark); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_66733494); + __Pyx_GIVEREF(__pyx_int_66733494); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_66733494); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("_yaml.Mark.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_state); + __Pyx_XDECREF(__pyx_v__dict); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(self, __pyx_state) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_4Mark_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_5_yaml_4Mark_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_4Mark_8__setstate_cython__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4Mark_8__setstate_cython__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":17 + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, state) + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Mark__set_state(self, __pyx_state) # <<<<<<<<<<<<<< + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5_yaml___pyx_unpickle_Mark__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Mark, (type(self), 0x3fa45b6, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(self, __pyx_state) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.Mark.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":262 + * cdef int unicode_source + * + * def __init__(self, stream): # <<<<<<<<<<<<<< + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: + */ + +/* Python wrapper */ +static int __pyx_pw_5_yaml_7CParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_5_yaml_7CParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stream = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 262, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stream = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 262, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("_yaml.CParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5_yaml_7CParser___init__(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self), __pyx_v_stream); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5_yaml_7CParser___init__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_stream) { + PyObject *__pyx_v_is_readable = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + __Pyx_RefNannySetupContext("__init__", 0); + __Pyx_INCREF(__pyx_v_stream); + + /* "_yaml.pyx":264 + * def __init__(self, stream): + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * self.parsed_event.type = YAML_NO_EVENT + */ + __pyx_t_1 = ((yaml_parser_initialize((&__pyx_v_self->parser)) == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":265 + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * self.parsed_event.type = YAML_NO_EVENT + * is_readable = 1 + */ + PyErr_NoMemory(); __PYX_ERR(0, 265, __pyx_L1_error) + + /* "_yaml.pyx":264 + * def __init__(self, stream): + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * self.parsed_event.type = YAML_NO_EVENT + */ + } + + /* "_yaml.pyx":266 + * if yaml_parser_initialize(&self.parser) == 0: + * raise MemoryError + * self.parsed_event.type = YAML_NO_EVENT # <<<<<<<<<<<<<< + * is_readable = 1 + * try: + */ + __pyx_v_self->parsed_event.type = YAML_NO_EVENT; + + /* "_yaml.pyx":267 + * raise MemoryError + * self.parsed_event.type = YAML_NO_EVENT + * is_readable = 1 # <<<<<<<<<<<<<< + * try: + * stream.read + */ + __Pyx_INCREF(__pyx_int_1); + __pyx_v_is_readable = __pyx_int_1; + + /* "_yaml.pyx":268 + * self.parsed_event.type = YAML_NO_EVENT + * is_readable = 1 + * try: # <<<<<<<<<<<<<< + * stream.read + * except AttributeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + /*try:*/ { + + /* "_yaml.pyx":269 + * is_readable = 1 + * try: + * stream.read # <<<<<<<<<<<<<< + * except AttributeError: + * is_readable = 0 + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_stream, __pyx_n_s_read); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 269, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "_yaml.pyx":268 + * self.parsed_event.type = YAML_NO_EVENT + * is_readable = 1 + * try: # <<<<<<<<<<<<<< + * stream.read + * except AttributeError: + */ + } + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L9_try_end; + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "_yaml.pyx":270 + * try: + * stream.read + * except AttributeError: # <<<<<<<<<<<<<< + * is_readable = 0 + * self.unicode_source = 0 + */ + __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); + if (__pyx_t_6) { + __Pyx_AddTraceback("_yaml.CParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(0, 270, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_8); + + /* "_yaml.pyx":271 + * stream.read + * except AttributeError: + * is_readable = 0 # <<<<<<<<<<<<<< + * self.unicode_source = 0 + * if is_readable: + */ + __Pyx_INCREF(__pyx_int_0); + __Pyx_DECREF_SET(__pyx_v_is_readable, __pyx_int_0); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L5_exception_handled; + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "_yaml.pyx":268 + * self.parsed_event.type = YAML_NO_EVENT + * is_readable = 1 + * try: # <<<<<<<<<<<<<< + * stream.read + * except AttributeError: + */ + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L1_error; + __pyx_L5_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + __pyx_L9_try_end:; + } + + /* "_yaml.pyx":272 + * except AttributeError: + * is_readable = 0 + * self.unicode_source = 0 # <<<<<<<<<<<<<< + * if is_readable: + * self.stream = stream + */ + __pyx_v_self->unicode_source = 0; + + /* "_yaml.pyx":273 + * is_readable = 0 + * self.unicode_source = 0 + * if is_readable: # <<<<<<<<<<<<<< + * self.stream = stream + * try: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_is_readable); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 273, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":274 + * self.unicode_source = 0 + * if is_readable: + * self.stream = stream # <<<<<<<<<<<<<< + * try: + * self.stream_name = stream.name + */ + __Pyx_INCREF(__pyx_v_stream); + __Pyx_GIVEREF(__pyx_v_stream); + __Pyx_GOTREF(__pyx_v_self->stream); + __Pyx_DECREF(__pyx_v_self->stream); + __pyx_v_self->stream = __pyx_v_stream; + + /* "_yaml.pyx":275 + * if is_readable: + * self.stream = stream + * try: # <<<<<<<<<<<<<< + * self.stream_name = stream.name + * except AttributeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_2); + /*try:*/ { + + /* "_yaml.pyx":276 + * self.stream = stream + * try: + * self.stream_name = stream.name # <<<<<<<<<<<<<< + * except AttributeError: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_stream, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 276, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_t_8; + __pyx_t_8 = 0; + + /* "_yaml.pyx":275 + * if is_readable: + * self.stream = stream + * try: # <<<<<<<<<<<<<< + * self.stream_name = stream.name + * except AttributeError: + */ + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L18_try_end; + __pyx_L13_error:; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "_yaml.pyx":277 + * try: + * self.stream_name = stream.name + * except AttributeError: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * self.stream_name = '<file>' + */ + __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); + if (__pyx_t_6) { + __Pyx_AddTraceback("_yaml.CParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(0, 277, __pyx_L15_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_5); + + /* "_yaml.pyx":278 + * self.stream_name = stream.name + * except AttributeError: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<file>' + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":279 + * except AttributeError: + * if PY_MAJOR_VERSION < 3: + * self.stream_name = '<file>' # <<<<<<<<<<<<<< + * else: + * self.stream_name = u'<file>' + */ + __Pyx_INCREF(__pyx_kp_s_file); + __Pyx_GIVEREF(__pyx_kp_s_file); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_kp_s_file; + + /* "_yaml.pyx":278 + * self.stream_name = stream.name + * except AttributeError: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<file>' + * else: + */ + goto __pyx_L21; + } + + /* "_yaml.pyx":281 + * self.stream_name = '<file>' + * else: + * self.stream_name = u'<file>' # <<<<<<<<<<<<<< + * self.stream_cache = None + * self.stream_cache_len = 0 + */ + /*else*/ { + __Pyx_INCREF(__pyx_kp_u_file); + __Pyx_GIVEREF(__pyx_kp_u_file); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_kp_u_file; + } + __pyx_L21:; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L14_exception_handled; + } + goto __pyx_L15_except_error; + __pyx_L15_except_error:; + + /* "_yaml.pyx":275 + * if is_readable: + * self.stream = stream + * try: # <<<<<<<<<<<<<< + * self.stream_name = stream.name + * except AttributeError: + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2); + goto __pyx_L1_error; + __pyx_L14_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2); + __pyx_L18_try_end:; + } + + /* "_yaml.pyx":282 + * else: + * self.stream_name = u'<file>' + * self.stream_cache = None # <<<<<<<<<<<<<< + * self.stream_cache_len = 0 + * self.stream_cache_pos = 0 + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->stream_cache); + __Pyx_DECREF(__pyx_v_self->stream_cache); + __pyx_v_self->stream_cache = Py_None; + + /* "_yaml.pyx":283 + * self.stream_name = u'<file>' + * self.stream_cache = None + * self.stream_cache_len = 0 # <<<<<<<<<<<<<< + * self.stream_cache_pos = 0 + * yaml_parser_set_input(&self.parser, input_handler, <void *>self) + */ + __pyx_v_self->stream_cache_len = 0; + + /* "_yaml.pyx":284 + * self.stream_cache = None + * self.stream_cache_len = 0 + * self.stream_cache_pos = 0 # <<<<<<<<<<<<<< + * yaml_parser_set_input(&self.parser, input_handler, <void *>self) + * else: + */ + __pyx_v_self->stream_cache_pos = 0; + + /* "_yaml.pyx":285 + * self.stream_cache_len = 0 + * self.stream_cache_pos = 0 + * yaml_parser_set_input(&self.parser, input_handler, <void *>self) # <<<<<<<<<<<<<< + * else: + * if PyUnicode_CheckExact(stream) != 0: + */ + yaml_parser_set_input((&__pyx_v_self->parser), __pyx_f_5_yaml_input_handler, ((void *)__pyx_v_self)); + + /* "_yaml.pyx":273 + * is_readable = 0 + * self.unicode_source = 0 + * if is_readable: # <<<<<<<<<<<<<< + * self.stream = stream + * try: + */ + goto __pyx_L12; + } + + /* "_yaml.pyx":287 + * yaml_parser_set_input(&self.parser, input_handler, <void *>self) + * else: + * if PyUnicode_CheckExact(stream) != 0: # <<<<<<<<<<<<<< + * stream = PyUnicode_AsUTF8String(stream) + * if PY_MAJOR_VERSION < 3: + */ + /*else*/ { + __pyx_t_1 = ((PyUnicode_CheckExact(__pyx_v_stream) != 0) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":288 + * else: + * if PyUnicode_CheckExact(stream) != 0: + * stream = PyUnicode_AsUTF8String(stream) # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * self.stream_name = '<unicode string>' + */ + __pyx_t_5 = PyUnicode_AsUTF8String(__pyx_v_stream); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_stream, __pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":289 + * if PyUnicode_CheckExact(stream) != 0: + * stream = PyUnicode_AsUTF8String(stream) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<unicode string>' + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":290 + * stream = PyUnicode_AsUTF8String(stream) + * if PY_MAJOR_VERSION < 3: + * self.stream_name = '<unicode string>' # <<<<<<<<<<<<<< + * else: + * self.stream_name = u'<unicode string>' + */ + __Pyx_INCREF(__pyx_kp_s_unicode_string); + __Pyx_GIVEREF(__pyx_kp_s_unicode_string); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_kp_s_unicode_string; + + /* "_yaml.pyx":289 + * if PyUnicode_CheckExact(stream) != 0: + * stream = PyUnicode_AsUTF8String(stream) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<unicode string>' + * else: + */ + goto __pyx_L23; + } + + /* "_yaml.pyx":292 + * self.stream_name = '<unicode string>' + * else: + * self.stream_name = u'<unicode string>' # <<<<<<<<<<<<<< + * self.unicode_source = 1 + * else: + */ + /*else*/ { + __Pyx_INCREF(__pyx_kp_u_unicode_string); + __Pyx_GIVEREF(__pyx_kp_u_unicode_string); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_kp_u_unicode_string; + } + __pyx_L23:; + + /* "_yaml.pyx":293 + * else: + * self.stream_name = u'<unicode string>' + * self.unicode_source = 1 # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_v_self->unicode_source = 1; + + /* "_yaml.pyx":287 + * yaml_parser_set_input(&self.parser, input_handler, <void *>self) + * else: + * if PyUnicode_CheckExact(stream) != 0: # <<<<<<<<<<<<<< + * stream = PyUnicode_AsUTF8String(stream) + * if PY_MAJOR_VERSION < 3: + */ + goto __pyx_L22; + } + + /* "_yaml.pyx":295 + * self.unicode_source = 1 + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<byte string>' + * else: + */ + /*else*/ { + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":296 + * else: + * if PY_MAJOR_VERSION < 3: + * self.stream_name = '<byte string>' # <<<<<<<<<<<<<< + * else: + * self.stream_name = u'<byte string>' + */ + __Pyx_INCREF(__pyx_kp_s_byte_string); + __Pyx_GIVEREF(__pyx_kp_s_byte_string); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_kp_s_byte_string; + + /* "_yaml.pyx":295 + * self.unicode_source = 1 + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<byte string>' + * else: + */ + goto __pyx_L24; + } + + /* "_yaml.pyx":298 + * self.stream_name = '<byte string>' + * else: + * self.stream_name = u'<byte string>' # <<<<<<<<<<<<<< + * if PyString_CheckExact(stream) == 0: + * if PY_MAJOR_VERSION < 3: + */ + /*else*/ { + __Pyx_INCREF(__pyx_kp_u_byte_string); + __Pyx_GIVEREF(__pyx_kp_u_byte_string); + __Pyx_GOTREF(__pyx_v_self->stream_name); + __Pyx_DECREF(__pyx_v_self->stream_name); + __pyx_v_self->stream_name = __pyx_kp_u_byte_string; + } + __pyx_L24:; + } + __pyx_L22:; + + /* "_yaml.pyx":299 + * else: + * self.stream_name = u'<byte string>' + * if PyString_CheckExact(stream) == 0: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string or stream input is required") + */ + __pyx_t_1 = ((PyString_CheckExact(__pyx_v_stream) == 0) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":300 + * self.stream_name = u'<byte string>' + * if PyString_CheckExact(stream) == 0: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("a string or stream input is required") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":301 + * if PyString_CheckExact(stream) == 0: + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string or stream input is required") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"a string or stream input is required") + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 301, __pyx_L1_error) + + /* "_yaml.pyx":300 + * self.stream_name = u'<byte string>' + * if PyString_CheckExact(stream) == 0: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("a string or stream input is required") + * else: + */ + } + + /* "_yaml.pyx":303 + * raise TypeError("a string or stream input is required") + * else: + * raise TypeError(u"a string or stream input is required") # <<<<<<<<<<<<<< + * self.stream = stream + * yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) + */ + /*else*/ { + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 303, __pyx_L1_error) + } + + /* "_yaml.pyx":299 + * else: + * self.stream_name = u'<byte string>' + * if PyString_CheckExact(stream) == 0: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string or stream input is required") + */ + } + + /* "_yaml.pyx":304 + * else: + * raise TypeError(u"a string or stream input is required") + * self.stream = stream # <<<<<<<<<<<<<< + * yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) + * self.current_token = None + */ + __Pyx_INCREF(__pyx_v_stream); + __Pyx_GIVEREF(__pyx_v_stream); + __Pyx_GOTREF(__pyx_v_self->stream); + __Pyx_DECREF(__pyx_v_self->stream); + __pyx_v_self->stream = __pyx_v_stream; + + /* "_yaml.pyx":305 + * raise TypeError(u"a string or stream input is required") + * self.stream = stream + * yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) # <<<<<<<<<<<<<< + * self.current_token = None + * self.current_event = None + */ + yaml_parser_set_input_string((&__pyx_v_self->parser), PyString_AS_STRING(__pyx_v_stream), PyString_GET_SIZE(__pyx_v_stream)); + } + __pyx_L12:; + + /* "_yaml.pyx":306 + * self.stream = stream + * yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) + * self.current_token = None # <<<<<<<<<<<<<< + * self.current_event = None + * self.anchors = {} + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->current_token); + __Pyx_DECREF(__pyx_v_self->current_token); + __pyx_v_self->current_token = Py_None; + + /* "_yaml.pyx":307 + * yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) + * self.current_token = None + * self.current_event = None # <<<<<<<<<<<<<< + * self.anchors = {} + * + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->current_event); + __Pyx_DECREF(__pyx_v_self->current_event); + __pyx_v_self->current_event = Py_None; + + /* "_yaml.pyx":308 + * self.current_token = None + * self.current_event = None + * self.anchors = {} # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_v_self->anchors); + __Pyx_DECREF(__pyx_v_self->anchors); + __pyx_v_self->anchors = __pyx_t_5; + __pyx_t_5 = 0; + + /* "_yaml.pyx":262 + * cdef int unicode_source + * + * def __init__(self, stream): # <<<<<<<<<<<<<< + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("_yaml.CParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_is_readable); + __Pyx_XDECREF(__pyx_v_stream); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":310 + * self.anchors = {} + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_parser_delete(&self.parser) + * yaml_event_delete(&self.parsed_event) + */ + +/* Python wrapper */ +static void __pyx_pw_5_yaml_7CParser_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5_yaml_7CParser_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_5_yaml_7CParser_2__dealloc__(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5_yaml_7CParser_2__dealloc__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "_yaml.pyx":311 + * + * def __dealloc__(self): + * yaml_parser_delete(&self.parser) # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * + */ + yaml_parser_delete((&__pyx_v_self->parser)); + + /* "_yaml.pyx":312 + * def __dealloc__(self): + * yaml_parser_delete(&self.parser) + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * + * def dispose(self): + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":310 + * self.anchors = {} + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_parser_delete(&self.parser) + * yaml_event_delete(&self.parsed_event) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "_yaml.pyx":314 + * yaml_event_delete(&self.parsed_event) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_5dispose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_5dispose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dispose (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_4dispose(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dispose", 0); + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":317 + * pass + * + * cdef object _parser_error(self): # <<<<<<<<<<<<<< + * if self.parser.error == YAML_MEMORY_ERROR: + * return MemoryError + */ + +static PyObject *__pyx_f_5_yaml_7CParser__parser_error(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + struct __pyx_obj_5_yaml_Mark *__pyx_v_context_mark = NULL; + struct __pyx_obj_5_yaml_Mark *__pyx_v_problem_mark = NULL; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_problem = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + __Pyx_RefNannySetupContext("_parser_error", 0); + + /* "_yaml.pyx":318 + * + * cdef object _parser_error(self): + * if self.parser.error == YAML_MEMORY_ERROR: # <<<<<<<<<<<<<< + * return MemoryError + * elif self.parser.error == YAML_READER_ERROR: + */ + switch (__pyx_v_self->parser.error) { + case YAML_MEMORY_ERROR: + + /* "_yaml.pyx":319 + * cdef object _parser_error(self): + * if self.parser.error == YAML_MEMORY_ERROR: + * return MemoryError # <<<<<<<<<<<<<< + * elif self.parser.error == YAML_READER_ERROR: + * if PY_MAJOR_VERSION < 3: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_builtin_MemoryError); + __pyx_r = __pyx_builtin_MemoryError; + goto __pyx_L0; + + /* "_yaml.pyx":318 + * + * cdef object _parser_error(self): + * if self.parser.error == YAML_MEMORY_ERROR: # <<<<<<<<<<<<<< + * return MemoryError + * elif self.parser.error == YAML_READER_ERROR: + */ + break; + case YAML_READER_ERROR: + + /* "_yaml.pyx":321 + * return MemoryError + * elif self.parser.error == YAML_READER_ERROR: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * return ReaderError(self.stream_name, self.parser.problem_offset, + * self.parser.problem_value, '?', self.parser.problem) + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":322 + * elif self.parser.error == YAML_READER_ERROR: + * if PY_MAJOR_VERSION < 3: + * return ReaderError(self.stream_name, self.parser.problem_offset, # <<<<<<<<<<<<<< + * self.parser.problem_value, '?', self.parser.problem) + * else: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ReaderError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.problem_offset); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":323 + * if PY_MAJOR_VERSION < 3: + * return ReaderError(self.stream_name, self.parser.problem_offset, + * self.parser.problem_value, '?', self.parser.problem) # <<<<<<<<<<<<<< + * else: + * return ReaderError(self.stream_name, self.parser.problem_offset, + */ + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->parser.problem_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->parser.problem); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_self->stream_name, __pyx_t_4, __pyx_t_5, __pyx_kp_s__3, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_self->stream_name, __pyx_t_4, __pyx_t_5, __pyx_kp_s__3, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5); + __Pyx_INCREF(__pyx_kp_s__3); + __Pyx_GIVEREF(__pyx_kp_s__3); + PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_kp_s__3); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_t_6); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":321 + * return MemoryError + * elif self.parser.error == YAML_READER_ERROR: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * return ReaderError(self.stream_name, self.parser.problem_offset, + * self.parser.problem_value, '?', self.parser.problem) + */ + } + + /* "_yaml.pyx":325 + * self.parser.problem_value, '?', self.parser.problem) + * else: + * return ReaderError(self.stream_name, self.parser.problem_offset, # <<<<<<<<<<<<<< + * self.parser.problem_value, u'?', PyUnicode_FromString(self.parser.problem)) + * elif self.parser.error == YAML_SCANNER_ERROR \ + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ReaderError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.problem_offset); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + /* "_yaml.pyx":326 + * else: + * return ReaderError(self.stream_name, self.parser.problem_offset, + * self.parser.problem_value, u'?', PyUnicode_FromString(self.parser.problem)) # <<<<<<<<<<<<<< + * elif self.parser.error == YAML_SCANNER_ERROR \ + * or self.parser.error == YAML_PARSER_ERROR: + */ + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->parser.problem_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyUnicode_FromString(__pyx_v_self->parser.problem); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_self->stream_name, __pyx_t_9, __pyx_t_6, __pyx_kp_u__3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_self->stream_name, __pyx_t_9, __pyx_t_6, __pyx_kp_u__3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_7 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_6); + __Pyx_INCREF(__pyx_kp_u__3); + __Pyx_GIVEREF(__pyx_kp_u__3); + PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_kp_u__3); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_t_5); + __pyx_t_9 = 0; + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "_yaml.pyx":320 + * if self.parser.error == YAML_MEMORY_ERROR: + * return MemoryError + * elif self.parser.error == YAML_READER_ERROR: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * return ReaderError(self.stream_name, self.parser.problem_offset, + */ + break; + case YAML_SCANNER_ERROR: + + /* "_yaml.pyx":327 + * return ReaderError(self.stream_name, self.parser.problem_offset, + * self.parser.problem_value, u'?', PyUnicode_FromString(self.parser.problem)) + * elif self.parser.error == YAML_SCANNER_ERROR \ # <<<<<<<<<<<<<< + * or self.parser.error == YAML_PARSER_ERROR: + * context_mark = None + */ + case YAML_PARSER_ERROR: + + /* "_yaml.pyx":329 + * elif self.parser.error == YAML_SCANNER_ERROR \ + * or self.parser.error == YAML_PARSER_ERROR: + * context_mark = None # <<<<<<<<<<<<<< + * problem_mark = None + * if self.parser.context != NULL: + */ + __Pyx_INCREF(Py_None); + __pyx_v_context_mark = ((struct __pyx_obj_5_yaml_Mark *)Py_None); + + /* "_yaml.pyx":330 + * or self.parser.error == YAML_PARSER_ERROR: + * context_mark = None + * problem_mark = None # <<<<<<<<<<<<<< + * if self.parser.context != NULL: + * context_mark = Mark(self.stream_name, + */ + __Pyx_INCREF(Py_None); + __pyx_v_problem_mark = ((struct __pyx_obj_5_yaml_Mark *)Py_None); + + /* "_yaml.pyx":331 + * context_mark = None + * problem_mark = None + * if self.parser.context != NULL: # <<<<<<<<<<<<<< + * context_mark = Mark(self.stream_name, + * self.parser.context_mark.index, + */ + __pyx_t_1 = ((__pyx_v_self->parser.context != NULL) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":333 + * if self.parser.context != NULL: + * context_mark = Mark(self.stream_name, + * self.parser.context_mark.index, # <<<<<<<<<<<<<< + * self.parser.context_mark.line, + * self.parser.context_mark.column, None, None) + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.context_mark.index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":334 + * context_mark = Mark(self.stream_name, + * self.parser.context_mark.index, + * self.parser.context_mark.line, # <<<<<<<<<<<<<< + * self.parser.context_mark.column, None, None) + * if self.parser.problem != NULL: + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.context_mark.line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":335 + * self.parser.context_mark.index, + * self.parser.context_mark.line, + * self.parser.context_mark.column, None, None) # <<<<<<<<<<<<<< + * if self.parser.problem != NULL: + * problem_mark = Mark(self.stream_name, + */ + __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.context_mark.column); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "_yaml.pyx":332 + * problem_mark = None + * if self.parser.context != NULL: + * context_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parser.context_mark.index, + * self.parser.context_mark.line, + */ + __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_7); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_5, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_5, 5, Py_None); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_context_mark, ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_7)); + __pyx_t_7 = 0; + + /* "_yaml.pyx":331 + * context_mark = None + * problem_mark = None + * if self.parser.context != NULL: # <<<<<<<<<<<<<< + * context_mark = Mark(self.stream_name, + * self.parser.context_mark.index, + */ + } + + /* "_yaml.pyx":336 + * self.parser.context_mark.line, + * self.parser.context_mark.column, None, None) + * if self.parser.problem != NULL: # <<<<<<<<<<<<<< + * problem_mark = Mark(self.stream_name, + * self.parser.problem_mark.index, + */ + __pyx_t_1 = ((__pyx_v_self->parser.problem != NULL) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":338 + * if self.parser.problem != NULL: + * problem_mark = Mark(self.stream_name, + * self.parser.problem_mark.index, # <<<<<<<<<<<<<< + * self.parser.problem_mark.line, + * self.parser.problem_mark.column, None, None) + */ + __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.problem_mark.index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "_yaml.pyx":339 + * problem_mark = Mark(self.stream_name, + * self.parser.problem_mark.index, + * self.parser.problem_mark.line, # <<<<<<<<<<<<<< + * self.parser.problem_mark.column, None, None) + * context = None + */ + __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.problem_mark.line); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "_yaml.pyx":340 + * self.parser.problem_mark.index, + * self.parser.problem_mark.line, + * self.parser.problem_mark.column, None, None) # <<<<<<<<<<<<<< + * context = None + * if self.parser.context != NULL: + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parser.problem_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":337 + * self.parser.context_mark.column, None, None) + * if self.parser.problem != NULL: + * problem_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parser.problem_mark.index, + * self.parser.problem_mark.line, + */ + __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_2, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_2, 5, Py_None); + __pyx_t_7 = 0; + __pyx_t_5 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_problem_mark, ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "_yaml.pyx":336 + * self.parser.context_mark.line, + * self.parser.context_mark.column, None, None) + * if self.parser.problem != NULL: # <<<<<<<<<<<<<< + * problem_mark = Mark(self.stream_name, + * self.parser.problem_mark.index, + */ + } + + /* "_yaml.pyx":341 + * self.parser.problem_mark.line, + * self.parser.problem_mark.column, None, None) + * context = None # <<<<<<<<<<<<<< + * if self.parser.context != NULL: + * if PY_MAJOR_VERSION < 3: + */ + __Pyx_INCREF(Py_None); + __pyx_v_context = Py_None; + + /* "_yaml.pyx":342 + * self.parser.problem_mark.column, None, None) + * context = None + * if self.parser.context != NULL: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * context = self.parser.context + */ + __pyx_t_1 = ((__pyx_v_self->parser.context != NULL) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":343 + * context = None + * if self.parser.context != NULL: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * context = self.parser.context + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":344 + * if self.parser.context != NULL: + * if PY_MAJOR_VERSION < 3: + * context = self.parser.context # <<<<<<<<<<<<<< + * else: + * context = PyUnicode_FromString(self.parser.context) + */ + __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_self->parser.context); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":343 + * context = None + * if self.parser.context != NULL: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * context = self.parser.context + * else: + */ + goto __pyx_L7; + } + + /* "_yaml.pyx":346 + * context = self.parser.context + * else: + * context = PyUnicode_FromString(self.parser.context) # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * problem = self.parser.problem + */ + /*else*/ { + __pyx_t_3 = PyUnicode_FromString(__pyx_v_self->parser.context); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_3); + __pyx_t_3 = 0; + } + __pyx_L7:; + + /* "_yaml.pyx":342 + * self.parser.problem_mark.column, None, None) + * context = None + * if self.parser.context != NULL: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * context = self.parser.context + */ + } + + /* "_yaml.pyx":347 + * else: + * context = PyUnicode_FromString(self.parser.context) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.parser.problem + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":348 + * context = PyUnicode_FromString(self.parser.context) + * if PY_MAJOR_VERSION < 3: + * problem = self.parser.problem # <<<<<<<<<<<<<< + * else: + * problem = PyUnicode_FromString(self.parser.problem) + */ + __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_self->parser.problem); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_problem = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":347 + * else: + * context = PyUnicode_FromString(self.parser.context) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.parser.problem + * else: + */ + goto __pyx_L8; + } + + /* "_yaml.pyx":350 + * problem = self.parser.problem + * else: + * problem = PyUnicode_FromString(self.parser.problem) # <<<<<<<<<<<<<< + * if self.parser.error == YAML_SCANNER_ERROR: + * return ScannerError(context, context_mark, problem, problem_mark) + */ + /*else*/ { + __pyx_t_3 = PyUnicode_FromString(__pyx_v_self->parser.problem); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_problem = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L8:; + + /* "_yaml.pyx":351 + * else: + * problem = PyUnicode_FromString(self.parser.problem) + * if self.parser.error == YAML_SCANNER_ERROR: # <<<<<<<<<<<<<< + * return ScannerError(context, context_mark, problem, problem_mark) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->parser.error == YAML_SCANNER_ERROR) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":352 + * problem = PyUnicode_FromString(self.parser.problem) + * if self.parser.error == YAML_SCANNER_ERROR: + * return ScannerError(context, context_mark, problem, problem_mark) # <<<<<<<<<<<<<< + * else: + * return ParserError(context, context_mark, problem, problem_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ScannerError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_context, ((PyObject *)__pyx_v_context_mark), __pyx_v_problem, ((PyObject *)__pyx_v_problem_mark)}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_context, ((PyObject *)__pyx_v_context_mark), __pyx_v_problem, ((PyObject *)__pyx_v_problem_mark)}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_7 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(__pyx_v_context); + __Pyx_GIVEREF(__pyx_v_context); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_context); + __Pyx_INCREF(((PyObject *)__pyx_v_context_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_context_mark)); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, ((PyObject *)__pyx_v_context_mark)); + __Pyx_INCREF(__pyx_v_problem); + __Pyx_GIVEREF(__pyx_v_problem); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_v_problem); + __Pyx_INCREF(((PyObject *)__pyx_v_problem_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_problem_mark)); + PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, ((PyObject *)__pyx_v_problem_mark)); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":351 + * else: + * problem = PyUnicode_FromString(self.parser.problem) + * if self.parser.error == YAML_SCANNER_ERROR: # <<<<<<<<<<<<<< + * return ScannerError(context, context_mark, problem, problem_mark) + * else: + */ + } + + /* "_yaml.pyx":354 + * return ScannerError(context, context_mark, problem, problem_mark) + * else: + * return ParserError(context, context_mark, problem, problem_mark) # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no parser error") + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ParserError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_context, ((PyObject *)__pyx_v_context_mark), __pyx_v_problem, ((PyObject *)__pyx_v_problem_mark)}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_context, ((PyObject *)__pyx_v_context_mark), __pyx_v_problem, ((PyObject *)__pyx_v_problem_mark)}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_v_context); + __Pyx_GIVEREF(__pyx_v_context); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_context); + __Pyx_INCREF(((PyObject *)__pyx_v_context_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_context_mark)); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, ((PyObject *)__pyx_v_context_mark)); + __Pyx_INCREF(__pyx_v_problem); + __Pyx_GIVEREF(__pyx_v_problem); + PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_problem); + __Pyx_INCREF(((PyObject *)__pyx_v_problem_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_problem_mark)); + PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, ((PyObject *)__pyx_v_problem_mark)); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "_yaml.pyx":327 + * return ReaderError(self.stream_name, self.parser.problem_offset, + * self.parser.problem_value, u'?', PyUnicode_FromString(self.parser.problem)) + * elif self.parser.error == YAML_SCANNER_ERROR \ # <<<<<<<<<<<<<< + * or self.parser.error == YAML_PARSER_ERROR: + * context_mark = None + */ + break; + default: break; + } + + /* "_yaml.pyx":355 + * else: + * return ParserError(context, context_mark, problem, problem_mark) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("no parser error") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":356 + * return ParserError(context, context_mark, problem, problem_mark) + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no parser error") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"no parser error") + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 356, __pyx_L1_error) + + /* "_yaml.pyx":355 + * else: + * return ParserError(context, context_mark, problem, problem_mark) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("no parser error") + * else: + */ + } + + /* "_yaml.pyx":358 + * raise ValueError("no parser error") + * else: + * raise ValueError(u"no parser error") # <<<<<<<<<<<<<< + * + * def raw_scan(self): + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 358, __pyx_L1_error) + } + + /* "_yaml.pyx":317 + * pass + * + * cdef object _parser_error(self): # <<<<<<<<<<<<<< + * if self.parser.error == YAML_MEMORY_ERROR: + * return MemoryError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("_yaml.CParser._parser_error", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_context_mark); + __Pyx_XDECREF((PyObject *)__pyx_v_problem_mark); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_problem); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":360 + * raise ValueError(u"no parser error") + * + * def raw_scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * cdef int done + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_7raw_scan(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_7raw_scan(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("raw_scan (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_6raw_scan(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_6raw_scan(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + yaml_token_t __pyx_v_token; + int __pyx_v_done; + int __pyx_v_count; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("raw_scan", 0); + + /* "_yaml.pyx":364 + * cdef int done + * cdef int count + * count = 0 # <<<<<<<<<<<<<< + * done = 0 + * while done == 0: + */ + __pyx_v_count = 0; + + /* "_yaml.pyx":365 + * cdef int count + * count = 0 + * done = 0 # <<<<<<<<<<<<<< + * while done == 0: + * if yaml_parser_scan(&self.parser, &token) == 0: + */ + __pyx_v_done = 0; + + /* "_yaml.pyx":366 + * count = 0 + * done = 0 + * while done == 0: # <<<<<<<<<<<<<< + * if yaml_parser_scan(&self.parser, &token) == 0: + * error = self._parser_error() + */ + while (1) { + __pyx_t_1 = ((__pyx_v_done == 0) != 0); + if (!__pyx_t_1) break; + + /* "_yaml.pyx":367 + * done = 0 + * while done == 0: + * if yaml_parser_scan(&self.parser, &token) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + __pyx_t_2 = yaml_parser_scan((&__pyx_v_self->parser), (&__pyx_v_token)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 367, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_2 == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":368 + * while done == 0: + * if yaml_parser_scan(&self.parser, &token) == 0: + * error = self._parser_error() # <<<<<<<<<<<<<< + * raise error + * if token.type == YAML_NO_TOKEN: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":369 + * if yaml_parser_scan(&self.parser, &token) == 0: + * error = self._parser_error() + * raise error # <<<<<<<<<<<<<< + * if token.type == YAML_NO_TOKEN: + * done = 1 + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 369, __pyx_L1_error) + + /* "_yaml.pyx":367 + * done = 0 + * while done == 0: + * if yaml_parser_scan(&self.parser, &token) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "_yaml.pyx":370 + * error = self._parser_error() + * raise error + * if token.type == YAML_NO_TOKEN: # <<<<<<<<<<<<<< + * done = 1 + * else: + */ + __pyx_t_1 = ((__pyx_v_token.type == YAML_NO_TOKEN) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":371 + * raise error + * if token.type == YAML_NO_TOKEN: + * done = 1 # <<<<<<<<<<<<<< + * else: + * count = count+1 + */ + __pyx_v_done = 1; + + /* "_yaml.pyx":370 + * error = self._parser_error() + * raise error + * if token.type == YAML_NO_TOKEN: # <<<<<<<<<<<<<< + * done = 1 + * else: + */ + goto __pyx_L6; + } + + /* "_yaml.pyx":373 + * done = 1 + * else: + * count = count+1 # <<<<<<<<<<<<<< + * yaml_token_delete(&token) + * return count + */ + /*else*/ { + __pyx_v_count = (__pyx_v_count + 1); + } + __pyx_L6:; + + /* "_yaml.pyx":374 + * else: + * count = count+1 + * yaml_token_delete(&token) # <<<<<<<<<<<<<< + * return count + * + */ + yaml_token_delete((&__pyx_v_token)); + } + + /* "_yaml.pyx":375 + * count = count+1 + * yaml_token_delete(&token) + * return count # <<<<<<<<<<<<<< + * + * cdef object _scan(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":360 + * raise ValueError(u"no parser error") + * + * def raw_scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * cdef int done + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.raw_scan", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":377 + * return count + * + * cdef object _scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: + */ + +static PyObject *__pyx_f_5_yaml_7CParser__scan(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + yaml_token_t __pyx_v_token; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_v_token_object = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("_scan", 0); + + /* "_yaml.pyx":379 + * cdef object _scan(self): + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + __pyx_t_1 = yaml_parser_scan((&__pyx_v_self->parser), (&__pyx_v_token)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 379, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_1 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":380 + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: + * error = self._parser_error() # <<<<<<<<<<<<<< + * raise error + * token_object = self._token_to_object(&token) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":381 + * if yaml_parser_scan(&self.parser, &token) == 0: + * error = self._parser_error() + * raise error # <<<<<<<<<<<<<< + * token_object = self._token_to_object(&token) + * yaml_token_delete(&token) + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 381, __pyx_L1_error) + + /* "_yaml.pyx":379 + * cdef object _scan(self): + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "_yaml.pyx":382 + * error = self._parser_error() + * raise error + * token_object = self._token_to_object(&token) # <<<<<<<<<<<<<< + * yaml_token_delete(&token) + * return token_object + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_token_to_object(__pyx_v_self, (&__pyx_v_token)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_token_object = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":383 + * raise error + * token_object = self._token_to_object(&token) + * yaml_token_delete(&token) # <<<<<<<<<<<<<< + * return token_object + * + */ + yaml_token_delete((&__pyx_v_token)); + + /* "_yaml.pyx":384 + * token_object = self._token_to_object(&token) + * yaml_token_delete(&token) + * return token_object # <<<<<<<<<<<<<< + * + * cdef object _token_to_object(self, yaml_token_t *token): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_token_object); + __pyx_r = __pyx_v_token_object; + goto __pyx_L0; + + /* "_yaml.pyx":377 + * return count + * + * cdef object _scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser._scan", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XDECREF(__pyx_v_token_object); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":386 + * return token_object + * + * cdef object _token_to_object(self, yaml_token_t *token): # <<<<<<<<<<<<<< + * start_mark = Mark(self.stream_name, + * token.start_mark.index, + */ + +static PyObject *__pyx_f_5_yaml_7CParser__token_to_object(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, yaml_token_t *__pyx_v_token) { + struct __pyx_obj_5_yaml_Mark *__pyx_v_start_mark = NULL; + struct __pyx_obj_5_yaml_Mark *__pyx_v_end_mark = NULL; + PyObject *__pyx_v_encoding = NULL; + PyObject *__pyx_v_handle = NULL; + PyObject *__pyx_v_prefix = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_suffix = NULL; + int __pyx_v_plain; + PyObject *__pyx_v_style = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + __Pyx_RefNannySetupContext("_token_to_object", 0); + + /* "_yaml.pyx":388 + * cdef object _token_to_object(self, yaml_token_t *token): + * start_mark = Mark(self.stream_name, + * token.start_mark.index, # <<<<<<<<<<<<<< + * token.start_mark.line, + * token.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_token->start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":389 + * start_mark = Mark(self.stream_name, + * token.start_mark.index, + * token.start_mark.line, # <<<<<<<<<<<<<< + * token.start_mark.column, + * None, None) + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_token->start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":390 + * token.start_mark.index, + * token.start_mark.line, + * token.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * end_mark = Mark(self.stream_name, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_token->start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":387 + * + * cdef object _token_to_object(self, yaml_token_t *token): + * start_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * token.start_mark.index, + * token.start_mark.line, + */ + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":393 + * None, None) + * end_mark = Mark(self.stream_name, + * token.end_mark.index, # <<<<<<<<<<<<<< + * token.end_mark.line, + * token.end_mark.column, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_token->end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":394 + * end_mark = Mark(self.stream_name, + * token.end_mark.index, + * token.end_mark.line, # <<<<<<<<<<<<<< + * token.end_mark.column, + * None, None) + */ + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_token->end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":395 + * token.end_mark.index, + * token.end_mark.line, + * token.end_mark.column, # <<<<<<<<<<<<<< + * None, None) + * if token.type == YAML_NO_TOKEN: + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_token->end_mark.column); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":392 + * token.start_mark.column, + * None, None) + * end_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * token.end_mark.index, + * token.end_mark.line, + */ + __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 5, Py_None); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_end_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "_yaml.pyx":397 + * token.end_mark.column, + * None, None) + * if token.type == YAML_NO_TOKEN: # <<<<<<<<<<<<<< + * return None + * elif token.type == YAML_STREAM_START_TOKEN: + */ + switch (__pyx_v_token->type) { + case YAML_NO_TOKEN: + + /* "_yaml.pyx":398 + * None, None) + * if token.type == YAML_NO_TOKEN: + * return None # <<<<<<<<<<<<<< + * elif token.type == YAML_STREAM_START_TOKEN: + * encoding = None + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "_yaml.pyx":397 + * token.end_mark.column, + * None, None) + * if token.type == YAML_NO_TOKEN: # <<<<<<<<<<<<<< + * return None + * elif token.type == YAML_STREAM_START_TOKEN: + */ + break; + case YAML_STREAM_START_TOKEN: + + /* "_yaml.pyx":400 + * return None + * elif token.type == YAML_STREAM_START_TOKEN: + * encoding = None # <<<<<<<<<<<<<< + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: + */ + __Pyx_INCREF(Py_None); + __pyx_v_encoding = ((PyObject*)Py_None); + + /* "_yaml.pyx":401 + * elif token.type == YAML_STREAM_START_TOKEN: + * encoding = None + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: # <<<<<<<<<<<<<< + * if self.unicode_source == 0: + * encoding = u"utf-8" + */ + switch (__pyx_v_token->data.stream_start.encoding) { + case YAML_UTF8_ENCODING: + + /* "_yaml.pyx":402 + * encoding = None + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: # <<<<<<<<<<<<<< + * encoding = u"utf-8" + * elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + */ + __pyx_t_5 = ((__pyx_v_self->unicode_source == 0) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":403 + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: + * encoding = u"utf-8" # <<<<<<<<<<<<<< + * elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + * encoding = u"utf-16-le" + */ + __Pyx_INCREF(__pyx_kp_u_utf_8); + __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_kp_u_utf_8); + + /* "_yaml.pyx":402 + * encoding = None + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: # <<<<<<<<<<<<<< + * encoding = u"utf-8" + * elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + */ + } + + /* "_yaml.pyx":401 + * elif token.type == YAML_STREAM_START_TOKEN: + * encoding = None + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: # <<<<<<<<<<<<<< + * if self.unicode_source == 0: + * encoding = u"utf-8" + */ + break; + case YAML_UTF16LE_ENCODING: + + /* "_yaml.pyx":405 + * encoding = u"utf-8" + * elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + * encoding = u"utf-16-le" # <<<<<<<<<<<<<< + * elif token.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + * encoding = u"utf-16-be" + */ + __Pyx_INCREF(__pyx_kp_u_utf_16_le); + __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_kp_u_utf_16_le); + + /* "_yaml.pyx":404 + * if self.unicode_source == 0: + * encoding = u"utf-8" + * elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: # <<<<<<<<<<<<<< + * encoding = u"utf-16-le" + * elif token.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + */ + break; + case YAML_UTF16BE_ENCODING: + + /* "_yaml.pyx":407 + * encoding = u"utf-16-le" + * elif token.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + * encoding = u"utf-16-be" # <<<<<<<<<<<<<< + * return StreamStartToken(start_mark, end_mark, encoding) + * elif token.type == YAML_STREAM_END_TOKEN: + */ + __Pyx_INCREF(__pyx_kp_u_utf_16_be); + __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_kp_u_utf_16_be); + + /* "_yaml.pyx":406 + * elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + * encoding = u"utf-16-le" + * elif token.data.stream_start.encoding == YAML_UTF16BE_ENCODING: # <<<<<<<<<<<<<< + * encoding = u"utf-16-be" + * return StreamStartToken(start_mark, end_mark, encoding) + */ + break; + default: break; + } + + /* "_yaml.pyx":408 + * elif token.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + * encoding = u"utf-16-be" + * return StreamStartToken(start_mark, end_mark, encoding) # <<<<<<<<<<<<<< + * elif token.type == YAML_STREAM_END_TOKEN: + * return StreamEndToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_encoding}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_encoding}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_encoding); + __Pyx_GIVEREF(__pyx_v_encoding); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, __pyx_v_encoding); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":399 + * if token.type == YAML_NO_TOKEN: + * return None + * elif token.type == YAML_STREAM_START_TOKEN: # <<<<<<<<<<<<<< + * encoding = None + * if token.data.stream_start.encoding == YAML_UTF8_ENCODING: + */ + break; + case YAML_STREAM_END_TOKEN: + + /* "_yaml.pyx":410 + * return StreamStartToken(start_mark, end_mark, encoding) + * elif token.type == YAML_STREAM_END_TOKEN: + * return StreamEndToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: + * return DirectiveToken(u"YAML", + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":409 + * encoding = u"utf-16-be" + * return StreamStartToken(start_mark, end_mark, encoding) + * elif token.type == YAML_STREAM_END_TOKEN: # <<<<<<<<<<<<<< + * return StreamEndToken(start_mark, end_mark) + * elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: + */ + break; + case YAML_VERSION_DIRECTIVE_TOKEN: + + /* "_yaml.pyx":412 + * return StreamEndToken(start_mark, end_mark) + * elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: + * return DirectiveToken(u"YAML", # <<<<<<<<<<<<<< + * (token.data.version_directive.major, + * token.data.version_directive.minor), + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DirectiveToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":413 + * elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: + * return DirectiveToken(u"YAML", + * (token.data.version_directive.major, # <<<<<<<<<<<<<< + * token.data.version_directive.minor), + * start_mark, end_mark) + */ + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_token->data.version_directive.major); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":414 + * return DirectiveToken(u"YAML", + * (token.data.version_directive.major, + * token.data.version_directive.minor), # <<<<<<<<<<<<<< + * start_mark, end_mark) + * elif token.type == YAML_TAG_DIRECTIVE_TOKEN: + */ + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_token->data.version_directive.minor); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":413 + * elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: + * return DirectiveToken(u"YAML", + * (token.data.version_directive.major, # <<<<<<<<<<<<<< + * token.data.version_directive.minor), + * start_mark, end_mark) + */ + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_3 = 0; + + /* "_yaml.pyx":415 + * (token.data.version_directive.major, + * token.data.version_directive.minor), + * start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_TAG_DIRECTIVE_TOKEN: + * handle = PyUnicode_FromString(token.data.tag_directive.handle) + */ + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_n_u_YAML, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_n_u_YAML, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_n_u_YAML); + __Pyx_GIVEREF(__pyx_n_u_YAML); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_n_u_YAML); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_t_7); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":411 + * elif token.type == YAML_STREAM_END_TOKEN: + * return StreamEndToken(start_mark, end_mark) + * elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: # <<<<<<<<<<<<<< + * return DirectiveToken(u"YAML", + * (token.data.version_directive.major, + */ + break; + case YAML_TAG_DIRECTIVE_TOKEN: + + /* "_yaml.pyx":417 + * start_mark, end_mark) + * elif token.type == YAML_TAG_DIRECTIVE_TOKEN: + * handle = PyUnicode_FromString(token.data.tag_directive.handle) # <<<<<<<<<<<<<< + * prefix = PyUnicode_FromString(token.data.tag_directive.prefix) + * return DirectiveToken(u"TAG", (handle, prefix), + */ + __pyx_t_2 = PyUnicode_FromString(__pyx_v_token->data.tag_directive.handle); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_handle = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":418 + * elif token.type == YAML_TAG_DIRECTIVE_TOKEN: + * handle = PyUnicode_FromString(token.data.tag_directive.handle) + * prefix = PyUnicode_FromString(token.data.tag_directive.prefix) # <<<<<<<<<<<<<< + * return DirectiveToken(u"TAG", (handle, prefix), + * start_mark, end_mark) + */ + __pyx_t_2 = PyUnicode_FromString(__pyx_v_token->data.tag_directive.prefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_prefix = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":419 + * handle = PyUnicode_FromString(token.data.tag_directive.handle) + * prefix = PyUnicode_FromString(token.data.tag_directive.prefix) + * return DirectiveToken(u"TAG", (handle, prefix), # <<<<<<<<<<<<<< + * start_mark, end_mark) + * elif token.type == YAML_DOCUMENT_START_TOKEN: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DirectiveToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_handle); + __Pyx_GIVEREF(__pyx_v_handle); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_handle); + __Pyx_INCREF(__pyx_v_prefix); + __Pyx_GIVEREF(__pyx_v_prefix); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_prefix); + + /* "_yaml.pyx":420 + * prefix = PyUnicode_FromString(token.data.tag_directive.prefix) + * return DirectiveToken(u"TAG", (handle, prefix), + * start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_DOCUMENT_START_TOKEN: + * return DocumentStartToken(start_mark, end_mark) + */ + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_n_u_TAG, __pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_n_u_TAG, __pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_3 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_n_u_TAG); + __Pyx_GIVEREF(__pyx_n_u_TAG); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_n_u_TAG); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":416 + * token.data.version_directive.minor), + * start_mark, end_mark) + * elif token.type == YAML_TAG_DIRECTIVE_TOKEN: # <<<<<<<<<<<<<< + * handle = PyUnicode_FromString(token.data.tag_directive.handle) + * prefix = PyUnicode_FromString(token.data.tag_directive.prefix) + */ + break; + case YAML_DOCUMENT_START_TOKEN: + + /* "_yaml.pyx":422 + * start_mark, end_mark) + * elif token.type == YAML_DOCUMENT_START_TOKEN: + * return DocumentStartToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_DOCUMENT_END_TOKEN: + * return DocumentEndToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DocumentStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":421 + * return DirectiveToken(u"TAG", (handle, prefix), + * start_mark, end_mark) + * elif token.type == YAML_DOCUMENT_START_TOKEN: # <<<<<<<<<<<<<< + * return DocumentStartToken(start_mark, end_mark) + * elif token.type == YAML_DOCUMENT_END_TOKEN: + */ + break; + case YAML_DOCUMENT_END_TOKEN: + + /* "_yaml.pyx":424 + * return DocumentStartToken(start_mark, end_mark) + * elif token.type == YAML_DOCUMENT_END_TOKEN: + * return DocumentEndToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_BLOCK_SEQUENCE_START_TOKEN: + * return BlockSequenceStartToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DocumentEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 424, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 424, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":423 + * elif token.type == YAML_DOCUMENT_START_TOKEN: + * return DocumentStartToken(start_mark, end_mark) + * elif token.type == YAML_DOCUMENT_END_TOKEN: # <<<<<<<<<<<<<< + * return DocumentEndToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_SEQUENCE_START_TOKEN: + */ + break; + case YAML_BLOCK_SEQUENCE_START_TOKEN: + + /* "_yaml.pyx":426 + * return DocumentEndToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_SEQUENCE_START_TOKEN: + * return BlockSequenceStartToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_BLOCK_MAPPING_START_TOKEN: + * return BlockMappingStartToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BlockSequenceStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":425 + * elif token.type == YAML_DOCUMENT_END_TOKEN: + * return DocumentEndToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_SEQUENCE_START_TOKEN: # <<<<<<<<<<<<<< + * return BlockSequenceStartToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_MAPPING_START_TOKEN: + */ + break; + case YAML_BLOCK_MAPPING_START_TOKEN: + + /* "_yaml.pyx":428 + * return BlockSequenceStartToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_MAPPING_START_TOKEN: + * return BlockMappingStartToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_BLOCK_END_TOKEN: + * return BlockEndToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BlockMappingStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":427 + * elif token.type == YAML_BLOCK_SEQUENCE_START_TOKEN: + * return BlockSequenceStartToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_MAPPING_START_TOKEN: # <<<<<<<<<<<<<< + * return BlockMappingStartToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_END_TOKEN: + */ + break; + case YAML_BLOCK_END_TOKEN: + + /* "_yaml.pyx":430 + * return BlockMappingStartToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_END_TOKEN: + * return BlockEndToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_FLOW_SEQUENCE_START_TOKEN: + * return FlowSequenceStartToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BlockEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":429 + * elif token.type == YAML_BLOCK_MAPPING_START_TOKEN: + * return BlockMappingStartToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_END_TOKEN: # <<<<<<<<<<<<<< + * return BlockEndToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_SEQUENCE_START_TOKEN: + */ + break; + case YAML_FLOW_SEQUENCE_START_TOKEN: + + /* "_yaml.pyx":432 + * return BlockEndToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_SEQUENCE_START_TOKEN: + * return FlowSequenceStartToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_FLOW_SEQUENCE_END_TOKEN: + * return FlowSequenceEndToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_FlowSequenceStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":431 + * elif token.type == YAML_BLOCK_END_TOKEN: + * return BlockEndToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_SEQUENCE_START_TOKEN: # <<<<<<<<<<<<<< + * return FlowSequenceStartToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_SEQUENCE_END_TOKEN: + */ + break; + case YAML_FLOW_SEQUENCE_END_TOKEN: + + /* "_yaml.pyx":434 + * return FlowSequenceStartToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_SEQUENCE_END_TOKEN: + * return FlowSequenceEndToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_FLOW_MAPPING_START_TOKEN: + * return FlowMappingStartToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_FlowSequenceEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":433 + * elif token.type == YAML_FLOW_SEQUENCE_START_TOKEN: + * return FlowSequenceStartToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_SEQUENCE_END_TOKEN: # <<<<<<<<<<<<<< + * return FlowSequenceEndToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_MAPPING_START_TOKEN: + */ + break; + case YAML_FLOW_MAPPING_START_TOKEN: + + /* "_yaml.pyx":436 + * return FlowSequenceEndToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_MAPPING_START_TOKEN: + * return FlowMappingStartToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_FLOW_MAPPING_END_TOKEN: + * return FlowMappingEndToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_FlowMappingStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":435 + * elif token.type == YAML_FLOW_SEQUENCE_END_TOKEN: + * return FlowSequenceEndToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_MAPPING_START_TOKEN: # <<<<<<<<<<<<<< + * return FlowMappingStartToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_MAPPING_END_TOKEN: + */ + break; + case YAML_FLOW_MAPPING_END_TOKEN: + + /* "_yaml.pyx":438 + * return FlowMappingStartToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_MAPPING_END_TOKEN: + * return FlowMappingEndToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_BLOCK_ENTRY_TOKEN: + * return BlockEntryToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_FlowMappingEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 438, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 438, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":437 + * elif token.type == YAML_FLOW_MAPPING_START_TOKEN: + * return FlowMappingStartToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_MAPPING_END_TOKEN: # <<<<<<<<<<<<<< + * return FlowMappingEndToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_ENTRY_TOKEN: + */ + break; + case YAML_BLOCK_ENTRY_TOKEN: + + /* "_yaml.pyx":440 + * return FlowMappingEndToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_ENTRY_TOKEN: + * return BlockEntryToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_FLOW_ENTRY_TOKEN: + * return FlowEntryToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BlockEntryToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":439 + * elif token.type == YAML_FLOW_MAPPING_END_TOKEN: + * return FlowMappingEndToken(start_mark, end_mark) + * elif token.type == YAML_BLOCK_ENTRY_TOKEN: # <<<<<<<<<<<<<< + * return BlockEntryToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_ENTRY_TOKEN: + */ + break; + case YAML_FLOW_ENTRY_TOKEN: + + /* "_yaml.pyx":442 + * return BlockEntryToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_ENTRY_TOKEN: + * return FlowEntryToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_KEY_TOKEN: + * return KeyToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_FlowEntryToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 442, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 442, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":441 + * elif token.type == YAML_BLOCK_ENTRY_TOKEN: + * return BlockEntryToken(start_mark, end_mark) + * elif token.type == YAML_FLOW_ENTRY_TOKEN: # <<<<<<<<<<<<<< + * return FlowEntryToken(start_mark, end_mark) + * elif token.type == YAML_KEY_TOKEN: + */ + break; + case YAML_KEY_TOKEN: + + /* "_yaml.pyx":444 + * return FlowEntryToken(start_mark, end_mark) + * elif token.type == YAML_KEY_TOKEN: + * return KeyToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_VALUE_TOKEN: + * return ValueToken(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_KeyToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":443 + * elif token.type == YAML_FLOW_ENTRY_TOKEN: + * return FlowEntryToken(start_mark, end_mark) + * elif token.type == YAML_KEY_TOKEN: # <<<<<<<<<<<<<< + * return KeyToken(start_mark, end_mark) + * elif token.type == YAML_VALUE_TOKEN: + */ + break; + case YAML_VALUE_TOKEN: + + /* "_yaml.pyx":446 + * return KeyToken(start_mark, end_mark) + * elif token.type == YAML_VALUE_TOKEN: + * return ValueToken(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_ALIAS_TOKEN: + * value = PyUnicode_FromString(token.data.alias.value) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ValueToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":445 + * elif token.type == YAML_KEY_TOKEN: + * return KeyToken(start_mark, end_mark) + * elif token.type == YAML_VALUE_TOKEN: # <<<<<<<<<<<<<< + * return ValueToken(start_mark, end_mark) + * elif token.type == YAML_ALIAS_TOKEN: + */ + break; + case YAML_ALIAS_TOKEN: + + /* "_yaml.pyx":448 + * return ValueToken(start_mark, end_mark) + * elif token.type == YAML_ALIAS_TOKEN: + * value = PyUnicode_FromString(token.data.alias.value) # <<<<<<<<<<<<<< + * return AliasToken(value, start_mark, end_mark) + * elif token.type == YAML_ANCHOR_TOKEN: + */ + __pyx_t_2 = PyUnicode_FromString(__pyx_v_token->data.alias.value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":449 + * elif token.type == YAML_ALIAS_TOKEN: + * value = PyUnicode_FromString(token.data.alias.value) + * return AliasToken(value, start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_ANCHOR_TOKEN: + * value = PyUnicode_FromString(token.data.anchor.value) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AliasToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 449, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 449, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_value); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":447 + * elif token.type == YAML_VALUE_TOKEN: + * return ValueToken(start_mark, end_mark) + * elif token.type == YAML_ALIAS_TOKEN: # <<<<<<<<<<<<<< + * value = PyUnicode_FromString(token.data.alias.value) + * return AliasToken(value, start_mark, end_mark) + */ + break; + case YAML_ANCHOR_TOKEN: + + /* "_yaml.pyx":451 + * return AliasToken(value, start_mark, end_mark) + * elif token.type == YAML_ANCHOR_TOKEN: + * value = PyUnicode_FromString(token.data.anchor.value) # <<<<<<<<<<<<<< + * return AnchorToken(value, start_mark, end_mark) + * elif token.type == YAML_TAG_TOKEN: + */ + __pyx_t_2 = PyUnicode_FromString(__pyx_v_token->data.anchor.value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":452 + * elif token.type == YAML_ANCHOR_TOKEN: + * value = PyUnicode_FromString(token.data.anchor.value) + * return AnchorToken(value, start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_TAG_TOKEN: + * handle = PyUnicode_FromString(token.data.tag.handle) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AnchorToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_value); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":450 + * value = PyUnicode_FromString(token.data.alias.value) + * return AliasToken(value, start_mark, end_mark) + * elif token.type == YAML_ANCHOR_TOKEN: # <<<<<<<<<<<<<< + * value = PyUnicode_FromString(token.data.anchor.value) + * return AnchorToken(value, start_mark, end_mark) + */ + break; + case YAML_TAG_TOKEN: + + /* "_yaml.pyx":454 + * return AnchorToken(value, start_mark, end_mark) + * elif token.type == YAML_TAG_TOKEN: + * handle = PyUnicode_FromString(token.data.tag.handle) # <<<<<<<<<<<<<< + * suffix = PyUnicode_FromString(token.data.tag.suffix) + * if not handle: + */ + __pyx_t_2 = PyUnicode_FromString(__pyx_v_token->data.tag.handle); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_handle = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":455 + * elif token.type == YAML_TAG_TOKEN: + * handle = PyUnicode_FromString(token.data.tag.handle) + * suffix = PyUnicode_FromString(token.data.tag.suffix) # <<<<<<<<<<<<<< + * if not handle: + * handle = None + */ + __pyx_t_2 = PyUnicode_FromString(__pyx_v_token->data.tag.suffix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_suffix = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":456 + * handle = PyUnicode_FromString(token.data.tag.handle) + * suffix = PyUnicode_FromString(token.data.tag.suffix) + * if not handle: # <<<<<<<<<<<<<< + * handle = None + * return TagToken((handle, suffix), start_mark, end_mark) + */ + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_handle); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 456, __pyx_L1_error) + __pyx_t_8 = ((!__pyx_t_5) != 0); + if (__pyx_t_8) { + + /* "_yaml.pyx":457 + * suffix = PyUnicode_FromString(token.data.tag.suffix) + * if not handle: + * handle = None # <<<<<<<<<<<<<< + * return TagToken((handle, suffix), start_mark, end_mark) + * elif token.type == YAML_SCALAR_TOKEN: + */ + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_handle, Py_None); + + /* "_yaml.pyx":456 + * handle = PyUnicode_FromString(token.data.tag.handle) + * suffix = PyUnicode_FromString(token.data.tag.suffix) + * if not handle: # <<<<<<<<<<<<<< + * handle = None + * return TagToken((handle, suffix), start_mark, end_mark) + */ + } + + /* "_yaml.pyx":458 + * if not handle: + * handle = None + * return TagToken((handle, suffix), start_mark, end_mark) # <<<<<<<<<<<<<< + * elif token.type == YAML_SCALAR_TOKEN: + * value = PyUnicode_DecodeUTF8(token.data.scalar.value, + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TagToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_handle); + __Pyx_GIVEREF(__pyx_v_handle); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_handle); + __Pyx_INCREF(__pyx_v_suffix); + __Pyx_GIVEREF(__pyx_v_suffix); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_suffix); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":453 + * value = PyUnicode_FromString(token.data.anchor.value) + * return AnchorToken(value, start_mark, end_mark) + * elif token.type == YAML_TAG_TOKEN: # <<<<<<<<<<<<<< + * handle = PyUnicode_FromString(token.data.tag.handle) + * suffix = PyUnicode_FromString(token.data.tag.suffix) + */ + break; + case YAML_SCALAR_TOKEN: + + /* "_yaml.pyx":460 + * return TagToken((handle, suffix), start_mark, end_mark) + * elif token.type == YAML_SCALAR_TOKEN: + * value = PyUnicode_DecodeUTF8(token.data.scalar.value, # <<<<<<<<<<<<<< + * token.data.scalar.length, 'strict') + * plain = False + */ + __pyx_t_2 = PyUnicode_DecodeUTF8(__pyx_v_token->data.scalar.value, __pyx_v_token->data.scalar.length, ((char *)"strict")); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":462 + * value = PyUnicode_DecodeUTF8(token.data.scalar.value, + * token.data.scalar.length, 'strict') + * plain = False # <<<<<<<<<<<<<< + * style = None + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + */ + __pyx_v_plain = 0; + + /* "_yaml.pyx":463 + * token.data.scalar.length, 'strict') + * plain = False + * style = None # <<<<<<<<<<<<<< + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * plain = True + */ + __Pyx_INCREF(Py_None); + __pyx_v_style = ((PyObject*)Py_None); + + /* "_yaml.pyx":464 + * plain = False + * style = None + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * plain = True + * style = u'' + */ + switch (__pyx_v_token->data.scalar.style) { + case YAML_PLAIN_SCALAR_STYLE: + + /* "_yaml.pyx":465 + * style = None + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * plain = True # <<<<<<<<<<<<<< + * style = u'' + * elif token.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + */ + __pyx_v_plain = 1; + + /* "_yaml.pyx":466 + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * plain = True + * style = u'' # <<<<<<<<<<<<<< + * elif token.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' + */ + __Pyx_INCREF(__pyx_kp_u__6); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__6); + + /* "_yaml.pyx":464 + * plain = False + * style = None + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * plain = True + * style = u'' + */ + break; + case YAML_SINGLE_QUOTED_SCALAR_STYLE: + + /* "_yaml.pyx":468 + * style = u'' + * elif token.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' # <<<<<<<<<<<<<< + * elif token.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' + */ + __Pyx_INCREF(__pyx_kp_u__7); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__7); + + /* "_yaml.pyx":467 + * plain = True + * style = u'' + * elif token.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'\'' + * elif token.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + */ + break; + case YAML_DOUBLE_QUOTED_SCALAR_STYLE: + + /* "_yaml.pyx":470 + * style = u'\'' + * elif token.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' # <<<<<<<<<<<<<< + * elif token.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' + */ + __Pyx_INCREF(__pyx_kp_u__8); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__8); + + /* "_yaml.pyx":469 + * elif token.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' + * elif token.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'"' + * elif token.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + */ + break; + case YAML_LITERAL_SCALAR_STYLE: + + /* "_yaml.pyx":472 + * style = u'"' + * elif token.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' # <<<<<<<<<<<<<< + * elif token.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' + */ + __Pyx_INCREF(__pyx_kp_u__9); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__9); + + /* "_yaml.pyx":471 + * elif token.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' + * elif token.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'|' + * elif token.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + */ + break; + case YAML_FOLDED_SCALAR_STYLE: + + /* "_yaml.pyx":474 + * style = u'|' + * elif token.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' # <<<<<<<<<<<<<< + * return ScalarToken(value, plain, + * start_mark, end_mark, style) + */ + __Pyx_INCREF(__pyx_kp_u__10); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__10); + + /* "_yaml.pyx":473 + * elif token.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' + * elif token.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'>' + * return ScalarToken(value, plain, + */ + break; + default: break; + } + + /* "_yaml.pyx":475 + * elif token.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' + * return ScalarToken(value, plain, # <<<<<<<<<<<<<< + * start_mark, end_mark, style) + * else: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ScalarToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_plain); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "_yaml.pyx":476 + * style = u'>' + * return ScalarToken(value, plain, + * start_mark, end_mark, style) # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_value, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_value, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_3 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_value); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_t_7); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_style); + __Pyx_GIVEREF(__pyx_v_style); + PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_6, __pyx_v_style); + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":459 + * handle = None + * return TagToken((handle, suffix), start_mark, end_mark) + * elif token.type == YAML_SCALAR_TOKEN: # <<<<<<<<<<<<<< + * value = PyUnicode_DecodeUTF8(token.data.scalar.value, + * token.data.scalar.length, 'strict') + */ + break; + default: + + /* "_yaml.pyx":478 + * start_mark, end_mark, style) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown token type") + * else: + */ + __pyx_t_8 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_8)) { + + /* "_yaml.pyx":479 + * else: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("unknown token type") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"unknown token type") + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 479, __pyx_L1_error) + + /* "_yaml.pyx":478 + * start_mark, end_mark, style) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown token type") + * else: + */ + } + + /* "_yaml.pyx":481 + * raise ValueError("unknown token type") + * else: + * raise ValueError(u"unknown token type") # <<<<<<<<<<<<<< + * + * def get_token(self): + */ + /*else*/ { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 481, __pyx_L1_error) + } + break; + } + + /* "_yaml.pyx":386 + * return token_object + * + * cdef object _token_to_object(self, yaml_token_t *token): # <<<<<<<<<<<<<< + * start_mark = Mark(self.stream_name, + * token.start_mark.index, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("_yaml.CParser._token_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_start_mark); + __Pyx_XDECREF((PyObject *)__pyx_v_end_mark); + __Pyx_XDECREF(__pyx_v_encoding); + __Pyx_XDECREF(__pyx_v_handle); + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_suffix); + __Pyx_XDECREF(__pyx_v_style); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":483 + * raise ValueError(u"unknown token type") + * + * def get_token(self): # <<<<<<<<<<<<<< + * if self.current_token is not None: + * value = self.current_token + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_9get_token(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_9get_token(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_token (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_8get_token(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_8get_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("get_token", 0); + + /* "_yaml.pyx":484 + * + * def get_token(self): + * if self.current_token is not None: # <<<<<<<<<<<<<< + * value = self.current_token + * self.current_token = None + */ + __pyx_t_1 = (__pyx_v_self->current_token != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":485 + * def get_token(self): + * if self.current_token is not None: + * value = self.current_token # <<<<<<<<<<<<<< + * self.current_token = None + * else: + */ + __pyx_t_3 = __pyx_v_self->current_token; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_value = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":486 + * if self.current_token is not None: + * value = self.current_token + * self.current_token = None # <<<<<<<<<<<<<< + * else: + * value = self._scan() + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->current_token); + __Pyx_DECREF(__pyx_v_self->current_token); + __pyx_v_self->current_token = Py_None; + + /* "_yaml.pyx":484 + * + * def get_token(self): + * if self.current_token is not None: # <<<<<<<<<<<<<< + * value = self.current_token + * self.current_token = None + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":488 + * self.current_token = None + * else: + * value = self._scan() # <<<<<<<<<<<<<< + * return value + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_scan(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_value = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "_yaml.pyx":489 + * else: + * value = self._scan() + * return value # <<<<<<<<<<<<<< + * + * def peek_token(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_value); + __pyx_r = __pyx_v_value; + goto __pyx_L0; + + /* "_yaml.pyx":483 + * raise ValueError(u"unknown token type") + * + * def get_token(self): # <<<<<<<<<<<<<< + * if self.current_token is not None: + * value = self.current_token + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.get_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":491 + * return value + * + * def peek_token(self): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_11peek_token(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_11peek_token(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek_token (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_10peek_token(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_10peek_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("peek_token", 0); + + /* "_yaml.pyx":492 + * + * def peek_token(self): + * if self.current_token is None: # <<<<<<<<<<<<<< + * self.current_token = self._scan() + * return self.current_token + */ + __pyx_t_1 = (__pyx_v_self->current_token == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":493 + * def peek_token(self): + * if self.current_token is None: + * self.current_token = self._scan() # <<<<<<<<<<<<<< + * return self.current_token + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_scan(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->current_token); + __Pyx_DECREF(__pyx_v_self->current_token); + __pyx_v_self->current_token = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":492 + * + * def peek_token(self): + * if self.current_token is None: # <<<<<<<<<<<<<< + * self.current_token = self._scan() + * return self.current_token + */ + } + + /* "_yaml.pyx":494 + * if self.current_token is None: + * self.current_token = self._scan() + * return self.current_token # <<<<<<<<<<<<<< + * + * def check_token(self, *choices): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->current_token); + __pyx_r = __pyx_v_self->current_token; + goto __pyx_L0; + + /* "_yaml.pyx":491 + * return value + * + * def peek_token(self): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.peek_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":496 + * return self.current_token + * + * def check_token(self, *choices): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_13check_token(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_13check_token(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_choices = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("check_token (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "check_token", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_choices = __pyx_args; + __pyx_r = __pyx_pf_5_yaml_7CParser_12check_token(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self), __pyx_v_choices); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_choices); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_12check_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices) { + PyObject *__pyx_v_token_class = NULL; + PyObject *__pyx_v_choice = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("check_token", 0); + + /* "_yaml.pyx":497 + * + * def check_token(self, *choices): + * if self.current_token is None: # <<<<<<<<<<<<<< + * self.current_token = self._scan() + * if self.current_token is None: + */ + __pyx_t_1 = (__pyx_v_self->current_token == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":498 + * def check_token(self, *choices): + * if self.current_token is None: + * self.current_token = self._scan() # <<<<<<<<<<<<<< + * if self.current_token is None: + * return False + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_scan(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->current_token); + __Pyx_DECREF(__pyx_v_self->current_token); + __pyx_v_self->current_token = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":497 + * + * def check_token(self, *choices): + * if self.current_token is None: # <<<<<<<<<<<<<< + * self.current_token = self._scan() + * if self.current_token is None: + */ + } + + /* "_yaml.pyx":499 + * if self.current_token is None: + * self.current_token = self._scan() + * if self.current_token is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + __pyx_t_2 = (__pyx_v_self->current_token == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":500 + * self.current_token = self._scan() + * if self.current_token is None: + * return False # <<<<<<<<<<<<<< + * if not choices: + * return True + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + goto __pyx_L0; + + /* "_yaml.pyx":499 + * if self.current_token is None: + * self.current_token = self._scan() + * if self.current_token is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + } + + /* "_yaml.pyx":501 + * if self.current_token is None: + * return False + * if not choices: # <<<<<<<<<<<<<< + * return True + * token_class = self.current_token.__class__ + */ + __pyx_t_1 = (PyTuple_GET_SIZE(__pyx_v_choices) != 0); + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":502 + * return False + * if not choices: + * return True # <<<<<<<<<<<<<< + * token_class = self.current_token.__class__ + * for choice in choices: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + goto __pyx_L0; + + /* "_yaml.pyx":501 + * if self.current_token is None: + * return False + * if not choices: # <<<<<<<<<<<<<< + * return True + * token_class = self.current_token.__class__ + */ + } + + /* "_yaml.pyx":503 + * if not choices: + * return True + * token_class = self.current_token.__class__ # <<<<<<<<<<<<<< + * for choice in choices: + * if token_class is choice: + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->current_token, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_token_class = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":504 + * return True + * token_class = self.current_token.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if token_class is choice: + * return True + */ + __pyx_t_3 = __pyx_v_choices; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 504, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_XDECREF_SET(__pyx_v_choice, __pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":505 + * token_class = self.current_token.__class__ + * for choice in choices: + * if token_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + __pyx_t_2 = (__pyx_v_token_class == __pyx_v_choice); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":506 + * for choice in choices: + * if token_class is choice: + * return True # <<<<<<<<<<<<<< + * return False + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":505 + * token_class = self.current_token.__class__ + * for choice in choices: + * if token_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "_yaml.pyx":504 + * return True + * token_class = self.current_token.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if token_class is choice: + * return True + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "_yaml.pyx":507 + * if token_class is choice: + * return True + * return False # <<<<<<<<<<<<<< + * + * def raw_parse(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + goto __pyx_L0; + + /* "_yaml.pyx":496 + * return self.current_token + * + * def check_token(self, *choices): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("_yaml.CParser.check_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_token_class); + __Pyx_XDECREF(__pyx_v_choice); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":509 + * return False + * + * def raw_parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int done + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_15raw_parse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_15raw_parse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("raw_parse (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_14raw_parse(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_14raw_parse(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + yaml_event_t __pyx_v_event; + int __pyx_v_done; + int __pyx_v_count; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("raw_parse", 0); + + /* "_yaml.pyx":513 + * cdef int done + * cdef int count + * count = 0 # <<<<<<<<<<<<<< + * done = 0 + * while done == 0: + */ + __pyx_v_count = 0; + + /* "_yaml.pyx":514 + * cdef int count + * count = 0 + * done = 0 # <<<<<<<<<<<<<< + * while done == 0: + * if yaml_parser_parse(&self.parser, &event) == 0: + */ + __pyx_v_done = 0; + + /* "_yaml.pyx":515 + * count = 0 + * done = 0 + * while done == 0: # <<<<<<<<<<<<<< + * if yaml_parser_parse(&self.parser, &event) == 0: + * error = self._parser_error() + */ + while (1) { + __pyx_t_1 = ((__pyx_v_done == 0) != 0); + if (!__pyx_t_1) break; + + /* "_yaml.pyx":516 + * done = 0 + * while done == 0: + * if yaml_parser_parse(&self.parser, &event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + __pyx_t_2 = yaml_parser_parse((&__pyx_v_self->parser), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 516, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_2 == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":517 + * while done == 0: + * if yaml_parser_parse(&self.parser, &event) == 0: + * error = self._parser_error() # <<<<<<<<<<<<<< + * raise error + * if event.type == YAML_NO_EVENT: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":518 + * if yaml_parser_parse(&self.parser, &event) == 0: + * error = self._parser_error() + * raise error # <<<<<<<<<<<<<< + * if event.type == YAML_NO_EVENT: + * done = 1 + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 518, __pyx_L1_error) + + /* "_yaml.pyx":516 + * done = 0 + * while done == 0: + * if yaml_parser_parse(&self.parser, &event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "_yaml.pyx":519 + * error = self._parser_error() + * raise error + * if event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * done = 1 + * else: + */ + __pyx_t_1 = ((__pyx_v_event.type == YAML_NO_EVENT) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":520 + * raise error + * if event.type == YAML_NO_EVENT: + * done = 1 # <<<<<<<<<<<<<< + * else: + * count = count+1 + */ + __pyx_v_done = 1; + + /* "_yaml.pyx":519 + * error = self._parser_error() + * raise error + * if event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * done = 1 + * else: + */ + goto __pyx_L6; + } + + /* "_yaml.pyx":522 + * done = 1 + * else: + * count = count+1 # <<<<<<<<<<<<<< + * yaml_event_delete(&event) + * return count + */ + /*else*/ { + __pyx_v_count = (__pyx_v_count + 1); + } + __pyx_L6:; + + /* "_yaml.pyx":523 + * else: + * count = count+1 + * yaml_event_delete(&event) # <<<<<<<<<<<<<< + * return count + * + */ + yaml_event_delete((&__pyx_v_event)); + } + + /* "_yaml.pyx":524 + * count = count+1 + * yaml_event_delete(&event) + * return count # <<<<<<<<<<<<<< + * + * cdef object _parse(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":509 + * return False + * + * def raw_parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int done + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.raw_parse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":526 + * return count + * + * cdef object _parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: + */ + +static PyObject *__pyx_f_5_yaml_7CParser__parse(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + yaml_event_t __pyx_v_event; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_v_event_object = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("_parse", 0); + + /* "_yaml.pyx":528 + * cdef object _parse(self): + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + __pyx_t_1 = yaml_parser_parse((&__pyx_v_self->parser), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 528, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_1 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":529 + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: + * error = self._parser_error() # <<<<<<<<<<<<<< + * raise error + * event_object = self._event_to_object(&event) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":530 + * if yaml_parser_parse(&self.parser, &event) == 0: + * error = self._parser_error() + * raise error # <<<<<<<<<<<<<< + * event_object = self._event_to_object(&event) + * yaml_event_delete(&event) + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 530, __pyx_L1_error) + + /* "_yaml.pyx":528 + * cdef object _parse(self): + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "_yaml.pyx":531 + * error = self._parser_error() + * raise error + * event_object = self._event_to_object(&event) # <<<<<<<<<<<<<< + * yaml_event_delete(&event) + * return event_object + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_event_to_object(__pyx_v_self, (&__pyx_v_event)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_event_object = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":532 + * raise error + * event_object = self._event_to_object(&event) + * yaml_event_delete(&event) # <<<<<<<<<<<<<< + * return event_object + * + */ + yaml_event_delete((&__pyx_v_event)); + + /* "_yaml.pyx":533 + * event_object = self._event_to_object(&event) + * yaml_event_delete(&event) + * return event_object # <<<<<<<<<<<<<< + * + * cdef object _event_to_object(self, yaml_event_t *event): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_event_object); + __pyx_r = __pyx_v_event_object; + goto __pyx_L0; + + /* "_yaml.pyx":526 + * return count + * + * cdef object _parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser._parse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XDECREF(__pyx_v_event_object); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":535 + * return event_object + * + * cdef object _event_to_object(self, yaml_event_t *event): # <<<<<<<<<<<<<< + * cdef yaml_tag_directive_t *tag_directive + * start_mark = Mark(self.stream_name, + */ + +static PyObject *__pyx_f_5_yaml_7CParser__event_to_object(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, yaml_event_t *__pyx_v_event) { + yaml_tag_directive_t *__pyx_v_tag_directive; + struct __pyx_obj_5_yaml_Mark *__pyx_v_start_mark = NULL; + struct __pyx_obj_5_yaml_Mark *__pyx_v_end_mark = NULL; + PyObject *__pyx_v_encoding = NULL; + int __pyx_v_explicit; + PyObject *__pyx_v_version = NULL; + PyObject *__pyx_v_tags = NULL; + PyObject *__pyx_v_handle = NULL; + PyObject *__pyx_v_prefix = NULL; + PyObject *__pyx_v_anchor = NULL; + PyObject *__pyx_v_tag = NULL; + PyObject *__pyx_v_value = NULL; + int __pyx_v_plain_implicit; + int __pyx_v_quoted_implicit; + PyObject *__pyx_v_style = NULL; + int __pyx_v_implicit; + PyObject *__pyx_v_flow_style = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + yaml_tag_directive_t *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + __Pyx_RefNannySetupContext("_event_to_object", 0); + + /* "_yaml.pyx":538 + * cdef yaml_tag_directive_t *tag_directive + * start_mark = Mark(self.stream_name, + * event.start_mark.index, # <<<<<<<<<<<<<< + * event.start_mark.line, + * event.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_event->start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":539 + * start_mark = Mark(self.stream_name, + * event.start_mark.index, + * event.start_mark.line, # <<<<<<<<<<<<<< + * event.start_mark.column, + * None, None) + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_event->start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":540 + * event.start_mark.index, + * event.start_mark.line, + * event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * end_mark = Mark(self.stream_name, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_event->start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":537 + * cdef object _event_to_object(self, yaml_event_t *event): + * cdef yaml_tag_directive_t *tag_directive + * start_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * event.start_mark.index, + * event.start_mark.line, + */ + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":543 + * None, None) + * end_mark = Mark(self.stream_name, + * event.end_mark.index, # <<<<<<<<<<<<<< + * event.end_mark.line, + * event.end_mark.column, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_event->end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":544 + * end_mark = Mark(self.stream_name, + * event.end_mark.index, + * event.end_mark.line, # <<<<<<<<<<<<<< + * event.end_mark.column, + * None, None) + */ + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_event->end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":545 + * event.end_mark.index, + * event.end_mark.line, + * event.end_mark.column, # <<<<<<<<<<<<<< + * None, None) + * if event.type == YAML_NO_EVENT: + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_event->end_mark.column); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":542 + * event.start_mark.column, + * None, None) + * end_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * event.end_mark.index, + * event.end_mark.line, + */ + __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 5, Py_None); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_end_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "_yaml.pyx":547 + * event.end_mark.column, + * None, None) + * if event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * return None + * elif event.type == YAML_STREAM_START_EVENT: + */ + switch (__pyx_v_event->type) { + case YAML_NO_EVENT: + + /* "_yaml.pyx":548 + * None, None) + * if event.type == YAML_NO_EVENT: + * return None # <<<<<<<<<<<<<< + * elif event.type == YAML_STREAM_START_EVENT: + * encoding = None + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "_yaml.pyx":547 + * event.end_mark.column, + * None, None) + * if event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * return None + * elif event.type == YAML_STREAM_START_EVENT: + */ + break; + case YAML_STREAM_START_EVENT: + + /* "_yaml.pyx":550 + * return None + * elif event.type == YAML_STREAM_START_EVENT: + * encoding = None # <<<<<<<<<<<<<< + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: + */ + __Pyx_INCREF(Py_None); + __pyx_v_encoding = ((PyObject*)Py_None); + + /* "_yaml.pyx":551 + * elif event.type == YAML_STREAM_START_EVENT: + * encoding = None + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: # <<<<<<<<<<<<<< + * if self.unicode_source == 0: + * encoding = u"utf-8" + */ + switch (__pyx_v_event->data.stream_start.encoding) { + case YAML_UTF8_ENCODING: + + /* "_yaml.pyx":552 + * encoding = None + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: # <<<<<<<<<<<<<< + * encoding = u"utf-8" + * elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + */ + __pyx_t_5 = ((__pyx_v_self->unicode_source == 0) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":553 + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: + * encoding = u"utf-8" # <<<<<<<<<<<<<< + * elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + * encoding = u"utf-16-le" + */ + __Pyx_INCREF(__pyx_kp_u_utf_8); + __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_kp_u_utf_8); + + /* "_yaml.pyx":552 + * encoding = None + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: + * if self.unicode_source == 0: # <<<<<<<<<<<<<< + * encoding = u"utf-8" + * elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + */ + } + + /* "_yaml.pyx":551 + * elif event.type == YAML_STREAM_START_EVENT: + * encoding = None + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: # <<<<<<<<<<<<<< + * if self.unicode_source == 0: + * encoding = u"utf-8" + */ + break; + case YAML_UTF16LE_ENCODING: + + /* "_yaml.pyx":555 + * encoding = u"utf-8" + * elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + * encoding = u"utf-16-le" # <<<<<<<<<<<<<< + * elif event.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + * encoding = u"utf-16-be" + */ + __Pyx_INCREF(__pyx_kp_u_utf_16_le); + __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_kp_u_utf_16_le); + + /* "_yaml.pyx":554 + * if self.unicode_source == 0: + * encoding = u"utf-8" + * elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: # <<<<<<<<<<<<<< + * encoding = u"utf-16-le" + * elif event.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + */ + break; + case YAML_UTF16BE_ENCODING: + + /* "_yaml.pyx":557 + * encoding = u"utf-16-le" + * elif event.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + * encoding = u"utf-16-be" # <<<<<<<<<<<<<< + * return StreamStartEvent(start_mark, end_mark, encoding) + * elif event.type == YAML_STREAM_END_EVENT: + */ + __Pyx_INCREF(__pyx_kp_u_utf_16_be); + __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_kp_u_utf_16_be); + + /* "_yaml.pyx":556 + * elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + * encoding = u"utf-16-le" + * elif event.data.stream_start.encoding == YAML_UTF16BE_ENCODING: # <<<<<<<<<<<<<< + * encoding = u"utf-16-be" + * return StreamStartEvent(start_mark, end_mark, encoding) + */ + break; + default: break; + } + + /* "_yaml.pyx":558 + * elif event.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + * encoding = u"utf-16-be" + * return StreamStartEvent(start_mark, end_mark, encoding) # <<<<<<<<<<<<<< + * elif event.type == YAML_STREAM_END_EVENT: + * return StreamEndEvent(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_encoding}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 558, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_encoding}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 558, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_3 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_encoding); + __Pyx_GIVEREF(__pyx_v_encoding); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, __pyx_v_encoding); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":549 + * if event.type == YAML_NO_EVENT: + * return None + * elif event.type == YAML_STREAM_START_EVENT: # <<<<<<<<<<<<<< + * encoding = None + * if event.data.stream_start.encoding == YAML_UTF8_ENCODING: + */ + break; + case YAML_STREAM_END_EVENT: + + /* "_yaml.pyx":560 + * return StreamStartEvent(start_mark, end_mark, encoding) + * elif event.type == YAML_STREAM_END_EVENT: + * return StreamEndEvent(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif event.type == YAML_DOCUMENT_START_EVENT: + * explicit = False + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":559 + * encoding = u"utf-16-be" + * return StreamStartEvent(start_mark, end_mark, encoding) + * elif event.type == YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return StreamEndEvent(start_mark, end_mark) + * elif event.type == YAML_DOCUMENT_START_EVENT: + */ + break; + case YAML_DOCUMENT_START_EVENT: + + /* "_yaml.pyx":562 + * return StreamEndEvent(start_mark, end_mark) + * elif event.type == YAML_DOCUMENT_START_EVENT: + * explicit = False # <<<<<<<<<<<<<< + * if event.data.document_start.implicit == 0: + * explicit = True + */ + __pyx_v_explicit = 0; + + /* "_yaml.pyx":563 + * elif event.type == YAML_DOCUMENT_START_EVENT: + * explicit = False + * if event.data.document_start.implicit == 0: # <<<<<<<<<<<<<< + * explicit = True + * version = None + */ + __pyx_t_5 = ((__pyx_v_event->data.document_start.implicit == 0) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":564 + * explicit = False + * if event.data.document_start.implicit == 0: + * explicit = True # <<<<<<<<<<<<<< + * version = None + * if event.data.document_start.version_directive != NULL: + */ + __pyx_v_explicit = 1; + + /* "_yaml.pyx":563 + * elif event.type == YAML_DOCUMENT_START_EVENT: + * explicit = False + * if event.data.document_start.implicit == 0: # <<<<<<<<<<<<<< + * explicit = True + * version = None + */ + } + + /* "_yaml.pyx":565 + * if event.data.document_start.implicit == 0: + * explicit = True + * version = None # <<<<<<<<<<<<<< + * if event.data.document_start.version_directive != NULL: + * version = (event.data.document_start.version_directive.major, + */ + __Pyx_INCREF(Py_None); + __pyx_v_version = Py_None; + + /* "_yaml.pyx":566 + * explicit = True + * version = None + * if event.data.document_start.version_directive != NULL: # <<<<<<<<<<<<<< + * version = (event.data.document_start.version_directive.major, + * event.data.document_start.version_directive.minor) + */ + __pyx_t_5 = ((__pyx_v_event->data.document_start.version_directive != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":567 + * version = None + * if event.data.document_start.version_directive != NULL: + * version = (event.data.document_start.version_directive.major, # <<<<<<<<<<<<<< + * event.data.document_start.version_directive.minor) + * tags = None + */ + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_event->data.document_start.version_directive->major); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":568 + * if event.data.document_start.version_directive != NULL: + * version = (event.data.document_start.version_directive.major, + * event.data.document_start.version_directive.minor) # <<<<<<<<<<<<<< + * tags = None + * if event.data.document_start.tag_directives.start != NULL: + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_event->data.document_start.version_directive->minor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":567 + * version = None + * if event.data.document_start.version_directive != NULL: + * version = (event.data.document_start.version_directive.major, # <<<<<<<<<<<<<< + * event.data.document_start.version_directive.minor) + * tags = None + */ + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_version, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":566 + * explicit = True + * version = None + * if event.data.document_start.version_directive != NULL: # <<<<<<<<<<<<<< + * version = (event.data.document_start.version_directive.major, + * event.data.document_start.version_directive.minor) + */ + } + + /* "_yaml.pyx":569 + * version = (event.data.document_start.version_directive.major, + * event.data.document_start.version_directive.minor) + * tags = None # <<<<<<<<<<<<<< + * if event.data.document_start.tag_directives.start != NULL: + * tags = {} + */ + __Pyx_INCREF(Py_None); + __pyx_v_tags = ((PyObject*)Py_None); + + /* "_yaml.pyx":570 + * event.data.document_start.version_directive.minor) + * tags = None + * if event.data.document_start.tag_directives.start != NULL: # <<<<<<<<<<<<<< + * tags = {} + * tag_directive = event.data.document_start.tag_directives.start + */ + __pyx_t_5 = ((__pyx_v_event->data.document_start.tag_directives.start != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":571 + * tags = None + * if event.data.document_start.tag_directives.start != NULL: + * tags = {} # <<<<<<<<<<<<<< + * tag_directive = event.data.document_start.tag_directives.start + * while tag_directive != event.data.document_start.tag_directives.end: + */ + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "_yaml.pyx":572 + * if event.data.document_start.tag_directives.start != NULL: + * tags = {} + * tag_directive = event.data.document_start.tag_directives.start # <<<<<<<<<<<<<< + * while tag_directive != event.data.document_start.tag_directives.end: + * handle = PyUnicode_FromString(tag_directive.handle) + */ + __pyx_t_7 = __pyx_v_event->data.document_start.tag_directives.start; + __pyx_v_tag_directive = __pyx_t_7; + + /* "_yaml.pyx":573 + * tags = {} + * tag_directive = event.data.document_start.tag_directives.start + * while tag_directive != event.data.document_start.tag_directives.end: # <<<<<<<<<<<<<< + * handle = PyUnicode_FromString(tag_directive.handle) + * prefix = PyUnicode_FromString(tag_directive.prefix) + */ + while (1) { + __pyx_t_5 = ((__pyx_v_tag_directive != __pyx_v_event->data.document_start.tag_directives.end) != 0); + if (!__pyx_t_5) break; + + /* "_yaml.pyx":574 + * tag_directive = event.data.document_start.tag_directives.start + * while tag_directive != event.data.document_start.tag_directives.end: + * handle = PyUnicode_FromString(tag_directive.handle) # <<<<<<<<<<<<<< + * prefix = PyUnicode_FromString(tag_directive.prefix) + * tags[handle] = prefix + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_tag_directive->handle); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_handle, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":575 + * while tag_directive != event.data.document_start.tag_directives.end: + * handle = PyUnicode_FromString(tag_directive.handle) + * prefix = PyUnicode_FromString(tag_directive.prefix) # <<<<<<<<<<<<<< + * tags[handle] = prefix + * tag_directive = tag_directive+1 + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_tag_directive->prefix); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":576 + * handle = PyUnicode_FromString(tag_directive.handle) + * prefix = PyUnicode_FromString(tag_directive.prefix) + * tags[handle] = prefix # <<<<<<<<<<<<<< + * tag_directive = tag_directive+1 + * return DocumentStartEvent(start_mark, end_mark, + */ + if (unlikely(PyDict_SetItem(__pyx_v_tags, __pyx_v_handle, __pyx_v_prefix) < 0)) __PYX_ERR(0, 576, __pyx_L1_error) + + /* "_yaml.pyx":577 + * prefix = PyUnicode_FromString(tag_directive.prefix) + * tags[handle] = prefix + * tag_directive = tag_directive+1 # <<<<<<<<<<<<<< + * return DocumentStartEvent(start_mark, end_mark, + * explicit, version, tags) + */ + __pyx_v_tag_directive = (__pyx_v_tag_directive + 1); + } + + /* "_yaml.pyx":570 + * event.data.document_start.version_directive.minor) + * tags = None + * if event.data.document_start.tag_directives.start != NULL: # <<<<<<<<<<<<<< + * tags = {} + * tag_directive = event.data.document_start.tag_directives.start + */ + } + + /* "_yaml.pyx":578 + * tags[handle] = prefix + * tag_directive = tag_directive+1 + * return DocumentStartEvent(start_mark, end_mark, # <<<<<<<<<<<<<< + * explicit, version, tags) + * elif event.type == YAML_DOCUMENT_END_EVENT: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DocumentStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":579 + * tag_directive = tag_directive+1 + * return DocumentStartEvent(start_mark, end_mark, + * explicit, version, tags) # <<<<<<<<<<<<<< + * elif event.type == YAML_DOCUMENT_END_EVENT: + * explicit = False + */ + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_explicit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[6] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_t_2, __pyx_v_version, __pyx_v_tags}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[6] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_t_2, __pyx_v_version, __pyx_v_tags}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_t_2); + __Pyx_INCREF(__pyx_v_version); + __Pyx_GIVEREF(__pyx_v_version); + PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_6, __pyx_v_version); + __Pyx_INCREF(__pyx_v_tags); + __Pyx_GIVEREF(__pyx_v_tags); + PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_6, __pyx_v_tags); + __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":561 + * elif event.type == YAML_STREAM_END_EVENT: + * return StreamEndEvent(start_mark, end_mark) + * elif event.type == YAML_DOCUMENT_START_EVENT: # <<<<<<<<<<<<<< + * explicit = False + * if event.data.document_start.implicit == 0: + */ + break; + case YAML_DOCUMENT_END_EVENT: + + /* "_yaml.pyx":581 + * explicit, version, tags) + * elif event.type == YAML_DOCUMENT_END_EVENT: + * explicit = False # <<<<<<<<<<<<<< + * if event.data.document_end.implicit == 0: + * explicit = True + */ + __pyx_v_explicit = 0; + + /* "_yaml.pyx":582 + * elif event.type == YAML_DOCUMENT_END_EVENT: + * explicit = False + * if event.data.document_end.implicit == 0: # <<<<<<<<<<<<<< + * explicit = True + * return DocumentEndEvent(start_mark, end_mark, explicit) + */ + __pyx_t_5 = ((__pyx_v_event->data.document_end.implicit == 0) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":583 + * explicit = False + * if event.data.document_end.implicit == 0: + * explicit = True # <<<<<<<<<<<<<< + * return DocumentEndEvent(start_mark, end_mark, explicit) + * elif event.type == YAML_ALIAS_EVENT: + */ + __pyx_v_explicit = 1; + + /* "_yaml.pyx":582 + * elif event.type == YAML_DOCUMENT_END_EVENT: + * explicit = False + * if event.data.document_end.implicit == 0: # <<<<<<<<<<<<<< + * explicit = True + * return DocumentEndEvent(start_mark, end_mark, explicit) + */ + } + + /* "_yaml.pyx":584 + * if event.data.document_end.implicit == 0: + * explicit = True + * return DocumentEndEvent(start_mark, end_mark, explicit) # <<<<<<<<<<<<<< + * elif event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(event.data.alias.anchor) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DocumentEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_explicit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_2 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_2, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_t_8}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_2, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_t_8}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + { + __pyx_t_3 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_2) { + __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, __pyx_t_8); + __pyx_t_8 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":580 + * return DocumentStartEvent(start_mark, end_mark, + * explicit, version, tags) + * elif event.type == YAML_DOCUMENT_END_EVENT: # <<<<<<<<<<<<<< + * explicit = False + * if event.data.document_end.implicit == 0: + */ + break; + case YAML_ALIAS_EVENT: + + /* "_yaml.pyx":586 + * return DocumentEndEvent(start_mark, end_mark, explicit) + * elif event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(event.data.alias.anchor) # <<<<<<<<<<<<<< + * return AliasEvent(anchor, start_mark, end_mark) + * elif event.type == YAML_SCALAR_EVENT: + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.alias.anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":587 + * elif event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(event.data.alias.anchor) + * return AliasEvent(anchor, start_mark, end_mark) # <<<<<<<<<<<<<< + * elif event.type == YAML_SCALAR_EVENT: + * anchor = None + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AliasEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_anchor, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 587, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_anchor, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 587, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + { + __pyx_t_8 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_anchor); + __Pyx_GIVEREF(__pyx_v_anchor); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_anchor); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":585 + * explicit = True + * return DocumentEndEvent(start_mark, end_mark, explicit) + * elif event.type == YAML_ALIAS_EVENT: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.alias.anchor) + * return AliasEvent(anchor, start_mark, end_mark) + */ + break; + case YAML_SCALAR_EVENT: + + /* "_yaml.pyx":589 + * return AliasEvent(anchor, start_mark, end_mark) + * elif event.type == YAML_SCALAR_EVENT: + * anchor = None # <<<<<<<<<<<<<< + * if event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + */ + __Pyx_INCREF(Py_None); + __pyx_v_anchor = Py_None; + + /* "_yaml.pyx":590 + * elif event.type == YAML_SCALAR_EVENT: + * anchor = None + * if event.data.scalar.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + * tag = None + */ + __pyx_t_5 = ((__pyx_v_event->data.scalar.anchor != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":591 + * anchor = None + * if event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.scalar.anchor) # <<<<<<<<<<<<<< + * tag = None + * if event.data.scalar.tag != NULL: + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.scalar.anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":590 + * elif event.type == YAML_SCALAR_EVENT: + * anchor = None + * if event.data.scalar.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + * tag = None + */ + } + + /* "_yaml.pyx":592 + * if event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + * tag = None # <<<<<<<<<<<<<< + * if event.data.scalar.tag != NULL: + * tag = PyUnicode_FromString(event.data.scalar.tag) + */ + __Pyx_INCREF(Py_None); + __pyx_v_tag = Py_None; + + /* "_yaml.pyx":593 + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + * tag = None + * if event.data.scalar.tag != NULL: # <<<<<<<<<<<<<< + * tag = PyUnicode_FromString(event.data.scalar.tag) + * value = PyUnicode_DecodeUTF8(event.data.scalar.value, + */ + __pyx_t_5 = ((__pyx_v_event->data.scalar.tag != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":594 + * tag = None + * if event.data.scalar.tag != NULL: + * tag = PyUnicode_FromString(event.data.scalar.tag) # <<<<<<<<<<<<<< + * value = PyUnicode_DecodeUTF8(event.data.scalar.value, + * event.data.scalar.length, 'strict') + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.scalar.tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":593 + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + * tag = None + * if event.data.scalar.tag != NULL: # <<<<<<<<<<<<<< + * tag = PyUnicode_FromString(event.data.scalar.tag) + * value = PyUnicode_DecodeUTF8(event.data.scalar.value, + */ + } + + /* "_yaml.pyx":595 + * if event.data.scalar.tag != NULL: + * tag = PyUnicode_FromString(event.data.scalar.tag) + * value = PyUnicode_DecodeUTF8(event.data.scalar.value, # <<<<<<<<<<<<<< + * event.data.scalar.length, 'strict') + * plain_implicit = False + */ + __pyx_t_4 = PyUnicode_DecodeUTF8(__pyx_v_event->data.scalar.value, __pyx_v_event->data.scalar.length, ((char *)"strict")); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_value = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":597 + * value = PyUnicode_DecodeUTF8(event.data.scalar.value, + * event.data.scalar.length, 'strict') + * plain_implicit = False # <<<<<<<<<<<<<< + * if event.data.scalar.plain_implicit == 1: + * plain_implicit = True + */ + __pyx_v_plain_implicit = 0; + + /* "_yaml.pyx":598 + * event.data.scalar.length, 'strict') + * plain_implicit = False + * if event.data.scalar.plain_implicit == 1: # <<<<<<<<<<<<<< + * plain_implicit = True + * quoted_implicit = False + */ + __pyx_t_5 = ((__pyx_v_event->data.scalar.plain_implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":599 + * plain_implicit = False + * if event.data.scalar.plain_implicit == 1: + * plain_implicit = True # <<<<<<<<<<<<<< + * quoted_implicit = False + * if event.data.scalar.quoted_implicit == 1: + */ + __pyx_v_plain_implicit = 1; + + /* "_yaml.pyx":598 + * event.data.scalar.length, 'strict') + * plain_implicit = False + * if event.data.scalar.plain_implicit == 1: # <<<<<<<<<<<<<< + * plain_implicit = True + * quoted_implicit = False + */ + } + + /* "_yaml.pyx":600 + * if event.data.scalar.plain_implicit == 1: + * plain_implicit = True + * quoted_implicit = False # <<<<<<<<<<<<<< + * if event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True + */ + __pyx_v_quoted_implicit = 0; + + /* "_yaml.pyx":601 + * plain_implicit = True + * quoted_implicit = False + * if event.data.scalar.quoted_implicit == 1: # <<<<<<<<<<<<<< + * quoted_implicit = True + * style = None + */ + __pyx_t_5 = ((__pyx_v_event->data.scalar.quoted_implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":602 + * quoted_implicit = False + * if event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True # <<<<<<<<<<<<<< + * style = None + * if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + */ + __pyx_v_quoted_implicit = 1; + + /* "_yaml.pyx":601 + * plain_implicit = True + * quoted_implicit = False + * if event.data.scalar.quoted_implicit == 1: # <<<<<<<<<<<<<< + * quoted_implicit = True + * style = None + */ + } + + /* "_yaml.pyx":603 + * if event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True + * style = None # <<<<<<<<<<<<<< + * if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * style = u'' + */ + __Pyx_INCREF(Py_None); + __pyx_v_style = ((PyObject*)Py_None); + + /* "_yaml.pyx":604 + * quoted_implicit = True + * style = None + * if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'' + * elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + */ + switch (__pyx_v_event->data.scalar.style) { + case YAML_PLAIN_SCALAR_STYLE: + + /* "_yaml.pyx":605 + * style = None + * if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * style = u'' # <<<<<<<<<<<<<< + * elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' + */ + __Pyx_INCREF(__pyx_kp_u__6); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__6); + + /* "_yaml.pyx":604 + * quoted_implicit = True + * style = None + * if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'' + * elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + */ + break; + case YAML_SINGLE_QUOTED_SCALAR_STYLE: + + /* "_yaml.pyx":607 + * style = u'' + * elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' # <<<<<<<<<<<<<< + * elif event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' + */ + __Pyx_INCREF(__pyx_kp_u__7); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__7); + + /* "_yaml.pyx":606 + * if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * style = u'' + * elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'\'' + * elif event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + */ + break; + case YAML_DOUBLE_QUOTED_SCALAR_STYLE: + + /* "_yaml.pyx":609 + * style = u'\'' + * elif event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' # <<<<<<<<<<<<<< + * elif event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' + */ + __Pyx_INCREF(__pyx_kp_u__8); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__8); + + /* "_yaml.pyx":608 + * elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' + * elif event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'"' + * elif event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + */ + break; + case YAML_LITERAL_SCALAR_STYLE: + + /* "_yaml.pyx":611 + * style = u'"' + * elif event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' # <<<<<<<<<<<<<< + * elif event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' + */ + __Pyx_INCREF(__pyx_kp_u__9); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__9); + + /* "_yaml.pyx":610 + * elif event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' + * elif event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'|' + * elif event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + */ + break; + case YAML_FOLDED_SCALAR_STYLE: + + /* "_yaml.pyx":613 + * style = u'|' + * elif event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' # <<<<<<<<<<<<<< + * return ScalarEvent(anchor, tag, + * (plain_implicit, quoted_implicit), + */ + __Pyx_INCREF(__pyx_kp_u__10); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__10); + + /* "_yaml.pyx":612 + * elif event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' + * elif event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'>' + * return ScalarEvent(anchor, tag, + */ + break; + default: break; + } + + /* "_yaml.pyx":614 + * elif event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' + * return ScalarEvent(anchor, tag, # <<<<<<<<<<<<<< + * (plain_implicit, quoted_implicit), + * value, start_mark, end_mark, style) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ScalarEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":615 + * style = u'>' + * return ScalarEvent(anchor, tag, + * (plain_implicit, quoted_implicit), # <<<<<<<<<<<<<< + * value, start_mark, end_mark, style) + * elif event.type == YAML_SEQUENCE_START_EVENT: + */ + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_plain_implicit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_quoted_implicit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); + __pyx_t_8 = 0; + __pyx_t_3 = 0; + + /* "_yaml.pyx":616 + * return ScalarEvent(anchor, tag, + * (plain_implicit, quoted_implicit), + * value, start_mark, end_mark, style) # <<<<<<<<<<<<<< + * elif event.type == YAML_SEQUENCE_START_EVENT: + * anchor = None + */ + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_anchor, __pyx_v_tag, __pyx_t_2, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_anchor, __pyx_v_tag, __pyx_t_2, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_anchor); + __Pyx_GIVEREF(__pyx_v_anchor); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_anchor); + __Pyx_INCREF(__pyx_v_tag); + __Pyx_GIVEREF(__pyx_v_tag); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_tag); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_t_2); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_6, __pyx_v_value); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_style); + __Pyx_GIVEREF(__pyx_v_style); + PyTuple_SET_ITEM(__pyx_t_8, 6+__pyx_t_6, __pyx_v_style); + __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":588 + * anchor = PyUnicode_FromString(event.data.alias.anchor) + * return AliasEvent(anchor, start_mark, end_mark) + * elif event.type == YAML_SCALAR_EVENT: # <<<<<<<<<<<<<< + * anchor = None + * if event.data.scalar.anchor != NULL: + */ + break; + case YAML_SEQUENCE_START_EVENT: + + /* "_yaml.pyx":618 + * value, start_mark, end_mark, style) + * elif event.type == YAML_SEQUENCE_START_EVENT: + * anchor = None # <<<<<<<<<<<<<< + * if event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + */ + __Pyx_INCREF(Py_None); + __pyx_v_anchor = Py_None; + + /* "_yaml.pyx":619 + * elif event.type == YAML_SEQUENCE_START_EVENT: + * anchor = None + * if event.data.sequence_start.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + * tag = None + */ + __pyx_t_5 = ((__pyx_v_event->data.sequence_start.anchor != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":620 + * anchor = None + * if event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) # <<<<<<<<<<<<<< + * tag = None + * if event.data.sequence_start.tag != NULL: + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.sequence_start.anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":619 + * elif event.type == YAML_SEQUENCE_START_EVENT: + * anchor = None + * if event.data.sequence_start.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + * tag = None + */ + } + + /* "_yaml.pyx":621 + * if event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + * tag = None # <<<<<<<<<<<<<< + * if event.data.sequence_start.tag != NULL: + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + */ + __Pyx_INCREF(Py_None); + __pyx_v_tag = Py_None; + + /* "_yaml.pyx":622 + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + * tag = None + * if event.data.sequence_start.tag != NULL: # <<<<<<<<<<<<<< + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + * implicit = False + */ + __pyx_t_5 = ((__pyx_v_event->data.sequence_start.tag != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":623 + * tag = None + * if event.data.sequence_start.tag != NULL: + * tag = PyUnicode_FromString(event.data.sequence_start.tag) # <<<<<<<<<<<<<< + * implicit = False + * if event.data.sequence_start.implicit == 1: + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.sequence_start.tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":622 + * anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + * tag = None + * if event.data.sequence_start.tag != NULL: # <<<<<<<<<<<<<< + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + * implicit = False + */ + } + + /* "_yaml.pyx":624 + * if event.data.sequence_start.tag != NULL: + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + * implicit = False # <<<<<<<<<<<<<< + * if event.data.sequence_start.implicit == 1: + * implicit = True + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":625 + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + * implicit = False + * if event.data.sequence_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * flow_style = None + */ + __pyx_t_5 = ((__pyx_v_event->data.sequence_start.implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":626 + * implicit = False + * if event.data.sequence_start.implicit == 1: + * implicit = True # <<<<<<<<<<<<<< + * flow_style = None + * if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":625 + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + * implicit = False + * if event.data.sequence_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * flow_style = None + */ + } + + /* "_yaml.pyx":627 + * if event.data.sequence_start.implicit == 1: + * implicit = True + * flow_style = None # <<<<<<<<<<<<<< + * if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + * flow_style = True + */ + __Pyx_INCREF(Py_None); + __pyx_v_flow_style = Py_None; + + /* "_yaml.pyx":628 + * implicit = True + * flow_style = None + * if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + */ + switch (__pyx_v_event->data.sequence_start.style) { + case YAML_FLOW_SEQUENCE_STYLE: + + /* "_yaml.pyx":629 + * flow_style = None + * if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + * flow_style = True # <<<<<<<<<<<<<< + * elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + * flow_style = False + */ + __Pyx_INCREF(Py_True); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_True); + + /* "_yaml.pyx":628 + * implicit = True + * flow_style = None + * if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + */ + break; + case YAML_BLOCK_SEQUENCE_STYLE: + + /* "_yaml.pyx":631 + * flow_style = True + * elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + * flow_style = False # <<<<<<<<<<<<<< + * return SequenceStartEvent(anchor, tag, implicit, + * start_mark, end_mark, flow_style) + */ + __Pyx_INCREF(Py_False); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_False); + + /* "_yaml.pyx":630 + * if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + * flow_style = True + * elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: # <<<<<<<<<<<<<< + * flow_style = False + * return SequenceStartEvent(anchor, tag, implicit, + */ + break; + default: break; + } + + /* "_yaml.pyx":632 + * elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + * flow_style = False + * return SequenceStartEvent(anchor, tag, implicit, # <<<<<<<<<<<<<< + * start_mark, end_mark, flow_style) + * elif event.type == YAML_MAPPING_START_EVENT: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SequenceStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_implicit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "_yaml.pyx":633 + * flow_style = False + * return SequenceStartEvent(anchor, tag, implicit, + * start_mark, end_mark, flow_style) # <<<<<<<<<<<<<< + * elif event.type == YAML_MAPPING_START_EVENT: + * anchor = None + */ + __pyx_t_2 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_anchor, __pyx_v_tag, __pyx_t_8, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_flow_style}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 632, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_anchor, __pyx_v_tag, __pyx_t_8, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_flow_style}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 632, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + { + __pyx_t_3 = PyTuple_New(6+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_2) { + __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; + } + __Pyx_INCREF(__pyx_v_anchor); + __Pyx_GIVEREF(__pyx_v_anchor); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_anchor); + __Pyx_INCREF(__pyx_v_tag); + __Pyx_GIVEREF(__pyx_v_tag); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_v_tag); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, __pyx_t_8); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_flow_style); + __Pyx_GIVEREF(__pyx_v_flow_style); + PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_6, __pyx_v_flow_style); + __pyx_t_8 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":617 + * (plain_implicit, quoted_implicit), + * value, start_mark, end_mark, style) + * elif event.type == YAML_SEQUENCE_START_EVENT: # <<<<<<<<<<<<<< + * anchor = None + * if event.data.sequence_start.anchor != NULL: + */ + break; + case YAML_MAPPING_START_EVENT: + + /* "_yaml.pyx":635 + * start_mark, end_mark, flow_style) + * elif event.type == YAML_MAPPING_START_EVENT: + * anchor = None # <<<<<<<<<<<<<< + * if event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + */ + __Pyx_INCREF(Py_None); + __pyx_v_anchor = Py_None; + + /* "_yaml.pyx":636 + * elif event.type == YAML_MAPPING_START_EVENT: + * anchor = None + * if event.data.mapping_start.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + * tag = None + */ + __pyx_t_5 = ((__pyx_v_event->data.mapping_start.anchor != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":637 + * anchor = None + * if event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) # <<<<<<<<<<<<<< + * tag = None + * if event.data.mapping_start.tag != NULL: + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.mapping_start.anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":636 + * elif event.type == YAML_MAPPING_START_EVENT: + * anchor = None + * if event.data.mapping_start.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + * tag = None + */ + } + + /* "_yaml.pyx":638 + * if event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + * tag = None # <<<<<<<<<<<<<< + * if event.data.mapping_start.tag != NULL: + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + */ + __Pyx_INCREF(Py_None); + __pyx_v_tag = Py_None; + + /* "_yaml.pyx":639 + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + * tag = None + * if event.data.mapping_start.tag != NULL: # <<<<<<<<<<<<<< + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + * implicit = False + */ + __pyx_t_5 = ((__pyx_v_event->data.mapping_start.tag != NULL) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":640 + * tag = None + * if event.data.mapping_start.tag != NULL: + * tag = PyUnicode_FromString(event.data.mapping_start.tag) # <<<<<<<<<<<<<< + * implicit = False + * if event.data.mapping_start.implicit == 1: + */ + __pyx_t_4 = PyUnicode_FromString(__pyx_v_event->data.mapping_start.tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":639 + * anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + * tag = None + * if event.data.mapping_start.tag != NULL: # <<<<<<<<<<<<<< + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + * implicit = False + */ + } + + /* "_yaml.pyx":641 + * if event.data.mapping_start.tag != NULL: + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + * implicit = False # <<<<<<<<<<<<<< + * if event.data.mapping_start.implicit == 1: + * implicit = True + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":642 + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + * implicit = False + * if event.data.mapping_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * flow_style = None + */ + __pyx_t_5 = ((__pyx_v_event->data.mapping_start.implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":643 + * implicit = False + * if event.data.mapping_start.implicit == 1: + * implicit = True # <<<<<<<<<<<<<< + * flow_style = None + * if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":642 + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + * implicit = False + * if event.data.mapping_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * flow_style = None + */ + } + + /* "_yaml.pyx":644 + * if event.data.mapping_start.implicit == 1: + * implicit = True + * flow_style = None # <<<<<<<<<<<<<< + * if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + * flow_style = True + */ + __Pyx_INCREF(Py_None); + __pyx_v_flow_style = Py_None; + + /* "_yaml.pyx":645 + * implicit = True + * flow_style = None + * if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + */ + switch (__pyx_v_event->data.mapping_start.style) { + case YAML_FLOW_MAPPING_STYLE: + + /* "_yaml.pyx":646 + * flow_style = None + * if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + * flow_style = True # <<<<<<<<<<<<<< + * elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + * flow_style = False + */ + __Pyx_INCREF(Py_True); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_True); + + /* "_yaml.pyx":645 + * implicit = True + * flow_style = None + * if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + */ + break; + case YAML_BLOCK_MAPPING_STYLE: + + /* "_yaml.pyx":648 + * flow_style = True + * elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + * flow_style = False # <<<<<<<<<<<<<< + * return MappingStartEvent(anchor, tag, implicit, + * start_mark, end_mark, flow_style) + */ + __Pyx_INCREF(Py_False); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_False); + + /* "_yaml.pyx":647 + * if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + * flow_style = True + * elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: # <<<<<<<<<<<<<< + * flow_style = False + * return MappingStartEvent(anchor, tag, implicit, + */ + break; + default: break; + } + + /* "_yaml.pyx":649 + * elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + * flow_style = False + * return MappingStartEvent(anchor, tag, implicit, # <<<<<<<<<<<<<< + * start_mark, end_mark, flow_style) + * elif event.type == YAML_SEQUENCE_END_EVENT: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MappingStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_implicit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":650 + * flow_style = False + * return MappingStartEvent(anchor, tag, implicit, + * start_mark, end_mark, flow_style) # <<<<<<<<<<<<<< + * elif event.type == YAML_SEQUENCE_END_EVENT: + * return SequenceEndEvent(start_mark, end_mark) + */ + __pyx_t_8 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[7] = {__pyx_t_8, __pyx_v_anchor, __pyx_v_tag, __pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_flow_style}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[7] = {__pyx_t_8, __pyx_v_anchor, __pyx_v_tag, __pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_flow_style}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else + #endif + { + __pyx_t_2 = PyTuple_New(6+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_INCREF(__pyx_v_anchor); + __Pyx_GIVEREF(__pyx_v_anchor); + PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_anchor); + __Pyx_INCREF(__pyx_v_tag); + __Pyx_GIVEREF(__pyx_v_tag); + PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_tag); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_flow_style); + __Pyx_GIVEREF(__pyx_v_flow_style); + PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_6, __pyx_v_flow_style); + __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":634 + * return SequenceStartEvent(anchor, tag, implicit, + * start_mark, end_mark, flow_style) + * elif event.type == YAML_MAPPING_START_EVENT: # <<<<<<<<<<<<<< + * anchor = None + * if event.data.mapping_start.anchor != NULL: + */ + break; + case YAML_SEQUENCE_END_EVENT: + + /* "_yaml.pyx":652 + * start_mark, end_mark, flow_style) + * elif event.type == YAML_SEQUENCE_END_EVENT: + * return SequenceEndEvent(start_mark, end_mark) # <<<<<<<<<<<<<< + * elif event.type == YAML_MAPPING_END_EVENT: + * return MappingEndEvent(start_mark, end_mark) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SequenceEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_2) { + __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":651 + * return MappingStartEvent(anchor, tag, implicit, + * start_mark, end_mark, flow_style) + * elif event.type == YAML_SEQUENCE_END_EVENT: # <<<<<<<<<<<<<< + * return SequenceEndEvent(start_mark, end_mark) + * elif event.type == YAML_MAPPING_END_EVENT: + */ + break; + case YAML_MAPPING_END_EVENT: + + /* "_yaml.pyx":654 + * return SequenceEndEvent(start_mark, end_mark) + * elif event.type == YAML_MAPPING_END_EVENT: + * return MappingEndEvent(start_mark, end_mark) # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MappingEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 654, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 654, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + { + __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, ((PyObject *)__pyx_v_end_mark)); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":653 + * elif event.type == YAML_SEQUENCE_END_EVENT: + * return SequenceEndEvent(start_mark, end_mark) + * elif event.type == YAML_MAPPING_END_EVENT: # <<<<<<<<<<<<<< + * return MappingEndEvent(start_mark, end_mark) + * else: + */ + break; + default: + + /* "_yaml.pyx":656 + * return MappingEndEvent(start_mark, end_mark) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown event type") + * else: + */ + __pyx_t_5 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_5)) { + + /* "_yaml.pyx":657 + * else: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("unknown event type") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"unknown event type") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 657, __pyx_L1_error) + + /* "_yaml.pyx":656 + * return MappingEndEvent(start_mark, end_mark) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown event type") + * else: + */ + } + + /* "_yaml.pyx":659 + * raise ValueError("unknown event type") + * else: + * raise ValueError(u"unknown event type") # <<<<<<<<<<<<<< + * + * def get_event(self): + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 659, __pyx_L1_error) + } + break; + } + + /* "_yaml.pyx":535 + * return event_object + * + * cdef object _event_to_object(self, yaml_event_t *event): # <<<<<<<<<<<<<< + * cdef yaml_tag_directive_t *tag_directive + * start_mark = Mark(self.stream_name, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("_yaml.CParser._event_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_start_mark); + __Pyx_XDECREF((PyObject *)__pyx_v_end_mark); + __Pyx_XDECREF(__pyx_v_encoding); + __Pyx_XDECREF(__pyx_v_version); + __Pyx_XDECREF(__pyx_v_tags); + __Pyx_XDECREF(__pyx_v_handle); + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XDECREF(__pyx_v_anchor); + __Pyx_XDECREF(__pyx_v_tag); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_style); + __Pyx_XDECREF(__pyx_v_flow_style); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":661 + * raise ValueError(u"unknown event type") + * + * def get_event(self): # <<<<<<<<<<<<<< + * if self.current_event is not None: + * value = self.current_event + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_17get_event(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_17get_event(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_event (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_16get_event(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_16get_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("get_event", 0); + + /* "_yaml.pyx":662 + * + * def get_event(self): + * if self.current_event is not None: # <<<<<<<<<<<<<< + * value = self.current_event + * self.current_event = None + */ + __pyx_t_1 = (__pyx_v_self->current_event != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":663 + * def get_event(self): + * if self.current_event is not None: + * value = self.current_event # <<<<<<<<<<<<<< + * self.current_event = None + * else: + */ + __pyx_t_3 = __pyx_v_self->current_event; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_value = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":664 + * if self.current_event is not None: + * value = self.current_event + * self.current_event = None # <<<<<<<<<<<<<< + * else: + * value = self._parse() + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->current_event); + __Pyx_DECREF(__pyx_v_self->current_event); + __pyx_v_self->current_event = Py_None; + + /* "_yaml.pyx":662 + * + * def get_event(self): + * if self.current_event is not None: # <<<<<<<<<<<<<< + * value = self.current_event + * self.current_event = None + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":666 + * self.current_event = None + * else: + * value = self._parse() # <<<<<<<<<<<<<< + * return value + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_value = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "_yaml.pyx":667 + * else: + * value = self._parse() + * return value # <<<<<<<<<<<<<< + * + * def peek_event(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_value); + __pyx_r = __pyx_v_value; + goto __pyx_L0; + + /* "_yaml.pyx":661 + * raise ValueError(u"unknown event type") + * + * def get_event(self): # <<<<<<<<<<<<<< + * if self.current_event is not None: + * value = self.current_event + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.get_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":669 + * return value + * + * def peek_event(self): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_19peek_event(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_19peek_event(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek_event (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_18peek_event(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_18peek_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("peek_event", 0); + + /* "_yaml.pyx":670 + * + * def peek_event(self): + * if self.current_event is None: # <<<<<<<<<<<<<< + * self.current_event = self._parse() + * return self.current_event + */ + __pyx_t_1 = (__pyx_v_self->current_event == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":671 + * def peek_event(self): + * if self.current_event is None: + * self.current_event = self._parse() # <<<<<<<<<<<<<< + * return self.current_event + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->current_event); + __Pyx_DECREF(__pyx_v_self->current_event); + __pyx_v_self->current_event = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":670 + * + * def peek_event(self): + * if self.current_event is None: # <<<<<<<<<<<<<< + * self.current_event = self._parse() + * return self.current_event + */ + } + + /* "_yaml.pyx":672 + * if self.current_event is None: + * self.current_event = self._parse() + * return self.current_event # <<<<<<<<<<<<<< + * + * def check_event(self, *choices): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->current_event); + __pyx_r = __pyx_v_self->current_event; + goto __pyx_L0; + + /* "_yaml.pyx":669 + * return value + * + * def peek_event(self): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.peek_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":674 + * return self.current_event + * + * def check_event(self, *choices): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_21check_event(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_21check_event(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_choices = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("check_event (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "check_event", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_choices = __pyx_args; + __pyx_r = __pyx_pf_5_yaml_7CParser_20check_event(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self), __pyx_v_choices); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_choices); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_20check_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices) { + PyObject *__pyx_v_event_class = NULL; + PyObject *__pyx_v_choice = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + __Pyx_RefNannySetupContext("check_event", 0); + + /* "_yaml.pyx":675 + * + * def check_event(self, *choices): + * if self.current_event is None: # <<<<<<<<<<<<<< + * self.current_event = self._parse() + * if self.current_event is None: + */ + __pyx_t_1 = (__pyx_v_self->current_event == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":676 + * def check_event(self, *choices): + * if self.current_event is None: + * self.current_event = self._parse() # <<<<<<<<<<<<<< + * if self.current_event is None: + * return False + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->current_event); + __Pyx_DECREF(__pyx_v_self->current_event); + __pyx_v_self->current_event = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":675 + * + * def check_event(self, *choices): + * if self.current_event is None: # <<<<<<<<<<<<<< + * self.current_event = self._parse() + * if self.current_event is None: + */ + } + + /* "_yaml.pyx":677 + * if self.current_event is None: + * self.current_event = self._parse() + * if self.current_event is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + __pyx_t_2 = (__pyx_v_self->current_event == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":678 + * self.current_event = self._parse() + * if self.current_event is None: + * return False # <<<<<<<<<<<<<< + * if not choices: + * return True + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + goto __pyx_L0; + + /* "_yaml.pyx":677 + * if self.current_event is None: + * self.current_event = self._parse() + * if self.current_event is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + } + + /* "_yaml.pyx":679 + * if self.current_event is None: + * return False + * if not choices: # <<<<<<<<<<<<<< + * return True + * event_class = self.current_event.__class__ + */ + __pyx_t_1 = (PyTuple_GET_SIZE(__pyx_v_choices) != 0); + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":680 + * return False + * if not choices: + * return True # <<<<<<<<<<<<<< + * event_class = self.current_event.__class__ + * for choice in choices: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + goto __pyx_L0; + + /* "_yaml.pyx":679 + * if self.current_event is None: + * return False + * if not choices: # <<<<<<<<<<<<<< + * return True + * event_class = self.current_event.__class__ + */ + } + + /* "_yaml.pyx":681 + * if not choices: + * return True + * event_class = self.current_event.__class__ # <<<<<<<<<<<<<< + * for choice in choices: + * if event_class is choice: + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->current_event, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_event_class = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":682 + * return True + * event_class = self.current_event.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if event_class is choice: + * return True + */ + __pyx_t_3 = __pyx_v_choices; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 682, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_XDECREF_SET(__pyx_v_choice, __pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":683 + * event_class = self.current_event.__class__ + * for choice in choices: + * if event_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + __pyx_t_2 = (__pyx_v_event_class == __pyx_v_choice); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":684 + * for choice in choices: + * if event_class is choice: + * return True # <<<<<<<<<<<<<< + * return False + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":683 + * event_class = self.current_event.__class__ + * for choice in choices: + * if event_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "_yaml.pyx":682 + * return True + * event_class = self.current_event.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if event_class is choice: + * return True + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "_yaml.pyx":685 + * if event_class is choice: + * return True + * return False # <<<<<<<<<<<<<< + * + * def check_node(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + goto __pyx_L0; + + /* "_yaml.pyx":674 + * return self.current_event + * + * def check_event(self, *choices): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("_yaml.CParser.check_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_event_class); + __Pyx_XDECREF(__pyx_v_choice); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":687 + * return False + * + * def check_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_23check_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_23check_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("check_node (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_22check_node(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_22check_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + __Pyx_RefNannySetupContext("check_node", 0); + + /* "_yaml.pyx":688 + * + * def check_node(self): + * self._parse_next_event() # <<<<<<<<<<<<<< + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 688, __pyx_L1_error) + + /* "_yaml.pyx":689 + * def check_node(self): + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type == YAML_STREAM_START_EVENT) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":690 + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":691 + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() # <<<<<<<<<<<<<< + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * return True + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 691, __pyx_L1_error) + + /* "_yaml.pyx":689 + * def check_node(self): + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + */ + } + + /* "_yaml.pyx":692 + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return True + * return False + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type != YAML_STREAM_END_EVENT) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":693 + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * return True # <<<<<<<<<<<<<< + * return False + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + goto __pyx_L0; + + /* "_yaml.pyx":692 + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "_yaml.pyx":694 + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * return True + * return False # <<<<<<<<<<<<<< + * + * def get_node(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + goto __pyx_L0; + + /* "_yaml.pyx":687 + * return False + * + * def check_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("_yaml.CParser.check_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":696 + * return False + * + * def get_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_25get_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_25get_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_node (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_24get_node(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_24get_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("get_node", 0); + + /* "_yaml.pyx":697 + * + * def get_node(self): + * self._parse_next_event() # <<<<<<<<<<<<<< + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * return self._compose_document() + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 697, __pyx_L1_error) + + /* "_yaml.pyx":698 + * def get_node(self): + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return self._compose_document() + * + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type != YAML_STREAM_END_EVENT) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":699 + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * return self._compose_document() # <<<<<<<<<<<<<< + * + * def get_single_node(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_document(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":698 + * def get_node(self): + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return self._compose_document() + * + */ + } + + /* "_yaml.pyx":696 + * return False + * + * def get_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser.get_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":701 + * return self._compose_document() + * + * def get_single_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_27get_single_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_27get_single_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_single_node (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_26get_single_node(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_26get_single_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_document = NULL; + struct __pyx_obj_5_yaml_Mark *__pyx_v_mark = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + __Pyx_RefNannySetupContext("get_single_node", 0); + + /* "_yaml.pyx":702 + * + * def get_single_node(self): + * self._parse_next_event() # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 702, __pyx_L1_error) + + /* "_yaml.pyx":703 + * def get_single_node(self): + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * self._parse_next_event() + * document = None + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":704 + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() # <<<<<<<<<<<<<< + * document = None + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 704, __pyx_L1_error) + + /* "_yaml.pyx":705 + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + * document = None # <<<<<<<<<<<<<< + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * document = self._compose_document() + */ + __Pyx_INCREF(Py_None); + __pyx_v_document = Py_None; + + /* "_yaml.pyx":706 + * self._parse_next_event() + * document = None + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * document = self._compose_document() + * self._parse_next_event() + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type != YAML_STREAM_END_EVENT) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":707 + * document = None + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * document = self._compose_document() # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_document(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_document, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":706 + * self._parse_next_event() + * document = None + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * document = self._compose_document() + * self._parse_next_event() + */ + } + + /* "_yaml.pyx":708 + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * document = self._compose_document() + * self._parse_next_event() # <<<<<<<<<<<<<< + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * mark = Mark(self.stream_name, + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 708, __pyx_L1_error) + + /* "_yaml.pyx":709 + * document = self._compose_document() + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type != YAML_STREAM_END_EVENT) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":711 + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":712 + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.column, + * None, None) + */ + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":713 + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "_yaml.pyx":710 + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + * mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + */ + __pyx_t_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_6, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_6, 5, Py_None); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":715 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError("expected a single document in the stream", + * document.start_mark, "but found another document", mark) + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":716 + * None, None) + * if PY_MAJOR_VERSION < 3: + * raise ComposerError("expected a single document in the stream", # <<<<<<<<<<<<<< + * document.start_mark, "but found another document", mark) + * else: + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "_yaml.pyx":717 + * if PY_MAJOR_VERSION < 3: + * raise ComposerError("expected a single document in the stream", + * document.start_mark, "but found another document", mark) # <<<<<<<<<<<<<< + * else: + * raise ComposerError(u"expected a single document in the stream", + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_document, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_kp_s_expected_a_single_document_in_th, __pyx_t_4, __pyx_kp_s_but_found_another_document, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 716, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_kp_s_expected_a_single_document_in_th, __pyx_t_4, __pyx_kp_s_but_found_another_document, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 716, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_7 = PyTuple_New(4+__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_kp_s_expected_a_single_document_in_th); + __Pyx_GIVEREF(__pyx_kp_s_expected_a_single_document_in_th); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_1, __pyx_kp_s_expected_a_single_document_in_th); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_1, __pyx_t_4); + __Pyx_INCREF(__pyx_kp_s_but_found_another_document); + __Pyx_GIVEREF(__pyx_kp_s_but_found_another_document); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_1, __pyx_kp_s_but_found_another_document); + __Pyx_INCREF(((PyObject *)__pyx_v_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_mark)); + PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_1, ((PyObject *)__pyx_v_mark)); + __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 716, __pyx_L1_error) + + /* "_yaml.pyx":715 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError("expected a single document in the stream", + * document.start_mark, "but found another document", mark) + */ + } + + /* "_yaml.pyx":719 + * document.start_mark, "but found another document", mark) + * else: + * raise ComposerError(u"expected a single document in the stream", # <<<<<<<<<<<<<< + * document.start_mark, u"but found another document", mark) + * return document + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "_yaml.pyx":720 + * else: + * raise ComposerError(u"expected a single document in the stream", + * document.start_mark, u"but found another document", mark) # <<<<<<<<<<<<<< + * return document + * + */ + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_document, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_kp_u_expected_a_single_document_in_th, __pyx_t_7, __pyx_kp_u_but_found_another_document, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 719, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_kp_u_expected_a_single_document_in_th, __pyx_t_7, __pyx_kp_u_but_found_another_document, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 719, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_3 = PyTuple_New(4+__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(__pyx_kp_u_expected_a_single_document_in_th); + __Pyx_GIVEREF(__pyx_kp_u_expected_a_single_document_in_th); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_1, __pyx_kp_u_expected_a_single_document_in_th); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_1, __pyx_t_7); + __Pyx_INCREF(__pyx_kp_u_but_found_another_document); + __Pyx_GIVEREF(__pyx_kp_u_but_found_another_document); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_1, __pyx_kp_u_but_found_another_document); + __Pyx_INCREF(((PyObject *)__pyx_v_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_1, ((PyObject *)__pyx_v_mark)); + __pyx_t_7 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 719, __pyx_L1_error) + } + + /* "_yaml.pyx":709 + * document = self._compose_document() + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + } + + /* "_yaml.pyx":721 + * raise ComposerError(u"expected a single document in the stream", + * document.start_mark, u"but found another document", mark) + * return document # <<<<<<<<<<<<<< + * + * cdef object _compose_document(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_document); + __pyx_r = __pyx_v_document; + goto __pyx_L0; + + /* "_yaml.pyx":701 + * return self._compose_document() + * + * def get_single_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("_yaml.CParser.get_single_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_document); + __Pyx_XDECREF((PyObject *)__pyx_v_mark); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":723 + * return document + * + * cdef object _compose_document(self): # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * node = self._compose_node(None, None) + */ + +static PyObject *__pyx_f_5_yaml_7CParser__compose_document(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_node = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + __Pyx_RefNannySetupContext("_compose_document", 0); + + /* "_yaml.pyx":724 + * + * cdef object _compose_document(self): + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * node = self._compose_node(None, None) + * self._parse_next_event() + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":725 + * cdef object _compose_document(self): + * yaml_event_delete(&self.parsed_event) + * node = self._compose_node(None, None) # <<<<<<<<<<<<<< + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_node(__pyx_v_self, Py_None, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_node = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":726 + * yaml_event_delete(&self.parsed_event) + * node = self._compose_node(None, None) + * self._parse_next_event() # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * self.anchors = {} + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(0, 726, __pyx_L1_error) + + /* "_yaml.pyx":727 + * node = self._compose_node(None, None) + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * self.anchors = {} + * return node + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":728 + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + * self.anchors = {} # <<<<<<<<<<<<<< + * return node + * + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v_self->anchors); + __Pyx_DECREF(__pyx_v_self->anchors); + __pyx_v_self->anchors = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":729 + * yaml_event_delete(&self.parsed_event) + * self.anchors = {} + * return node # <<<<<<<<<<<<<< + * + * cdef object _compose_node(self, object parent, object index): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_node); + __pyx_r = __pyx_v_node; + goto __pyx_L0; + + /* "_yaml.pyx":723 + * return document + * + * cdef object _compose_document(self): # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * node = self._compose_node(None, None) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.CParser._compose_document", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_node); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":731 + * return node + * + * cdef object _compose_node(self, object parent, object index): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type == YAML_ALIAS_EVENT: + */ + +static PyObject *__pyx_f_5_yaml_7CParser__compose_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_index) { + PyObject *__pyx_v_anchor = NULL; + struct __pyx_obj_5_yaml_Mark *__pyx_v_mark = NULL; + PyObject *__pyx_v_node = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + __Pyx_RefNannySetupContext("_compose_node", 0); + + /* "_yaml.pyx":732 + * + * cdef object _compose_node(self, object parent, object index): + * self._parse_next_event() # <<<<<<<<<<<<<< + * if self.parsed_event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 732, __pyx_L1_error) + + /* "_yaml.pyx":733 + * cdef object _compose_node(self, object parent, object index): + * self._parse_next_event() + * if self.parsed_event.type == YAML_ALIAS_EVENT: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + * if anchor not in self.anchors: + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type == YAML_ALIAS_EVENT) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":734 + * self._parse_next_event() + * if self.parsed_event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) # <<<<<<<<<<<<<< + * if anchor not in self.anchors: + * mark = Mark(self.stream_name, + */ + __pyx_t_3 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.alias.anchor); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_anchor = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":735 + * if self.parsed_event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + * if anchor not in self.anchors: # <<<<<<<<<<<<<< + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_anchor, __pyx_v_self->anchors, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 735, __pyx_L1_error) + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + + /* "_yaml.pyx":737 + * if anchor not in self.anchors: + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":738 + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.column, + * None, None) + */ + __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "_yaml.pyx":739 + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "_yaml.pyx":736 + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + * if anchor not in self.anchors: + * mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + */ + __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_7, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_7, 5, Py_None); + __pyx_t_3 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "_yaml.pyx":741 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError(None, None, "found undefined alias", mark) + * else: + */ + __pyx_t_4 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_4)) { + + /* "_yaml.pyx":742 + * None, None) + * if PY_MAJOR_VERSION < 3: + * raise ComposerError(None, None, "found undefined alias", mark) # <<<<<<<<<<<<<< + * else: + * raise ComposerError(None, None, u"found undefined alias", mark) + */ + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[5] = {__pyx_t_5, Py_None, Py_None, __pyx_kp_s_found_undefined_alias, ((PyObject *)__pyx_v_mark)}; + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 742, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[5] = {__pyx_t_5, Py_None, Py_None, __pyx_kp_s_found_undefined_alias, ((PyObject *)__pyx_v_mark)}; + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 742, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else + #endif + { + __pyx_t_3 = PyTuple_New(4+__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_1, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_1, Py_None); + __Pyx_INCREF(__pyx_kp_s_found_undefined_alias); + __Pyx_GIVEREF(__pyx_kp_s_found_undefined_alias); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_1, __pyx_kp_s_found_undefined_alias); + __Pyx_INCREF(((PyObject *)__pyx_v_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_mark)); + PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_1, ((PyObject *)__pyx_v_mark)); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(0, 742, __pyx_L1_error) + + /* "_yaml.pyx":741 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError(None, None, "found undefined alias", mark) + * else: + */ + } + + /* "_yaml.pyx":744 + * raise ComposerError(None, None, "found undefined alias", mark) + * else: + * raise ComposerError(None, None, u"found undefined alias", mark) # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * return self.anchors[anchor] + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, Py_None, Py_None, __pyx_kp_u_found_undefined_alias, ((PyObject *)__pyx_v_mark)}; + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 744, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, Py_None, Py_None, __pyx_kp_u_found_undefined_alias, ((PyObject *)__pyx_v_mark)}; + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 744, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else + #endif + { + __pyx_t_5 = PyTuple_New(4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_1, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_1, Py_None); + __Pyx_INCREF(__pyx_kp_u_found_undefined_alias); + __Pyx_GIVEREF(__pyx_kp_u_found_undefined_alias); + PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_1, __pyx_kp_u_found_undefined_alias); + __Pyx_INCREF(((PyObject *)__pyx_v_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_mark)); + PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_1, ((PyObject *)__pyx_v_mark)); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(0, 744, __pyx_L1_error) + } + + /* "_yaml.pyx":735 + * if self.parsed_event.type == YAML_ALIAS_EVENT: + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + * if anchor not in self.anchors: # <<<<<<<<<<<<<< + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + } + + /* "_yaml.pyx":745 + * else: + * raise ComposerError(None, None, u"found undefined alias", mark) + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * return self.anchors[anchor] + * anchor = None + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":746 + * raise ComposerError(None, None, u"found undefined alias", mark) + * yaml_event_delete(&self.parsed_event) + * return self.anchors[anchor] # <<<<<<<<<<<<<< + * anchor = None + * if self.parsed_event.type == YAML_SCALAR_EVENT \ + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_anchor); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":733 + * cdef object _compose_node(self, object parent, object index): + * self._parse_next_event() + * if self.parsed_event.type == YAML_ALIAS_EVENT: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + * if anchor not in self.anchors: + */ + } + + /* "_yaml.pyx":747 + * yaml_event_delete(&self.parsed_event) + * return self.anchors[anchor] + * anchor = None # <<<<<<<<<<<<<< + * if self.parsed_event.type == YAML_SCALAR_EVENT \ + * and self.parsed_event.data.scalar.anchor != NULL: + */ + __Pyx_INCREF(Py_None); + __pyx_v_anchor = Py_None; + + /* "_yaml.pyx":748 + * return self.anchors[anchor] + * anchor = None + * if self.parsed_event.type == YAML_SCALAR_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type == YAML_SCALAR_EVENT) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_4 = __pyx_t_2; + goto __pyx_L7_bool_binop_done; + } + + /* "_yaml.pyx":749 + * anchor = None + * if self.parsed_event.type == YAML_SCALAR_EVENT \ + * and self.parsed_event.data.scalar.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.data.scalar.anchor != NULL) != 0); + __pyx_t_4 = __pyx_t_2; + __pyx_L7_bool_binop_done:; + + /* "_yaml.pyx":748 + * return self.anchors[anchor] + * anchor = None + * if self.parsed_event.type == YAML_SCALAR_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + */ + if (__pyx_t_4) { + + /* "_yaml.pyx":750 + * if self.parsed_event.type == YAML_SCALAR_EVENT \ + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) # <<<<<<<<<<<<<< + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ + * and self.parsed_event.data.sequence_start.anchor != NULL: + */ + __pyx_t_6 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.scalar.anchor); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_6); + __pyx_t_6 = 0; + + /* "_yaml.pyx":748 + * return self.anchors[anchor] + * anchor = None + * if self.parsed_event.type == YAML_SCALAR_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + */ + goto __pyx_L6; + } + + /* "_yaml.pyx":751 + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type == YAML_SEQUENCE_START_EVENT) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_4 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + + /* "_yaml.pyx":752 + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ + * and self.parsed_event.data.sequence_start.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.data.sequence_start.anchor != NULL) != 0); + __pyx_t_4 = __pyx_t_2; + __pyx_L9_bool_binop_done:; + + /* "_yaml.pyx":751 + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + */ + if (__pyx_t_4) { + + /* "_yaml.pyx":753 + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) # <<<<<<<<<<<<<< + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ + * and self.parsed_event.data.mapping_start.anchor != NULL: + */ + __pyx_t_6 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.sequence_start.anchor); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_6); + __pyx_t_6 = 0; + + /* "_yaml.pyx":751 + * and self.parsed_event.data.scalar.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + */ + goto __pyx_L6; + } + + /* "_yaml.pyx":754 + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.type == YAML_MAPPING_START_EVENT) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_4 = __pyx_t_2; + goto __pyx_L11_bool_binop_done; + } + + /* "_yaml.pyx":755 + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ + * and self.parsed_event.data.mapping_start.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + * if anchor is not None: + */ + __pyx_t_2 = ((__pyx_v_self->parsed_event.data.mapping_start.anchor != NULL) != 0); + __pyx_t_4 = __pyx_t_2; + __pyx_L11_bool_binop_done:; + + /* "_yaml.pyx":754 + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + */ + if (__pyx_t_4) { + + /* "_yaml.pyx":756 + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ + * and self.parsed_event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) # <<<<<<<<<<<<<< + * if anchor is not None: + * if anchor in self.anchors: + */ + __pyx_t_6 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.mapping_start.anchor); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_6); + __pyx_t_6 = 0; + + /* "_yaml.pyx":754 + * and self.parsed_event.data.sequence_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ # <<<<<<<<<<<<<< + * and self.parsed_event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + */ + } + __pyx_L6:; + + /* "_yaml.pyx":757 + * and self.parsed_event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + * if anchor is not None: # <<<<<<<<<<<<<< + * if anchor in self.anchors: + * mark = Mark(self.stream_name, + */ + __pyx_t_4 = (__pyx_v_anchor != Py_None); + __pyx_t_2 = (__pyx_t_4 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":758 + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + * if anchor is not None: + * if anchor in self.anchors: # <<<<<<<<<<<<<< + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_anchor, __pyx_v_self->anchors, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 758, __pyx_L1_error) + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + + /* "_yaml.pyx":760 + * if anchor in self.anchors: + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, + */ + __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "_yaml.pyx":761 + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.column, + * None, None) + */ + __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "_yaml.pyx":762 + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "_yaml.pyx":759 + * if anchor is not None: + * if anchor in self.anchors: + * mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + */ + __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_5); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 5, Py_None); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":764 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError("found duplicate anchor; first occurrence", + * self.anchors[anchor].start_mark, "second occurrence", mark) + */ + __pyx_t_4 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_4)) { + + /* "_yaml.pyx":765 + * None, None) + * if PY_MAJOR_VERSION < 3: + * raise ComposerError("found duplicate anchor; first occurrence", # <<<<<<<<<<<<<< + * self.anchors[anchor].start_mark, "second occurrence", mark) + * else: + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":766 + * if PY_MAJOR_VERSION < 3: + * raise ComposerError("found duplicate anchor; first occurrence", + * self.anchors[anchor].start_mark, "second occurrence", mark) # <<<<<<<<<<<<<< + * else: + * raise ComposerError(u"found duplicate anchor; first occurrence", + */ + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_anchor); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_kp_s_found_duplicate_anchor_first_occ, __pyx_t_6, __pyx_kp_s_second_occurrence, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_kp_s_found_duplicate_anchor_first_occ, __pyx_t_6, __pyx_kp_s_second_occurrence, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(4+__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_kp_s_found_duplicate_anchor_first_occ); + __Pyx_GIVEREF(__pyx_kp_s_found_duplicate_anchor_first_occ); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_1, __pyx_kp_s_found_duplicate_anchor_first_occ); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_1, __pyx_t_6); + __Pyx_INCREF(__pyx_kp_s_second_occurrence); + __Pyx_GIVEREF(__pyx_kp_s_second_occurrence); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_1, __pyx_kp_s_second_occurrence); + __Pyx_INCREF(((PyObject *)__pyx_v_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_1, ((PyObject *)__pyx_v_mark)); + __pyx_t_6 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 765, __pyx_L1_error) + + /* "_yaml.pyx":764 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError("found duplicate anchor; first occurrence", + * self.anchors[anchor].start_mark, "second occurrence", mark) + */ + } + + /* "_yaml.pyx":768 + * self.anchors[anchor].start_mark, "second occurrence", mark) + * else: + * raise ComposerError(u"found duplicate anchor; first occurrence", # <<<<<<<<<<<<<< + * self.anchors[anchor].start_mark, u"second occurrence", mark) + * self.descend_resolver(parent, index) + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":769 + * else: + * raise ComposerError(u"found duplicate anchor; first occurrence", + * self.anchors[anchor].start_mark, u"second occurrence", mark) # <<<<<<<<<<<<<< + * self.descend_resolver(parent, index) + * if self.parsed_event.type == YAML_SCALAR_EVENT: + */ + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_anchor); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_kp_u_found_duplicate_anchor_first_occ, __pyx_t_6, __pyx_kp_u_second_occurrence, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_kp_u_found_duplicate_anchor_first_occ, __pyx_t_6, __pyx_kp_u_second_occurrence, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 4+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_7 = PyTuple_New(4+__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_INCREF(__pyx_kp_u_found_duplicate_anchor_first_occ); + __Pyx_GIVEREF(__pyx_kp_u_found_duplicate_anchor_first_occ); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_1, __pyx_kp_u_found_duplicate_anchor_first_occ); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_1, __pyx_t_6); + __Pyx_INCREF(__pyx_kp_u_second_occurrence); + __Pyx_GIVEREF(__pyx_kp_u_second_occurrence); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_1, __pyx_kp_u_second_occurrence); + __Pyx_INCREF(((PyObject *)__pyx_v_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_mark)); + PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_1, ((PyObject *)__pyx_v_mark)); + __pyx_t_6 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 768, __pyx_L1_error) + } + + /* "_yaml.pyx":758 + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + * if anchor is not None: + * if anchor in self.anchors: # <<<<<<<<<<<<<< + * mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + } + + /* "_yaml.pyx":757 + * and self.parsed_event.data.mapping_start.anchor != NULL: + * anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + * if anchor is not None: # <<<<<<<<<<<<<< + * if anchor in self.anchors: + * mark = Mark(self.stream_name, + */ + } + + /* "_yaml.pyx":770 + * raise ComposerError(u"found duplicate anchor; first occurrence", + * self.anchors[anchor].start_mark, u"second occurrence", mark) + * self.descend_resolver(parent, index) # <<<<<<<<<<<<<< + * if self.parsed_event.type == YAML_SCALAR_EVENT: + * node = self._compose_scalar_node(anchor) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_descend_resolver); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = NULL; + __pyx_t_1 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_1 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_parent, __pyx_v_index}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_parent, __pyx_v_index}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + { + __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_v_parent); + __Pyx_GIVEREF(__pyx_v_parent); + PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_1, __pyx_v_parent); + __Pyx_INCREF(__pyx_v_index); + __Pyx_GIVEREF(__pyx_v_index); + PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_1, __pyx_v_index); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "_yaml.pyx":771 + * self.anchors[anchor].start_mark, u"second occurrence", mark) + * self.descend_resolver(parent, index) + * if self.parsed_event.type == YAML_SCALAR_EVENT: # <<<<<<<<<<<<<< + * node = self._compose_scalar_node(anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: + */ + switch (__pyx_v_self->parsed_event.type) { + case YAML_SCALAR_EVENT: + + /* "_yaml.pyx":772 + * self.descend_resolver(parent, index) + * if self.parsed_event.type == YAML_SCALAR_EVENT: + * node = self._compose_scalar_node(anchor) # <<<<<<<<<<<<<< + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: + * node = self._compose_sequence_node(anchor) + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_scalar_node(__pyx_v_self, __pyx_v_anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_node = __pyx_t_5; + __pyx_t_5 = 0; + + /* "_yaml.pyx":771 + * self.anchors[anchor].start_mark, u"second occurrence", mark) + * self.descend_resolver(parent, index) + * if self.parsed_event.type == YAML_SCALAR_EVENT: # <<<<<<<<<<<<<< + * node = self._compose_scalar_node(anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: + */ + break; + case YAML_SEQUENCE_START_EVENT: + + /* "_yaml.pyx":774 + * node = self._compose_scalar_node(anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: + * node = self._compose_sequence_node(anchor) # <<<<<<<<<<<<<< + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT: + * node = self._compose_mapping_node(anchor) + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_sequence_node(__pyx_v_self, __pyx_v_anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_node = __pyx_t_5; + __pyx_t_5 = 0; + + /* "_yaml.pyx":773 + * if self.parsed_event.type == YAML_SCALAR_EVENT: + * node = self._compose_scalar_node(anchor) + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: # <<<<<<<<<<<<<< + * node = self._compose_sequence_node(anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT: + */ + break; + case YAML_MAPPING_START_EVENT: + + /* "_yaml.pyx":776 + * node = self._compose_sequence_node(anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT: + * node = self._compose_mapping_node(anchor) # <<<<<<<<<<<<<< + * self.ascend_resolver() + * return node + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_mapping_node(__pyx_v_self, __pyx_v_anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_node = __pyx_t_5; + __pyx_t_5 = 0; + + /* "_yaml.pyx":775 + * elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: + * node = self._compose_sequence_node(anchor) + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT: # <<<<<<<<<<<<<< + * node = self._compose_mapping_node(anchor) + * self.ascend_resolver() + */ + break; + default: break; + } + + /* "_yaml.pyx":777 + * elif self.parsed_event.type == YAML_MAPPING_START_EVENT: + * node = self._compose_mapping_node(anchor) + * self.ascend_resolver() # <<<<<<<<<<<<<< + * return node + * + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ascend_resolver); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "_yaml.pyx":778 + * node = self._compose_mapping_node(anchor) + * self.ascend_resolver() + * return node # <<<<<<<<<<<<<< + * + * cdef _compose_scalar_node(self, object anchor): + */ + __Pyx_XDECREF(__pyx_r); + if (unlikely(!__pyx_v_node)) { __Pyx_RaiseUnboundLocalError("node"); __PYX_ERR(0, 778, __pyx_L1_error) } + __Pyx_INCREF(__pyx_v_node); + __pyx_r = __pyx_v_node; + goto __pyx_L0; + + /* "_yaml.pyx":731 + * return node + * + * cdef object _compose_node(self, object parent, object index): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type == YAML_ALIAS_EVENT: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("_yaml.CParser._compose_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_anchor); + __Pyx_XDECREF((PyObject *)__pyx_v_mark); + __Pyx_XDECREF(__pyx_v_node); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":780 + * return node + * + * cdef _compose_scalar_node(self, object anchor): # <<<<<<<<<<<<<< + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + +static PyObject *__pyx_f_5_yaml_7CParser__compose_scalar_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor) { + struct __pyx_obj_5_yaml_Mark *__pyx_v_start_mark = NULL; + struct __pyx_obj_5_yaml_Mark *__pyx_v_end_mark = NULL; + PyObject *__pyx_v_value = NULL; + int __pyx_v_plain_implicit; + int __pyx_v_quoted_implicit; + PyObject *__pyx_v_tag = NULL; + PyObject *__pyx_v_style = NULL; + PyObject *__pyx_v_node = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + __Pyx_RefNannySetupContext("_compose_scalar_node", 0); + + /* "_yaml.pyx":782 + * cdef _compose_scalar_node(self, object anchor): + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":783 + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.column, + * None, None) + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":784 + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * end_mark = Mark(self.stream_name, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":781 + * + * cdef _compose_scalar_node(self, object anchor): + * start_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + */ + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":787 + * None, None) + * end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.line, + * self.parsed_event.end_mark.column, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":788 + * end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.column, + * None, None) + */ + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":789 + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, + * self.parsed_event.end_mark.column, # <<<<<<<<<<<<<< + * None, None) + * value = PyUnicode_DecodeUTF8(self.parsed_event.data.scalar.value, + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.column); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":786 + * self.parsed_event.start_mark.column, + * None, None) + * end_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, + */ + __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 5, Py_None); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_end_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "_yaml.pyx":791 + * self.parsed_event.end_mark.column, + * None, None) + * value = PyUnicode_DecodeUTF8(self.parsed_event.data.scalar.value, # <<<<<<<<<<<<<< + * self.parsed_event.data.scalar.length, 'strict') + * plain_implicit = False + */ + __pyx_t_2 = PyUnicode_DecodeUTF8(__pyx_v_self->parsed_event.data.scalar.value, __pyx_v_self->parsed_event.data.scalar.length, ((char *)"strict")); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":793 + * value = PyUnicode_DecodeUTF8(self.parsed_event.data.scalar.value, + * self.parsed_event.data.scalar.length, 'strict') + * plain_implicit = False # <<<<<<<<<<<<<< + * if self.parsed_event.data.scalar.plain_implicit == 1: + * plain_implicit = True + */ + __pyx_v_plain_implicit = 0; + + /* "_yaml.pyx":794 + * self.parsed_event.data.scalar.length, 'strict') + * plain_implicit = False + * if self.parsed_event.data.scalar.plain_implicit == 1: # <<<<<<<<<<<<<< + * plain_implicit = True + * quoted_implicit = False + */ + __pyx_t_5 = ((__pyx_v_self->parsed_event.data.scalar.plain_implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":795 + * plain_implicit = False + * if self.parsed_event.data.scalar.plain_implicit == 1: + * plain_implicit = True # <<<<<<<<<<<<<< + * quoted_implicit = False + * if self.parsed_event.data.scalar.quoted_implicit == 1: + */ + __pyx_v_plain_implicit = 1; + + /* "_yaml.pyx":794 + * self.parsed_event.data.scalar.length, 'strict') + * plain_implicit = False + * if self.parsed_event.data.scalar.plain_implicit == 1: # <<<<<<<<<<<<<< + * plain_implicit = True + * quoted_implicit = False + */ + } + + /* "_yaml.pyx":796 + * if self.parsed_event.data.scalar.plain_implicit == 1: + * plain_implicit = True + * quoted_implicit = False # <<<<<<<<<<<<<< + * if self.parsed_event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True + */ + __pyx_v_quoted_implicit = 0; + + /* "_yaml.pyx":797 + * plain_implicit = True + * quoted_implicit = False + * if self.parsed_event.data.scalar.quoted_implicit == 1: # <<<<<<<<<<<<<< + * quoted_implicit = True + * if self.parsed_event.data.scalar.tag == NULL \ + */ + __pyx_t_5 = ((__pyx_v_self->parsed_event.data.scalar.quoted_implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":798 + * quoted_implicit = False + * if self.parsed_event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True # <<<<<<<<<<<<<< + * if self.parsed_event.data.scalar.tag == NULL \ + * or (self.parsed_event.data.scalar.tag[0] == c'!' + */ + __pyx_v_quoted_implicit = 1; + + /* "_yaml.pyx":797 + * plain_implicit = True + * quoted_implicit = False + * if self.parsed_event.data.scalar.quoted_implicit == 1: # <<<<<<<<<<<<<< + * quoted_implicit = True + * if self.parsed_event.data.scalar.tag == NULL \ + */ + } + + /* "_yaml.pyx":799 + * if self.parsed_event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True + * if self.parsed_event.data.scalar.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.scalar.tag[0] == c'!' + * and self.parsed_event.data.scalar.tag[1] == c'\0'): + */ + __pyx_t_6 = ((__pyx_v_self->parsed_event.data.scalar.tag == NULL) != 0); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L6_bool_binop_done; + } + + /* "_yaml.pyx":800 + * quoted_implicit = True + * if self.parsed_event.data.scalar.tag == NULL \ + * or (self.parsed_event.data.scalar.tag[0] == c'!' # <<<<<<<<<<<<<< + * and self.parsed_event.data.scalar.tag[1] == c'\0'): + * tag = self.resolve(ScalarNode, value, (plain_implicit, quoted_implicit)) + */ + __pyx_t_6 = (((__pyx_v_self->parsed_event.data.scalar.tag[0]) == '!') != 0); + if (__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L6_bool_binop_done; + } + + /* "_yaml.pyx":801 + * if self.parsed_event.data.scalar.tag == NULL \ + * or (self.parsed_event.data.scalar.tag[0] == c'!' + * and self.parsed_event.data.scalar.tag[1] == c'\0'): # <<<<<<<<<<<<<< + * tag = self.resolve(ScalarNode, value, (plain_implicit, quoted_implicit)) + * else: + */ + __pyx_t_6 = (((__pyx_v_self->parsed_event.data.scalar.tag[1]) == '\x00') != 0); + __pyx_t_5 = __pyx_t_6; + __pyx_L6_bool_binop_done:; + + /* "_yaml.pyx":799 + * if self.parsed_event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True + * if self.parsed_event.data.scalar.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.scalar.tag[0] == c'!' + * and self.parsed_event.data.scalar.tag[1] == c'\0'): + */ + if (__pyx_t_5) { + + /* "_yaml.pyx":802 + * or (self.parsed_event.data.scalar.tag[0] == c'!' + * and self.parsed_event.data.scalar.tag[1] == c'\0'): + * tag = self.resolve(ScalarNode, value, (plain_implicit, quoted_implicit)) # <<<<<<<<<<<<<< + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.scalar.tag) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_plain_implicit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_quoted_implicit); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __pyx_t_3 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_4, __pyx_v_value, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_4, __pyx_v_value, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + { + __pyx_t_3 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_9, __pyx_t_4); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_9, __pyx_v_value); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_9, __pyx_t_8); + __pyx_t_4 = 0; + __pyx_t_8 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tag = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":799 + * if self.parsed_event.data.scalar.quoted_implicit == 1: + * quoted_implicit = True + * if self.parsed_event.data.scalar.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.scalar.tag[0] == c'!' + * and self.parsed_event.data.scalar.tag[1] == c'\0'): + */ + goto __pyx_L5; + } + + /* "_yaml.pyx":804 + * tag = self.resolve(ScalarNode, value, (plain_implicit, quoted_implicit)) + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.scalar.tag) # <<<<<<<<<<<<<< + * style = None + * if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + */ + /*else*/ { + __pyx_t_2 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.scalar.tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_tag = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_L5:; + + /* "_yaml.pyx":805 + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.scalar.tag) + * style = None # <<<<<<<<<<<<<< + * if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * style = u'' + */ + __Pyx_INCREF(Py_None); + __pyx_v_style = ((PyObject*)Py_None); + + /* "_yaml.pyx":806 + * tag = PyUnicode_FromString(self.parsed_event.data.scalar.tag) + * style = None + * if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'' + * elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + */ + switch (__pyx_v_self->parsed_event.data.scalar.style) { + case YAML_PLAIN_SCALAR_STYLE: + + /* "_yaml.pyx":807 + * style = None + * if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * style = u'' # <<<<<<<<<<<<<< + * elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' + */ + __Pyx_INCREF(__pyx_kp_u__6); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__6); + + /* "_yaml.pyx":806 + * tag = PyUnicode_FromString(self.parsed_event.data.scalar.tag) + * style = None + * if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'' + * elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + */ + break; + case YAML_SINGLE_QUOTED_SCALAR_STYLE: + + /* "_yaml.pyx":809 + * style = u'' + * elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' # <<<<<<<<<<<<<< + * elif self.parsed_event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' + */ + __Pyx_INCREF(__pyx_kp_u__7); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__7); + + /* "_yaml.pyx":808 + * if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + * style = u'' + * elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'\'' + * elif self.parsed_event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + */ + break; + case YAML_DOUBLE_QUOTED_SCALAR_STYLE: + + /* "_yaml.pyx":811 + * style = u'\'' + * elif self.parsed_event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' # <<<<<<<<<<<<<< + * elif self.parsed_event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' + */ + __Pyx_INCREF(__pyx_kp_u__8); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__8); + + /* "_yaml.pyx":810 + * elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + * style = u'\'' + * elif self.parsed_event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'"' + * elif self.parsed_event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + */ + break; + case YAML_LITERAL_SCALAR_STYLE: + + /* "_yaml.pyx":813 + * style = u'"' + * elif self.parsed_event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' # <<<<<<<<<<<<<< + * elif self.parsed_event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' + */ + __Pyx_INCREF(__pyx_kp_u__9); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__9); + + /* "_yaml.pyx":812 + * elif self.parsed_event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + * style = u'"' + * elif self.parsed_event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'|' + * elif self.parsed_event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + */ + break; + case YAML_FOLDED_SCALAR_STYLE: + + /* "_yaml.pyx":815 + * style = u'|' + * elif self.parsed_event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' # <<<<<<<<<<<<<< + * node = ScalarNode(tag, value, start_mark, end_mark, style) + * if anchor is not None: + */ + __Pyx_INCREF(__pyx_kp_u__10); + __Pyx_DECREF_SET(__pyx_v_style, __pyx_kp_u__10); + + /* "_yaml.pyx":814 + * elif self.parsed_event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + * style = u'|' + * elif self.parsed_event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: # <<<<<<<<<<<<<< + * style = u'>' + * node = ScalarNode(tag, value, start_mark, end_mark, style) + */ + break; + default: break; + } + + /* "_yaml.pyx":816 + * elif self.parsed_event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + * style = u'>' + * node = ScalarNode(tag, value, start_mark, end_mark, style) # <<<<<<<<<<<<<< + * if anchor is not None: + * self.anchors[anchor] = node + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[6] = {__pyx_t_3, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[6] = {__pyx_t_3, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_8 = PyTuple_New(5+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_tag); + __Pyx_GIVEREF(__pyx_v_tag); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_v_tag); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_v_value); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(((PyObject *)__pyx_v_end_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_end_mark)); + PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, ((PyObject *)__pyx_v_end_mark)); + __Pyx_INCREF(__pyx_v_style); + __Pyx_GIVEREF(__pyx_v_style); + PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_9, __pyx_v_style); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_node = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":817 + * style = u'>' + * node = ScalarNode(tag, value, start_mark, end_mark, style) + * if anchor is not None: # <<<<<<<<<<<<<< + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_5 = (__pyx_v_anchor != Py_None); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "_yaml.pyx":818 + * node = ScalarNode(tag, value, start_mark, end_mark, style) + * if anchor is not None: + * self.anchors[anchor] = node # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * return node + */ + if (unlikely(PyObject_SetItem(__pyx_v_self->anchors, __pyx_v_anchor, __pyx_v_node) < 0)) __PYX_ERR(0, 818, __pyx_L1_error) + + /* "_yaml.pyx":817 + * style = u'>' + * node = ScalarNode(tag, value, start_mark, end_mark, style) + * if anchor is not None: # <<<<<<<<<<<<<< + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + */ + } + + /* "_yaml.pyx":819 + * if anchor is not None: + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * return node + * + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":820 + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + * return node # <<<<<<<<<<<<<< + * + * cdef _compose_sequence_node(self, object anchor): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_node); + __pyx_r = __pyx_v_node; + goto __pyx_L0; + + /* "_yaml.pyx":780 + * return node + * + * cdef _compose_scalar_node(self, object anchor): # <<<<<<<<<<<<<< + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("_yaml.CParser._compose_scalar_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_start_mark); + __Pyx_XDECREF((PyObject *)__pyx_v_end_mark); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_tag); + __Pyx_XDECREF(__pyx_v_style); + __Pyx_XDECREF(__pyx_v_node); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":822 + * return node + * + * cdef _compose_sequence_node(self, object anchor): # <<<<<<<<<<<<<< + * cdef int index + * start_mark = Mark(self.stream_name, + */ + +static PyObject *__pyx_f_5_yaml_7CParser__compose_sequence_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor) { + int __pyx_v_index; + struct __pyx_obj_5_yaml_Mark *__pyx_v_start_mark = NULL; + int __pyx_v_implicit; + PyObject *__pyx_v_tag = NULL; + PyObject *__pyx_v_flow_style = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_node = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + __Pyx_RefNannySetupContext("_compose_sequence_node", 0); + + /* "_yaml.pyx":825 + * cdef int index + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":826 + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.column, + * None, None) + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":827 + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * implicit = False + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":824 + * cdef _compose_sequence_node(self, object anchor): + * cdef int index + * start_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + */ + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":829 + * self.parsed_event.start_mark.column, + * None, None) + * implicit = False # <<<<<<<<<<<<<< + * if self.parsed_event.data.sequence_start.implicit == 1: + * implicit = True + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":830 + * None, None) + * implicit = False + * if self.parsed_event.data.sequence_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ + */ + __pyx_t_5 = ((__pyx_v_self->parsed_event.data.sequence_start.implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":831 + * implicit = False + * if self.parsed_event.data.sequence_start.implicit == 1: + * implicit = True # <<<<<<<<<<<<<< + * if self.parsed_event.data.sequence_start.tag == NULL \ + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":830 + * None, None) + * implicit = False + * if self.parsed_event.data.sequence_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ + */ + } + + /* "_yaml.pyx":832 + * if self.parsed_event.data.sequence_start.implicit == 1: + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' + * and self.parsed_event.data.sequence_start.tag[1] == c'\0'): + */ + __pyx_t_6 = ((__pyx_v_self->parsed_event.data.sequence_start.tag == NULL) != 0); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "_yaml.pyx":833 + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' # <<<<<<<<<<<<<< + * and self.parsed_event.data.sequence_start.tag[1] == c'\0'): + * tag = self.resolve(SequenceNode, None, implicit) + */ + __pyx_t_6 = (((__pyx_v_self->parsed_event.data.sequence_start.tag[0]) == '!') != 0); + if (__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "_yaml.pyx":834 + * if self.parsed_event.data.sequence_start.tag == NULL \ + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' + * and self.parsed_event.data.sequence_start.tag[1] == c'\0'): # <<<<<<<<<<<<<< + * tag = self.resolve(SequenceNode, None, implicit) + * else: + */ + __pyx_t_6 = (((__pyx_v_self->parsed_event.data.sequence_start.tag[1]) == '\x00') != 0); + __pyx_t_5 = __pyx_t_6; + __pyx_L5_bool_binop_done:; + + /* "_yaml.pyx":832 + * if self.parsed_event.data.sequence_start.implicit == 1: + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' + * and self.parsed_event.data.sequence_start.tag[1] == c'\0'): + */ + if (__pyx_t_5) { + + /* "_yaml.pyx":835 + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' + * and self.parsed_event.data.sequence_start.tag[1] == c'\0'): + * tag = self.resolve(SequenceNode, None, implicit) # <<<<<<<<<<<<<< + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.sequence_start.tag) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_implicit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_2, Py_None, __pyx_t_1}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_2, Py_None, __pyx_t_1}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_2); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, Py_None); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_1); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":832 + * if self.parsed_event.data.sequence_start.implicit == 1: + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.sequence_start.tag[0] == c'!' + * and self.parsed_event.data.sequence_start.tag[1] == c'\0'): + */ + goto __pyx_L4; + } + + /* "_yaml.pyx":837 + * tag = self.resolve(SequenceNode, None, implicit) + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.sequence_start.tag) # <<<<<<<<<<<<<< + * flow_style = None + * if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + */ + /*else*/ { + __pyx_t_3 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.sequence_start.tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L4:; + + /* "_yaml.pyx":838 + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.sequence_start.tag) + * flow_style = None # <<<<<<<<<<<<<< + * if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + * flow_style = True + */ + __Pyx_INCREF(Py_None); + __pyx_v_flow_style = Py_None; + + /* "_yaml.pyx":839 + * tag = PyUnicode_FromString(self.parsed_event.data.sequence_start.tag) + * flow_style = None + * if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + */ + switch (__pyx_v_self->parsed_event.data.sequence_start.style) { + case YAML_FLOW_SEQUENCE_STYLE: + + /* "_yaml.pyx":840 + * flow_style = None + * if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + * flow_style = True # <<<<<<<<<<<<<< + * elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + * flow_style = False + */ + __Pyx_INCREF(Py_True); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_True); + + /* "_yaml.pyx":839 + * tag = PyUnicode_FromString(self.parsed_event.data.sequence_start.tag) + * flow_style = None + * if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + */ + break; + case YAML_BLOCK_SEQUENCE_STYLE: + + /* "_yaml.pyx":842 + * flow_style = True + * elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + * flow_style = False # <<<<<<<<<<<<<< + * value = [] + * node = SequenceNode(tag, value, start_mark, None, flow_style) + */ + __Pyx_INCREF(Py_False); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_False); + + /* "_yaml.pyx":841 + * if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + * flow_style = True + * elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: # <<<<<<<<<<<<<< + * flow_style = False + * value = [] + */ + break; + default: break; + } + + /* "_yaml.pyx":843 + * elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + * flow_style = False + * value = [] # <<<<<<<<<<<<<< + * node = SequenceNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_value = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":844 + * flow_style = False + * value = [] + * node = SequenceNode(tag, value, start_mark, None, flow_style) # <<<<<<<<<<<<<< + * if anchor is not None: + * self.anchors[anchor] = node + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), Py_None, __pyx_v_flow_style}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 844, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), Py_None, __pyx_v_flow_style}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 844, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_1 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_INCREF(__pyx_v_tag); + __Pyx_GIVEREF(__pyx_v_tag); + PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_tag); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_value); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_8, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_8, Py_None); + __Pyx_INCREF(__pyx_v_flow_style); + __Pyx_GIVEREF(__pyx_v_flow_style); + PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_8, __pyx_v_flow_style); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_node = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":845 + * value = [] + * node = SequenceNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: # <<<<<<<<<<<<<< + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_5 = (__pyx_v_anchor != Py_None); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "_yaml.pyx":846 + * node = SequenceNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: + * self.anchors[anchor] = node # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * index = 0 + */ + if (unlikely(PyObject_SetItem(__pyx_v_self->anchors, __pyx_v_anchor, __pyx_v_node) < 0)) __PYX_ERR(0, 846, __pyx_L1_error) + + /* "_yaml.pyx":845 + * value = [] + * node = SequenceNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: # <<<<<<<<<<<<<< + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + */ + } + + /* "_yaml.pyx":847 + * if anchor is not None: + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * index = 0 + * self._parse_next_event() + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":848 + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + * index = 0 # <<<<<<<<<<<<<< + * self._parse_next_event() + * while self.parsed_event.type != YAML_SEQUENCE_END_EVENT: + */ + __pyx_v_index = 0; + + /* "_yaml.pyx":849 + * yaml_event_delete(&self.parsed_event) + * index = 0 + * self._parse_next_event() # <<<<<<<<<<<<<< + * while self.parsed_event.type != YAML_SEQUENCE_END_EVENT: + * value.append(self._compose_node(node, index)) + */ + __pyx_t_8 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 849, __pyx_L1_error) + + /* "_yaml.pyx":850 + * index = 0 + * self._parse_next_event() + * while self.parsed_event.type != YAML_SEQUENCE_END_EVENT: # <<<<<<<<<<<<<< + * value.append(self._compose_node(node, index)) + * index = index+1 + */ + while (1) { + __pyx_t_6 = ((__pyx_v_self->parsed_event.type != YAML_SEQUENCE_END_EVENT) != 0); + if (!__pyx_t_6) break; + + /* "_yaml.pyx":851 + * self._parse_next_event() + * while self.parsed_event.type != YAML_SEQUENCE_END_EVENT: + * value.append(self._compose_node(node, index)) # <<<<<<<<<<<<<< + * index = index+1 + * self._parse_next_event() + */ + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_node(__pyx_v_self, __pyx_v_node, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_value, __pyx_t_4); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 851, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "_yaml.pyx":852 + * while self.parsed_event.type != YAML_SEQUENCE_END_EVENT: + * value.append(self._compose_node(node, index)) + * index = index+1 # <<<<<<<<<<<<<< + * self._parse_next_event() + * node.end_mark = Mark(self.stream_name, + */ + __pyx_v_index = (__pyx_v_index + 1); + + /* "_yaml.pyx":853 + * value.append(self._compose_node(node, index)) + * index = index+1 + * self._parse_next_event() # <<<<<<<<<<<<<< + * node.end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, + */ + __pyx_t_8 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 853, __pyx_L1_error) + } + + /* "_yaml.pyx":855 + * self._parse_next_event() + * node.end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.line, + * self.parsed_event.end_mark.column, + */ + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":856 + * node.end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.column, + * None, None) + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":857 + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, + * self.parsed_event.end_mark.column, # <<<<<<<<<<<<<< + * None, None) + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.column); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":854 + * index = index+1 + * self._parse_next_event() + * node.end_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, + */ + __pyx_t_9 = PyTuple_New(6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_1); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_9, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_9, 5, Py_None); + __pyx_t_4 = 0; + __pyx_t_3 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_end_mark, __pyx_t_1) < 0) __PYX_ERR(0, 854, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":859 + * self.parsed_event.end_mark.column, + * None, None) + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * return node + * + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":860 + * None, None) + * yaml_event_delete(&self.parsed_event) + * return node # <<<<<<<<<<<<<< + * + * cdef _compose_mapping_node(self, object anchor): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_node); + __pyx_r = __pyx_v_node; + goto __pyx_L0; + + /* "_yaml.pyx":822 + * return node + * + * cdef _compose_sequence_node(self, object anchor): # <<<<<<<<<<<<<< + * cdef int index + * start_mark = Mark(self.stream_name, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("_yaml.CParser._compose_sequence_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_start_mark); + __Pyx_XDECREF(__pyx_v_tag); + __Pyx_XDECREF(__pyx_v_flow_style); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_node); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":862 + * return node + * + * cdef _compose_mapping_node(self, object anchor): # <<<<<<<<<<<<<< + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + +static PyObject *__pyx_f_5_yaml_7CParser__compose_mapping_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor) { + struct __pyx_obj_5_yaml_Mark *__pyx_v_start_mark = NULL; + int __pyx_v_implicit; + PyObject *__pyx_v_tag = NULL; + PyObject *__pyx_v_flow_style = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_node = NULL; + PyObject *__pyx_v_item_key = NULL; + PyObject *__pyx_v_item_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + __Pyx_RefNannySetupContext("_compose_mapping_node", 0); + + /* "_yaml.pyx":864 + * cdef _compose_mapping_node(self, object anchor): + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":865 + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.column, + * None, None) + */ + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "_yaml.pyx":866 + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + * self.parsed_event.start_mark.column, # <<<<<<<<<<<<<< + * None, None) + * implicit = False + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":863 + * + * cdef _compose_mapping_node(self, object anchor): + * start_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.start_mark.index, + * self.parsed_event.start_mark.line, + */ + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_5_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":868 + * self.parsed_event.start_mark.column, + * None, None) + * implicit = False # <<<<<<<<<<<<<< + * if self.parsed_event.data.mapping_start.implicit == 1: + * implicit = True + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":869 + * None, None) + * implicit = False + * if self.parsed_event.data.mapping_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ + */ + __pyx_t_5 = ((__pyx_v_self->parsed_event.data.mapping_start.implicit == 1) != 0); + if (__pyx_t_5) { + + /* "_yaml.pyx":870 + * implicit = False + * if self.parsed_event.data.mapping_start.implicit == 1: + * implicit = True # <<<<<<<<<<<<<< + * if self.parsed_event.data.mapping_start.tag == NULL \ + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":869 + * None, None) + * implicit = False + * if self.parsed_event.data.mapping_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ + */ + } + + /* "_yaml.pyx":871 + * if self.parsed_event.data.mapping_start.implicit == 1: + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' + * and self.parsed_event.data.mapping_start.tag[1] == c'\0'): + */ + __pyx_t_6 = ((__pyx_v_self->parsed_event.data.mapping_start.tag == NULL) != 0); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "_yaml.pyx":872 + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' # <<<<<<<<<<<<<< + * and self.parsed_event.data.mapping_start.tag[1] == c'\0'): + * tag = self.resolve(MappingNode, None, implicit) + */ + __pyx_t_6 = (((__pyx_v_self->parsed_event.data.mapping_start.tag[0]) == '!') != 0); + if (__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "_yaml.pyx":873 + * if self.parsed_event.data.mapping_start.tag == NULL \ + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' + * and self.parsed_event.data.mapping_start.tag[1] == c'\0'): # <<<<<<<<<<<<<< + * tag = self.resolve(MappingNode, None, implicit) + * else: + */ + __pyx_t_6 = (((__pyx_v_self->parsed_event.data.mapping_start.tag[1]) == '\x00') != 0); + __pyx_t_5 = __pyx_t_6; + __pyx_L5_bool_binop_done:; + + /* "_yaml.pyx":871 + * if self.parsed_event.data.mapping_start.implicit == 1: + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' + * and self.parsed_event.data.mapping_start.tag[1] == c'\0'): + */ + if (__pyx_t_5) { + + /* "_yaml.pyx":874 + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' + * and self.parsed_event.data.mapping_start.tag[1] == c'\0'): + * tag = self.resolve(MappingNode, None, implicit) # <<<<<<<<<<<<<< + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.mapping_start.tag) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_implicit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_2, Py_None, __pyx_t_1}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_2, Py_None, __pyx_t_1}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_2); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, Py_None); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_1); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":871 + * if self.parsed_event.data.mapping_start.implicit == 1: + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ # <<<<<<<<<<<<<< + * or (self.parsed_event.data.mapping_start.tag[0] == c'!' + * and self.parsed_event.data.mapping_start.tag[1] == c'\0'): + */ + goto __pyx_L4; + } + + /* "_yaml.pyx":876 + * tag = self.resolve(MappingNode, None, implicit) + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.mapping_start.tag) # <<<<<<<<<<<<<< + * flow_style = None + * if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + */ + /*else*/ { + __pyx_t_3 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.mapping_start.tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L4:; + + /* "_yaml.pyx":877 + * else: + * tag = PyUnicode_FromString(self.parsed_event.data.mapping_start.tag) + * flow_style = None # <<<<<<<<<<<<<< + * if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + * flow_style = True + */ + __Pyx_INCREF(Py_None); + __pyx_v_flow_style = Py_None; + + /* "_yaml.pyx":878 + * tag = PyUnicode_FromString(self.parsed_event.data.mapping_start.tag) + * flow_style = None + * if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + */ + switch (__pyx_v_self->parsed_event.data.mapping_start.style) { + case YAML_FLOW_MAPPING_STYLE: + + /* "_yaml.pyx":879 + * flow_style = None + * if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + * flow_style = True # <<<<<<<<<<<<<< + * elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + * flow_style = False + */ + __Pyx_INCREF(Py_True); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_True); + + /* "_yaml.pyx":878 + * tag = PyUnicode_FromString(self.parsed_event.data.mapping_start.tag) + * flow_style = None + * if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: # <<<<<<<<<<<<<< + * flow_style = True + * elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + */ + break; + case YAML_BLOCK_MAPPING_STYLE: + + /* "_yaml.pyx":881 + * flow_style = True + * elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + * flow_style = False # <<<<<<<<<<<<<< + * value = [] + * node = MappingNode(tag, value, start_mark, None, flow_style) + */ + __Pyx_INCREF(Py_False); + __Pyx_DECREF_SET(__pyx_v_flow_style, Py_False); + + /* "_yaml.pyx":880 + * if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + * flow_style = True + * elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: # <<<<<<<<<<<<<< + * flow_style = False + * value = [] + */ + break; + default: break; + } + + /* "_yaml.pyx":882 + * elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + * flow_style = False + * value = [] # <<<<<<<<<<<<<< + * node = MappingNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_value = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":883 + * flow_style = False + * value = [] + * node = MappingNode(tag, value, start_mark, None, flow_style) # <<<<<<<<<<<<<< + * if anchor is not None: + * self.anchors[anchor] = node + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), Py_None, __pyx_v_flow_style}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 883, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), Py_None, __pyx_v_flow_style}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 883, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_1 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_INCREF(__pyx_v_tag); + __Pyx_GIVEREF(__pyx_v_tag); + PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_tag); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_value); + __Pyx_INCREF(((PyObject *)__pyx_v_start_mark)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_start_mark)); + PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_8, ((PyObject *)__pyx_v_start_mark)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_8, Py_None); + __Pyx_INCREF(__pyx_v_flow_style); + __Pyx_GIVEREF(__pyx_v_flow_style); + PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_8, __pyx_v_flow_style); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_node = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":884 + * value = [] + * node = MappingNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: # <<<<<<<<<<<<<< + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_5 = (__pyx_v_anchor != Py_None); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "_yaml.pyx":885 + * node = MappingNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: + * self.anchors[anchor] = node # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + */ + if (unlikely(PyObject_SetItem(__pyx_v_self->anchors, __pyx_v_anchor, __pyx_v_node) < 0)) __PYX_ERR(0, 885, __pyx_L1_error) + + /* "_yaml.pyx":884 + * value = [] + * node = MappingNode(tag, value, start_mark, None, flow_style) + * if anchor is not None: # <<<<<<<<<<<<<< + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + */ + } + + /* "_yaml.pyx":886 + * if anchor is not None: + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * self._parse_next_event() + * while self.parsed_event.type != YAML_MAPPING_END_EVENT: + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":887 + * self.anchors[anchor] = node + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() # <<<<<<<<<<<<<< + * while self.parsed_event.type != YAML_MAPPING_END_EVENT: + * item_key = self._compose_node(node, None) + */ + __pyx_t_8 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 887, __pyx_L1_error) + + /* "_yaml.pyx":888 + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + * while self.parsed_event.type != YAML_MAPPING_END_EVENT: # <<<<<<<<<<<<<< + * item_key = self._compose_node(node, None) + * item_value = self._compose_node(node, item_key) + */ + while (1) { + __pyx_t_6 = ((__pyx_v_self->parsed_event.type != YAML_MAPPING_END_EVENT) != 0); + if (!__pyx_t_6) break; + + /* "_yaml.pyx":889 + * self._parse_next_event() + * while self.parsed_event.type != YAML_MAPPING_END_EVENT: + * item_key = self._compose_node(node, None) # <<<<<<<<<<<<<< + * item_value = self._compose_node(node, item_key) + * value.append((item_key, item_value)) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_node(__pyx_v_self, __pyx_v_node, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_item_key, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":890 + * while self.parsed_event.type != YAML_MAPPING_END_EVENT: + * item_key = self._compose_node(node, None) + * item_value = self._compose_node(node, item_key) # <<<<<<<<<<<<<< + * value.append((item_key, item_value)) + * self._parse_next_event() + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_node(__pyx_v_self, __pyx_v_node, __pyx_v_item_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_item_value, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":891 + * item_key = self._compose_node(node, None) + * item_value = self._compose_node(node, item_key) + * value.append((item_key, item_value)) # <<<<<<<<<<<<<< + * self._parse_next_event() + * node.end_mark = Mark(self.stream_name, + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_item_key); + __Pyx_GIVEREF(__pyx_v_item_key); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_item_key); + __Pyx_INCREF(__pyx_v_item_value); + __Pyx_GIVEREF(__pyx_v_item_value); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_item_value); + __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_value, __pyx_t_3); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 891, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "_yaml.pyx":892 + * item_value = self._compose_node(node, item_key) + * value.append((item_key, item_value)) + * self._parse_next_event() # <<<<<<<<<<<<<< + * node.end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, + */ + __pyx_t_8 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 892, __pyx_L1_error) + } + + /* "_yaml.pyx":894 + * self._parse_next_event() + * node.end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.line, + * self.parsed_event.end_mark.column, + */ + __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "_yaml.pyx":895 + * node.end_mark = Mark(self.stream_name, + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.column, + * None, None) + */ + __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "_yaml.pyx":896 + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, + * self.parsed_event.end_mark.column, # <<<<<<<<<<<<<< + * None, None) + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->parsed_event.end_mark.column); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "_yaml.pyx":893 + * value.append((item_key, item_value)) + * self._parse_next_event() + * node.end_mark = Mark(self.stream_name, # <<<<<<<<<<<<<< + * self.parsed_event.end_mark.index, + * self.parsed_event.end_mark.line, + */ + __pyx_t_9 = PyTuple_New(6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_1); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_9, 4, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_9, 5, Py_None); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_end_mark, __pyx_t_1) < 0) __PYX_ERR(0, 893, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":898 + * self.parsed_event.end_mark.column, + * None, None) + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * return node + * + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "_yaml.pyx":899 + * None, None) + * yaml_event_delete(&self.parsed_event) + * return node # <<<<<<<<<<<<<< + * + * cdef int _parse_next_event(self) except 0: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_node); + __pyx_r = __pyx_v_node; + goto __pyx_L0; + + /* "_yaml.pyx":862 + * return node + * + * cdef _compose_mapping_node(self, object anchor): # <<<<<<<<<<<<<< + * start_mark = Mark(self.stream_name, + * self.parsed_event.start_mark.index, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("_yaml.CParser._compose_mapping_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_start_mark); + __Pyx_XDECREF(__pyx_v_tag); + __Pyx_XDECREF(__pyx_v_flow_style); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_node); + __Pyx_XDECREF(__pyx_v_item_key); + __Pyx_XDECREF(__pyx_v_item_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":901 + * return node + * + * cdef int _parse_next_event(self) except 0: # <<<<<<<<<<<<<< + * if self.parsed_event.type == YAML_NO_EVENT: + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + */ + +static int __pyx_f_5_yaml_7CParser__parse_next_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_error = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("_parse_next_event", 0); + + /* "_yaml.pyx":902 + * + * cdef int _parse_next_event(self) except 0: + * if self.parsed_event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + * error = self._parser_error() + */ + __pyx_t_1 = ((__pyx_v_self->parsed_event.type == YAML_NO_EVENT) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":903 + * cdef int _parse_next_event(self) except 0: + * if self.parsed_event.type == YAML_NO_EVENT: + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + __pyx_t_2 = yaml_parser_parse((&__pyx_v_self->parser), (&__pyx_v_self->parsed_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_2 == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":904 + * if self.parsed_event.type == YAML_NO_EVENT: + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + * error = self._parser_error() # <<<<<<<<<<<<<< + * raise error + * return 1 + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":905 + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + * error = self._parser_error() + * raise error # <<<<<<<<<<<<<< + * return 1 + * + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 905, __pyx_L1_error) + + /* "_yaml.pyx":903 + * cdef int _parse_next_event(self) except 0: + * if self.parsed_event.type == YAML_NO_EVENT: + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "_yaml.pyx":902 + * + * cdef int _parse_next_event(self) except 0: + * if self.parsed_event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + * error = self._parser_error() + */ + } + + /* "_yaml.pyx":906 + * error = self._parser_error() + * raise error + * return 1 # <<<<<<<<<<<<<< + * + * cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "_yaml.pyx":901 + * return node + * + * cdef int _parse_next_event(self) except 0: # <<<<<<<<<<<<<< + * if self.parsed_event.type == YAML_NO_EVENT: + * if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CParser._parse_next_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_29__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_29__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_28__reduce_cython__(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.CParser.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_7CParser_31__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_5_yaml_7CParser_31__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_7CParser_30__setstate_cython__(((struct __pyx_obj_5_yaml_CParser *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_7CParser_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.CParser.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":908 + * return 1 + * + * cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0: # <<<<<<<<<<<<<< + * cdef CParser parser + * parser = <CParser>data + */ + +static int __pyx_f_5_yaml_input_handler(void *__pyx_v_data, char *__pyx_v_buffer, size_t __pyx_v_size, size_t *__pyx_v_read) { + struct __pyx_obj_5_yaml_CParser *__pyx_v_parser = 0; + PyObject *__pyx_v_value = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + __Pyx_RefNannySetupContext("input_handler", 0); + + /* "_yaml.pyx":910 + * cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0: + * cdef CParser parser + * parser = <CParser>data # <<<<<<<<<<<<<< + * if parser.stream_cache is None: + * value = parser.stream.read(size) + */ + __pyx_t_1 = ((PyObject *)__pyx_v_data); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_parser = ((struct __pyx_obj_5_yaml_CParser *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":911 + * cdef CParser parser + * parser = <CParser>data + * if parser.stream_cache is None: # <<<<<<<<<<<<<< + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: + */ + __pyx_t_2 = (__pyx_v_parser->stream_cache == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":912 + * parser = <CParser>data + * if parser.stream_cache is None: + * value = parser.stream.read(size) # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(value) != 0: + * value = PyUnicode_AsUTF8String(value) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser->stream, __pyx_n_s_read); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":913 + * if parser.stream_cache is None: + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: # <<<<<<<<<<<<<< + * value = PyUnicode_AsUTF8String(value) + * parser.unicode_source = 1 + */ + __pyx_t_3 = ((PyUnicode_CheckExact(__pyx_v_value) != 0) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":914 + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: + * value = PyUnicode_AsUTF8String(value) # <<<<<<<<<<<<<< + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: + */ + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":915 + * if PyUnicode_CheckExact(value) != 0: + * value = PyUnicode_AsUTF8String(value) + * parser.unicode_source = 1 # <<<<<<<<<<<<<< + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_v_parser->unicode_source = 1; + + /* "_yaml.pyx":913 + * if parser.stream_cache is None: + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: # <<<<<<<<<<<<<< + * value = PyUnicode_AsUTF8String(value) + * parser.unicode_source = 1 + */ + } + + /* "_yaml.pyx":916 + * value = PyUnicode_AsUTF8String(value) + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string value is expected") + */ + __pyx_t_3 = ((PyString_CheckExact(__pyx_v_value) == 0) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":917 + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("a string value is expected") + * else: + */ + __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":918 + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string value is expected") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"a string value is expected") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 918, __pyx_L1_error) + + /* "_yaml.pyx":917 + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("a string value is expected") + * else: + */ + } + + /* "_yaml.pyx":920 + * raise TypeError("a string value is expected") + * else: + * raise TypeError(u"a string value is expected") # <<<<<<<<<<<<<< + * parser.stream_cache = value + * parser.stream_cache_pos = 0 + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 920, __pyx_L1_error) + } + + /* "_yaml.pyx":916 + * value = PyUnicode_AsUTF8String(value) + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string value is expected") + */ + } + + /* "_yaml.pyx":921 + * else: + * raise TypeError(u"a string value is expected") + * parser.stream_cache = value # <<<<<<<<<<<<<< + * parser.stream_cache_pos = 0 + * parser.stream_cache_len = PyString_GET_SIZE(value) + */ + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + __Pyx_GOTREF(__pyx_v_parser->stream_cache); + __Pyx_DECREF(__pyx_v_parser->stream_cache); + __pyx_v_parser->stream_cache = __pyx_v_value; + + /* "_yaml.pyx":922 + * raise TypeError(u"a string value is expected") + * parser.stream_cache = value + * parser.stream_cache_pos = 0 # <<<<<<<<<<<<<< + * parser.stream_cache_len = PyString_GET_SIZE(value) + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: + */ + __pyx_v_parser->stream_cache_pos = 0; + + /* "_yaml.pyx":923 + * parser.stream_cache = value + * parser.stream_cache_pos = 0 + * parser.stream_cache_len = PyString_GET_SIZE(value) # <<<<<<<<<<<<<< + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: + * size = parser.stream_cache_len - parser.stream_cache_pos + */ + __pyx_v_parser->stream_cache_len = PyString_GET_SIZE(__pyx_v_value); + + /* "_yaml.pyx":911 + * cdef CParser parser + * parser = <CParser>data + * if parser.stream_cache is None: # <<<<<<<<<<<<<< + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: + */ + } + + /* "_yaml.pyx":924 + * parser.stream_cache_pos = 0 + * parser.stream_cache_len = PyString_GET_SIZE(value) + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: # <<<<<<<<<<<<<< + * size = parser.stream_cache_len - parser.stream_cache_pos + * if size > 0: + */ + __pyx_t_3 = (((__pyx_v_parser->stream_cache_len - __pyx_v_parser->stream_cache_pos) < __pyx_v_size) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":925 + * parser.stream_cache_len = PyString_GET_SIZE(value) + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: + * size = parser.stream_cache_len - parser.stream_cache_pos # <<<<<<<<<<<<<< + * if size > 0: + * memcpy(buffer, PyString_AS_STRING(parser.stream_cache) + */ + __pyx_v_size = (__pyx_v_parser->stream_cache_len - __pyx_v_parser->stream_cache_pos); + + /* "_yaml.pyx":924 + * parser.stream_cache_pos = 0 + * parser.stream_cache_len = PyString_GET_SIZE(value) + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: # <<<<<<<<<<<<<< + * size = parser.stream_cache_len - parser.stream_cache_pos + * if size > 0: + */ + } + + /* "_yaml.pyx":926 + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: + * size = parser.stream_cache_len - parser.stream_cache_pos + * if size > 0: # <<<<<<<<<<<<<< + * memcpy(buffer, PyString_AS_STRING(parser.stream_cache) + * + parser.stream_cache_pos, size) + */ + __pyx_t_3 = ((__pyx_v_size > 0) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":927 + * size = parser.stream_cache_len - parser.stream_cache_pos + * if size > 0: + * memcpy(buffer, PyString_AS_STRING(parser.stream_cache) # <<<<<<<<<<<<<< + * + parser.stream_cache_pos, size) + * read[0] = size + */ + __pyx_t_1 = __pyx_v_parser->stream_cache; + __Pyx_INCREF(__pyx_t_1); + + /* "_yaml.pyx":928 + * if size > 0: + * memcpy(buffer, PyString_AS_STRING(parser.stream_cache) + * + parser.stream_cache_pos, size) # <<<<<<<<<<<<<< + * read[0] = size + * parser.stream_cache_pos += size + */ + memcpy(__pyx_v_buffer, (PyString_AS_STRING(__pyx_t_1) + __pyx_v_parser->stream_cache_pos), __pyx_v_size); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":926 + * if (parser.stream_cache_len - parser.stream_cache_pos) < size: + * size = parser.stream_cache_len - parser.stream_cache_pos + * if size > 0: # <<<<<<<<<<<<<< + * memcpy(buffer, PyString_AS_STRING(parser.stream_cache) + * + parser.stream_cache_pos, size) + */ + } + + /* "_yaml.pyx":929 + * memcpy(buffer, PyString_AS_STRING(parser.stream_cache) + * + parser.stream_cache_pos, size) + * read[0] = size # <<<<<<<<<<<<<< + * parser.stream_cache_pos += size + * if parser.stream_cache_pos == parser.stream_cache_len: + */ + (__pyx_v_read[0]) = __pyx_v_size; + + /* "_yaml.pyx":930 + * + parser.stream_cache_pos, size) + * read[0] = size + * parser.stream_cache_pos += size # <<<<<<<<<<<<<< + * if parser.stream_cache_pos == parser.stream_cache_len: + * parser.stream_cache = None + */ + __pyx_v_parser->stream_cache_pos = (__pyx_v_parser->stream_cache_pos + __pyx_v_size); + + /* "_yaml.pyx":931 + * read[0] = size + * parser.stream_cache_pos += size + * if parser.stream_cache_pos == parser.stream_cache_len: # <<<<<<<<<<<<<< + * parser.stream_cache = None + * return 1 + */ + __pyx_t_3 = ((__pyx_v_parser->stream_cache_pos == __pyx_v_parser->stream_cache_len) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":932 + * parser.stream_cache_pos += size + * if parser.stream_cache_pos == parser.stream_cache_len: + * parser.stream_cache = None # <<<<<<<<<<<<<< + * return 1 + * + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_parser->stream_cache); + __Pyx_DECREF(__pyx_v_parser->stream_cache); + __pyx_v_parser->stream_cache = Py_None; + + /* "_yaml.pyx":931 + * read[0] = size + * parser.stream_cache_pos += size + * if parser.stream_cache_pos == parser.stream_cache_len: # <<<<<<<<<<<<<< + * parser.stream_cache = None + * return 1 + */ + } + + /* "_yaml.pyx":933 + * if parser.stream_cache_pos == parser.stream_cache_len: + * parser.stream_cache = None + * return 1 # <<<<<<<<<<<<<< + * + * cdef class CEmitter: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "_yaml.pyx":908 + * return 1 + * + * cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0: # <<<<<<<<<<<<<< + * cdef CParser parser + * parser = <CParser>data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("_yaml.input_handler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_parser); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":953 + * cdef object use_encoding + * + * def __init__(self, stream, canonical=None, indent=None, width=None, # <<<<<<<<<<<<<< + * allow_unicode=None, line_break=None, encoding=None, + * explicit_start=None, explicit_end=None, version=None, tags=None): + */ + +/* Python wrapper */ +static int __pyx_pw_5_yaml_8CEmitter_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_5_yaml_8CEmitter_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stream = 0; + PyObject *__pyx_v_canonical = 0; + PyObject *__pyx_v_indent = 0; + PyObject *__pyx_v_width = 0; + PyObject *__pyx_v_allow_unicode = 0; + PyObject *__pyx_v_line_break = 0; + PyObject *__pyx_v_encoding = 0; + PyObject *__pyx_v_explicit_start = 0; + PyObject *__pyx_v_explicit_end = 0; + PyObject *__pyx_v_version = 0; + PyObject *__pyx_v_tags = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_canonical,&__pyx_n_s_indent,&__pyx_n_s_width,&__pyx_n_s_allow_unicode,&__pyx_n_s_line_break,&__pyx_n_s_encoding,&__pyx_n_s_explicit_start,&__pyx_n_s_explicit_end,&__pyx_n_s_version,&__pyx_n_s_tags,0}; + PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + + /* "_yaml.pyx":954 + * + * def __init__(self, stream, canonical=None, indent=None, width=None, + * allow_unicode=None, line_break=None, encoding=None, # <<<<<<<<<<<<<< + * explicit_start=None, explicit_end=None, version=None, tags=None): + * if yaml_emitter_initialize(&self.emitter) == 0: + */ + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + values[6] = ((PyObject *)Py_None); + + /* "_yaml.pyx":955 + * def __init__(self, stream, canonical=None, indent=None, width=None, + * allow_unicode=None, line_break=None, encoding=None, + * explicit_start=None, explicit_end=None, version=None, tags=None): # <<<<<<<<<<<<<< + * if yaml_emitter_initialize(&self.emitter) == 0: + * raise MemoryError + */ + values[7] = ((PyObject *)Py_None); + values[8] = ((PyObject *)Py_None); + values[9] = ((PyObject *)Py_None); + values[10] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); + CYTHON_FALLTHROUGH; + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canonical); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indent); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_width); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_unicode); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_line_break); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_encoding); + if (value) { values[6] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_explicit_start); + if (value) { values[7] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 8: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_explicit_end); + if (value) { values[8] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 9: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_version); + if (value) { values[9] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 10: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tags); + if (value) { values[10] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 953, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); + CYTHON_FALLTHROUGH; + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_stream = values[0]; + __pyx_v_canonical = values[1]; + __pyx_v_indent = values[2]; + __pyx_v_width = values[3]; + __pyx_v_allow_unicode = values[4]; + __pyx_v_line_break = values[5]; + __pyx_v_encoding = values[6]; + __pyx_v_explicit_start = values[7]; + __pyx_v_explicit_end = values[8]; + __pyx_v_version = values[9]; + __pyx_v_tags = values[10]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 953, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("_yaml.CEmitter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5_yaml_8CEmitter___init__(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self), __pyx_v_stream, __pyx_v_canonical, __pyx_v_indent, __pyx_v_width, __pyx_v_allow_unicode, __pyx_v_line_break, __pyx_v_encoding, __pyx_v_explicit_start, __pyx_v_explicit_end, __pyx_v_version, __pyx_v_tags); + + /* "_yaml.pyx":953 + * cdef object use_encoding + * + * def __init__(self, stream, canonical=None, indent=None, width=None, # <<<<<<<<<<<<<< + * allow_unicode=None, line_break=None, encoding=None, + * explicit_start=None, explicit_end=None, version=None, tags=None): + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5_yaml_8CEmitter___init__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_canonical, PyObject *__pyx_v_indent, PyObject *__pyx_v_width, PyObject *__pyx_v_allow_unicode, PyObject *__pyx_v_line_break, PyObject *__pyx_v_encoding, PyObject *__pyx_v_explicit_start, PyObject *__pyx_v_explicit_end, PyObject *__pyx_v_version, PyObject *__pyx_v_tags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_RefNannySetupContext("__init__", 0); + + /* "_yaml.pyx":956 + * allow_unicode=None, line_break=None, encoding=None, + * explicit_start=None, explicit_end=None, version=None, tags=None): + * if yaml_emitter_initialize(&self.emitter) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * self.stream = stream + */ + __pyx_t_1 = ((yaml_emitter_initialize((&__pyx_v_self->emitter)) == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":957 + * explicit_start=None, explicit_end=None, version=None, tags=None): + * if yaml_emitter_initialize(&self.emitter) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * self.stream = stream + * self.dump_unicode = 0 + */ + PyErr_NoMemory(); __PYX_ERR(0, 957, __pyx_L1_error) + + /* "_yaml.pyx":956 + * allow_unicode=None, line_break=None, encoding=None, + * explicit_start=None, explicit_end=None, version=None, tags=None): + * if yaml_emitter_initialize(&self.emitter) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * self.stream = stream + */ + } + + /* "_yaml.pyx":958 + * if yaml_emitter_initialize(&self.emitter) == 0: + * raise MemoryError + * self.stream = stream # <<<<<<<<<<<<<< + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: + */ + __Pyx_INCREF(__pyx_v_stream); + __Pyx_GIVEREF(__pyx_v_stream); + __Pyx_GOTREF(__pyx_v_self->stream); + __Pyx_DECREF(__pyx_v_self->stream); + __pyx_v_self->stream = __pyx_v_stream; + + /* "_yaml.pyx":959 + * raise MemoryError + * self.stream = stream + * self.dump_unicode = 0 # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * if getattr3(stream, 'encoding', None): + */ + __pyx_v_self->dump_unicode = 0; + + /* "_yaml.pyx":960 + * self.stream = stream + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * if getattr3(stream, 'encoding', None): + * self.dump_unicode = 1 + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":961 + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: + * if getattr3(stream, 'encoding', None): # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * else: + */ + __pyx_t_2 = __Pyx_GetAttr3(__pyx_v_stream, __pyx_n_s_encoding, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 961, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { + + /* "_yaml.pyx":962 + * if PY_MAJOR_VERSION < 3: + * if getattr3(stream, 'encoding', None): + * self.dump_unicode = 1 # <<<<<<<<<<<<<< + * else: + * if hasattr(stream, u'encoding'): + */ + __pyx_v_self->dump_unicode = 1; + + /* "_yaml.pyx":961 + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: + * if getattr3(stream, 'encoding', None): # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * else: + */ + } + + /* "_yaml.pyx":960 + * self.stream = stream + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * if getattr3(stream, 'encoding', None): + * self.dump_unicode = 1 + */ + goto __pyx_L4; + } + + /* "_yaml.pyx":964 + * self.dump_unicode = 1 + * else: + * if hasattr(stream, u'encoding'): # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * self.use_encoding = encoding + */ + /*else*/ { + __pyx_t_1 = __Pyx_HasAttr(__pyx_v_stream, __pyx_n_u_encoding); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 964, __pyx_L1_error) + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":965 + * else: + * if hasattr(stream, u'encoding'): + * self.dump_unicode = 1 # <<<<<<<<<<<<<< + * self.use_encoding = encoding + * yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) + */ + __pyx_v_self->dump_unicode = 1; + + /* "_yaml.pyx":964 + * self.dump_unicode = 1 + * else: + * if hasattr(stream, u'encoding'): # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * self.use_encoding = encoding + */ + } + } + __pyx_L4:; + + /* "_yaml.pyx":966 + * if hasattr(stream, u'encoding'): + * self.dump_unicode = 1 + * self.use_encoding = encoding # <<<<<<<<<<<<<< + * yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) + * if canonical: + */ + __Pyx_INCREF(__pyx_v_encoding); + __Pyx_GIVEREF(__pyx_v_encoding); + __Pyx_GOTREF(__pyx_v_self->use_encoding); + __Pyx_DECREF(__pyx_v_self->use_encoding); + __pyx_v_self->use_encoding = __pyx_v_encoding; + + /* "_yaml.pyx":967 + * self.dump_unicode = 1 + * self.use_encoding = encoding + * yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) # <<<<<<<<<<<<<< + * if canonical: + * yaml_emitter_set_canonical(&self.emitter, 1) + */ + yaml_emitter_set_output((&__pyx_v_self->emitter), __pyx_f_5_yaml_output_handler, ((void *)__pyx_v_self)); + + /* "_yaml.pyx":968 + * self.use_encoding = encoding + * yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) + * if canonical: # <<<<<<<<<<<<<< + * yaml_emitter_set_canonical(&self.emitter, 1) + * if indent is not None: + */ + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_canonical); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 968, __pyx_L1_error) + if (__pyx_t_3) { + + /* "_yaml.pyx":969 + * yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) + * if canonical: + * yaml_emitter_set_canonical(&self.emitter, 1) # <<<<<<<<<<<<<< + * if indent is not None: + * yaml_emitter_set_indent(&self.emitter, indent) + */ + yaml_emitter_set_canonical((&__pyx_v_self->emitter), 1); + + /* "_yaml.pyx":968 + * self.use_encoding = encoding + * yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) + * if canonical: # <<<<<<<<<<<<<< + * yaml_emitter_set_canonical(&self.emitter, 1) + * if indent is not None: + */ + } + + /* "_yaml.pyx":970 + * if canonical: + * yaml_emitter_set_canonical(&self.emitter, 1) + * if indent is not None: # <<<<<<<<<<<<<< + * yaml_emitter_set_indent(&self.emitter, indent) + * if width is not None: + */ + __pyx_t_3 = (__pyx_v_indent != Py_None); + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":971 + * yaml_emitter_set_canonical(&self.emitter, 1) + * if indent is not None: + * yaml_emitter_set_indent(&self.emitter, indent) # <<<<<<<<<<<<<< + * if width is not None: + * yaml_emitter_set_width(&self.emitter, width) + */ + __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_indent); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L1_error) + yaml_emitter_set_indent((&__pyx_v_self->emitter), __pyx_t_4); + + /* "_yaml.pyx":970 + * if canonical: + * yaml_emitter_set_canonical(&self.emitter, 1) + * if indent is not None: # <<<<<<<<<<<<<< + * yaml_emitter_set_indent(&self.emitter, indent) + * if width is not None: + */ + } + + /* "_yaml.pyx":972 + * if indent is not None: + * yaml_emitter_set_indent(&self.emitter, indent) + * if width is not None: # <<<<<<<<<<<<<< + * yaml_emitter_set_width(&self.emitter, width) + * if allow_unicode: + */ + __pyx_t_1 = (__pyx_v_width != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":973 + * yaml_emitter_set_indent(&self.emitter, indent) + * if width is not None: + * yaml_emitter_set_width(&self.emitter, width) # <<<<<<<<<<<<<< + * if allow_unicode: + * yaml_emitter_set_unicode(&self.emitter, 1) + */ + __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L1_error) + yaml_emitter_set_width((&__pyx_v_self->emitter), __pyx_t_4); + + /* "_yaml.pyx":972 + * if indent is not None: + * yaml_emitter_set_indent(&self.emitter, indent) + * if width is not None: # <<<<<<<<<<<<<< + * yaml_emitter_set_width(&self.emitter, width) + * if allow_unicode: + */ + } + + /* "_yaml.pyx":974 + * if width is not None: + * yaml_emitter_set_width(&self.emitter, width) + * if allow_unicode: # <<<<<<<<<<<<<< + * yaml_emitter_set_unicode(&self.emitter, 1) + * if line_break is not None: + */ + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_allow_unicode); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 974, __pyx_L1_error) + if (__pyx_t_3) { + + /* "_yaml.pyx":975 + * yaml_emitter_set_width(&self.emitter, width) + * if allow_unicode: + * yaml_emitter_set_unicode(&self.emitter, 1) # <<<<<<<<<<<<<< + * if line_break is not None: + * if line_break == '\r': + */ + yaml_emitter_set_unicode((&__pyx_v_self->emitter), 1); + + /* "_yaml.pyx":974 + * if width is not None: + * yaml_emitter_set_width(&self.emitter, width) + * if allow_unicode: # <<<<<<<<<<<<<< + * yaml_emitter_set_unicode(&self.emitter, 1) + * if line_break is not None: + */ + } + + /* "_yaml.pyx":976 + * if allow_unicode: + * yaml_emitter_set_unicode(&self.emitter, 1) + * if line_break is not None: # <<<<<<<<<<<<<< + * if line_break == '\r': + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + */ + __pyx_t_3 = (__pyx_v_line_break != Py_None); + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":977 + * yaml_emitter_set_unicode(&self.emitter, 1) + * if line_break is not None: + * if line_break == '\r': # <<<<<<<<<<<<<< + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + * elif line_break == '\n': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_line_break, __pyx_kp_s__19, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 977, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":978 + * if line_break is not None: + * if line_break == '\r': + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) # <<<<<<<<<<<<<< + * elif line_break == '\n': + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + */ + yaml_emitter_set_break((&__pyx_v_self->emitter), YAML_CR_BREAK); + + /* "_yaml.pyx":977 + * yaml_emitter_set_unicode(&self.emitter, 1) + * if line_break is not None: + * if line_break == '\r': # <<<<<<<<<<<<<< + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + * elif line_break == '\n': + */ + goto __pyx_L12; + } + + /* "_yaml.pyx":979 + * if line_break == '\r': + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + * elif line_break == '\n': # <<<<<<<<<<<<<< + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + * elif line_break == '\r\n': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_line_break, __pyx_kp_s__20, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 979, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":980 + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + * elif line_break == '\n': + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) # <<<<<<<<<<<<<< + * elif line_break == '\r\n': + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + */ + yaml_emitter_set_break((&__pyx_v_self->emitter), YAML_LN_BREAK); + + /* "_yaml.pyx":979 + * if line_break == '\r': + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + * elif line_break == '\n': # <<<<<<<<<<<<<< + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + * elif line_break == '\r\n': + */ + goto __pyx_L12; + } + + /* "_yaml.pyx":981 + * elif line_break == '\n': + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + * elif line_break == '\r\n': # <<<<<<<<<<<<<< + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + * self.document_start_implicit = 1 + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_line_break, __pyx_kp_s__21, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 981, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":982 + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + * elif line_break == '\r\n': + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) # <<<<<<<<<<<<<< + * self.document_start_implicit = 1 + * if explicit_start: + */ + yaml_emitter_set_break((&__pyx_v_self->emitter), YAML_CRLN_BREAK); + + /* "_yaml.pyx":981 + * elif line_break == '\n': + * yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + * elif line_break == '\r\n': # <<<<<<<<<<<<<< + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + * self.document_start_implicit = 1 + */ + } + __pyx_L12:; + + /* "_yaml.pyx":976 + * if allow_unicode: + * yaml_emitter_set_unicode(&self.emitter, 1) + * if line_break is not None: # <<<<<<<<<<<<<< + * if line_break == '\r': + * yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + */ + } + + /* "_yaml.pyx":983 + * elif line_break == '\r\n': + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + * self.document_start_implicit = 1 # <<<<<<<<<<<<<< + * if explicit_start: + * self.document_start_implicit = 0 + */ + __pyx_v_self->document_start_implicit = 1; + + /* "_yaml.pyx":984 + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + * self.document_start_implicit = 1 + * if explicit_start: # <<<<<<<<<<<<<< + * self.document_start_implicit = 0 + * self.document_end_implicit = 1 + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_explicit_start); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 984, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":985 + * self.document_start_implicit = 1 + * if explicit_start: + * self.document_start_implicit = 0 # <<<<<<<<<<<<<< + * self.document_end_implicit = 1 + * if explicit_end: + */ + __pyx_v_self->document_start_implicit = 0; + + /* "_yaml.pyx":984 + * yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + * self.document_start_implicit = 1 + * if explicit_start: # <<<<<<<<<<<<<< + * self.document_start_implicit = 0 + * self.document_end_implicit = 1 + */ + } + + /* "_yaml.pyx":986 + * if explicit_start: + * self.document_start_implicit = 0 + * self.document_end_implicit = 1 # <<<<<<<<<<<<<< + * if explicit_end: + * self.document_end_implicit = 0 + */ + __pyx_v_self->document_end_implicit = 1; + + /* "_yaml.pyx":987 + * self.document_start_implicit = 0 + * self.document_end_implicit = 1 + * if explicit_end: # <<<<<<<<<<<<<< + * self.document_end_implicit = 0 + * self.use_version = version + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_explicit_end); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 987, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":988 + * self.document_end_implicit = 1 + * if explicit_end: + * self.document_end_implicit = 0 # <<<<<<<<<<<<<< + * self.use_version = version + * self.use_tags = tags + */ + __pyx_v_self->document_end_implicit = 0; + + /* "_yaml.pyx":987 + * self.document_start_implicit = 0 + * self.document_end_implicit = 1 + * if explicit_end: # <<<<<<<<<<<<<< + * self.document_end_implicit = 0 + * self.use_version = version + */ + } + + /* "_yaml.pyx":989 + * if explicit_end: + * self.document_end_implicit = 0 + * self.use_version = version # <<<<<<<<<<<<<< + * self.use_tags = tags + * self.serialized_nodes = {} + */ + __Pyx_INCREF(__pyx_v_version); + __Pyx_GIVEREF(__pyx_v_version); + __Pyx_GOTREF(__pyx_v_self->use_version); + __Pyx_DECREF(__pyx_v_self->use_version); + __pyx_v_self->use_version = __pyx_v_version; + + /* "_yaml.pyx":990 + * self.document_end_implicit = 0 + * self.use_version = version + * self.use_tags = tags # <<<<<<<<<<<<<< + * self.serialized_nodes = {} + * self.anchors = {} + */ + __Pyx_INCREF(__pyx_v_tags); + __Pyx_GIVEREF(__pyx_v_tags); + __Pyx_GOTREF(__pyx_v_self->use_tags); + __Pyx_DECREF(__pyx_v_self->use_tags); + __pyx_v_self->use_tags = __pyx_v_tags; + + /* "_yaml.pyx":991 + * self.use_version = version + * self.use_tags = tags + * self.serialized_nodes = {} # <<<<<<<<<<<<<< + * self.anchors = {} + * self.last_alias_id = 0 + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->serialized_nodes); + __Pyx_DECREF(__pyx_v_self->serialized_nodes); + __pyx_v_self->serialized_nodes = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":992 + * self.use_tags = tags + * self.serialized_nodes = {} + * self.anchors = {} # <<<<<<<<<<<<<< + * self.last_alias_id = 0 + * self.closed = -1 + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->anchors); + __Pyx_DECREF(__pyx_v_self->anchors); + __pyx_v_self->anchors = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":993 + * self.serialized_nodes = {} + * self.anchors = {} + * self.last_alias_id = 0 # <<<<<<<<<<<<<< + * self.closed = -1 + * + */ + __pyx_v_self->last_alias_id = 0; + + /* "_yaml.pyx":994 + * self.anchors = {} + * self.last_alias_id = 0 + * self.closed = -1 # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->closed = -1; + + /* "_yaml.pyx":953 + * cdef object use_encoding + * + * def __init__(self, stream, canonical=None, indent=None, width=None, # <<<<<<<<<<<<<< + * allow_unicode=None, line_break=None, encoding=None, + * explicit_start=None, explicit_end=None, version=None, tags=None): + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("_yaml.CEmitter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":996 + * self.closed = -1 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_emitter_delete(&self.emitter) + * + */ + +/* Python wrapper */ +static void __pyx_pw_5_yaml_8CEmitter_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5_yaml_8CEmitter_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_5_yaml_8CEmitter_2__dealloc__(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5_yaml_8CEmitter_2__dealloc__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "_yaml.pyx":997 + * + * def __dealloc__(self): + * yaml_emitter_delete(&self.emitter) # <<<<<<<<<<<<<< + * + * def dispose(self): + */ + yaml_emitter_delete((&__pyx_v_self->emitter)); + + /* "_yaml.pyx":996 + * self.closed = -1 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_emitter_delete(&self.emitter) + * + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "_yaml.pyx":999 + * yaml_emitter_delete(&self.emitter) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_5dispose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_5dispose(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dispose (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_4dispose(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dispose", 0); + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1002 + * pass + * + * cdef object _emitter_error(self): # <<<<<<<<<<<<<< + * if self.emitter.error == YAML_MEMORY_ERROR: + * return MemoryError + */ + +static PyObject *__pyx_f_5_yaml_8CEmitter__emitter_error(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self) { + PyObject *__pyx_v_problem = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + __Pyx_RefNannySetupContext("_emitter_error", 0); + + /* "_yaml.pyx":1003 + * + * cdef object _emitter_error(self): + * if self.emitter.error == YAML_MEMORY_ERROR: # <<<<<<<<<<<<<< + * return MemoryError + * elif self.emitter.error == YAML_EMITTER_ERROR: + */ + switch (__pyx_v_self->emitter.error) { + case YAML_MEMORY_ERROR: + + /* "_yaml.pyx":1004 + * cdef object _emitter_error(self): + * if self.emitter.error == YAML_MEMORY_ERROR: + * return MemoryError # <<<<<<<<<<<<<< + * elif self.emitter.error == YAML_EMITTER_ERROR: + * if PY_MAJOR_VERSION < 3: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_builtin_MemoryError); + __pyx_r = __pyx_builtin_MemoryError; + goto __pyx_L0; + + /* "_yaml.pyx":1003 + * + * cdef object _emitter_error(self): + * if self.emitter.error == YAML_MEMORY_ERROR: # <<<<<<<<<<<<<< + * return MemoryError + * elif self.emitter.error == YAML_EMITTER_ERROR: + */ + break; + case YAML_EMITTER_ERROR: + + /* "_yaml.pyx":1006 + * return MemoryError + * elif self.emitter.error == YAML_EMITTER_ERROR: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.emitter.problem + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1007 + * elif self.emitter.error == YAML_EMITTER_ERROR: + * if PY_MAJOR_VERSION < 3: + * problem = self.emitter.problem # <<<<<<<<<<<<<< + * else: + * problem = PyUnicode_FromString(self.emitter.problem) + */ + __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_self->emitter.problem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_problem = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":1006 + * return MemoryError + * elif self.emitter.error == YAML_EMITTER_ERROR: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.emitter.problem + * else: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1009 + * problem = self.emitter.problem + * else: + * problem = PyUnicode_FromString(self.emitter.problem) # <<<<<<<<<<<<<< + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: + */ + /*else*/ { + __pyx_t_2 = PyUnicode_FromString(__pyx_v_self->emitter.problem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_problem = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_L3:; + + /* "_yaml.pyx":1010 + * else: + * problem = PyUnicode_FromString(self.emitter.problem) + * return EmitterError(problem) # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no emitter error") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_EmitterError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_problem) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_problem); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "_yaml.pyx":1005 + * if self.emitter.error == YAML_MEMORY_ERROR: + * return MemoryError + * elif self.emitter.error == YAML_EMITTER_ERROR: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * problem = self.emitter.problem + */ + break; + default: break; + } + + /* "_yaml.pyx":1011 + * problem = PyUnicode_FromString(self.emitter.problem) + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("no emitter error") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1012 + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no emitter error") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"no emitter error") + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1012, __pyx_L1_error) + + /* "_yaml.pyx":1011 + * problem = PyUnicode_FromString(self.emitter.problem) + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("no emitter error") + * else: + */ + } + + /* "_yaml.pyx":1014 + * raise ValueError("no emitter error") + * else: + * raise ValueError(u"no emitter error") # <<<<<<<<<<<<<< + * + * cdef int _object_to_event(self, object event_object, yaml_event_t *event) except 0: + */ + /*else*/ { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1014, __pyx_L1_error) + } + + /* "_yaml.pyx":1002 + * pass + * + * cdef object _emitter_error(self): # <<<<<<<<<<<<<< + * if self.emitter.error == YAML_MEMORY_ERROR: + * return MemoryError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("_yaml.CEmitter._emitter_error", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_problem); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1016 + * raise ValueError(u"no emitter error") + * + * cdef int _object_to_event(self, object event_object, yaml_event_t *event) except 0: # <<<<<<<<<<<<<< + * cdef yaml_encoding_t encoding + * cdef yaml_version_directive_t version_directive_value + */ + +static int __pyx_f_5_yaml_8CEmitter__object_to_event(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object, yaml_event_t *__pyx_v_event) { + yaml_encoding_t __pyx_v_encoding; + yaml_version_directive_t __pyx_v_version_directive_value; + yaml_version_directive_t *__pyx_v_version_directive; + yaml_tag_directive_t __pyx_v_tag_directives_value[0x80]; + yaml_tag_directive_t *__pyx_v_tag_directives_start; + yaml_tag_directive_t *__pyx_v_tag_directives_end; + int __pyx_v_implicit; + int __pyx_v_plain_implicit; + int __pyx_v_quoted_implicit; + char *__pyx_v_anchor; + char *__pyx_v_tag; + char *__pyx_v_value; + int __pyx_v_length; + yaml_scalar_style_t __pyx_v_scalar_style; + yaml_sequence_style_t __pyx_v_sequence_style; + yaml_mapping_style_t __pyx_v_mapping_style; + PyObject *__pyx_v_event_class = NULL; + PyObject *__pyx_v_cache = NULL; + PyObject *__pyx_v_handle = NULL; + PyObject *__pyx_v_prefix = NULL; + PyObject *__pyx_v_anchor_object = NULL; + PyObject *__pyx_v_tag_object = NULL; + PyObject *__pyx_v_value_object = NULL; + PyObject *__pyx_v_style_object = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + __Pyx_RefNannySetupContext("_object_to_event", 0); + + /* "_yaml.pyx":1033 + * cdef yaml_sequence_style_t sequence_style + * cdef yaml_mapping_style_t mapping_style + * event_class = event_object.__class__ # <<<<<<<<<<<<<< + * if event_class is StreamStartEvent: + * encoding = YAML_UTF8_ENCODING + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_event_class = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1034 + * cdef yaml_mapping_style_t mapping_style + * event_class = event_object.__class__ + * if event_class is StreamStartEvent: # <<<<<<<<<<<<<< + * encoding = YAML_UTF8_ENCODING + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__pyx_v_event_class == __pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1035 + * event_class = event_object.__class__ + * if event_class is StreamStartEvent: + * encoding = YAML_UTF8_ENCODING # <<<<<<<<<<<<<< + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + */ + __pyx_v_encoding = YAML_UTF8_ENCODING; + + /* "_yaml.pyx":1036 + * if event_class is StreamStartEvent: + * encoding = YAML_UTF8_ENCODING + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16LE_ENCODING + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u_utf_16_le, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1036, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s_utf_16_le, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1036, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "_yaml.pyx":1037 + * encoding = YAML_UTF8_ENCODING + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING # <<<<<<<<<<<<<< + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + * encoding = YAML_UTF16BE_ENCODING + */ + __pyx_v_encoding = YAML_UTF16LE_ENCODING; + + /* "_yaml.pyx":1036 + * if event_class is StreamStartEvent: + * encoding = YAML_UTF8_ENCODING + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16LE_ENCODING + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + */ + goto __pyx_L4; + } + + /* "_yaml.pyx":1038 + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16BE_ENCODING + * if event_object.encoding is None: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u_utf_16_be, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s_utf_16_be, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_t_2; + __pyx_L7_bool_binop_done:; + if (__pyx_t_3) { + + /* "_yaml.pyx":1039 + * encoding = YAML_UTF16LE_ENCODING + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + * encoding = YAML_UTF16BE_ENCODING # <<<<<<<<<<<<<< + * if event_object.encoding is None: + * self.dump_unicode = 1 + */ + __pyx_v_encoding = YAML_UTF16BE_ENCODING; + + /* "_yaml.pyx":1038 + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16BE_ENCODING + * if event_object.encoding is None: + */ + } + __pyx_L4:; + + /* "_yaml.pyx":1040 + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + * encoding = YAML_UTF16BE_ENCODING + * if event_object.encoding is None: # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1041 + * encoding = YAML_UTF16BE_ENCODING + * if event_object.encoding is None: + * self.dump_unicode = 1 # <<<<<<<<<<<<<< + * if self.dump_unicode == 1: + * encoding = YAML_UTF8_ENCODING + */ + __pyx_v_self->dump_unicode = 1; + + /* "_yaml.pyx":1040 + * elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + * encoding = YAML_UTF16BE_ENCODING + * if event_object.encoding is None: # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + */ + } + + /* "_yaml.pyx":1042 + * if event_object.encoding is None: + * self.dump_unicode = 1 + * if self.dump_unicode == 1: # <<<<<<<<<<<<<< + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(event, encoding) + */ + __pyx_t_2 = ((__pyx_v_self->dump_unicode == 1) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1043 + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + * encoding = YAML_UTF8_ENCODING # <<<<<<<<<<<<<< + * yaml_stream_start_event_initialize(event, encoding) + * elif event_class is StreamEndEvent: + */ + __pyx_v_encoding = YAML_UTF8_ENCODING; + + /* "_yaml.pyx":1042 + * if event_object.encoding is None: + * self.dump_unicode = 1 + * if self.dump_unicode == 1: # <<<<<<<<<<<<<< + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(event, encoding) + */ + } + + /* "_yaml.pyx":1044 + * if self.dump_unicode == 1: + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(event, encoding) # <<<<<<<<<<<<<< + * elif event_class is StreamEndEvent: + * yaml_stream_end_event_initialize(event) + */ + (void)(yaml_stream_start_event_initialize(__pyx_v_event, __pyx_v_encoding)); + + /* "_yaml.pyx":1034 + * cdef yaml_mapping_style_t mapping_style + * event_class = event_object.__class__ + * if event_class is StreamStartEvent: # <<<<<<<<<<<<<< + * encoding = YAML_UTF8_ENCODING + * if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1045 + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(event, encoding) + * elif event_class is StreamEndEvent: # <<<<<<<<<<<<<< + * yaml_stream_end_event_initialize(event) + * elif event_class is DocumentStartEvent: + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__pyx_v_event_class == __pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1046 + * yaml_stream_start_event_initialize(event, encoding) + * elif event_class is StreamEndEvent: + * yaml_stream_end_event_initialize(event) # <<<<<<<<<<<<<< + * elif event_class is DocumentStartEvent: + * version_directive = NULL + */ + (void)(yaml_stream_end_event_initialize(__pyx_v_event)); + + /* "_yaml.pyx":1045 + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(event, encoding) + * elif event_class is StreamEndEvent: # <<<<<<<<<<<<<< + * yaml_stream_end_event_initialize(event) + * elif event_class is DocumentStartEvent: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1047 + * elif event_class is StreamEndEvent: + * yaml_stream_end_event_initialize(event) + * elif event_class is DocumentStartEvent: # <<<<<<<<<<<<<< + * version_directive = NULL + * if event_object.version: + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DocumentStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_v_event_class == __pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1048 + * yaml_stream_end_event_initialize(event) + * elif event_class is DocumentStartEvent: + * version_directive = NULL # <<<<<<<<<<<<<< + * if event_object.version: + * version_directive_value.major = event_object.version[0] + */ + __pyx_v_version_directive = NULL; + + /* "_yaml.pyx":1049 + * elif event_class is DocumentStartEvent: + * version_directive = NULL + * if event_object.version: # <<<<<<<<<<<<<< + * version_directive_value.major = event_object.version[0] + * version_directive_value.minor = event_object.version[1] + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_version); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1049, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1050 + * version_directive = NULL + * if event_object.version: + * version_directive_value.major = event_object.version[0] # <<<<<<<<<<<<<< + * version_directive_value.minor = event_object.version[1] + * version_directive = &version_directive_value + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_version); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_version_directive_value.major = __pyx_t_5; + + /* "_yaml.pyx":1051 + * if event_object.version: + * version_directive_value.major = event_object.version[0] + * version_directive_value.minor = event_object.version[1] # <<<<<<<<<<<<<< + * version_directive = &version_directive_value + * tag_directives_start = NULL + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_version); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1051, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_version_directive_value.minor = __pyx_t_5; + + /* "_yaml.pyx":1052 + * version_directive_value.major = event_object.version[0] + * version_directive_value.minor = event_object.version[1] + * version_directive = &version_directive_value # <<<<<<<<<<<<<< + * tag_directives_start = NULL + * tag_directives_end = NULL + */ + __pyx_v_version_directive = (&__pyx_v_version_directive_value); + + /* "_yaml.pyx":1049 + * elif event_class is DocumentStartEvent: + * version_directive = NULL + * if event_object.version: # <<<<<<<<<<<<<< + * version_directive_value.major = event_object.version[0] + * version_directive_value.minor = event_object.version[1] + */ + } + + /* "_yaml.pyx":1053 + * version_directive_value.minor = event_object.version[1] + * version_directive = &version_directive_value + * tag_directives_start = NULL # <<<<<<<<<<<<<< + * tag_directives_end = NULL + * if event_object.tags: + */ + __pyx_v_tag_directives_start = NULL; + + /* "_yaml.pyx":1054 + * version_directive = &version_directive_value + * tag_directives_start = NULL + * tag_directives_end = NULL # <<<<<<<<<<<<<< + * if event_object.tags: + * if len(event_object.tags) > 128: + */ + __pyx_v_tag_directives_end = NULL; + + /* "_yaml.pyx":1055 + * tag_directives_start = NULL + * tag_directives_end = NULL + * if event_object.tags: # <<<<<<<<<<<<<< + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1055, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1056 + * tag_directives_end = NULL + * if event_object.tags: + * if len(event_object.tags) > 128: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1056, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = ((__pyx_t_6 > 0x80) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1057 + * if event_object.tags: + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("too many tags") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1058 + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"too many tags") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1058, __pyx_L1_error) + + /* "_yaml.pyx":1057 + * if event_object.tags: + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("too many tags") + * else: + */ + } + + /* "_yaml.pyx":1060 + * raise ValueError("too many tags") + * else: + * raise ValueError(u"too many tags") # <<<<<<<<<<<<<< + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1060, __pyx_L1_error) + } + + /* "_yaml.pyx":1056 + * tag_directives_end = NULL + * if event_object.tags: + * if len(event_object.tags) > 128: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") + */ + } + + /* "_yaml.pyx":1061 + * else: + * raise ValueError(u"too many tags") + * tag_directives_start = tag_directives_value # <<<<<<<<<<<<<< + * tag_directives_end = tag_directives_value + * cache = [] + */ + __pyx_v_tag_directives_start = __pyx_v_tag_directives_value; + + /* "_yaml.pyx":1062 + * raise ValueError(u"too many tags") + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value # <<<<<<<<<<<<<< + * cache = [] + * for handle in event_object.tags: + */ + __pyx_v_tag_directives_end = __pyx_v_tag_directives_value; + + /* "_yaml.pyx":1063 + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value + * cache = [] # <<<<<<<<<<<<<< + * for handle in event_object.tags: + * prefix = event_object.tags[handle] + */ + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cache = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":1064 + * tag_directives_end = tag_directives_value + * cache = [] + * for handle in event_object.tags: # <<<<<<<<<<<<<< + * prefix = event_object.tags[handle] + * if PyUnicode_CheckExact(handle): + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1064, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1064, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1064, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } + } else { + __pyx_t_1 = __pyx_t_7(__pyx_t_4); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1064, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_handle, __pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":1065 + * cache = [] + * for handle in event_object.tags: + * prefix = event_object.tags[handle] # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(handle): + * handle = PyUnicode_AsUTF8String(handle) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_handle); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_8); + __pyx_t_8 = 0; + + /* "_yaml.pyx":1066 + * for handle in event_object.tags: + * prefix = event_object.tags[handle] + * if PyUnicode_CheckExact(handle): # <<<<<<<<<<<<<< + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_handle) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1067 + * prefix = event_object.tags[handle] + * if PyUnicode_CheckExact(handle): + * handle = PyUnicode_AsUTF8String(handle) # <<<<<<<<<<<<<< + * cache.append(handle) + * if not PyString_CheckExact(handle): + */ + __pyx_t_8 = PyUnicode_AsUTF8String(__pyx_v_handle); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF_SET(__pyx_v_handle, __pyx_t_8); + __pyx_t_8 = 0; + + /* "_yaml.pyx":1068 + * if PyUnicode_CheckExact(handle): + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_cache, __pyx_v_handle); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 1068, __pyx_L1_error) + + /* "_yaml.pyx":1066 + * for handle in event_object.tags: + * prefix = event_object.tags[handle] + * if PyUnicode_CheckExact(handle): # <<<<<<<<<<<<<< + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + */ + } + + /* "_yaml.pyx":1069 + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + * if not PyString_CheckExact(handle): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_handle) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1070 + * cache.append(handle) + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag handle must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1071 + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag handle must be a string") + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(0, 1071, __pyx_L1_error) + + /* "_yaml.pyx":1070 + * cache.append(handle) + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag handle must be a string") + * else: + */ + } + + /* "_yaml.pyx":1073 + * raise TypeError("tag handle must be a string") + * else: + * raise TypeError(u"tag handle must be a string") # <<<<<<<<<<<<<< + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): + */ + /*else*/ { + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(0, 1073, __pyx_L1_error) + } + + /* "_yaml.pyx":1069 + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + * if not PyString_CheckExact(handle): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") + */ + } + + /* "_yaml.pyx":1074 + * else: + * raise TypeError(u"tag handle must be a string") + * tag_directives_end.handle = PyString_AS_STRING(handle) # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(prefix): + * prefix = PyUnicode_AsUTF8String(prefix) + */ + __pyx_v_tag_directives_end->handle = PyString_AS_STRING(__pyx_v_handle); + + /* "_yaml.pyx":1075 + * raise TypeError(u"tag handle must be a string") + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): # <<<<<<<<<<<<<< + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_prefix) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1076 + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): + * prefix = PyUnicode_AsUTF8String(prefix) # <<<<<<<<<<<<<< + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + */ + __pyx_t_8 = PyUnicode_AsUTF8String(__pyx_v_prefix); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_8); + __pyx_t_8 = 0; + + /* "_yaml.pyx":1077 + * if PyUnicode_CheckExact(prefix): + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_cache, __pyx_v_prefix); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 1077, __pyx_L1_error) + + /* "_yaml.pyx":1075 + * raise TypeError(u"tag handle must be a string") + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): # <<<<<<<<<<<<<< + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + */ + } + + /* "_yaml.pyx":1078 + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + * if not PyString_CheckExact(prefix): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_prefix) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1079 + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag prefix must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1080 + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag prefix must be a string") + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(0, 1080, __pyx_L1_error) + + /* "_yaml.pyx":1079 + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag prefix must be a string") + * else: + */ + } + + /* "_yaml.pyx":1082 + * raise TypeError("tag prefix must be a string") + * else: + * raise TypeError(u"tag prefix must be a string") # <<<<<<<<<<<<<< + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 + */ + /*else*/ { + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(0, 1082, __pyx_L1_error) + } + + /* "_yaml.pyx":1078 + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + * if not PyString_CheckExact(prefix): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") + */ + } + + /* "_yaml.pyx":1083 + * else: + * raise TypeError(u"tag prefix must be a string") + * tag_directives_end.prefix = PyString_AS_STRING(prefix) # <<<<<<<<<<<<<< + * tag_directives_end = tag_directives_end+1 + * implicit = 1 + */ + __pyx_v_tag_directives_end->prefix = PyString_AS_STRING(__pyx_v_prefix); + + /* "_yaml.pyx":1084 + * raise TypeError(u"tag prefix must be a string") + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 # <<<<<<<<<<<<<< + * implicit = 1 + * if event_object.explicit: + */ + __pyx_v_tag_directives_end = (__pyx_v_tag_directives_end + 1); + + /* "_yaml.pyx":1064 + * tag_directives_end = tag_directives_value + * cache = [] + * for handle in event_object.tags: # <<<<<<<<<<<<<< + * prefix = event_object.tags[handle] + * if PyUnicode_CheckExact(handle): + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "_yaml.pyx":1055 + * tag_directives_start = NULL + * tag_directives_end = NULL + * if event_object.tags: # <<<<<<<<<<<<<< + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: + */ + } + + /* "_yaml.pyx":1085 + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 + * implicit = 1 # <<<<<<<<<<<<<< + * if event_object.explicit: + * implicit = 0 + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":1086 + * tag_directives_end = tag_directives_end+1 + * implicit = 1 + * if event_object.explicit: # <<<<<<<<<<<<<< + * implicit = 0 + * if yaml_document_start_event_initialize(event, version_directive, + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_explicit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1086, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1087 + * implicit = 1 + * if event_object.explicit: + * implicit = 0 # <<<<<<<<<<<<<< + * if yaml_document_start_event_initialize(event, version_directive, + * tag_directives_start, tag_directives_end, implicit) == 0: + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":1086 + * tag_directives_end = tag_directives_end+1 + * implicit = 1 + * if event_object.explicit: # <<<<<<<<<<<<<< + * implicit = 0 + * if yaml_document_start_event_initialize(event, version_directive, + */ + } + + /* "_yaml.pyx":1089 + * implicit = 0 + * if yaml_document_start_event_initialize(event, version_directive, + * tag_directives_start, tag_directives_end, implicit) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * elif event_class is DocumentEndEvent: + */ + __pyx_t_2 = ((yaml_document_start_event_initialize(__pyx_v_event, __pyx_v_version_directive, __pyx_v_tag_directives_start, __pyx_v_tag_directives_end, __pyx_v_implicit) == 0) != 0); + + /* "_yaml.pyx":1088 + * if event_object.explicit: + * implicit = 0 + * if yaml_document_start_event_initialize(event, version_directive, # <<<<<<<<<<<<<< + * tag_directives_start, tag_directives_end, implicit) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1090 + * if yaml_document_start_event_initialize(event, version_directive, + * tag_directives_start, tag_directives_end, implicit) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * elif event_class is DocumentEndEvent: + * implicit = 1 + */ + PyErr_NoMemory(); __PYX_ERR(0, 1090, __pyx_L1_error) + + /* "_yaml.pyx":1088 + * if event_object.explicit: + * implicit = 0 + * if yaml_document_start_event_initialize(event, version_directive, # <<<<<<<<<<<<<< + * tag_directives_start, tag_directives_end, implicit) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1047 + * elif event_class is StreamEndEvent: + * yaml_stream_end_event_initialize(event) + * elif event_class is DocumentStartEvent: # <<<<<<<<<<<<<< + * version_directive = NULL + * if event_object.version: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1091 + * tag_directives_start, tag_directives_end, implicit) == 0: + * raise MemoryError + * elif event_class is DocumentEndEvent: # <<<<<<<<<<<<<< + * implicit = 1 + * if event_object.explicit: + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DocumentEndEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1092 + * raise MemoryError + * elif event_class is DocumentEndEvent: + * implicit = 1 # <<<<<<<<<<<<<< + * if event_object.explicit: + * implicit = 0 + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":1093 + * elif event_class is DocumentEndEvent: + * implicit = 1 + * if event_object.explicit: # <<<<<<<<<<<<<< + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_explicit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1093, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1094 + * implicit = 1 + * if event_object.explicit: + * implicit = 0 # <<<<<<<<<<<<<< + * yaml_document_end_event_initialize(event, implicit) + * elif event_class is AliasEvent: + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":1093 + * elif event_class is DocumentEndEvent: + * implicit = 1 + * if event_object.explicit: # <<<<<<<<<<<<<< + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) + */ + } + + /* "_yaml.pyx":1095 + * if event_object.explicit: + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) # <<<<<<<<<<<<<< + * elif event_class is AliasEvent: + * anchor = NULL + */ + (void)(yaml_document_end_event_initialize(__pyx_v_event, __pyx_v_implicit)); + + /* "_yaml.pyx":1091 + * tag_directives_start, tag_directives_end, implicit) == 0: + * raise MemoryError + * elif event_class is DocumentEndEvent: # <<<<<<<<<<<<<< + * implicit = 1 + * if event_object.explicit: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1096 + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) + * elif event_class is AliasEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_AliasEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1097 + * yaml_document_end_event_initialize(event, implicit) + * elif event_class is AliasEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if PyUnicode_CheckExact(anchor_object): + */ + __pyx_v_anchor = NULL; + + /* "_yaml.pyx":1098 + * elif event_class is AliasEvent: + * anchor = NULL + * anchor_object = event_object.anchor # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1099 + * anchor = NULL + * anchor_object = event_object.anchor + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_anchor_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1100 + * anchor_object = event_object.anchor + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_anchor_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1099 + * anchor = NULL + * anchor_object = event_object.anchor + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + } + + /* "_yaml.pyx":1101 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_anchor_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1102 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1103 + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"anchor must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1103, __pyx_L1_error) + + /* "_yaml.pyx":1102 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + } + + /* "_yaml.pyx":1105 + * raise TypeError("anchor must be a string") + * else: + * raise TypeError(u"anchor must be a string") # <<<<<<<<<<<<<< + * anchor = PyString_AS_STRING(anchor_object) + * if yaml_alias_event_initialize(event, anchor) == 0: + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1105, __pyx_L1_error) + } + + /* "_yaml.pyx":1101 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + } + + /* "_yaml.pyx":1106 + * else: + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) # <<<<<<<<<<<<<< + * if yaml_alias_event_initialize(event, anchor) == 0: + * raise MemoryError + */ + __pyx_v_anchor = PyString_AS_STRING(__pyx_v_anchor_object); + + /* "_yaml.pyx":1107 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * if yaml_alias_event_initialize(event, anchor) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * elif event_class is ScalarEvent: + */ + __pyx_t_2 = ((yaml_alias_event_initialize(__pyx_v_event, __pyx_v_anchor) == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1108 + * anchor = PyString_AS_STRING(anchor_object) + * if yaml_alias_event_initialize(event, anchor) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * elif event_class is ScalarEvent: + * anchor = NULL + */ + PyErr_NoMemory(); __PYX_ERR(0, 1108, __pyx_L1_error) + + /* "_yaml.pyx":1107 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * if yaml_alias_event_initialize(event, anchor) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * elif event_class is ScalarEvent: + */ + } + + /* "_yaml.pyx":1096 + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) + * elif event_class is AliasEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1109 + * if yaml_alias_event_initialize(event, anchor) == 0: + * raise MemoryError + * elif event_class is ScalarEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ScalarEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1110 + * raise MemoryError + * elif event_class is ScalarEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if anchor_object is not None: + */ + __pyx_v_anchor = NULL; + + /* "_yaml.pyx":1111 + * elif event_class is ScalarEvent: + * anchor = NULL + * anchor_object = event_object.anchor # <<<<<<<<<<<<<< + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1112 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + __pyx_t_3 = (__pyx_v_anchor_object != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1113 + * anchor_object = event_object.anchor + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_anchor_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1114 + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_anchor_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1113 + * anchor_object = event_object.anchor + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + } + + /* "_yaml.pyx":1115 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_anchor_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1116 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1117 + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"anchor must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1117, __pyx_L1_error) + + /* "_yaml.pyx":1116 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + } + + /* "_yaml.pyx":1119 + * raise TypeError("anchor must be a string") + * else: + * raise TypeError(u"anchor must be a string") # <<<<<<<<<<<<<< + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1119, __pyx_L1_error) + } + + /* "_yaml.pyx":1115 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + } + + /* "_yaml.pyx":1120 + * else: + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) # <<<<<<<<<<<<<< + * tag = NULL + * tag_object = event_object.tag + */ + __pyx_v_anchor = PyString_AS_STRING(__pyx_v_anchor_object); + + /* "_yaml.pyx":1112 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "_yaml.pyx":1121 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL # <<<<<<<<<<<<<< + * tag_object = event_object.tag + * if tag_object is not None: + */ + __pyx_v_tag = NULL; + + /* "_yaml.pyx":1122 + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL + * tag_object = event_object.tag # <<<<<<<<<<<<<< + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tag_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1123 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + __pyx_t_2 = (__pyx_v_tag_object != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1124 + * tag_object = event_object.tag + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + __pyx_t_3 = (PyUnicode_CheckExact(__pyx_v_tag_object) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1125 + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_tag_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1124 + * tag_object = event_object.tag + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + } + + /* "_yaml.pyx":1126 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + __pyx_t_3 = ((!(PyString_CheckExact(__pyx_v_tag_object) != 0)) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1127 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":1128 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1128, __pyx_L1_error) + + /* "_yaml.pyx":1127 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + } + + /* "_yaml.pyx":1130 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * value_object = event_object.value + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1130, __pyx_L1_error) + } + + /* "_yaml.pyx":1126 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + } + + /* "_yaml.pyx":1131 + * else: + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) # <<<<<<<<<<<<<< + * value_object = event_object.value + * if PyUnicode_CheckExact(value_object): + */ + __pyx_v_tag = PyString_AS_STRING(__pyx_v_tag_object); + + /* "_yaml.pyx":1123 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "_yaml.pyx":1132 + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) + * value_object = event_object.value # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_value_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1133 + * tag = PyString_AS_STRING(tag_object) + * value_object = event_object.value + * if PyUnicode_CheckExact(value_object): # <<<<<<<<<<<<<< + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + */ + __pyx_t_3 = (PyUnicode_CheckExact(__pyx_v_value_object) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1134 + * value_object = event_object.value + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_value_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_value_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1133 + * tag = PyString_AS_STRING(tag_object) + * value_object = event_object.value + * if PyUnicode_CheckExact(value_object): # <<<<<<<<<<<<<< + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + */ + } + + /* "_yaml.pyx":1135 + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") + */ + __pyx_t_3 = ((!(PyString_CheckExact(__pyx_v_value_object) != 0)) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1136 + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("value must be a string") + * else: + */ + __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":1137 + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"value must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1137, __pyx_L1_error) + + /* "_yaml.pyx":1136 + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("value must be a string") + * else: + */ + } + + /* "_yaml.pyx":1139 + * raise TypeError("value must be a string") + * else: + * raise TypeError(u"value must be a string") # <<<<<<<<<<<<<< + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1139, __pyx_L1_error) + } + + /* "_yaml.pyx":1135 + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") + */ + } + + /* "_yaml.pyx":1140 + * else: + * raise TypeError(u"value must be a string") + * value = PyString_AS_STRING(value_object) # <<<<<<<<<<<<<< + * length = PyString_GET_SIZE(value_object) + * plain_implicit = 0 + */ + __pyx_v_value = PyString_AS_STRING(__pyx_v_value_object); + + /* "_yaml.pyx":1141 + * raise TypeError(u"value must be a string") + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) # <<<<<<<<<<<<<< + * plain_implicit = 0 + * quoted_implicit = 0 + */ + __pyx_v_length = PyString_GET_SIZE(__pyx_v_value_object); + + /* "_yaml.pyx":1142 + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) + * plain_implicit = 0 # <<<<<<<<<<<<<< + * quoted_implicit = 0 + * if event_object.implicit is not None: + */ + __pyx_v_plain_implicit = 0; + + /* "_yaml.pyx":1143 + * length = PyString_GET_SIZE(value_object) + * plain_implicit = 0 + * quoted_implicit = 0 # <<<<<<<<<<<<<< + * if event_object.implicit is not None: + * plain_implicit = event_object.implicit[0] + */ + __pyx_v_quoted_implicit = 0; + + /* "_yaml.pyx":1144 + * plain_implicit = 0 + * quoted_implicit = 0 + * if event_object.implicit is not None: # <<<<<<<<<<<<<< + * plain_implicit = event_object.implicit[0] + * quoted_implicit = event_object.implicit[1] + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_implicit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1145 + * quoted_implicit = 0 + * if event_object.implicit is not None: + * plain_implicit = event_object.implicit[0] # <<<<<<<<<<<<<< + * quoted_implicit = event_object.implicit[1] + * style_object = event_object.style + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_implicit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_plain_implicit = __pyx_t_5; + + /* "_yaml.pyx":1146 + * if event_object.implicit is not None: + * plain_implicit = event_object.implicit[0] + * quoted_implicit = event_object.implicit[1] # <<<<<<<<<<<<<< + * style_object = event_object.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE + */ + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_implicit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_8, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_quoted_implicit = __pyx_t_5; + + /* "_yaml.pyx":1144 + * plain_implicit = 0 + * quoted_implicit = 0 + * if event_object.implicit is not None: # <<<<<<<<<<<<<< + * plain_implicit = event_object.implicit[0] + * quoted_implicit = event_object.implicit[1] + */ + } + + /* "_yaml.pyx":1147 + * plain_implicit = event_object.implicit[0] + * quoted_implicit = event_object.implicit[1] + * style_object = event_object.style # <<<<<<<<<<<<<< + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_style); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_style_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1148 + * quoted_implicit = event_object.implicit[1] + * style_object = event_object.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE # <<<<<<<<<<<<<< + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_PLAIN_SCALAR_STYLE; + + /* "_yaml.pyx":1149 + * style_object = event_object.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": # <<<<<<<<<<<<<< + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__7, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1149, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L43_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__7, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1149, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L43_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1150 + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE # <<<<<<<<<<<<<< + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE; + + /* "_yaml.pyx":1149 + * style_object = event_object.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": # <<<<<<<<<<<<<< + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": + */ + goto __pyx_L42; + } + + /* "_yaml.pyx":1151 + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": # <<<<<<<<<<<<<< + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1151, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L45_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1151, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L45_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1152 + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE # <<<<<<<<<<<<<< + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE; + + /* "_yaml.pyx":1151 + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": # <<<<<<<<<<<<<< + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": + */ + goto __pyx_L42; + } + + /* "_yaml.pyx":1153 + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": # <<<<<<<<<<<<<< + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__9, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1153, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L47_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__9, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1153, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L47_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1154 + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE # <<<<<<<<<<<<<< + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_LITERAL_SCALAR_STYLE; + + /* "_yaml.pyx":1153 + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": # <<<<<<<<<<<<<< + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": + */ + goto __pyx_L42; + } + + /* "_yaml.pyx":1155 + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": # <<<<<<<<<<<<<< + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__10, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1155, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L49_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__10, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1155, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L49_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1156 + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE # <<<<<<<<<<<<<< + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, + * plain_implicit, quoted_implicit, scalar_style) == 0: + */ + __pyx_v_scalar_style = YAML_FOLDED_SCALAR_STYLE; + + /* "_yaml.pyx":1155 + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": # <<<<<<<<<<<<<< + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, + */ + } + __pyx_L42:; + + /* "_yaml.pyx":1158 + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, + * plain_implicit, quoted_implicit, scalar_style) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * elif event_class is SequenceStartEvent: + */ + __pyx_t_2 = ((yaml_scalar_event_initialize(__pyx_v_event, __pyx_v_anchor, __pyx_v_tag, __pyx_v_value, __pyx_v_length, __pyx_v_plain_implicit, __pyx_v_quoted_implicit, __pyx_v_scalar_style) == 0) != 0); + + /* "_yaml.pyx":1157 + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, # <<<<<<<<<<<<<< + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1159 + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * elif event_class is SequenceStartEvent: + * anchor = NULL + */ + PyErr_NoMemory(); __PYX_ERR(0, 1159, __pyx_L1_error) + + /* "_yaml.pyx":1157 + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(event, anchor, tag, value, length, # <<<<<<<<<<<<<< + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1109 + * if yaml_alias_event_initialize(event, anchor) == 0: + * raise MemoryError + * elif event_class is ScalarEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1160 + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + * elif event_class is SequenceStartEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SequenceStartEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1161 + * raise MemoryError + * elif event_class is SequenceStartEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if anchor_object is not None: + */ + __pyx_v_anchor = NULL; + + /* "_yaml.pyx":1162 + * elif event_class is SequenceStartEvent: + * anchor = NULL + * anchor_object = event_object.anchor # <<<<<<<<<<<<<< + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1163 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + __pyx_t_3 = (__pyx_v_anchor_object != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1164 + * anchor_object = event_object.anchor + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_anchor_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1165 + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_anchor_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1164 + * anchor_object = event_object.anchor + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + } + + /* "_yaml.pyx":1166 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_anchor_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1167 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1168 + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"anchor must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1168, __pyx_L1_error) + + /* "_yaml.pyx":1167 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + } + + /* "_yaml.pyx":1170 + * raise TypeError("anchor must be a string") + * else: + * raise TypeError(u"anchor must be a string") # <<<<<<<<<<<<<< + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1170, __pyx_L1_error) + } + + /* "_yaml.pyx":1166 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + } + + /* "_yaml.pyx":1171 + * else: + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) # <<<<<<<<<<<<<< + * tag = NULL + * tag_object = event_object.tag + */ + __pyx_v_anchor = PyString_AS_STRING(__pyx_v_anchor_object); + + /* "_yaml.pyx":1163 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "_yaml.pyx":1172 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL # <<<<<<<<<<<<<< + * tag_object = event_object.tag + * if tag_object is not None: + */ + __pyx_v_tag = NULL; + + /* "_yaml.pyx":1173 + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL + * tag_object = event_object.tag # <<<<<<<<<<<<<< + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tag_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1174 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + __pyx_t_2 = (__pyx_v_tag_object != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1175 + * tag_object = event_object.tag + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + __pyx_t_3 = (PyUnicode_CheckExact(__pyx_v_tag_object) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1176 + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_tag_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1175 + * tag_object = event_object.tag + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + } + + /* "_yaml.pyx":1177 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + __pyx_t_3 = ((!(PyString_CheckExact(__pyx_v_tag_object) != 0)) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1178 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":1179 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1179, __pyx_L1_error) + + /* "_yaml.pyx":1178 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + } + + /* "_yaml.pyx":1181 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1181, __pyx_L1_error) + } + + /* "_yaml.pyx":1177 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + } + + /* "_yaml.pyx":1182 + * else: + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) # <<<<<<<<<<<<<< + * implicit = 0 + * if event_object.implicit: + */ + __pyx_v_tag = PyString_AS_STRING(__pyx_v_tag_object); + + /* "_yaml.pyx":1174 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "_yaml.pyx":1183 + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 # <<<<<<<<<<<<<< + * if event_object.implicit: + * implicit = 1 + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":1184 + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + * if event_object.implicit: # <<<<<<<<<<<<<< + * implicit = 1 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_implicit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1185 + * implicit = 0 + * if event_object.implicit: + * implicit = 1 # <<<<<<<<<<<<<< + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if event_object.flow_style: + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":1184 + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + * if event_object.implicit: # <<<<<<<<<<<<<< + * implicit = 1 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + */ + } + + /* "_yaml.pyx":1186 + * if event_object.implicit: + * implicit = 1 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE # <<<<<<<<<<<<<< + * if event_object.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + */ + __pyx_v_sequence_style = YAML_BLOCK_SEQUENCE_STYLE; + + /* "_yaml.pyx":1187 + * implicit = 1 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if event_object.flow_style: # <<<<<<<<<<<<<< + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(event, anchor, tag, + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_flow_style); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1188 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if event_object.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE # <<<<<<<<<<<<<< + * if yaml_sequence_start_event_initialize(event, anchor, tag, + * implicit, sequence_style) == 0: + */ + __pyx_v_sequence_style = YAML_FLOW_SEQUENCE_STYLE; + + /* "_yaml.pyx":1187 + * implicit = 1 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if event_object.flow_style: # <<<<<<<<<<<<<< + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(event, anchor, tag, + */ + } + + /* "_yaml.pyx":1190 + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(event, anchor, tag, + * implicit, sequence_style) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * elif event_class is MappingStartEvent: + */ + __pyx_t_3 = ((yaml_sequence_start_event_initialize(__pyx_v_event, __pyx_v_anchor, __pyx_v_tag, __pyx_v_implicit, __pyx_v_sequence_style) == 0) != 0); + + /* "_yaml.pyx":1189 + * if event_object.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, sequence_style) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":1191 + * if yaml_sequence_start_event_initialize(event, anchor, tag, + * implicit, sequence_style) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * elif event_class is MappingStartEvent: + * anchor = NULL + */ + PyErr_NoMemory(); __PYX_ERR(0, 1191, __pyx_L1_error) + + /* "_yaml.pyx":1189 + * if event_object.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, sequence_style) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1160 + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + * elif event_class is SequenceStartEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1192 + * implicit, sequence_style) == 0: + * raise MemoryError + * elif event_class is MappingStartEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_MappingStartEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1193 + * raise MemoryError + * elif event_class is MappingStartEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if anchor_object is not None: + */ + __pyx_v_anchor = NULL; + + /* "_yaml.pyx":1194 + * elif event_class is MappingStartEvent: + * anchor = NULL + * anchor_object = event_object.anchor # <<<<<<<<<<<<<< + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1195 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + __pyx_t_2 = (__pyx_v_anchor_object != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1196 + * anchor_object = event_object.anchor + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + __pyx_t_3 = (PyUnicode_CheckExact(__pyx_v_anchor_object) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1197 + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_anchor_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1196 + * anchor_object = event_object.anchor + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + } + + /* "_yaml.pyx":1198 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + __pyx_t_3 = ((!(PyString_CheckExact(__pyx_v_anchor_object) != 0)) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1199 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":1200 + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"anchor must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1200, __pyx_L1_error) + + /* "_yaml.pyx":1199 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + } + + /* "_yaml.pyx":1202 + * raise TypeError("anchor must be a string") + * else: + * raise TypeError(u"anchor must be a string") # <<<<<<<<<<<<<< + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1202, __pyx_L1_error) + } + + /* "_yaml.pyx":1198 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + } + + /* "_yaml.pyx":1203 + * else: + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) # <<<<<<<<<<<<<< + * tag = NULL + * tag_object = event_object.tag + */ + __pyx_v_anchor = PyString_AS_STRING(__pyx_v_anchor_object); + + /* "_yaml.pyx":1195 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "_yaml.pyx":1204 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL # <<<<<<<<<<<<<< + * tag_object = event_object.tag + * if tag_object is not None: + */ + __pyx_v_tag = NULL; + + /* "_yaml.pyx":1205 + * anchor = PyString_AS_STRING(anchor_object) + * tag = NULL + * tag_object = event_object.tag # <<<<<<<<<<<<<< + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tag_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1206 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + __pyx_t_3 = (__pyx_v_tag_object != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1207 + * tag_object = event_object.tag + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_tag_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1208 + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_4 = PyUnicode_AsUTF8String(__pyx_v_tag_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1207 + * tag_object = event_object.tag + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + } + + /* "_yaml.pyx":1209 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_tag_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1210 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1211 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1211, __pyx_L1_error) + + /* "_yaml.pyx":1210 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + } + + /* "_yaml.pyx":1213 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1213, __pyx_L1_error) + } + + /* "_yaml.pyx":1209 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + } + + /* "_yaml.pyx":1214 + * else: + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) # <<<<<<<<<<<<<< + * implicit = 0 + * if event_object.implicit: + */ + __pyx_v_tag = PyString_AS_STRING(__pyx_v_tag_object); + + /* "_yaml.pyx":1206 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "_yaml.pyx":1215 + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 # <<<<<<<<<<<<<< + * if event_object.implicit: + * implicit = 1 + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":1216 + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + * if event_object.implicit: # <<<<<<<<<<<<<< + * implicit = 1 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_implicit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1217 + * implicit = 0 + * if event_object.implicit: + * implicit = 1 # <<<<<<<<<<<<<< + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if event_object.flow_style: + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":1216 + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + * if event_object.implicit: # <<<<<<<<<<<<<< + * implicit = 1 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + */ + } + + /* "_yaml.pyx":1218 + * if event_object.implicit: + * implicit = 1 + * mapping_style = YAML_BLOCK_MAPPING_STYLE # <<<<<<<<<<<<<< + * if event_object.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE + */ + __pyx_v_mapping_style = YAML_BLOCK_MAPPING_STYLE; + + /* "_yaml.pyx":1219 + * implicit = 1 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if event_object.flow_style: # <<<<<<<<<<<<<< + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(event, anchor, tag, + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event_object, __pyx_n_s_flow_style); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1220 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if event_object.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE # <<<<<<<<<<<<<< + * if yaml_mapping_start_event_initialize(event, anchor, tag, + * implicit, mapping_style) == 0: + */ + __pyx_v_mapping_style = YAML_FLOW_MAPPING_STYLE; + + /* "_yaml.pyx":1219 + * implicit = 1 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if event_object.flow_style: # <<<<<<<<<<<<<< + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(event, anchor, tag, + */ + } + + /* "_yaml.pyx":1222 + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(event, anchor, tag, + * implicit, mapping_style) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * elif event_class is SequenceEndEvent: + */ + __pyx_t_2 = ((yaml_mapping_start_event_initialize(__pyx_v_event, __pyx_v_anchor, __pyx_v_tag, __pyx_v_implicit, __pyx_v_mapping_style) == 0) != 0); + + /* "_yaml.pyx":1221 + * if event_object.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, mapping_style) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1223 + * if yaml_mapping_start_event_initialize(event, anchor, tag, + * implicit, mapping_style) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * elif event_class is SequenceEndEvent: + * yaml_sequence_end_event_initialize(event) + */ + PyErr_NoMemory(); __PYX_ERR(0, 1223, __pyx_L1_error) + + /* "_yaml.pyx":1221 + * if event_object.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, mapping_style) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1192 + * implicit, sequence_style) == 0: + * raise MemoryError + * elif event_class is MappingStartEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1224 + * implicit, mapping_style) == 0: + * raise MemoryError + * elif event_class is SequenceEndEvent: # <<<<<<<<<<<<<< + * yaml_sequence_end_event_initialize(event) + * elif event_class is MappingEndEvent: + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SequenceEndEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1225 + * raise MemoryError + * elif event_class is SequenceEndEvent: + * yaml_sequence_end_event_initialize(event) # <<<<<<<<<<<<<< + * elif event_class is MappingEndEvent: + * yaml_mapping_end_event_initialize(event) + */ + (void)(yaml_sequence_end_event_initialize(__pyx_v_event)); + + /* "_yaml.pyx":1224 + * implicit, mapping_style) == 0: + * raise MemoryError + * elif event_class is SequenceEndEvent: # <<<<<<<<<<<<<< + * yaml_sequence_end_event_initialize(event) + * elif event_class is MappingEndEvent: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1226 + * elif event_class is SequenceEndEvent: + * yaml_sequence_end_event_initialize(event) + * elif event_class is MappingEndEvent: # <<<<<<<<<<<<<< + * yaml_mapping_end_event_initialize(event) + * else: + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_MappingEndEvent); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = (__pyx_v_event_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1227 + * yaml_sequence_end_event_initialize(event) + * elif event_class is MappingEndEvent: + * yaml_mapping_end_event_initialize(event) # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + (void)(yaml_mapping_end_event_initialize(__pyx_v_event)); + + /* "_yaml.pyx":1226 + * elif event_class is SequenceEndEvent: + * yaml_sequence_end_event_initialize(event) + * elif event_class is MappingEndEvent: # <<<<<<<<<<<<<< + * yaml_mapping_end_event_initialize(event) + * else: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1229 + * yaml_mapping_end_event_initialize(event) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("invalid event %s" % event_object) + * else: + */ + /*else*/ { + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1230 + * else: + * if PY_MAJOR_VERSION < 3: + * raise TypeError("invalid event %s" % event_object) # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"invalid event %s" % event_object) + */ + __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_invalid_event_s, __pyx_v_event_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(0, 1230, __pyx_L1_error) + + /* "_yaml.pyx":1229 + * yaml_mapping_end_event_initialize(event) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("invalid event %s" % event_object) + * else: + */ + } + + /* "_yaml.pyx":1232 + * raise TypeError("invalid event %s" % event_object) + * else: + * raise TypeError(u"invalid event %s" % event_object) # <<<<<<<<<<<<<< + * return 1 + * + */ + /*else*/ { + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_invalid_event_s, __pyx_v_event_object); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1232, __pyx_L1_error) + } + } + __pyx_L3:; + + /* "_yaml.pyx":1233 + * else: + * raise TypeError(u"invalid event %s" % event_object) + * return 1 # <<<<<<<<<<<<<< + * + * def emit(self, event_object): + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "_yaml.pyx":1016 + * raise ValueError(u"no emitter error") + * + * cdef int _object_to_event(self, object event_object, yaml_event_t *event) except 0: # <<<<<<<<<<<<<< + * cdef yaml_encoding_t encoding + * cdef yaml_version_directive_t version_directive_value + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("_yaml.CEmitter._object_to_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_event_class); + __Pyx_XDECREF(__pyx_v_cache); + __Pyx_XDECREF(__pyx_v_handle); + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XDECREF(__pyx_v_anchor_object); + __Pyx_XDECREF(__pyx_v_tag_object); + __Pyx_XDECREF(__pyx_v_value_object); + __Pyx_XDECREF(__pyx_v_style_object); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1235 + * return 1 + * + * def emit(self, event_object): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_7emit(PyObject *__pyx_v_self, PyObject *__pyx_v_event_object); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_7emit(PyObject *__pyx_v_self, PyObject *__pyx_v_event_object) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("emit (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_6emit(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self), ((PyObject *)__pyx_v_event_object)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_6emit(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object) { + yaml_event_t __pyx_v_event; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + __Pyx_RefNannySetupContext("emit", 0); + + /* "_yaml.pyx":1237 + * def emit(self, event_object): + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_object_to_event(__pyx_v_self, __pyx_v_event_object, (&__pyx_v_event)); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 1237, __pyx_L1_error) + + /* "_yaml.pyx":1238 + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_1 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1238, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_1 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1239 + * self._object_to_event(event_object, &event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "_yaml.pyx":1240 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * + * def open(self): + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1240, __pyx_L1_error) + + /* "_yaml.pyx":1238 + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1235 + * return 1 + * + * def emit(self, event_object): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("_yaml.CEmitter.emit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1242 + * raise error + * + * def open(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_9open(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_9open(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_8open(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_8open(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self) { + yaml_event_t __pyx_v_event; + yaml_encoding_t __pyx_v_encoding; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + __Pyx_RefNannySetupContext("open", 0); + + /* "_yaml.pyx":1245 + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + * if self.closed == -1: # <<<<<<<<<<<<<< + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + */ + switch (__pyx_v_self->closed) { + case -1L: + + /* "_yaml.pyx":1246 + * cdef yaml_encoding_t encoding + * if self.closed == -1: + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16LE_ENCODING + * elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': + */ + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->use_encoding, __pyx_kp_u_utf_16_le, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1246, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_self->use_encoding, __pyx_kp_s_utf_16_le, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "_yaml.pyx":1247 + * if self.closed == -1: + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING # <<<<<<<<<<<<<< + * elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': + * encoding = YAML_UTF16BE_ENCODING + */ + __pyx_v_encoding = YAML_UTF16LE_ENCODING; + + /* "_yaml.pyx":1246 + * cdef yaml_encoding_t encoding + * if self.closed == -1: + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16LE_ENCODING + * elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1248 + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + * elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16BE_ENCODING + * else: + */ + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->use_encoding, __pyx_kp_u_utf_16_be, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1248, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_self->use_encoding, __pyx_kp_s_utf_16_be, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1248, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L6_bool_binop_done:; + if (__pyx_t_1) { + + /* "_yaml.pyx":1249 + * encoding = YAML_UTF16LE_ENCODING + * elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': + * encoding = YAML_UTF16BE_ENCODING # <<<<<<<<<<<<<< + * else: + * encoding = YAML_UTF8_ENCODING + */ + __pyx_v_encoding = YAML_UTF16BE_ENCODING; + + /* "_yaml.pyx":1248 + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + * elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': # <<<<<<<<<<<<<< + * encoding = YAML_UTF16BE_ENCODING + * else: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1251 + * encoding = YAML_UTF16BE_ENCODING + * else: + * encoding = YAML_UTF8_ENCODING # <<<<<<<<<<<<<< + * if self.use_encoding is None: + * self.dump_unicode = 1 + */ + /*else*/ { + __pyx_v_encoding = YAML_UTF8_ENCODING; + } + __pyx_L3:; + + /* "_yaml.pyx":1252 + * else: + * encoding = YAML_UTF8_ENCODING + * if self.use_encoding is None: # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + */ + __pyx_t_1 = (__pyx_v_self->use_encoding == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1253 + * encoding = YAML_UTF8_ENCODING + * if self.use_encoding is None: + * self.dump_unicode = 1 # <<<<<<<<<<<<<< + * if self.dump_unicode == 1: + * encoding = YAML_UTF8_ENCODING + */ + __pyx_v_self->dump_unicode = 1; + + /* "_yaml.pyx":1252 + * else: + * encoding = YAML_UTF8_ENCODING + * if self.use_encoding is None: # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + */ + } + + /* "_yaml.pyx":1254 + * if self.use_encoding is None: + * self.dump_unicode = 1 + * if self.dump_unicode == 1: # <<<<<<<<<<<<<< + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(&event, encoding) + */ + __pyx_t_2 = ((__pyx_v_self->dump_unicode == 1) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1255 + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + * encoding = YAML_UTF8_ENCODING # <<<<<<<<<<<<<< + * yaml_stream_start_event_initialize(&event, encoding) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_v_encoding = YAML_UTF8_ENCODING; + + /* "_yaml.pyx":1254 + * if self.use_encoding is None: + * self.dump_unicode = 1 + * if self.dump_unicode == 1: # <<<<<<<<<<<<<< + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(&event, encoding) + */ + } + + /* "_yaml.pyx":1256 + * if self.dump_unicode == 1: + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(&event, encoding) # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + (void)(yaml_stream_start_event_initialize((&__pyx_v_event), __pyx_v_encoding)); + + /* "_yaml.pyx":1257 + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(&event, encoding) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_3 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1257, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_3 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1258 + * yaml_stream_start_event_initialize(&event, encoding) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * self.closed = 0 + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_error = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1259 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * self.closed = 0 + * elif self.closed == 1: + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1259, __pyx_L1_error) + + /* "_yaml.pyx":1257 + * encoding = YAML_UTF8_ENCODING + * yaml_stream_start_event_initialize(&event, encoding) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1260 + * error = self._emitter_error() + * raise error + * self.closed = 0 # <<<<<<<<<<<<<< + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_v_self->closed = 0; + + /* "_yaml.pyx":1245 + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + * if self.closed == -1: # <<<<<<<<<<<<<< + * if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': + * encoding = YAML_UTF16LE_ENCODING + */ + break; + case 1: + + /* "_yaml.pyx":1262 + * self.closed = 0 + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1263 + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is closed") # <<<<<<<<<<<<<< + * else: + * raise SerializerError(u"serializer is closed") + */ + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_s_serializer_is_closed) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s_serializer_is_closed); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1263, __pyx_L1_error) + + /* "_yaml.pyx":1262 + * self.closed = 0 + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + } + + /* "_yaml.pyx":1265 + * raise SerializerError("serializer is closed") + * else: + * raise SerializerError(u"serializer is closed") # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_u_serializer_is_closed) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_u_serializer_is_closed); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1265, __pyx_L1_error) + } + + /* "_yaml.pyx":1261 + * raise error + * self.closed = 0 + * elif self.closed == 1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is closed") + */ + break; + default: + + /* "_yaml.pyx":1267 + * raise SerializerError(u"serializer is closed") + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is already opened") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1268 + * else: + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is already opened") # <<<<<<<<<<<<<< + * else: + * raise SerializerError(u"serializer is already opened") + */ + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_s_serializer_is_already_opened) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s_serializer_is_already_opened); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1268, __pyx_L1_error) + + /* "_yaml.pyx":1267 + * raise SerializerError(u"serializer is closed") + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is already opened") + * else: + */ + } + + /* "_yaml.pyx":1270 + * raise SerializerError("serializer is already opened") + * else: + * raise SerializerError(u"serializer is already opened") # <<<<<<<<<<<<<< + * + * def close(self): + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_u_serializer_is_already_opened) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_u_serializer_is_already_opened); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 1270, __pyx_L1_error) + } + break; + } + + /* "_yaml.pyx":1242 + * raise error + * + * def open(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("_yaml.CEmitter.open", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1272 + * raise SerializerError(u"serializer is already opened") + * + * def close(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if self.closed == -1: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_11close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_11close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("close (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_10close(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_10close(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self) { + yaml_event_t __pyx_v_event; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + __Pyx_RefNannySetupContext("close", 0); + + /* "_yaml.pyx":1274 + * def close(self): + * cdef yaml_event_t event + * if self.closed == -1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is not opened") + */ + switch (__pyx_v_self->closed) { + case -1L: + + /* "_yaml.pyx":1275 + * cdef yaml_event_t event + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is not opened") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1276 + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is not opened") # <<<<<<<<<<<<<< + * else: + * raise SerializerError(u"serializer is not opened") + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_serializer_is_not_opened) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_serializer_is_not_opened); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1276, __pyx_L1_error) + + /* "_yaml.pyx":1275 + * cdef yaml_event_t event + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is not opened") + * else: + */ + } + + /* "_yaml.pyx":1278 + * raise SerializerError("serializer is not opened") + * else: + * raise SerializerError(u"serializer is not opened") # <<<<<<<<<<<<<< + * elif self.closed == 0: + * yaml_stream_end_event_initialize(&event) + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_u_serializer_is_not_opened) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_serializer_is_not_opened); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1278, __pyx_L1_error) + } + + /* "_yaml.pyx":1274 + * def close(self): + * cdef yaml_event_t event + * if self.closed == -1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is not opened") + */ + break; + case 0: + + /* "_yaml.pyx":1280 + * raise SerializerError(u"serializer is not opened") + * elif self.closed == 0: + * yaml_stream_end_event_initialize(&event) # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + (void)(yaml_stream_end_event_initialize((&__pyx_v_event))); + + /* "_yaml.pyx":1281 + * elif self.closed == 0: + * yaml_stream_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_5 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1281, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_5 == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1282 + * yaml_stream_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * self.closed = 1 + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_error = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":1283 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * self.closed = 1 + * + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1283, __pyx_L1_error) + + /* "_yaml.pyx":1281 + * elif self.closed == 0: + * yaml_stream_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1284 + * error = self._emitter_error() + * raise error + * self.closed = 1 # <<<<<<<<<<<<<< + * + * def serialize(self, node): + */ + __pyx_v_self->closed = 1; + + /* "_yaml.pyx":1279 + * else: + * raise SerializerError(u"serializer is not opened") + * elif self.closed == 0: # <<<<<<<<<<<<<< + * yaml_stream_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + break; + default: break; + } + + /* "_yaml.pyx":1272 + * raise SerializerError(u"serializer is already opened") + * + * def close(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if self.closed == -1: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("_yaml.CEmitter.close", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1286 + * self.closed = 1 + * + * def serialize(self, node): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_version_directive_t version_directive_value + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_13serialize(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_13serialize(PyObject *__pyx_v_self, PyObject *__pyx_v_node) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("serialize (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_12serialize(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self), ((PyObject *)__pyx_v_node)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_12serialize(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node) { + yaml_event_t __pyx_v_event; + yaml_version_directive_t __pyx_v_version_directive_value; + yaml_version_directive_t *__pyx_v_version_directive; + yaml_tag_directive_t __pyx_v_tag_directives_value[0x80]; + yaml_tag_directive_t *__pyx_v_tag_directives_start; + yaml_tag_directive_t *__pyx_v_tag_directives_end; + PyObject *__pyx_v_cache = NULL; + PyObject *__pyx_v_handle = NULL; + PyObject *__pyx_v_prefix = NULL; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + __Pyx_RefNannySetupContext("serialize", 0); + + /* "_yaml.pyx":1293 + * cdef yaml_tag_directive_t *tag_directives_start + * cdef yaml_tag_directive_t *tag_directives_end + * if self.closed == -1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is not opened") + */ + switch (__pyx_v_self->closed) { + case -1L: + + /* "_yaml.pyx":1294 + * cdef yaml_tag_directive_t *tag_directives_end + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is not opened") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1295 + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is not opened") # <<<<<<<<<<<<<< + * else: + * raise SerializerError(u"serializer is not opened") + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_serializer_is_not_opened) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_serializer_is_not_opened); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1295, __pyx_L1_error) + + /* "_yaml.pyx":1294 + * cdef yaml_tag_directive_t *tag_directives_end + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is not opened") + * else: + */ + } + + /* "_yaml.pyx":1297 + * raise SerializerError("serializer is not opened") + * else: + * raise SerializerError(u"serializer is not opened") # <<<<<<<<<<<<<< + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_u_serializer_is_not_opened) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_serializer_is_not_opened); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1297, __pyx_L1_error) + } + + /* "_yaml.pyx":1293 + * cdef yaml_tag_directive_t *tag_directives_start + * cdef yaml_tag_directive_t *tag_directives_end + * if self.closed == -1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is not opened") + */ + break; + case 1: + + /* "_yaml.pyx":1299 + * raise SerializerError(u"serializer is not opened") + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1300 + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is closed") # <<<<<<<<<<<<<< + * else: + * raise SerializerError(u"serializer is closed") + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_serializer_is_closed) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_serializer_is_closed); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1300, __pyx_L1_error) + + /* "_yaml.pyx":1299 + * raise SerializerError(u"serializer is not opened") + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + } + + /* "_yaml.pyx":1302 + * raise SerializerError("serializer is closed") + * else: + * raise SerializerError(u"serializer is closed") # <<<<<<<<<<<<<< + * cache = [] + * version_directive = NULL + */ + /*else*/ { + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_u_serializer_is_closed) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_serializer_is_closed); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1302, __pyx_L1_error) + } + + /* "_yaml.pyx":1298 + * else: + * raise SerializerError(u"serializer is not opened") + * elif self.closed == 1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is closed") + */ + break; + default: break; + } + + /* "_yaml.pyx":1303 + * else: + * raise SerializerError(u"serializer is closed") + * cache = [] # <<<<<<<<<<<<<< + * version_directive = NULL + * if self.use_version: + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_cache = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "_yaml.pyx":1304 + * raise SerializerError(u"serializer is closed") + * cache = [] + * version_directive = NULL # <<<<<<<<<<<<<< + * if self.use_version: + * version_directive_value.major = self.use_version[0] + */ + __pyx_v_version_directive = NULL; + + /* "_yaml.pyx":1305 + * cache = [] + * version_directive = NULL + * if self.use_version: # <<<<<<<<<<<<<< + * version_directive_value.major = self.use_version[0] + * version_directive_value.minor = self.use_version[1] + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->use_version); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1305, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":1306 + * version_directive = NULL + * if self.use_version: + * version_directive_value.major = self.use_version[0] # <<<<<<<<<<<<<< + * version_directive_value.minor = self.use_version[1] + * version_directive = &version_directive_value + */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->use_version, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1306, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_version_directive_value.major = __pyx_t_5; + + /* "_yaml.pyx":1307 + * if self.use_version: + * version_directive_value.major = self.use_version[0] + * version_directive_value.minor = self.use_version[1] # <<<<<<<<<<<<<< + * version_directive = &version_directive_value + * tag_directives_start = NULL + */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_self->use_version, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1307, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_version_directive_value.minor = __pyx_t_5; + + /* "_yaml.pyx":1308 + * version_directive_value.major = self.use_version[0] + * version_directive_value.minor = self.use_version[1] + * version_directive = &version_directive_value # <<<<<<<<<<<<<< + * tag_directives_start = NULL + * tag_directives_end = NULL + */ + __pyx_v_version_directive = (&__pyx_v_version_directive_value); + + /* "_yaml.pyx":1305 + * cache = [] + * version_directive = NULL + * if self.use_version: # <<<<<<<<<<<<<< + * version_directive_value.major = self.use_version[0] + * version_directive_value.minor = self.use_version[1] + */ + } + + /* "_yaml.pyx":1309 + * version_directive_value.minor = self.use_version[1] + * version_directive = &version_directive_value + * tag_directives_start = NULL # <<<<<<<<<<<<<< + * tag_directives_end = NULL + * if self.use_tags: + */ + __pyx_v_tag_directives_start = NULL; + + /* "_yaml.pyx":1310 + * version_directive = &version_directive_value + * tag_directives_start = NULL + * tag_directives_end = NULL # <<<<<<<<<<<<<< + * if self.use_tags: + * if len(self.use_tags) > 128: + */ + __pyx_v_tag_directives_end = NULL; + + /* "_yaml.pyx":1311 + * tag_directives_start = NULL + * tag_directives_end = NULL + * if self.use_tags: # <<<<<<<<<<<<<< + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->use_tags); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1311, __pyx_L1_error) + if (__pyx_t_1) { + + /* "_yaml.pyx":1312 + * tag_directives_end = NULL + * if self.use_tags: + * if len(self.use_tags) > 128: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") + */ + __pyx_t_2 = __pyx_v_self->use_tags; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_6 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1312, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((__pyx_t_6 > 0x80) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1313 + * if self.use_tags: + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("too many tags") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1314 + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"too many tags") + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1314, __pyx_L1_error) + + /* "_yaml.pyx":1313 + * if self.use_tags: + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("too many tags") + * else: + */ + } + + /* "_yaml.pyx":1316 + * raise ValueError("too many tags") + * else: + * raise ValueError(u"too many tags") # <<<<<<<<<<<<<< + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value + */ + /*else*/ { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(0, 1316, __pyx_L1_error) + } + + /* "_yaml.pyx":1312 + * tag_directives_end = NULL + * if self.use_tags: + * if len(self.use_tags) > 128: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") + */ + } + + /* "_yaml.pyx":1317 + * else: + * raise ValueError(u"too many tags") + * tag_directives_start = tag_directives_value # <<<<<<<<<<<<<< + * tag_directives_end = tag_directives_value + * for handle in self.use_tags: + */ + __pyx_v_tag_directives_start = __pyx_v_tag_directives_value; + + /* "_yaml.pyx":1318 + * raise ValueError(u"too many tags") + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value # <<<<<<<<<<<<<< + * for handle in self.use_tags: + * prefix = self.use_tags[handle] + */ + __pyx_v_tag_directives_end = __pyx_v_tag_directives_value; + + /* "_yaml.pyx":1319 + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value + * for handle in self.use_tags: # <<<<<<<<<<<<<< + * prefix = self.use_tags[handle] + * if PyUnicode_CheckExact(handle): + */ + if (likely(PyList_CheckExact(__pyx_v_self->use_tags)) || PyTuple_CheckExact(__pyx_v_self->use_tags)) { + __pyx_t_2 = __pyx_v_self->use_tags; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_self->use_tags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1319, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1319, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1319, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_7(__pyx_t_2); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1319, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_handle, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":1320 + * tag_directives_end = tag_directives_value + * for handle in self.use_tags: + * prefix = self.use_tags[handle] # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(handle): + * handle = PyUnicode_AsUTF8String(handle) + */ + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->use_tags, __pyx_v_handle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":1321 + * for handle in self.use_tags: + * prefix = self.use_tags[handle] + * if PyUnicode_CheckExact(handle): # <<<<<<<<<<<<<< + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + */ + __pyx_t_1 = (PyUnicode_CheckExact(__pyx_v_handle) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1322 + * prefix = self.use_tags[handle] + * if PyUnicode_CheckExact(handle): + * handle = PyUnicode_AsUTF8String(handle) # <<<<<<<<<<<<<< + * cache.append(handle) + * if not PyString_CheckExact(handle): + */ + __pyx_t_3 = PyUnicode_AsUTF8String(__pyx_v_handle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_handle, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":1323 + * if PyUnicode_CheckExact(handle): + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_cache, __pyx_v_handle); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1323, __pyx_L1_error) + + /* "_yaml.pyx":1321 + * for handle in self.use_tags: + * prefix = self.use_tags[handle] + * if PyUnicode_CheckExact(handle): # <<<<<<<<<<<<<< + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + */ + } + + /* "_yaml.pyx":1324 + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + * if not PyString_CheckExact(handle): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") + */ + __pyx_t_1 = ((!(PyString_CheckExact(__pyx_v_handle) != 0)) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1325 + * cache.append(handle) + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag handle must be a string") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1326 + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag handle must be a string") + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 1326, __pyx_L1_error) + + /* "_yaml.pyx":1325 + * cache.append(handle) + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag handle must be a string") + * else: + */ + } + + /* "_yaml.pyx":1328 + * raise TypeError("tag handle must be a string") + * else: + * raise TypeError(u"tag handle must be a string") # <<<<<<<<<<<<<< + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 1328, __pyx_L1_error) + } + + /* "_yaml.pyx":1324 + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + * if not PyString_CheckExact(handle): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") + */ + } + + /* "_yaml.pyx":1329 + * else: + * raise TypeError(u"tag handle must be a string") + * tag_directives_end.handle = PyString_AS_STRING(handle) # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(prefix): + * prefix = PyUnicode_AsUTF8String(prefix) + */ + __pyx_v_tag_directives_end->handle = PyString_AS_STRING(__pyx_v_handle); + + /* "_yaml.pyx":1330 + * raise TypeError(u"tag handle must be a string") + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): # <<<<<<<<<<<<<< + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + */ + __pyx_t_1 = (PyUnicode_CheckExact(__pyx_v_prefix) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1331 + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): + * prefix = PyUnicode_AsUTF8String(prefix) # <<<<<<<<<<<<<< + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + */ + __pyx_t_3 = PyUnicode_AsUTF8String(__pyx_v_prefix); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "_yaml.pyx":1332 + * if PyUnicode_CheckExact(prefix): + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_cache, __pyx_v_prefix); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1332, __pyx_L1_error) + + /* "_yaml.pyx":1330 + * raise TypeError(u"tag handle must be a string") + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): # <<<<<<<<<<<<<< + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + */ + } + + /* "_yaml.pyx":1333 + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + * if not PyString_CheckExact(prefix): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") + */ + __pyx_t_1 = ((!(PyString_CheckExact(__pyx_v_prefix) != 0)) != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1334 + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag prefix must be a string") + * else: + */ + __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1335 + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag prefix must be a string") + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 1335, __pyx_L1_error) + + /* "_yaml.pyx":1334 + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag prefix must be a string") + * else: + */ + } + + /* "_yaml.pyx":1337 + * raise TypeError("tag prefix must be a string") + * else: + * raise TypeError(u"tag prefix must be a string") # <<<<<<<<<<<<<< + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 1337, __pyx_L1_error) + } + + /* "_yaml.pyx":1333 + * prefix = PyUnicode_AsUTF8String(prefix) + * cache.append(prefix) + * if not PyString_CheckExact(prefix): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") + */ + } + + /* "_yaml.pyx":1338 + * else: + * raise TypeError(u"tag prefix must be a string") + * tag_directives_end.prefix = PyString_AS_STRING(prefix) # <<<<<<<<<<<<<< + * tag_directives_end = tag_directives_end+1 + * if yaml_document_start_event_initialize(&event, version_directive, + */ + __pyx_v_tag_directives_end->prefix = PyString_AS_STRING(__pyx_v_prefix); + + /* "_yaml.pyx":1339 + * raise TypeError(u"tag prefix must be a string") + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 # <<<<<<<<<<<<<< + * if yaml_document_start_event_initialize(&event, version_directive, + * tag_directives_start, tag_directives_end, + */ + __pyx_v_tag_directives_end = (__pyx_v_tag_directives_end + 1); + + /* "_yaml.pyx":1319 + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value + * for handle in self.use_tags: # <<<<<<<<<<<<<< + * prefix = self.use_tags[handle] + * if PyUnicode_CheckExact(handle): + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "_yaml.pyx":1311 + * tag_directives_start = NULL + * tag_directives_end = NULL + * if self.use_tags: # <<<<<<<<<<<<<< + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: + */ + } + + /* "_yaml.pyx":1342 + * if yaml_document_start_event_initialize(&event, version_directive, + * tag_directives_start, tag_directives_end, + * self.document_start_implicit) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_1 = ((yaml_document_start_event_initialize((&__pyx_v_event), __pyx_v_version_directive, __pyx_v_tag_directives_start, __pyx_v_tag_directives_end, __pyx_v_self->document_start_implicit) == 0) != 0); + + /* "_yaml.pyx":1340 + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 + * if yaml_document_start_event_initialize(&event, version_directive, # <<<<<<<<<<<<<< + * tag_directives_start, tag_directives_end, + * self.document_start_implicit) == 0: + */ + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1343 + * tag_directives_start, tag_directives_end, + * self.document_start_implicit) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + PyErr_NoMemory(); __PYX_ERR(0, 1343, __pyx_L1_error) + + /* "_yaml.pyx":1340 + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 + * if yaml_document_start_event_initialize(&event, version_directive, # <<<<<<<<<<<<<< + * tag_directives_start, tag_directives_end, + * self.document_start_implicit) == 0: + */ + } + + /* "_yaml.pyx":1344 + * self.document_start_implicit) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_5 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1344, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_5 == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1345 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * self._anchor_node(node) + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_error = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":1346 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * self._anchor_node(node) + * self._serialize_node(node, None, None) + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1346, __pyx_L1_error) + + /* "_yaml.pyx":1344 + * self.document_start_implicit) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1347 + * error = self._emitter_error() + * raise error + * self._anchor_node(node) # <<<<<<<<<<<<<< + * self._serialize_node(node, None, None) + * yaml_document_end_event_initialize(&event, self.document_end_implicit) + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_node); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(0, 1347, __pyx_L1_error) + + /* "_yaml.pyx":1348 + * raise error + * self._anchor_node(node) + * self._serialize_node(node, None, None) # <<<<<<<<<<<<<< + * yaml_document_end_event_initialize(&event, self.document_end_implicit) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_serialize_node(__pyx_v_self, __pyx_v_node, Py_None, Py_None); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(0, 1348, __pyx_L1_error) + + /* "_yaml.pyx":1349 + * self._anchor_node(node) + * self._serialize_node(node, None, None) + * yaml_document_end_event_initialize(&event, self.document_end_implicit) # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + (void)(yaml_document_end_event_initialize((&__pyx_v_event), __pyx_v_self->document_end_implicit)); + + /* "_yaml.pyx":1350 + * self._serialize_node(node, None, None) + * yaml_document_end_event_initialize(&event, self.document_end_implicit) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_5 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1350, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_5 == 0) != 0); + if (unlikely(__pyx_t_1)) { + + /* "_yaml.pyx":1351 + * yaml_document_end_event_initialize(&event, self.document_end_implicit) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * self.serialized_nodes = {} + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_error = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":1352 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * self.serialized_nodes = {} + * self.anchors = {} + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1352, __pyx_L1_error) + + /* "_yaml.pyx":1350 + * self._serialize_node(node, None, None) + * yaml_document_end_event_initialize(&event, self.document_end_implicit) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1353 + * error = self._emitter_error() + * raise error + * self.serialized_nodes = {} # <<<<<<<<<<<<<< + * self.anchors = {} + * self.last_alias_id = 0 + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->serialized_nodes); + __Pyx_DECREF(__pyx_v_self->serialized_nodes); + __pyx_v_self->serialized_nodes = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":1354 + * raise error + * self.serialized_nodes = {} + * self.anchors = {} # <<<<<<<<<<<<<< + * self.last_alias_id = 0 + * + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->anchors); + __Pyx_DECREF(__pyx_v_self->anchors); + __pyx_v_self->anchors = __pyx_t_2; + __pyx_t_2 = 0; + + /* "_yaml.pyx":1355 + * self.serialized_nodes = {} + * self.anchors = {} + * self.last_alias_id = 0 # <<<<<<<<<<<<<< + * + * cdef int _anchor_node(self, object node) except 0: + */ + __pyx_v_self->last_alias_id = 0; + + /* "_yaml.pyx":1286 + * self.closed = 1 + * + * def serialize(self, node): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_version_directive_t version_directive_value + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("_yaml.CEmitter.serialize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cache); + __Pyx_XDECREF(__pyx_v_handle); + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1357 + * self.last_alias_id = 0 + * + * cdef int _anchor_node(self, object node) except 0: # <<<<<<<<<<<<<< + * if node in self.anchors: + * if self.anchors[node] is None: + */ + +static int __pyx_f_5_yaml_8CEmitter__anchor_node(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node) { + PyObject *__pyx_v_node_class = NULL; + PyObject *__pyx_v_item = NULL; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_value = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + __Pyx_RefNannySetupContext("_anchor_node", 0); + + /* "_yaml.pyx":1358 + * + * cdef int _anchor_node(self, object node) except 0: + * if node in self.anchors: # <<<<<<<<<<<<<< + * if self.anchors[node] is None: + * self.last_alias_id = self.last_alias_id+1 + */ + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_node, __pyx_v_self->anchors, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1358, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1359 + * cdef int _anchor_node(self, object node) except 0: + * if node in self.anchors: + * if self.anchors[node] is None: # <<<<<<<<<<<<<< + * self.last_alias_id = self.last_alias_id+1 + * self.anchors[node] = u"id%03d" % self.last_alias_id + */ + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = (__pyx_t_3 == Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1360 + * if node in self.anchors: + * if self.anchors[node] is None: + * self.last_alias_id = self.last_alias_id+1 # <<<<<<<<<<<<<< + * self.anchors[node] = u"id%03d" % self.last_alias_id + * else: + */ + __pyx_v_self->last_alias_id = (__pyx_v_self->last_alias_id + 1); + + /* "_yaml.pyx":1361 + * if self.anchors[node] is None: + * self.last_alias_id = self.last_alias_id+1 + * self.anchors[node] = u"id%03d" % self.last_alias_id # <<<<<<<<<<<<<< + * else: + * self.anchors[node] = None + */ + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->last_alias_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_id_03d, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(PyObject_SetItem(__pyx_v_self->anchors, __pyx_v_node, __pyx_t_4) < 0)) __PYX_ERR(0, 1361, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "_yaml.pyx":1359 + * cdef int _anchor_node(self, object node) except 0: + * if node in self.anchors: + * if self.anchors[node] is None: # <<<<<<<<<<<<<< + * self.last_alias_id = self.last_alias_id+1 + * self.anchors[node] = u"id%03d" % self.last_alias_id + */ + } + + /* "_yaml.pyx":1358 + * + * cdef int _anchor_node(self, object node) except 0: + * if node in self.anchors: # <<<<<<<<<<<<<< + * if self.anchors[node] is None: + * self.last_alias_id = self.last_alias_id+1 + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1363 + * self.anchors[node] = u"id%03d" % self.last_alias_id + * else: + * self.anchors[node] = None # <<<<<<<<<<<<<< + * node_class = node.__class__ + * if node_class is SequenceNode: + */ + /*else*/ { + if (unlikely(PyObject_SetItem(__pyx_v_self->anchors, __pyx_v_node, Py_None) < 0)) __PYX_ERR(0, 1363, __pyx_L1_error) + + /* "_yaml.pyx":1364 + * else: + * self.anchors[node] = None + * node_class = node.__class__ # <<<<<<<<<<<<<< + * if node_class is SequenceNode: + * for item in node.value: + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_node_class = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_yaml.pyx":1365 + * self.anchors[node] = None + * node_class = node.__class__ + * if node_class is SequenceNode: # <<<<<<<<<<<<<< + * for item in node.value: + * self._anchor_node(item) + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = (__pyx_v_node_class == __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1366 + * node_class = node.__class__ + * if node_class is SequenceNode: + * for item in node.value: # <<<<<<<<<<<<<< + * self._anchor_node(item) + * elif node_class is MappingNode: + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1366, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1366, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1366, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1366, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "_yaml.pyx":1367 + * if node_class is SequenceNode: + * for item in node.value: + * self._anchor_node(item) # <<<<<<<<<<<<<< + * elif node_class is MappingNode: + * for key, value in node.value: + */ + __pyx_t_7 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_item); if (unlikely(__pyx_t_7 == ((int)0))) __PYX_ERR(0, 1367, __pyx_L1_error) + + /* "_yaml.pyx":1366 + * node_class = node.__class__ + * if node_class is SequenceNode: + * for item in node.value: # <<<<<<<<<<<<<< + * self._anchor_node(item) + * elif node_class is MappingNode: + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "_yaml.pyx":1365 + * self.anchors[node] = None + * node_class = node.__class__ + * if node_class is SequenceNode: # <<<<<<<<<<<<<< + * for item in node.value: + * self._anchor_node(item) + */ + goto __pyx_L5; + } + + /* "_yaml.pyx":1368 + * for item in node.value: + * self._anchor_node(item) + * elif node_class is MappingNode: # <<<<<<<<<<<<<< + * for key, value in node.value: + * self._anchor_node(key) + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = (__pyx_v_node_class == __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "_yaml.pyx":1369 + * self._anchor_node(item) + * elif node_class is MappingNode: + * for key, value in node.value: # <<<<<<<<<<<<<< + * self._anchor_node(key) + * self._anchor_node(value) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1369, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1369, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1369, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_6(__pyx_t_4); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1369, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 1369, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_8 = PyList_GET_ITEM(sequence, 0); + __pyx_t_9 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L10_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 1369, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L11_unpacking_done; + __pyx_L10_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 1369, __pyx_L1_error) + __pyx_L11_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9); + __pyx_t_9 = 0; + + /* "_yaml.pyx":1370 + * elif node_class is MappingNode: + * for key, value in node.value: + * self._anchor_node(key) # <<<<<<<<<<<<<< + * self._anchor_node(value) + * return 1 + */ + __pyx_t_7 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_key); if (unlikely(__pyx_t_7 == ((int)0))) __PYX_ERR(0, 1370, __pyx_L1_error) + + /* "_yaml.pyx":1371 + * for key, value in node.value: + * self._anchor_node(key) + * self._anchor_node(value) # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_7 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_value); if (unlikely(__pyx_t_7 == ((int)0))) __PYX_ERR(0, 1371, __pyx_L1_error) + + /* "_yaml.pyx":1369 + * self._anchor_node(item) + * elif node_class is MappingNode: + * for key, value in node.value: # <<<<<<<<<<<<<< + * self._anchor_node(key) + * self._anchor_node(value) + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "_yaml.pyx":1368 + * for item in node.value: + * self._anchor_node(item) + * elif node_class is MappingNode: # <<<<<<<<<<<<<< + * for key, value in node.value: + * self._anchor_node(key) + */ + } + __pyx_L5:; + } + __pyx_L3:; + + /* "_yaml.pyx":1372 + * self._anchor_node(key) + * self._anchor_node(value) + * return 1 # <<<<<<<<<<<<<< + * + * cdef int _serialize_node(self, object node, object parent, object index) except 0: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "_yaml.pyx":1357 + * self.last_alias_id = 0 + * + * cdef int _anchor_node(self, object node) except 0: # <<<<<<<<<<<<<< + * if node in self.anchors: + * if self.anchors[node] is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("_yaml.CEmitter._anchor_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_node_class); + __Pyx_XDECREF(__pyx_v_item); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1374 + * return 1 + * + * cdef int _serialize_node(self, object node, object parent, object index) except 0: # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int implicit + */ + +static int __pyx_f_5_yaml_8CEmitter__serialize_node(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_parent, PyObject *__pyx_v_index) { + yaml_event_t __pyx_v_event; + int __pyx_v_implicit; + int __pyx_v_plain_implicit; + int __pyx_v_quoted_implicit; + char *__pyx_v_anchor; + char *__pyx_v_tag; + char *__pyx_v_value; + int __pyx_v_length; + int __pyx_v_item_index; + yaml_scalar_style_t __pyx_v_scalar_style; + yaml_sequence_style_t __pyx_v_sequence_style; + yaml_mapping_style_t __pyx_v_mapping_style; + PyObject *__pyx_v_anchor_object = NULL; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_v_node_class = NULL; + PyObject *__pyx_v_tag_object = NULL; + PyObject *__pyx_v_value_object = NULL; + PyObject *__pyx_v_style_object = NULL; + PyObject *__pyx_v_item = NULL; + PyObject *__pyx_v_item_key = NULL; + PyObject *__pyx_v_item_value = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + Py_ssize_t __pyx_t_10; + PyObject *(*__pyx_t_11)(PyObject *); + PyObject *(*__pyx_t_12)(PyObject *); + __Pyx_RefNannySetupContext("_serialize_node", 0); + + /* "_yaml.pyx":1387 + * cdef yaml_sequence_style_t sequence_style + * cdef yaml_mapping_style_t mapping_style + * anchor_object = self.anchors[node] # <<<<<<<<<<<<<< + * anchor = NULL + * if anchor_object is not None: + */ + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_anchor_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1388 + * cdef yaml_mapping_style_t mapping_style + * anchor_object = self.anchors[node] + * anchor = NULL # <<<<<<<<<<<<<< + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + */ + __pyx_v_anchor = NULL; + + /* "_yaml.pyx":1389 + * anchor_object = self.anchors[node] + * anchor = NULL + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + __pyx_t_2 = (__pyx_v_anchor_object != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1390 + * anchor = NULL + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + __pyx_t_3 = (PyUnicode_CheckExact(__pyx_v_anchor_object) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1391 + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_anchor_object); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":1390 + * anchor = NULL + * if anchor_object is not None: + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + } + + /* "_yaml.pyx":1392 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + __pyx_t_3 = ((!(PyString_CheckExact(__pyx_v_anchor_object) != 0)) != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1393 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_3)) { + + /* "_yaml.pyx":1394 + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"anchor must be a string") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1394, __pyx_L1_error) + + /* "_yaml.pyx":1393 + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("anchor must be a string") + * else: + */ + } + + /* "_yaml.pyx":1396 + * raise TypeError("anchor must be a string") + * else: + * raise TypeError(u"anchor must be a string") # <<<<<<<<<<<<<< + * anchor = PyString_AS_STRING(anchor_object) + * if node in self.serialized_nodes: + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1396, __pyx_L1_error) + } + + /* "_yaml.pyx":1392 + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") + */ + } + + /* "_yaml.pyx":1397 + * else: + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) # <<<<<<<<<<<<<< + * if node in self.serialized_nodes: + * if yaml_alias_event_initialize(&event, anchor) == 0: + */ + __pyx_v_anchor = PyString_AS_STRING(__pyx_v_anchor_object); + + /* "_yaml.pyx":1389 + * anchor_object = self.anchors[node] + * anchor = NULL + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "_yaml.pyx":1398 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * if node in self.serialized_nodes: # <<<<<<<<<<<<<< + * if yaml_alias_event_initialize(&event, anchor) == 0: + * raise MemoryError + */ + __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_node, __pyx_v_self->serialized_nodes, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1398, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1399 + * anchor = PyString_AS_STRING(anchor_object) + * if node in self.serialized_nodes: + * if yaml_alias_event_initialize(&event, anchor) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_2 = ((yaml_alias_event_initialize((&__pyx_v_event), __pyx_v_anchor) == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1400 + * if node in self.serialized_nodes: + * if yaml_alias_event_initialize(&event, anchor) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + PyErr_NoMemory(); __PYX_ERR(0, 1400, __pyx_L1_error) + + /* "_yaml.pyx":1399 + * anchor = PyString_AS_STRING(anchor_object) + * if node in self.serialized_nodes: + * if yaml_alias_event_initialize(&event, anchor) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + } + + /* "_yaml.pyx":1401 + * if yaml_alias_event_initialize(&event, anchor) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_4 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1401, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_4 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1402 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * else: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1403 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * else: + * node_class = node.__class__ + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1403, __pyx_L1_error) + + /* "_yaml.pyx":1401 + * if yaml_alias_event_initialize(&event, anchor) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1398 + * raise TypeError(u"anchor must be a string") + * anchor = PyString_AS_STRING(anchor_object) + * if node in self.serialized_nodes: # <<<<<<<<<<<<<< + * if yaml_alias_event_initialize(&event, anchor) == 0: + * raise MemoryError + */ + goto __pyx_L7; + } + + /* "_yaml.pyx":1405 + * raise error + * else: + * node_class = node.__class__ # <<<<<<<<<<<<<< + * self.serialized_nodes[node] = True + * self.descend_resolver(parent, index) + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_node_class = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1406 + * else: + * node_class = node.__class__ + * self.serialized_nodes[node] = True # <<<<<<<<<<<<<< + * self.descend_resolver(parent, index) + * if node_class is ScalarNode: + */ + if (unlikely(PyObject_SetItem(__pyx_v_self->serialized_nodes, __pyx_v_node, Py_True) < 0)) __PYX_ERR(0, 1406, __pyx_L1_error) + + /* "_yaml.pyx":1407 + * node_class = node.__class__ + * self.serialized_nodes[node] = True + * self.descend_resolver(parent, index) # <<<<<<<<<<<<<< + * if node_class is ScalarNode: + * plain_implicit = 0 + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_descend_resolver); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_parent, __pyx_v_index}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1407, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_parent, __pyx_v_index}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1407, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_7 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_INCREF(__pyx_v_parent); + __Pyx_GIVEREF(__pyx_v_parent); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_4, __pyx_v_parent); + __Pyx_INCREF(__pyx_v_index); + __Pyx_GIVEREF(__pyx_v_index); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_4, __pyx_v_index); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":1408 + * self.serialized_nodes[node] = True + * self.descend_resolver(parent, index) + * if node_class is ScalarNode: # <<<<<<<<<<<<<< + * plain_implicit = 0 + * quoted_implicit = 0 + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__pyx_v_node_class == __pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1409 + * self.descend_resolver(parent, index) + * if node_class is ScalarNode: + * plain_implicit = 0 # <<<<<<<<<<<<<< + * quoted_implicit = 0 + * tag_object = node.tag + */ + __pyx_v_plain_implicit = 0; + + /* "_yaml.pyx":1410 + * if node_class is ScalarNode: + * plain_implicit = 0 + * quoted_implicit = 0 # <<<<<<<<<<<<<< + * tag_object = node.tag + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + */ + __pyx_v_quoted_implicit = 0; + + /* "_yaml.pyx":1411 + * plain_implicit = 0 + * quoted_implicit = 0 + * tag_object = node.tag # <<<<<<<<<<<<<< + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + * plain_implicit = 1 + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tag_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1412 + * quoted_implicit = 0 + * tag_object = node.tag + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: # <<<<<<<<<<<<<< + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_7, __pyx_t_6, __pyx_tuple__36}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_7, __pyx_t_6, __pyx_tuple__36}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_4, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_4, __pyx_t_6); + __Pyx_INCREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_4, __pyx_tuple__36); + __pyx_t_7 = 0; + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1413 + * tag_object = node.tag + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + * plain_implicit = 1 # <<<<<<<<<<<<<< + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + * quoted_implicit = 1 + */ + __pyx_v_plain_implicit = 1; + + /* "_yaml.pyx":1412 + * quoted_implicit = 0 + * tag_object = node.tag + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: # <<<<<<<<<<<<<< + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + */ + } + + /* "_yaml.pyx":1414 + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: # <<<<<<<<<<<<<< + * quoted_implicit = 1 + * tag = NULL + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_9, __pyx_t_6, __pyx_tuple__37}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_9, __pyx_t_6, __pyx_tuple__37}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_t_6); + __Pyx_INCREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_tuple__37); + __pyx_t_9 = 0; + __pyx_t_6 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1415 + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + * quoted_implicit = 1 # <<<<<<<<<<<<<< + * tag = NULL + * if tag_object is not None: + */ + __pyx_v_quoted_implicit = 1; + + /* "_yaml.pyx":1414 + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: # <<<<<<<<<<<<<< + * quoted_implicit = 1 + * tag = NULL + */ + } + + /* "_yaml.pyx":1416 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + * quoted_implicit = 1 + * tag = NULL # <<<<<<<<<<<<<< + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + */ + __pyx_v_tag = NULL; + + /* "_yaml.pyx":1417 + * quoted_implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + __pyx_t_3 = (__pyx_v_tag_object != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1418 + * tag = NULL + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_tag_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1419 + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tag_object); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":1418 + * tag = NULL + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + } + + /* "_yaml.pyx":1420 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_tag_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1421 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1422 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1422, __pyx_L1_error) + + /* "_yaml.pyx":1421 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + } + + /* "_yaml.pyx":1424 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * value_object = node.value + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1424, __pyx_L1_error) + } + + /* "_yaml.pyx":1420 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + } + + /* "_yaml.pyx":1425 + * else: + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) # <<<<<<<<<<<<<< + * value_object = node.value + * if PyUnicode_CheckExact(value_object): + */ + __pyx_v_tag = PyString_AS_STRING(__pyx_v_tag_object); + + /* "_yaml.pyx":1417 + * quoted_implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "_yaml.pyx":1426 + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) + * value_object = node.value # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_value_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1427 + * tag = PyString_AS_STRING(tag_object) + * value_object = node.value + * if PyUnicode_CheckExact(value_object): # <<<<<<<<<<<<<< + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_value_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1428 + * value_object = node.value + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_value_object); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value_object, __pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":1427 + * tag = PyString_AS_STRING(tag_object) + * value_object = node.value + * if PyUnicode_CheckExact(value_object): # <<<<<<<<<<<<<< + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + */ + } + + /* "_yaml.pyx":1429 + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_value_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1430 + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("value must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1431 + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"value must be a string") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1431, __pyx_L1_error) + + /* "_yaml.pyx":1430 + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("value must be a string") + * else: + */ + } + + /* "_yaml.pyx":1433 + * raise TypeError("value must be a string") + * else: + * raise TypeError(u"value must be a string") # <<<<<<<<<<<<<< + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1433, __pyx_L1_error) + } + + /* "_yaml.pyx":1429 + * if PyUnicode_CheckExact(value_object): + * value_object = PyUnicode_AsUTF8String(value_object) + * if not PyString_CheckExact(value_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") + */ + } + + /* "_yaml.pyx":1434 + * else: + * raise TypeError(u"value must be a string") + * value = PyString_AS_STRING(value_object) # <<<<<<<<<<<<<< + * length = PyString_GET_SIZE(value_object) + * style_object = node.style + */ + __pyx_v_value = PyString_AS_STRING(__pyx_v_value_object); + + /* "_yaml.pyx":1435 + * raise TypeError(u"value must be a string") + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) # <<<<<<<<<<<<<< + * style_object = node.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE + */ + __pyx_v_length = PyString_GET_SIZE(__pyx_v_value_object); + + /* "_yaml.pyx":1436 + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) + * style_object = node.style # <<<<<<<<<<<<<< + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_style); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_style_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1437 + * length = PyString_GET_SIZE(value_object) + * style_object = node.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE # <<<<<<<<<<<<<< + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_PLAIN_SCALAR_STYLE; + + /* "_yaml.pyx":1438 + * style_object = node.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": # <<<<<<<<<<<<<< + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__7, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1438, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L21_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__7, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1438, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L21_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1439 + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE # <<<<<<<<<<<<<< + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE; + + /* "_yaml.pyx":1438 + * style_object = node.style + * scalar_style = YAML_PLAIN_SCALAR_STYLE + * if style_object == "'" or style_object == u"'": # <<<<<<<<<<<<<< + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": + */ + goto __pyx_L20; + } + + /* "_yaml.pyx":1440 + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": # <<<<<<<<<<<<<< + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1440, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L23_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1440, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L23_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1441 + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE # <<<<<<<<<<<<<< + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE; + + /* "_yaml.pyx":1440 + * if style_object == "'" or style_object == u"'": + * scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + * elif style_object == "\"" or style_object == u"\"": # <<<<<<<<<<<<<< + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": + */ + goto __pyx_L20; + } + + /* "_yaml.pyx":1442 + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": # <<<<<<<<<<<<<< + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__9, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1442, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L25_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__9, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1442, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L25_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1443 + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE # <<<<<<<<<<<<<< + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE + */ + __pyx_v_scalar_style = YAML_LITERAL_SCALAR_STYLE; + + /* "_yaml.pyx":1442 + * elif style_object == "\"" or style_object == u"\"": + * scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + * elif style_object == "|" or style_object == u"|": # <<<<<<<<<<<<<< + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": + */ + goto __pyx_L20; + } + + /* "_yaml.pyx":1444 + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": # <<<<<<<<<<<<<< + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, + */ + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__10, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1444, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L27_bool_binop_done; + } + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__10, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1444, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L27_bool_binop_done:; + if (__pyx_t_2) { + + /* "_yaml.pyx":1445 + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE # <<<<<<<<<<<<<< + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, + * plain_implicit, quoted_implicit, scalar_style) == 0: + */ + __pyx_v_scalar_style = YAML_FOLDED_SCALAR_STYLE; + + /* "_yaml.pyx":1444 + * elif style_object == "|" or style_object == u"|": + * scalar_style = YAML_LITERAL_SCALAR_STYLE + * elif style_object == ">" or style_object == u">": # <<<<<<<<<<<<<< + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, + */ + } + __pyx_L20:; + + /* "_yaml.pyx":1447 + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, + * plain_implicit, quoted_implicit, scalar_style) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_2 = ((yaml_scalar_event_initialize((&__pyx_v_event), __pyx_v_anchor, __pyx_v_tag, __pyx_v_value, __pyx_v_length, __pyx_v_plain_implicit, __pyx_v_quoted_implicit, __pyx_v_scalar_style) == 0) != 0); + + /* "_yaml.pyx":1446 + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, # <<<<<<<<<<<<<< + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1448 + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + PyErr_NoMemory(); __PYX_ERR(0, 1448, __pyx_L1_error) + + /* "_yaml.pyx":1446 + * elif style_object == ">" or style_object == u">": + * scalar_style = YAML_FOLDED_SCALAR_STYLE + * if yaml_scalar_event_initialize(&event, anchor, tag, value, length, # <<<<<<<<<<<<<< + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1449 + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_4 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1449, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_4 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1450 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * elif node_class is SequenceNode: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1451 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * elif node_class is SequenceNode: + * implicit = 0 + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1451, __pyx_L1_error) + + /* "_yaml.pyx":1449 + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1408 + * self.serialized_nodes[node] = True + * self.descend_resolver(parent, index) + * if node_class is ScalarNode: # <<<<<<<<<<<<<< + * plain_implicit = 0 + * quoted_implicit = 0 + */ + goto __pyx_L10; + } + + /* "_yaml.pyx":1452 + * error = self._emitter_error() + * raise error + * elif node_class is SequenceNode: # <<<<<<<<<<<<<< + * implicit = 0 + * tag_object = node.tag + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__pyx_v_node_class == __pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1453 + * raise error + * elif node_class is SequenceNode: + * implicit = 0 # <<<<<<<<<<<<<< + * tag_object = node.tag + * if self.resolve(SequenceNode, node.value, True) == tag_object: + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":1454 + * elif node_class is SequenceNode: + * implicit = 0 + * tag_object = node.tag # <<<<<<<<<<<<<< + * if self.resolve(SequenceNode, node.value, True) == tag_object: + * implicit = 1 + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tag_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1455 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(SequenceNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_8, __pyx_t_6, Py_True}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_8, __pyx_t_6, Py_True}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_7 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_4, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_4, __pyx_t_6); + __Pyx_INCREF(Py_True); + __Pyx_GIVEREF(Py_True); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_4, Py_True); + __pyx_t_8 = 0; + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1455, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1456 + * tag_object = node.tag + * if self.resolve(SequenceNode, node.value, True) == tag_object: + * implicit = 1 # <<<<<<<<<<<<<< + * tag = NULL + * if tag_object is not None: + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":1455 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(SequenceNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + } + + /* "_yaml.pyx":1457 + * if self.resolve(SequenceNode, node.value, True) == tag_object: + * implicit = 1 + * tag = NULL # <<<<<<<<<<<<<< + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + */ + __pyx_v_tag = NULL; + + /* "_yaml.pyx":1458 + * implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + __pyx_t_3 = (__pyx_v_tag_object != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1459 + * tag = NULL + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_tag_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1460 + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_5 = PyUnicode_AsUTF8String(__pyx_v_tag_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":1459 + * tag = NULL + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + } + + /* "_yaml.pyx":1461 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_tag_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1462 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1463 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 1463, __pyx_L1_error) + + /* "_yaml.pyx":1462 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + } + + /* "_yaml.pyx":1465 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + */ + /*else*/ { + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 1465, __pyx_L1_error) + } + + /* "_yaml.pyx":1461 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + } + + /* "_yaml.pyx":1466 + * else: + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) # <<<<<<<<<<<<<< + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if node.flow_style: + */ + __pyx_v_tag = PyString_AS_STRING(__pyx_v_tag_object); + + /* "_yaml.pyx":1458 + * implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "_yaml.pyx":1467 + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE # <<<<<<<<<<<<<< + * if node.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + */ + __pyx_v_sequence_style = YAML_BLOCK_SEQUENCE_STYLE; + + /* "_yaml.pyx":1468 + * tag = PyString_AS_STRING(tag_object) + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if node.flow_style: # <<<<<<<<<<<<<< + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(&event, anchor, tag, + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_flow_style); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1469 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if node.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE # <<<<<<<<<<<<<< + * if yaml_sequence_start_event_initialize(&event, anchor, tag, + * implicit, sequence_style) == 0: + */ + __pyx_v_sequence_style = YAML_FLOW_SEQUENCE_STYLE; + + /* "_yaml.pyx":1468 + * tag = PyString_AS_STRING(tag_object) + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if node.flow_style: # <<<<<<<<<<<<<< + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(&event, anchor, tag, + */ + } + + /* "_yaml.pyx":1471 + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(&event, anchor, tag, + * implicit, sequence_style) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_2 = ((yaml_sequence_start_event_initialize((&__pyx_v_event), __pyx_v_anchor, __pyx_v_tag, __pyx_v_implicit, __pyx_v_sequence_style) == 0) != 0); + + /* "_yaml.pyx":1470 + * if node.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(&event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, sequence_style) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1472 + * if yaml_sequence_start_event_initialize(&event, anchor, tag, + * implicit, sequence_style) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + PyErr_NoMemory(); __PYX_ERR(0, 1472, __pyx_L1_error) + + /* "_yaml.pyx":1470 + * if node.flow_style: + * sequence_style = YAML_FLOW_SEQUENCE_STYLE + * if yaml_sequence_start_event_initialize(&event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, sequence_style) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1473 + * implicit, sequence_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_4 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1473, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_4 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1474 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * item_index = 0 + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_error = __pyx_t_5; + __pyx_t_5 = 0; + + /* "_yaml.pyx":1475 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * item_index = 0 + * for item in node.value: + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1475, __pyx_L1_error) + + /* "_yaml.pyx":1473 + * implicit, sequence_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1476 + * error = self._emitter_error() + * raise error + * item_index = 0 # <<<<<<<<<<<<<< + * for item in node.value: + * self._serialize_node(item, node, item_index) + */ + __pyx_v_item_index = 0; + + /* "_yaml.pyx":1477 + * raise error + * item_index = 0 + * for item in node.value: # <<<<<<<<<<<<<< + * self._serialize_node(item, node, item_index) + * item_index = item_index+1 + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { + __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + } else { + __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1477, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + for (;;) { + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1477, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1477, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } + } else { + __pyx_t_5 = __pyx_t_11(__pyx_t_1); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1477, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":1478 + * item_index = 0 + * for item in node.value: + * self._serialize_node(item, node, item_index) # <<<<<<<<<<<<<< + * item_index = item_index+1 + * yaml_sequence_end_event_initialize(&event) + */ + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_item_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_serialize_node(__pyx_v_self, __pyx_v_item, __pyx_v_node, __pyx_t_5); if (unlikely(__pyx_t_4 == ((int)0))) __PYX_ERR(0, 1478, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "_yaml.pyx":1479 + * for item in node.value: + * self._serialize_node(item, node, item_index) + * item_index = item_index+1 # <<<<<<<<<<<<<< + * yaml_sequence_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_v_item_index = (__pyx_v_item_index + 1); + + /* "_yaml.pyx":1477 + * raise error + * item_index = 0 + * for item in node.value: # <<<<<<<<<<<<<< + * self._serialize_node(item, node, item_index) + * item_index = item_index+1 + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":1480 + * self._serialize_node(item, node, item_index) + * item_index = item_index+1 + * yaml_sequence_end_event_initialize(&event) # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + (void)(yaml_sequence_end_event_initialize((&__pyx_v_event))); + + /* "_yaml.pyx":1481 + * item_index = item_index+1 + * yaml_sequence_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_4 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1481, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_4 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1482 + * yaml_sequence_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * elif node_class is MappingNode: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1483 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * elif node_class is MappingNode: + * implicit = 0 + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1483, __pyx_L1_error) + + /* "_yaml.pyx":1481 + * item_index = item_index+1 + * yaml_sequence_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1452 + * error = self._emitter_error() + * raise error + * elif node_class is SequenceNode: # <<<<<<<<<<<<<< + * implicit = 0 + * tag_object = node.tag + */ + goto __pyx_L10; + } + + /* "_yaml.pyx":1484 + * error = self._emitter_error() + * raise error + * elif node_class is MappingNode: # <<<<<<<<<<<<<< + * implicit = 0 + * tag_object = node.tag + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__pyx_v_node_class == __pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "_yaml.pyx":1485 + * raise error + * elif node_class is MappingNode: + * implicit = 0 # <<<<<<<<<<<<<< + * tag_object = node.tag + * if self.resolve(MappingNode, node.value, True) == tag_object: + */ + __pyx_v_implicit = 0; + + /* "_yaml.pyx":1486 + * elif node_class is MappingNode: + * implicit = 0 + * tag_object = node.tag # <<<<<<<<<<<<<< + * if self.resolve(MappingNode, node.value, True) == tag_object: + * implicit = 1 + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tag_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1487 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(MappingNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_7, __pyx_t_6, Py_True}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_7, __pyx_t_6, Py_True}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_4, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_4, __pyx_t_6); + __Pyx_INCREF(Py_True); + __Pyx_GIVEREF(Py_True); + PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_4, Py_True); + __pyx_t_7 = 0; + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1487, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_3) { + + /* "_yaml.pyx":1488 + * tag_object = node.tag + * if self.resolve(MappingNode, node.value, True) == tag_object: + * implicit = 1 # <<<<<<<<<<<<<< + * tag = NULL + * if tag_object is not None: + */ + __pyx_v_implicit = 1; + + /* "_yaml.pyx":1487 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(MappingNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + } + + /* "_yaml.pyx":1489 + * if self.resolve(MappingNode, node.value, True) == tag_object: + * implicit = 1 + * tag = NULL # <<<<<<<<<<<<<< + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + */ + __pyx_v_tag = NULL; + + /* "_yaml.pyx":1490 + * implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + __pyx_t_3 = (__pyx_v_tag_object != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1491 + * tag = NULL + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + __pyx_t_2 = (PyUnicode_CheckExact(__pyx_v_tag_object) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1492 + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) # <<<<<<<<<<<<<< + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_5 = PyUnicode_AsUTF8String(__pyx_v_tag_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_5); + __pyx_t_5 = 0; + + /* "_yaml.pyx":1491 + * tag = NULL + * if tag_object is not None: + * if PyUnicode_CheckExact(tag_object): # <<<<<<<<<<<<<< + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + */ + } + + /* "_yaml.pyx":1493 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + __pyx_t_2 = ((!(PyString_CheckExact(__pyx_v_tag_object) != 0)) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1494 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + __pyx_t_2 = ((PY_MAJOR_VERSION < 3) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1495 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 1495, __pyx_L1_error) + + /* "_yaml.pyx":1494 + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag must be a string") + * else: + */ + } + + /* "_yaml.pyx":1497 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * mapping_style = YAML_BLOCK_MAPPING_STYLE + */ + /*else*/ { + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(0, 1497, __pyx_L1_error) + } + + /* "_yaml.pyx":1493 + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + * if not PyString_CheckExact(tag_object): # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") + */ + } + + /* "_yaml.pyx":1498 + * else: + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) # <<<<<<<<<<<<<< + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if node.flow_style: + */ + __pyx_v_tag = PyString_AS_STRING(__pyx_v_tag_object); + + /* "_yaml.pyx":1490 + * implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "_yaml.pyx":1499 + * raise TypeError(u"tag must be a string") + * tag = PyString_AS_STRING(tag_object) + * mapping_style = YAML_BLOCK_MAPPING_STYLE # <<<<<<<<<<<<<< + * if node.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE + */ + __pyx_v_mapping_style = YAML_BLOCK_MAPPING_STYLE; + + /* "_yaml.pyx":1500 + * tag = PyString_AS_STRING(tag_object) + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if node.flow_style: # <<<<<<<<<<<<<< + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(&event, anchor, tag, + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_flow_style); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1500, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_2) { + + /* "_yaml.pyx":1501 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if node.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE # <<<<<<<<<<<<<< + * if yaml_mapping_start_event_initialize(&event, anchor, tag, + * implicit, mapping_style) == 0: + */ + __pyx_v_mapping_style = YAML_FLOW_MAPPING_STYLE; + + /* "_yaml.pyx":1500 + * tag = PyString_AS_STRING(tag_object) + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if node.flow_style: # <<<<<<<<<<<<<< + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(&event, anchor, tag, + */ + } + + /* "_yaml.pyx":1503 + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(&event, anchor, tag, + * implicit, mapping_style) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_2 = ((yaml_mapping_start_event_initialize((&__pyx_v_event), __pyx_v_anchor, __pyx_v_tag, __pyx_v_implicit, __pyx_v_mapping_style) == 0) != 0); + + /* "_yaml.pyx":1502 + * if node.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(&event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, mapping_style) == 0: + * raise MemoryError + */ + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1504 + * if yaml_mapping_start_event_initialize(&event, anchor, tag, + * implicit, mapping_style) == 0: + * raise MemoryError # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + PyErr_NoMemory(); __PYX_ERR(0, 1504, __pyx_L1_error) + + /* "_yaml.pyx":1502 + * if node.flow_style: + * mapping_style = YAML_FLOW_MAPPING_STYLE + * if yaml_mapping_start_event_initialize(&event, anchor, tag, # <<<<<<<<<<<<<< + * implicit, mapping_style) == 0: + * raise MemoryError + */ + } + + /* "_yaml.pyx":1505 + * implicit, mapping_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_4 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1505, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_4 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1506 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * for item_key, item_value in node.value: + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_error = __pyx_t_5; + __pyx_t_5 = 0; + + /* "_yaml.pyx":1507 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * for item_key, item_value in node.value: + * self._serialize_node(item_key, node, None) + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1507, __pyx_L1_error) + + /* "_yaml.pyx":1505 + * implicit, mapping_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1508 + * error = self._emitter_error() + * raise error + * for item_key, item_value in node.value: # <<<<<<<<<<<<<< + * self._serialize_node(item_key, node, None) + * self._serialize_node(item_value, node, item_key) + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { + __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + } else { + __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1508, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + for (;;) { + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1508, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1508, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } + } else { + __pyx_t_5 = __pyx_t_11(__pyx_t_1); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1508, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_5); + } + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 1508, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_9 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_7); if (unlikely(!__pyx_t_9)) goto __pyx_L52_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L52_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1508, __pyx_L1_error) + __pyx_t_12 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L53_unpacking_done; + __pyx_L52_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_12 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 1508, __pyx_L1_error) + __pyx_L53_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_item_key, __pyx_t_9); + __pyx_t_9 = 0; + __Pyx_XDECREF_SET(__pyx_v_item_value, __pyx_t_6); + __pyx_t_6 = 0; + + /* "_yaml.pyx":1509 + * raise error + * for item_key, item_value in node.value: + * self._serialize_node(item_key, node, None) # <<<<<<<<<<<<<< + * self._serialize_node(item_value, node, item_key) + * yaml_mapping_end_event_initialize(&event) + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_serialize_node(__pyx_v_self, __pyx_v_item_key, __pyx_v_node, Py_None); if (unlikely(__pyx_t_4 == ((int)0))) __PYX_ERR(0, 1509, __pyx_L1_error) + + /* "_yaml.pyx":1510 + * for item_key, item_value in node.value: + * self._serialize_node(item_key, node, None) + * self._serialize_node(item_value, node, item_key) # <<<<<<<<<<<<<< + * yaml_mapping_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_serialize_node(__pyx_v_self, __pyx_v_item_value, __pyx_v_node, __pyx_v_item_key); if (unlikely(__pyx_t_4 == ((int)0))) __PYX_ERR(0, 1510, __pyx_L1_error) + + /* "_yaml.pyx":1508 + * error = self._emitter_error() + * raise error + * for item_key, item_value in node.value: # <<<<<<<<<<<<<< + * self._serialize_node(item_key, node, None) + * self._serialize_node(item_value, node, item_key) + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":1511 + * self._serialize_node(item_key, node, None) + * self._serialize_node(item_value, node, item_key) + * yaml_mapping_end_event_initialize(&event) # <<<<<<<<<<<<<< + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + */ + (void)(yaml_mapping_end_event_initialize((&__pyx_v_event))); + + /* "_yaml.pyx":1512 + * self._serialize_node(item_value, node, item_key) + * yaml_mapping_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + __pyx_t_4 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1512, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_4 == 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "_yaml.pyx":1513 + * yaml_mapping_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * self.ascend_resolver() + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_5_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1514 + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() + * raise error # <<<<<<<<<<<<<< + * self.ascend_resolver() + * return 1 + */ + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(0, 1514, __pyx_L1_error) + + /* "_yaml.pyx":1512 + * self._serialize_node(item_value, node, item_key) + * yaml_mapping_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "_yaml.pyx":1484 + * error = self._emitter_error() + * raise error + * elif node_class is MappingNode: # <<<<<<<<<<<<<< + * implicit = 0 + * tag_object = node.tag + */ + } + __pyx_L10:; + + /* "_yaml.pyx":1515 + * error = self._emitter_error() + * raise error + * self.ascend_resolver() # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ascend_resolver); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_L7:; + + /* "_yaml.pyx":1516 + * raise error + * self.ascend_resolver() + * return 1 # <<<<<<<<<<<<<< + * + * cdef int output_handler(void *data, char *buffer, size_t size) except 0: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "_yaml.pyx":1374 + * return 1 + * + * cdef int _serialize_node(self, object node, object parent, object index) except 0: # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int implicit + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("_yaml.CEmitter._serialize_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_anchor_object); + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XDECREF(__pyx_v_node_class); + __Pyx_XDECREF(__pyx_v_tag_object); + __Pyx_XDECREF(__pyx_v_value_object); + __Pyx_XDECREF(__pyx_v_style_object); + __Pyx_XDECREF(__pyx_v_item); + __Pyx_XDECREF(__pyx_v_item_key); + __Pyx_XDECREF(__pyx_v_item_value); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_14__reduce_cython__(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.CEmitter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_8CEmitter_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_5_yaml_8CEmitter_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf_5_yaml_8CEmitter_16__setstate_cython__(((struct __pyx_obj_5_yaml_CEmitter *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_8CEmitter_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_yaml.CEmitter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_yaml.pyx":1518 + * return 1 + * + * cdef int output_handler(void *data, char *buffer, size_t size) except 0: # <<<<<<<<<<<<<< + * cdef CEmitter emitter + * emitter = <CEmitter>data + */ + +static int __pyx_f_5_yaml_output_handler(void *__pyx_v_data, char *__pyx_v_buffer, size_t __pyx_v_size) { + struct __pyx_obj_5_yaml_CEmitter *__pyx_v_emitter = 0; + PyObject *__pyx_v_value = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + __Pyx_RefNannySetupContext("output_handler", 0); + + /* "_yaml.pyx":1520 + * cdef int output_handler(void *data, char *buffer, size_t size) except 0: + * cdef CEmitter emitter + * emitter = <CEmitter>data # <<<<<<<<<<<<<< + * if emitter.dump_unicode == 0: + * value = PyString_FromStringAndSize(buffer, size) + */ + __pyx_t_1 = ((PyObject *)__pyx_v_data); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_emitter = ((struct __pyx_obj_5_yaml_CEmitter *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "_yaml.pyx":1521 + * cdef CEmitter emitter + * emitter = <CEmitter>data + * if emitter.dump_unicode == 0: # <<<<<<<<<<<<<< + * value = PyString_FromStringAndSize(buffer, size) + * else: + */ + __pyx_t_2 = ((__pyx_v_emitter->dump_unicode == 0) != 0); + if (__pyx_t_2) { + + /* "_yaml.pyx":1522 + * emitter = <CEmitter>data + * if emitter.dump_unicode == 0: + * value = PyString_FromStringAndSize(buffer, size) # <<<<<<<<<<<<<< + * else: + * value = PyUnicode_DecodeUTF8(buffer, size, 'strict') + */ + __pyx_t_1 = PyString_FromStringAndSize(__pyx_v_buffer, __pyx_v_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + + /* "_yaml.pyx":1521 + * cdef CEmitter emitter + * emitter = <CEmitter>data + * if emitter.dump_unicode == 0: # <<<<<<<<<<<<<< + * value = PyString_FromStringAndSize(buffer, size) + * else: + */ + goto __pyx_L3; + } + + /* "_yaml.pyx":1524 + * value = PyString_FromStringAndSize(buffer, size) + * else: + * value = PyUnicode_DecodeUTF8(buffer, size, 'strict') # <<<<<<<<<<<<<< + * emitter.stream.write(value) + * return 1 + */ + /*else*/ { + __pyx_t_1 = PyUnicode_DecodeUTF8(__pyx_v_buffer, __pyx_v_size, ((char *)"strict")); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + } + __pyx_L3:; + + /* "_yaml.pyx":1525 + * else: + * value = PyUnicode_DecodeUTF8(buffer, size, 'strict') + * emitter.stream.write(value) # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_emitter->stream, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":1526 + * value = PyUnicode_DecodeUTF8(buffer, size, 'strict') + * emitter.stream.write(value) + * return 1 # <<<<<<<<<<<<<< + * + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "_yaml.pyx":1518 + * return 1 + * + * cdef int output_handler(void *data, char *buffer, size_t size) except 0: # <<<<<<<<<<<<<< + * cdef CEmitter emitter + * emitter = <CEmitter>data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("_yaml.output_handler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_emitter); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __pyx_unpickle_Mark(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5_yaml_5__pyx_unpickle_Mark(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_5_yaml_5__pyx_unpickle_Mark = {"__pyx_unpickle_Mark", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5_yaml_5__pyx_unpickle_Mark, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_5_yaml_5__pyx_unpickle_Mark(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v___pyx_type = 0; + long __pyx_v___pyx_checksum; + PyObject *__pyx_v___pyx_state = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pyx_unpickle_Mark (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Mark", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Mark", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Mark") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v___pyx_type = values[0]; + __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) + __pyx_v___pyx_state = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Mark", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("_yaml.__pyx_unpickle_Mark", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5_yaml_4__pyx_unpickle_Mark(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5_yaml_4__pyx_unpickle_Mark(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_v___pyx_PickleError = 0; + PyObject *__pyx_v___pyx_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + __Pyx_RefNannySetupContext("__pyx_unpickle_Mark", 0); + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum != 0x3fa45b6: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) + */ + __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x3fa45b6) != 0); + if (__pyx_t_1) { + + /* "(tree fragment)":5 + * cdef object __pyx_result + * if __pyx_checksum != 0x3fa45b6: + * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) + * __pyx_result = Mark.__new__(__pyx_type) + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_PickleError); + __Pyx_GIVEREF(__pyx_n_s_PickleError); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_2); + __pyx_v___pyx_PickleError = __pyx_t_2; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * if __pyx_checksum != 0x3fa45b6: + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) # <<<<<<<<<<<<<< + * __pyx_result = Mark.__new__(__pyx_type) + * if __pyx_state is not None: + */ + __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x3f, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_v___pyx_PickleError); + __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(1, 6, __pyx_L1_error) + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum != 0x3fa45b6: # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) + */ + } + + /* "(tree fragment)":7 + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) + * __pyx_result = Mark.__new__(__pyx_type) # <<<<<<<<<<<<<< + * if __pyx_state is not None: + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_5_yaml_Mark), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v___pyx_result = __pyx_t_3; + __pyx_t_3 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) + * __pyx_result = Mark.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) + * return __pyx_result + */ + __pyx_t_1 = (__pyx_v___pyx_state != Py_None); + __pyx_t_6 = (__pyx_t_1 != 0); + if (__pyx_t_6) { + + /* "(tree fragment)":9 + * __pyx_result = Mark.__new__(__pyx_type) + * if __pyx_state is not None: + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) # <<<<<<<<<<<<<< + * return __pyx_result + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5_yaml___pyx_unpickle_Mark__set_state(((struct __pyx_obj_5_yaml_Mark *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (%s vs 0x3fa45b6 = (buffer, column, index, line, name, pointer))" % __pyx_checksum) + * __pyx_result = Mark.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) + * return __pyx_result + */ + } + + /* "(tree fragment)":10 + * if __pyx_state is not None: + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) + * return __pyx_result # <<<<<<<<<<<<<< + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v___pyx_result); + __pyx_r = __pyx_v___pyx_result; + goto __pyx_L0; + + /* "(tree fragment)":1 + * def __pyx_unpickle_Mark(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("_yaml.__pyx_unpickle_Mark", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v___pyx_PickleError); + __Pyx_XDECREF(__pyx_v___pyx_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":11 + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] + * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): + */ + +static PyObject *__pyx_f_5_yaml___pyx_unpickle_Mark__set_state(struct __pyx_obj_5_yaml_Mark *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + size_t __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + __Pyx_RefNannySetupContext("__pyx_unpickle_Mark__set_state", 0); + + /* "(tree fragment)":12 + * return __pyx_result + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] # <<<<<<<<<<<<<< + * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[6]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->buffer); + __Pyx_DECREF(__pyx_v___pyx_result->buffer); + __pyx_v___pyx_result->buffer = __pyx_t_1; + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result->column = __pyx_t_2; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result->index = __pyx_t_2; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result->line = __pyx_t_2; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->name); + __Pyx_DECREF(__pyx_v___pyx_result->name); + __pyx_v___pyx_result->name = __pyx_t_1; + __pyx_t_1 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->pointer); + __Pyx_DECREF(__pyx_v___pyx_result->pointer); + __pyx_v___pyx_result->pointer = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] + * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[6]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(1, 13, __pyx_L1_error) + } + __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error) + __pyx_t_5 = ((__pyx_t_4 > 6) != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error) + __pyx_t_6 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_6; + __pyx_L4_bool_binop_done:; + if (__pyx_t_3) { + + /* "(tree fragment)":14 + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] + * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[6]) # <<<<<<<<<<<<<< + */ + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(1, 14, __pyx_L1_error) + } + __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] + * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[6]) + */ + } + + /* "(tree fragment)":11 + * __pyx_unpickle_Mark__set_state(<Mark> __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Mark__set_state(Mark __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.buffer = __pyx_state[0]; __pyx_result.column = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.line = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.pointer = __pyx_state[5] + * if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("_yaml.__pyx_unpickle_Mark__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_tp_new_5_yaml_Mark(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_5_yaml_Mark *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_5_yaml_Mark *)o); + p->name = Py_None; Py_INCREF(Py_None); + p->buffer = Py_None; Py_INCREF(Py_None); + p->pointer = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_5_yaml_Mark(PyObject *o) { + struct __pyx_obj_5_yaml_Mark *p = (struct __pyx_obj_5_yaml_Mark *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->name); + Py_CLEAR(p->buffer); + Py_CLEAR(p->pointer); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_5_yaml_Mark(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_5_yaml_Mark *p = (struct __pyx_obj_5_yaml_Mark *)o; + if (p->name) { + e = (*v)(p->name, a); if (e) return e; + } + if (p->buffer) { + e = (*v)(p->buffer, a); if (e) return e; + } + if (p->pointer) { + e = (*v)(p->pointer, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_5_yaml_Mark(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_5_yaml_Mark *p = (struct __pyx_obj_5_yaml_Mark *)o; + tmp = ((PyObject*)p->name); + p->name = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->buffer); + p->buffer = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->pointer); + p->pointer = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyObject *__pyx_getprop_5_yaml_4Mark_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5_yaml_4Mark_4name_1__get__(o); +} + +static PyObject *__pyx_getprop_5_yaml_4Mark_index(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5_yaml_4Mark_5index_1__get__(o); +} + +static PyObject *__pyx_getprop_5_yaml_4Mark_line(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5_yaml_4Mark_4line_1__get__(o); +} + +static PyObject *__pyx_getprop_5_yaml_4Mark_column(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5_yaml_4Mark_6column_1__get__(o); +} + +static PyObject *__pyx_getprop_5_yaml_4Mark_buffer(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5_yaml_4Mark_6buffer_1__get__(o); +} + +static PyObject *__pyx_getprop_5_yaml_4Mark_pointer(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5_yaml_4Mark_7pointer_1__get__(o); +} + +static PyMethodDef __pyx_methods_5_yaml_Mark[] = { + {"get_snippet", (PyCFunction)__pyx_pw_5_yaml_4Mark_3get_snippet, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_5_yaml_4Mark_7__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_5_yaml_4Mark_9__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5_yaml_Mark[] = { + {(char *)"name", __pyx_getprop_5_yaml_4Mark_name, 0, (char *)0, 0}, + {(char *)"index", __pyx_getprop_5_yaml_4Mark_index, 0, (char *)0, 0}, + {(char *)"line", __pyx_getprop_5_yaml_4Mark_line, 0, (char *)0, 0}, + {(char *)"column", __pyx_getprop_5_yaml_4Mark_column, 0, (char *)0, 0}, + {(char *)"buffer", __pyx_getprop_5_yaml_4Mark_buffer, 0, (char *)0, 0}, + {(char *)"pointer", __pyx_getprop_5_yaml_4Mark_pointer, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_5_yaml_Mark = { + PyVarObject_HEAD_INIT(0, 0) + "_yaml.Mark", /*tp_name*/ + sizeof(struct __pyx_obj_5_yaml_Mark), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5_yaml_Mark, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + __pyx_pw_5_yaml_4Mark_5__str__, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_5_yaml_Mark, /*tp_traverse*/ + __pyx_tp_clear_5_yaml_Mark, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5_yaml_Mark, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5_yaml_Mark, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_pw_5_yaml_4Mark_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5_yaml_Mark, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif +}; +static struct __pyx_vtabstruct_5_yaml_CParser __pyx_vtable_5_yaml_CParser; + +static PyObject *__pyx_tp_new_5_yaml_CParser(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_5_yaml_CParser *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_5_yaml_CParser *)o); + p->__pyx_vtab = __pyx_vtabptr_5_yaml_CParser; + p->stream = Py_None; Py_INCREF(Py_None); + p->stream_name = Py_None; Py_INCREF(Py_None); + p->current_token = Py_None; Py_INCREF(Py_None); + p->current_event = Py_None; Py_INCREF(Py_None); + p->anchors = Py_None; Py_INCREF(Py_None); + p->stream_cache = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_5_yaml_CParser(PyObject *o) { + struct __pyx_obj_5_yaml_CParser *p = (struct __pyx_obj_5_yaml_CParser *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_pw_5_yaml_7CParser_3__dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->stream); + Py_CLEAR(p->stream_name); + Py_CLEAR(p->current_token); + Py_CLEAR(p->current_event); + Py_CLEAR(p->anchors); + Py_CLEAR(p->stream_cache); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_5_yaml_CParser(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_5_yaml_CParser *p = (struct __pyx_obj_5_yaml_CParser *)o; + if (p->stream) { + e = (*v)(p->stream, a); if (e) return e; + } + if (p->stream_name) { + e = (*v)(p->stream_name, a); if (e) return e; + } + if (p->current_token) { + e = (*v)(p->current_token, a); if (e) return e; + } + if (p->current_event) { + e = (*v)(p->current_event, a); if (e) return e; + } + if (p->anchors) { + e = (*v)(p->anchors, a); if (e) return e; + } + if (p->stream_cache) { + e = (*v)(p->stream_cache, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_5_yaml_CParser(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_5_yaml_CParser *p = (struct __pyx_obj_5_yaml_CParser *)o; + tmp = ((PyObject*)p->stream); + p->stream = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->stream_name); + p->stream_name = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->current_token); + p->current_token = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->current_event); + p->current_event = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->anchors); + p->anchors = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->stream_cache); + p->stream_cache = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_5_yaml_CParser[] = { + {"dispose", (PyCFunction)__pyx_pw_5_yaml_7CParser_5dispose, METH_NOARGS, 0}, + {"raw_scan", (PyCFunction)__pyx_pw_5_yaml_7CParser_7raw_scan, METH_NOARGS, 0}, + {"get_token", (PyCFunction)__pyx_pw_5_yaml_7CParser_9get_token, METH_NOARGS, 0}, + {"peek_token", (PyCFunction)__pyx_pw_5_yaml_7CParser_11peek_token, METH_NOARGS, 0}, + {"check_token", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5_yaml_7CParser_13check_token, METH_VARARGS|METH_KEYWORDS, 0}, + {"raw_parse", (PyCFunction)__pyx_pw_5_yaml_7CParser_15raw_parse, METH_NOARGS, 0}, + {"get_event", (PyCFunction)__pyx_pw_5_yaml_7CParser_17get_event, METH_NOARGS, 0}, + {"peek_event", (PyCFunction)__pyx_pw_5_yaml_7CParser_19peek_event, METH_NOARGS, 0}, + {"check_event", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5_yaml_7CParser_21check_event, METH_VARARGS|METH_KEYWORDS, 0}, + {"check_node", (PyCFunction)__pyx_pw_5_yaml_7CParser_23check_node, METH_NOARGS, 0}, + {"get_node", (PyCFunction)__pyx_pw_5_yaml_7CParser_25get_node, METH_NOARGS, 0}, + {"get_single_node", (PyCFunction)__pyx_pw_5_yaml_7CParser_27get_single_node, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_5_yaml_7CParser_29__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_5_yaml_7CParser_31__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_5_yaml_CParser = { + PyVarObject_HEAD_INIT(0, 0) + "_yaml.CParser", /*tp_name*/ + sizeof(struct __pyx_obj_5_yaml_CParser), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5_yaml_CParser, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_5_yaml_CParser, /*tp_traverse*/ + __pyx_tp_clear_5_yaml_CParser, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5_yaml_CParser, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_pw_5_yaml_7CParser_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5_yaml_CParser, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif +}; +static struct __pyx_vtabstruct_5_yaml_CEmitter __pyx_vtable_5_yaml_CEmitter; + +static PyObject *__pyx_tp_new_5_yaml_CEmitter(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_5_yaml_CEmitter *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_5_yaml_CEmitter *)o); + p->__pyx_vtab = __pyx_vtabptr_5_yaml_CEmitter; + p->stream = Py_None; Py_INCREF(Py_None); + p->use_version = Py_None; Py_INCREF(Py_None); + p->use_tags = Py_None; Py_INCREF(Py_None); + p->serialized_nodes = Py_None; Py_INCREF(Py_None); + p->anchors = Py_None; Py_INCREF(Py_None); + p->use_encoding = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_5_yaml_CEmitter(PyObject *o) { + struct __pyx_obj_5_yaml_CEmitter *p = (struct __pyx_obj_5_yaml_CEmitter *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++Py_REFCNT(o); + __pyx_pw_5_yaml_8CEmitter_3__dealloc__(o); + --Py_REFCNT(o); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->stream); + Py_CLEAR(p->use_version); + Py_CLEAR(p->use_tags); + Py_CLEAR(p->serialized_nodes); + Py_CLEAR(p->anchors); + Py_CLEAR(p->use_encoding); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_5_yaml_CEmitter(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_5_yaml_CEmitter *p = (struct __pyx_obj_5_yaml_CEmitter *)o; + if (p->stream) { + e = (*v)(p->stream, a); if (e) return e; + } + if (p->use_version) { + e = (*v)(p->use_version, a); if (e) return e; + } + if (p->use_tags) { + e = (*v)(p->use_tags, a); if (e) return e; + } + if (p->serialized_nodes) { + e = (*v)(p->serialized_nodes, a); if (e) return e; + } + if (p->anchors) { + e = (*v)(p->anchors, a); if (e) return e; + } + if (p->use_encoding) { + e = (*v)(p->use_encoding, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_5_yaml_CEmitter(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_5_yaml_CEmitter *p = (struct __pyx_obj_5_yaml_CEmitter *)o; + tmp = ((PyObject*)p->stream); + p->stream = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->use_version); + p->use_version = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->use_tags); + p->use_tags = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->serialized_nodes); + p->serialized_nodes = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->anchors); + p->anchors = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->use_encoding); + p->use_encoding = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_5_yaml_CEmitter[] = { + {"dispose", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_5dispose, METH_NOARGS, 0}, + {"emit", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_7emit, METH_O, 0}, + {"open", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_9open, METH_NOARGS, 0}, + {"close", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_11close, METH_NOARGS, 0}, + {"serialize", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_13serialize, METH_O, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_15__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_5_yaml_8CEmitter_17__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_5_yaml_CEmitter = { + PyVarObject_HEAD_INIT(0, 0) + "_yaml.CEmitter", /*tp_name*/ + sizeof(struct __pyx_obj_5_yaml_CEmitter), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5_yaml_CEmitter, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_5_yaml_CEmitter, /*tp_traverse*/ + __pyx_tp_clear_5_yaml_CEmitter, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5_yaml_CEmitter, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_pw_5_yaml_8CEmitter_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5_yaml_CEmitter, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif +}; + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec__yaml(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec__yaml}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "_yaml", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_AliasEvent, __pyx_k_AliasEvent, sizeof(__pyx_k_AliasEvent), 0, 0, 1, 1}, + {&__pyx_n_s_AliasToken, __pyx_k_AliasToken, sizeof(__pyx_k_AliasToken), 0, 0, 1, 1}, + {&__pyx_n_s_AnchorToken, __pyx_k_AnchorToken, sizeof(__pyx_k_AnchorToken), 0, 0, 1, 1}, + {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, + {&__pyx_n_s_BlockEndToken, __pyx_k_BlockEndToken, sizeof(__pyx_k_BlockEndToken), 0, 0, 1, 1}, + {&__pyx_n_s_BlockEntryToken, __pyx_k_BlockEntryToken, sizeof(__pyx_k_BlockEntryToken), 0, 0, 1, 1}, + {&__pyx_n_s_BlockMappingStartToken, __pyx_k_BlockMappingStartToken, sizeof(__pyx_k_BlockMappingStartToken), 0, 0, 1, 1}, + {&__pyx_n_s_BlockSequenceStartToken, __pyx_k_BlockSequenceStartToken, sizeof(__pyx_k_BlockSequenceStartToken), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter, __pyx_k_CEmitter, sizeof(__pyx_k_CEmitter), 0, 0, 1, 1}, + {&__pyx_n_s_CParser, __pyx_k_CParser, sizeof(__pyx_k_CParser), 0, 0, 1, 1}, + {&__pyx_n_s_ComposerError, __pyx_k_ComposerError, sizeof(__pyx_k_ComposerError), 0, 0, 1, 1}, + {&__pyx_n_s_ConstructorError, __pyx_k_ConstructorError, sizeof(__pyx_k_ConstructorError), 0, 0, 1, 1}, + {&__pyx_n_s_DirectiveToken, __pyx_k_DirectiveToken, sizeof(__pyx_k_DirectiveToken), 0, 0, 1, 1}, + {&__pyx_n_s_DocumentEndEvent, __pyx_k_DocumentEndEvent, sizeof(__pyx_k_DocumentEndEvent), 0, 0, 1, 1}, + {&__pyx_n_s_DocumentEndToken, __pyx_k_DocumentEndToken, sizeof(__pyx_k_DocumentEndToken), 0, 0, 1, 1}, + {&__pyx_n_s_DocumentStartEvent, __pyx_k_DocumentStartEvent, sizeof(__pyx_k_DocumentStartEvent), 0, 0, 1, 1}, + {&__pyx_n_s_DocumentStartToken, __pyx_k_DocumentStartToken, sizeof(__pyx_k_DocumentStartToken), 0, 0, 1, 1}, + {&__pyx_n_s_EmitterError, __pyx_k_EmitterError, sizeof(__pyx_k_EmitterError), 0, 0, 1, 1}, + {&__pyx_n_s_FlowEntryToken, __pyx_k_FlowEntryToken, sizeof(__pyx_k_FlowEntryToken), 0, 0, 1, 1}, + {&__pyx_n_s_FlowMappingEndToken, __pyx_k_FlowMappingEndToken, sizeof(__pyx_k_FlowMappingEndToken), 0, 0, 1, 1}, + {&__pyx_n_s_FlowMappingStartToken, __pyx_k_FlowMappingStartToken, sizeof(__pyx_k_FlowMappingStartToken), 0, 0, 1, 1}, + {&__pyx_n_s_FlowSequenceEndToken, __pyx_k_FlowSequenceEndToken, sizeof(__pyx_k_FlowSequenceEndToken), 0, 0, 1, 1}, + {&__pyx_n_s_FlowSequenceStartToken, __pyx_k_FlowSequenceStartToken, sizeof(__pyx_k_FlowSequenceStartToken), 0, 0, 1, 1}, + {&__pyx_kp_s_Incompatible_checksums_s_vs_0x3f, __pyx_k_Incompatible_checksums_s_vs_0x3f, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x3f), 0, 0, 1, 0}, + {&__pyx_n_s_KeyToken, __pyx_k_KeyToken, sizeof(__pyx_k_KeyToken), 0, 0, 1, 1}, + {&__pyx_n_s_MappingEndEvent, __pyx_k_MappingEndEvent, sizeof(__pyx_k_MappingEndEvent), 0, 0, 1, 1}, + {&__pyx_n_s_MappingNode, __pyx_k_MappingNode, sizeof(__pyx_k_MappingNode), 0, 0, 1, 1}, + {&__pyx_n_s_MappingStartEvent, __pyx_k_MappingStartEvent, sizeof(__pyx_k_MappingStartEvent), 0, 0, 1, 1}, + {&__pyx_n_s_Mark, __pyx_k_Mark, sizeof(__pyx_k_Mark), 0, 0, 1, 1}, + {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, + {&__pyx_n_s_ParserError, __pyx_k_ParserError, sizeof(__pyx_k_ParserError), 0, 0, 1, 1}, + {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, + {&__pyx_kp_s_Pickling_of_struct_members_such, __pyx_k_Pickling_of_struct_members_such, sizeof(__pyx_k_Pickling_of_struct_members_such), 0, 0, 1, 0}, + {&__pyx_n_s_ReaderError, __pyx_k_ReaderError, sizeof(__pyx_k_ReaderError), 0, 0, 1, 1}, + {&__pyx_n_s_RepresenterError, __pyx_k_RepresenterError, sizeof(__pyx_k_RepresenterError), 0, 0, 1, 1}, + {&__pyx_n_s_ScalarEvent, __pyx_k_ScalarEvent, sizeof(__pyx_k_ScalarEvent), 0, 0, 1, 1}, + {&__pyx_n_s_ScalarNode, __pyx_k_ScalarNode, sizeof(__pyx_k_ScalarNode), 0, 0, 1, 1}, + {&__pyx_n_s_ScalarToken, __pyx_k_ScalarToken, sizeof(__pyx_k_ScalarToken), 0, 0, 1, 1}, + {&__pyx_n_s_ScannerError, __pyx_k_ScannerError, sizeof(__pyx_k_ScannerError), 0, 0, 1, 1}, + {&__pyx_n_s_SequenceEndEvent, __pyx_k_SequenceEndEvent, sizeof(__pyx_k_SequenceEndEvent), 0, 0, 1, 1}, + {&__pyx_n_s_SequenceNode, __pyx_k_SequenceNode, sizeof(__pyx_k_SequenceNode), 0, 0, 1, 1}, + {&__pyx_n_s_SequenceStartEvent, __pyx_k_SequenceStartEvent, sizeof(__pyx_k_SequenceStartEvent), 0, 0, 1, 1}, + {&__pyx_n_s_SerializerError, __pyx_k_SerializerError, sizeof(__pyx_k_SerializerError), 0, 0, 1, 1}, + {&__pyx_n_s_StreamEndEvent, __pyx_k_StreamEndEvent, sizeof(__pyx_k_StreamEndEvent), 0, 0, 1, 1}, + {&__pyx_n_s_StreamEndToken, __pyx_k_StreamEndToken, sizeof(__pyx_k_StreamEndToken), 0, 0, 1, 1}, + {&__pyx_n_s_StreamStartEvent, __pyx_k_StreamStartEvent, sizeof(__pyx_k_StreamStartEvent), 0, 0, 1, 1}, + {&__pyx_n_s_StreamStartToken, __pyx_k_StreamStartToken, sizeof(__pyx_k_StreamStartToken), 0, 0, 1, 1}, + {&__pyx_n_u_TAG, __pyx_k_TAG, sizeof(__pyx_k_TAG), 0, 1, 0, 1}, + {&__pyx_n_s_TagToken, __pyx_k_TagToken, sizeof(__pyx_k_TagToken), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, + {&__pyx_n_s_ValueToken, __pyx_k_ValueToken, sizeof(__pyx_k_ValueToken), 0, 0, 1, 1}, + {&__pyx_n_u_YAML, __pyx_k_YAML, sizeof(__pyx_k_YAML), 0, 1, 0, 1}, + {&__pyx_n_s_YAMLError, __pyx_k_YAMLError, sizeof(__pyx_k_YAMLError), 0, 0, 1, 1}, + {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0}, + {&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0}, + {&__pyx_kp_s__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 0, 1, 0}, + {&__pyx_kp_s__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 0, 1, 0}, + {&__pyx_kp_s__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 0, 1, 0}, + {&__pyx_kp_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 0}, + {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0}, + {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0}, + {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, + {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0}, + {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0}, + {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0}, + {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0}, + {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0}, + {&__pyx_kp_s_a_string_or_stream_input_is_requ, __pyx_k_a_string_or_stream_input_is_requ, sizeof(__pyx_k_a_string_or_stream_input_is_requ), 0, 0, 1, 0}, + {&__pyx_kp_u_a_string_or_stream_input_is_requ, __pyx_k_a_string_or_stream_input_is_requ, sizeof(__pyx_k_a_string_or_stream_input_is_requ), 0, 1, 0, 0}, + {&__pyx_kp_s_a_string_value_is_expected, __pyx_k_a_string_value_is_expected, sizeof(__pyx_k_a_string_value_is_expected), 0, 0, 1, 0}, + {&__pyx_kp_u_a_string_value_is_expected, __pyx_k_a_string_value_is_expected, sizeof(__pyx_k_a_string_value_is_expected), 0, 1, 0, 0}, + {&__pyx_n_s_allow_unicode, __pyx_k_allow_unicode, sizeof(__pyx_k_allow_unicode), 0, 0, 1, 1}, + {&__pyx_n_s_anchor, __pyx_k_anchor, sizeof(__pyx_k_anchor), 0, 0, 1, 1}, + {&__pyx_kp_s_anchor_must_be_a_string, __pyx_k_anchor_must_be_a_string, sizeof(__pyx_k_anchor_must_be_a_string), 0, 0, 1, 0}, + {&__pyx_kp_u_anchor_must_be_a_string, __pyx_k_anchor_must_be_a_string, sizeof(__pyx_k_anchor_must_be_a_string), 0, 1, 0, 0}, + {&__pyx_n_s_ascend_resolver, __pyx_k_ascend_resolver, sizeof(__pyx_k_ascend_resolver), 0, 0, 1, 1}, + {&__pyx_n_s_buffer, __pyx_k_buffer, sizeof(__pyx_k_buffer), 0, 0, 1, 1}, + {&__pyx_kp_s_but_found_another_document, __pyx_k_but_found_another_document, sizeof(__pyx_k_but_found_another_document), 0, 0, 1, 0}, + {&__pyx_kp_u_but_found_another_document, __pyx_k_but_found_another_document, sizeof(__pyx_k_but_found_another_document), 0, 1, 0, 0}, + {&__pyx_kp_s_byte_string, __pyx_k_byte_string, sizeof(__pyx_k_byte_string), 0, 0, 1, 0}, + {&__pyx_kp_u_byte_string, __pyx_k_byte_string, sizeof(__pyx_k_byte_string), 0, 1, 0, 0}, + {&__pyx_n_s_canonical, __pyx_k_canonical, sizeof(__pyx_k_canonical), 0, 0, 1, 1}, + {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_column, __pyx_k_column, sizeof(__pyx_k_column), 0, 0, 1, 1}, + {&__pyx_n_s_composer, __pyx_k_composer, sizeof(__pyx_k_composer), 0, 0, 1, 1}, + {&__pyx_n_s_constructor, __pyx_k_constructor, sizeof(__pyx_k_constructor), 0, 0, 1, 1}, + {&__pyx_n_s_descend_resolver, __pyx_k_descend_resolver, sizeof(__pyx_k_descend_resolver), 0, 0, 1, 1}, + {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, + {&__pyx_n_s_emitter, __pyx_k_emitter, sizeof(__pyx_k_emitter), 0, 0, 1, 1}, + {&__pyx_n_s_encoding, __pyx_k_encoding, sizeof(__pyx_k_encoding), 0, 0, 1, 1}, + {&__pyx_n_u_encoding, __pyx_k_encoding, sizeof(__pyx_k_encoding), 0, 1, 0, 1}, + {&__pyx_n_s_end_mark, __pyx_k_end_mark, sizeof(__pyx_k_end_mark), 0, 0, 1, 1}, + {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, + {&__pyx_n_s_events, __pyx_k_events, sizeof(__pyx_k_events), 0, 0, 1, 1}, + {&__pyx_kp_s_expected_a_single_document_in_th, __pyx_k_expected_a_single_document_in_th, sizeof(__pyx_k_expected_a_single_document_in_th), 0, 0, 1, 0}, + {&__pyx_kp_u_expected_a_single_document_in_th, __pyx_k_expected_a_single_document_in_th, sizeof(__pyx_k_expected_a_single_document_in_th), 0, 1, 0, 0}, + {&__pyx_n_s_explicit, __pyx_k_explicit, sizeof(__pyx_k_explicit), 0, 0, 1, 1}, + {&__pyx_n_s_explicit_end, __pyx_k_explicit_end, sizeof(__pyx_k_explicit_end), 0, 0, 1, 1}, + {&__pyx_n_s_explicit_start, __pyx_k_explicit_start, sizeof(__pyx_k_explicit_start), 0, 0, 1, 1}, + {&__pyx_kp_s_ext__yaml_pyx, __pyx_k_ext__yaml_pyx, sizeof(__pyx_k_ext__yaml_pyx), 0, 0, 1, 0}, + {&__pyx_kp_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 0}, + {&__pyx_kp_u_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 1, 0, 0}, + {&__pyx_n_s_flow_style, __pyx_k_flow_style, sizeof(__pyx_k_flow_style), 0, 0, 1, 1}, + {&__pyx_kp_s_found_duplicate_anchor_first_occ, __pyx_k_found_duplicate_anchor_first_occ, sizeof(__pyx_k_found_duplicate_anchor_first_occ), 0, 0, 1, 0}, + {&__pyx_kp_u_found_duplicate_anchor_first_occ, __pyx_k_found_duplicate_anchor_first_occ, sizeof(__pyx_k_found_duplicate_anchor_first_occ), 0, 1, 0, 0}, + {&__pyx_kp_s_found_undefined_alias, __pyx_k_found_undefined_alias, sizeof(__pyx_k_found_undefined_alias), 0, 0, 1, 0}, + {&__pyx_kp_u_found_undefined_alias, __pyx_k_found_undefined_alias, sizeof(__pyx_k_found_undefined_alias), 0, 1, 0, 0}, + {&__pyx_n_s_get_version, __pyx_k_get_version, sizeof(__pyx_k_get_version), 0, 0, 1, 1}, + {&__pyx_n_s_get_version_string, __pyx_k_get_version_string, sizeof(__pyx_k_get_version_string), 0, 0, 1, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_kp_u_id_03d, __pyx_k_id_03d, sizeof(__pyx_k_id_03d), 0, 1, 0, 0}, + {&__pyx_n_s_implicit, __pyx_k_implicit, sizeof(__pyx_k_implicit), 0, 0, 1, 1}, + {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, + {&__pyx_kp_s_in_s_line_d_column_d, __pyx_k_in_s_line_d_column_d, sizeof(__pyx_k_in_s_line_d_column_d), 0, 0, 1, 0}, + {&__pyx_n_s_indent, __pyx_k_indent, sizeof(__pyx_k_indent), 0, 0, 1, 1}, + {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, + {&__pyx_kp_s_invalid_event_s, __pyx_k_invalid_event_s, sizeof(__pyx_k_invalid_event_s), 0, 0, 1, 0}, + {&__pyx_kp_u_invalid_event_s, __pyx_k_invalid_event_s, sizeof(__pyx_k_invalid_event_s), 0, 1, 0, 0}, + {&__pyx_n_s_line, __pyx_k_line, sizeof(__pyx_k_line), 0, 0, 1, 1}, + {&__pyx_n_s_line_break, __pyx_k_line_break, sizeof(__pyx_k_line_break), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_major, __pyx_k_major, sizeof(__pyx_k_major), 0, 0, 1, 1}, + {&__pyx_n_s_minor, __pyx_k_minor, sizeof(__pyx_k_minor), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, + {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, + {&__pyx_kp_s_no_emitter_error, __pyx_k_no_emitter_error, sizeof(__pyx_k_no_emitter_error), 0, 0, 1, 0}, + {&__pyx_kp_u_no_emitter_error, __pyx_k_no_emitter_error, sizeof(__pyx_k_no_emitter_error), 0, 1, 0, 0}, + {&__pyx_kp_s_no_parser_error, __pyx_k_no_parser_error, sizeof(__pyx_k_no_parser_error), 0, 0, 1, 0}, + {&__pyx_kp_u_no_parser_error, __pyx_k_no_parser_error, sizeof(__pyx_k_no_parser_error), 0, 1, 0, 0}, + {&__pyx_n_s_nodes, __pyx_k_nodes, sizeof(__pyx_k_nodes), 0, 0, 1, 1}, + {&__pyx_n_s_parser, __pyx_k_parser, sizeof(__pyx_k_parser), 0, 0, 1, 1}, + {&__pyx_n_s_patch, __pyx_k_patch, sizeof(__pyx_k_patch), 0, 0, 1, 1}, + {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, + {&__pyx_n_s_pointer, __pyx_k_pointer, sizeof(__pyx_k_pointer), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_unpickle_Mark, __pyx_k_pyx_unpickle_Mark, sizeof(__pyx_k_pyx_unpickle_Mark), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, + {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1}, + {&__pyx_n_s_reader, __pyx_k_reader, sizeof(__pyx_k_reader), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_representer, __pyx_k_representer, sizeof(__pyx_k_representer), 0, 0, 1, 1}, + {&__pyx_n_s_resolve, __pyx_k_resolve, sizeof(__pyx_k_resolve), 0, 0, 1, 1}, + {&__pyx_n_s_scanner, __pyx_k_scanner, sizeof(__pyx_k_scanner), 0, 0, 1, 1}, + {&__pyx_kp_s_second_occurrence, __pyx_k_second_occurrence, sizeof(__pyx_k_second_occurrence), 0, 0, 1, 0}, + {&__pyx_kp_u_second_occurrence, __pyx_k_second_occurrence, sizeof(__pyx_k_second_occurrence), 0, 1, 0, 0}, + {&__pyx_kp_s_self_parsed_event_cannot_be_conv, __pyx_k_self_parsed_event_cannot_be_conv, sizeof(__pyx_k_self_parsed_event_cannot_be_conv), 0, 0, 1, 0}, + {&__pyx_n_s_serializer, __pyx_k_serializer, sizeof(__pyx_k_serializer), 0, 0, 1, 1}, + {&__pyx_kp_s_serializer_is_already_opened, __pyx_k_serializer_is_already_opened, sizeof(__pyx_k_serializer_is_already_opened), 0, 0, 1, 0}, + {&__pyx_kp_u_serializer_is_already_opened, __pyx_k_serializer_is_already_opened, sizeof(__pyx_k_serializer_is_already_opened), 0, 1, 0, 0}, + {&__pyx_kp_s_serializer_is_closed, __pyx_k_serializer_is_closed, sizeof(__pyx_k_serializer_is_closed), 0, 0, 1, 0}, + {&__pyx_kp_u_serializer_is_closed, __pyx_k_serializer_is_closed, sizeof(__pyx_k_serializer_is_closed), 0, 1, 0, 0}, + {&__pyx_kp_s_serializer_is_not_opened, __pyx_k_serializer_is_not_opened, sizeof(__pyx_k_serializer_is_not_opened), 0, 0, 1, 0}, + {&__pyx_kp_u_serializer_is_not_opened, __pyx_k_serializer_is_not_opened, sizeof(__pyx_k_serializer_is_not_opened), 0, 1, 0, 0}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_start_mark, __pyx_k_start_mark, sizeof(__pyx_k_start_mark), 0, 0, 1, 1}, + {&__pyx_n_s_stream, __pyx_k_stream, sizeof(__pyx_k_stream), 0, 0, 1, 1}, + {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, + {&__pyx_n_s_style, __pyx_k_style, sizeof(__pyx_k_style), 0, 0, 1, 1}, + {&__pyx_n_s_tag, __pyx_k_tag, sizeof(__pyx_k_tag), 0, 0, 1, 1}, + {&__pyx_kp_s_tag_handle_must_be_a_string, __pyx_k_tag_handle_must_be_a_string, sizeof(__pyx_k_tag_handle_must_be_a_string), 0, 0, 1, 0}, + {&__pyx_kp_u_tag_handle_must_be_a_string, __pyx_k_tag_handle_must_be_a_string, sizeof(__pyx_k_tag_handle_must_be_a_string), 0, 1, 0, 0}, + {&__pyx_kp_s_tag_must_be_a_string, __pyx_k_tag_must_be_a_string, sizeof(__pyx_k_tag_must_be_a_string), 0, 0, 1, 0}, + {&__pyx_kp_u_tag_must_be_a_string, __pyx_k_tag_must_be_a_string, sizeof(__pyx_k_tag_must_be_a_string), 0, 1, 0, 0}, + {&__pyx_kp_s_tag_prefix_must_be_a_string, __pyx_k_tag_prefix_must_be_a_string, sizeof(__pyx_k_tag_prefix_must_be_a_string), 0, 0, 1, 0}, + {&__pyx_kp_u_tag_prefix_must_be_a_string, __pyx_k_tag_prefix_must_be_a_string, sizeof(__pyx_k_tag_prefix_must_be_a_string), 0, 1, 0, 0}, + {&__pyx_n_s_tags, __pyx_k_tags, sizeof(__pyx_k_tags), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {&__pyx_n_s_tokens, __pyx_k_tokens, sizeof(__pyx_k_tokens), 0, 0, 1, 1}, + {&__pyx_kp_s_too_many_tags, __pyx_k_too_many_tags, sizeof(__pyx_k_too_many_tags), 0, 0, 1, 0}, + {&__pyx_kp_u_too_many_tags, __pyx_k_too_many_tags, sizeof(__pyx_k_too_many_tags), 0, 1, 0, 0}, + {&__pyx_kp_s_unicode_string, __pyx_k_unicode_string, sizeof(__pyx_k_unicode_string), 0, 0, 1, 0}, + {&__pyx_kp_u_unicode_string, __pyx_k_unicode_string, sizeof(__pyx_k_unicode_string), 0, 1, 0, 0}, + {&__pyx_kp_s_unknown_event_type, __pyx_k_unknown_event_type, sizeof(__pyx_k_unknown_event_type), 0, 0, 1, 0}, + {&__pyx_kp_u_unknown_event_type, __pyx_k_unknown_event_type, sizeof(__pyx_k_unknown_event_type), 0, 1, 0, 0}, + {&__pyx_kp_s_unknown_token_type, __pyx_k_unknown_token_type, sizeof(__pyx_k_unknown_token_type), 0, 0, 1, 0}, + {&__pyx_kp_u_unknown_token_type, __pyx_k_unknown_token_type, sizeof(__pyx_k_unknown_token_type), 0, 1, 0, 0}, + {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, + {&__pyx_kp_s_utf_16_be, __pyx_k_utf_16_be, sizeof(__pyx_k_utf_16_be), 0, 0, 1, 0}, + {&__pyx_kp_u_utf_16_be, __pyx_k_utf_16_be, sizeof(__pyx_k_utf_16_be), 0, 1, 0, 0}, + {&__pyx_kp_s_utf_16_le, __pyx_k_utf_16_le, sizeof(__pyx_k_utf_16_le), 0, 0, 1, 0}, + {&__pyx_kp_u_utf_16_le, __pyx_k_utf_16_le, sizeof(__pyx_k_utf_16_le), 0, 1, 0, 0}, + {&__pyx_kp_u_utf_8, __pyx_k_utf_8, sizeof(__pyx_k_utf_8), 0, 1, 0, 0}, + {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, + {&__pyx_kp_s_value_must_be_a_string, __pyx_k_value_must_be_a_string, sizeof(__pyx_k_value_must_be_a_string), 0, 0, 1, 0}, + {&__pyx_kp_u_value_must_be_a_string, __pyx_k_value_must_be_a_string, sizeof(__pyx_k_value_must_be_a_string), 0, 1, 0, 0}, + {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, + {&__pyx_n_s_width, __pyx_k_width, sizeof(__pyx_k_width), 0, 0, 1, 1}, + {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1}, + {&__pyx_n_s_yaml, __pyx_k_yaml, sizeof(__pyx_k_yaml), 0, 0, 1, 1}, + {&__pyx_n_s_yaml_2, __pyx_k_yaml_2, sizeof(__pyx_k_yaml_2), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 270, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 356, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "_yaml.pyx":301 + * if PyString_CheckExact(stream) == 0: + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string or stream input is required") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"a string or stream input is required") + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_a_string_or_stream_input_is_requ); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "_yaml.pyx":303 + * raise TypeError("a string or stream input is required") + * else: + * raise TypeError(u"a string or stream input is required") # <<<<<<<<<<<<<< + * self.stream = stream + * yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_a_string_or_stream_input_is_requ); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + + /* "_yaml.pyx":356 + * return ParserError(context, context_mark, problem, problem_mark) + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no parser error") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"no parser error") + */ + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_no_parser_error); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + + /* "_yaml.pyx":358 + * raise ValueError("no parser error") + * else: + * raise ValueError(u"no parser error") # <<<<<<<<<<<<<< + * + * def raw_scan(self): + */ + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_no_parser_error); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + + /* "_yaml.pyx":479 + * else: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("unknown token type") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"unknown token type") + */ + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_unknown_token_type); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); + + /* "_yaml.pyx":481 + * raise ValueError("unknown token type") + * else: + * raise ValueError(u"unknown token type") # <<<<<<<<<<<<<< + * + * def get_token(self): + */ + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_unknown_token_type); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); + + /* "_yaml.pyx":657 + * else: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("unknown event type") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"unknown event type") + */ + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_unknown_event_type); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + + /* "_yaml.pyx":659 + * raise ValueError("unknown event type") + * else: + * raise ValueError(u"unknown event type") # <<<<<<<<<<<<<< + * + * def get_event(self): + */ + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_unknown_event_type); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + */ + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_self_parsed_event_cannot_be_conv); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + + /* "(tree fragment)":4 + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("self.parsed_event cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< + */ + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_self_parsed_event_cannot_be_conv); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); + + /* "_yaml.pyx":918 + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: + * raise TypeError("a string value is expected") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"a string value is expected") + */ + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_a_string_value_is_expected); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + + /* "_yaml.pyx":920 + * raise TypeError("a string value is expected") + * else: + * raise TypeError(u"a string value is expected") # <<<<<<<<<<<<<< + * parser.stream_cache = value + * parser.stream_cache_pos = 0 + */ + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_a_string_value_is_expected); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); + + /* "_yaml.pyx":1012 + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no emitter error") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"no emitter error") + */ + __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_no_emitter_error); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + + /* "_yaml.pyx":1014 + * raise ValueError("no emitter error") + * else: + * raise ValueError(u"no emitter error") # <<<<<<<<<<<<<< + * + * cdef int _object_to_event(self, object event_object, yaml_event_t *event) except 0: + */ + __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_u_no_emitter_error); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 1014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + + /* "_yaml.pyx":1058 + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"too many tags") + */ + __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_too_many_tags); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 1058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__24); + __Pyx_GIVEREF(__pyx_tuple__24); + + /* "_yaml.pyx":1060 + * raise ValueError("too many tags") + * else: + * raise ValueError(u"too many tags") # <<<<<<<<<<<<<< + * tag_directives_start = tag_directives_value + * tag_directives_end = tag_directives_value + */ + __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_u_too_many_tags); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + + /* "_yaml.pyx":1071 + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag handle must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag handle must be a string") + */ + __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_tag_handle_must_be_a_string); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__26); + __Pyx_GIVEREF(__pyx_tuple__26); + + /* "_yaml.pyx":1073 + * raise TypeError("tag handle must be a string") + * else: + * raise TypeError(u"tag handle must be a string") # <<<<<<<<<<<<<< + * tag_directives_end.handle = PyString_AS_STRING(handle) + * if PyUnicode_CheckExact(prefix): + */ + __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_u_tag_handle_must_be_a_string); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 1073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + + /* "_yaml.pyx":1080 + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag prefix must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag prefix must be a string") + */ + __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_tag_prefix_must_be_a_string); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 1080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__28); + __Pyx_GIVEREF(__pyx_tuple__28); + + /* "_yaml.pyx":1082 + * raise TypeError("tag prefix must be a string") + * else: + * raise TypeError(u"tag prefix must be a string") # <<<<<<<<<<<<<< + * tag_directives_end.prefix = PyString_AS_STRING(prefix) + * tag_directives_end = tag_directives_end+1 + */ + __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_u_tag_prefix_must_be_a_string); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + + /* "_yaml.pyx":1103 + * if not PyString_CheckExact(anchor_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("anchor must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"anchor must be a string") + */ + __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_anchor_must_be_a_string); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 1103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__30); + __Pyx_GIVEREF(__pyx_tuple__30); + + /* "_yaml.pyx":1105 + * raise TypeError("anchor must be a string") + * else: + * raise TypeError(u"anchor must be a string") # <<<<<<<<<<<<<< + * anchor = PyString_AS_STRING(anchor_object) + * if yaml_alias_event_initialize(event, anchor) == 0: + */ + __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_u_anchor_must_be_a_string); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 1105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + + /* "_yaml.pyx":1128 + * if not PyString_CheckExact(tag_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("tag must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"tag must be a string") + */ + __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_tag_must_be_a_string); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 1128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__32); + __Pyx_GIVEREF(__pyx_tuple__32); + + /* "_yaml.pyx":1130 + * raise TypeError("tag must be a string") + * else: + * raise TypeError(u"tag must be a string") # <<<<<<<<<<<<<< + * tag = PyString_AS_STRING(tag_object) + * value_object = event_object.value + */ + __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_tag_must_be_a_string); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + + /* "_yaml.pyx":1137 + * if not PyString_CheckExact(value_object): + * if PY_MAJOR_VERSION < 3: + * raise TypeError("value must be a string") # <<<<<<<<<<<<<< + * else: + * raise TypeError(u"value must be a string") + */ + __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_value_must_be_a_string); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 1137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__34); + __Pyx_GIVEREF(__pyx_tuple__34); + + /* "_yaml.pyx":1139 + * raise TypeError("value must be a string") + * else: + * raise TypeError(u"value must be a string") # <<<<<<<<<<<<<< + * value = PyString_AS_STRING(value_object) + * length = PyString_GET_SIZE(value_object) + */ + __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_value_must_be_a_string); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 1139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); + + /* "_yaml.pyx":1412 + * quoted_implicit = 0 + * tag_object = node.tag + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: # <<<<<<<<<<<<<< + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + */ + __pyx_tuple__36 = PyTuple_Pack(2, Py_True, Py_False); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 1412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + + /* "_yaml.pyx":1414 + * if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + * plain_implicit = 1 + * if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: # <<<<<<<<<<<<<< + * quoted_implicit = 1 + * tag = NULL + */ + __pyx_tuple__37 = PyTuple_Pack(2, Py_False, Py_True); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + */ + __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); + + /* "(tree fragment)":4 + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("Pickling of struct members such as self.emitter must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< + */ + __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__39); + __Pyx_GIVEREF(__pyx_tuple__39); + + /* "_yaml.pyx":4 + * import yaml + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + __pyx_tuple__40 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__40); + __Pyx_GIVEREF(__pyx_tuple__40); + __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ext__yaml_pyx, __pyx_n_s_get_version_string, 4, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 4, __pyx_L1_error) + + /* "_yaml.pyx":12 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + __pyx_tuple__42 = PyTuple_Pack(3, __pyx_n_s_major, __pyx_n_s_minor, __pyx_n_s_patch); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__42); + __Pyx_GIVEREF(__pyx_tuple__42); + __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ext__yaml_pyx, __pyx_n_s_get_version, 12, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 12, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __pyx_unpickle_Mark(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_tuple__44 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__44); + __Pyx_GIVEREF(__pyx_tuple__44); + __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Mark, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 2, __pyx_L1_error); + __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_int_66733494 = PyInt_FromLong(66733494L); if (unlikely(!__pyx_int_66733494)) __PYX_ERR(0, 2, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + if (PyType_Ready(&__pyx_type_5_yaml_Mark) < 0) __PYX_ERR(0, 64, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_5_yaml_Mark.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5_yaml_Mark.tp_dictoffset && __pyx_type_5_yaml_Mark.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_5_yaml_Mark.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Mark, (PyObject *)&__pyx_type_5_yaml_Mark) < 0) __PYX_ERR(0, 64, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_5_yaml_Mark) < 0) __PYX_ERR(0, 64, __pyx_L1_error) + __pyx_ptype_5_yaml_Mark = &__pyx_type_5_yaml_Mark; + __pyx_vtabptr_5_yaml_CParser = &__pyx_vtable_5_yaml_CParser; + __pyx_vtable_5_yaml_CParser._parser_error = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *))__pyx_f_5_yaml_7CParser__parser_error; + __pyx_vtable_5_yaml_CParser._scan = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *))__pyx_f_5_yaml_7CParser__scan; + __pyx_vtable_5_yaml_CParser._token_to_object = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *, yaml_token_t *))__pyx_f_5_yaml_7CParser__token_to_object; + __pyx_vtable_5_yaml_CParser._parse = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *))__pyx_f_5_yaml_7CParser__parse; + __pyx_vtable_5_yaml_CParser._event_to_object = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *, yaml_event_t *))__pyx_f_5_yaml_7CParser__event_to_object; + __pyx_vtable_5_yaml_CParser._compose_document = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *))__pyx_f_5_yaml_7CParser__compose_document; + __pyx_vtable_5_yaml_CParser._compose_node = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *, PyObject *, PyObject *))__pyx_f_5_yaml_7CParser__compose_node; + __pyx_vtable_5_yaml_CParser._compose_scalar_node = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *, PyObject *))__pyx_f_5_yaml_7CParser__compose_scalar_node; + __pyx_vtable_5_yaml_CParser._compose_sequence_node = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *, PyObject *))__pyx_f_5_yaml_7CParser__compose_sequence_node; + __pyx_vtable_5_yaml_CParser._compose_mapping_node = (PyObject *(*)(struct __pyx_obj_5_yaml_CParser *, PyObject *))__pyx_f_5_yaml_7CParser__compose_mapping_node; + __pyx_vtable_5_yaml_CParser._parse_next_event = (int (*)(struct __pyx_obj_5_yaml_CParser *))__pyx_f_5_yaml_7CParser__parse_next_event; + if (PyType_Ready(&__pyx_type_5_yaml_CParser) < 0) __PYX_ERR(0, 247, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_5_yaml_CParser.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5_yaml_CParser.tp_dictoffset && __pyx_type_5_yaml_CParser.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_5_yaml_CParser.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_5_yaml_CParser.tp_dict, __pyx_vtabptr_5_yaml_CParser) < 0) __PYX_ERR(0, 247, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CParser, (PyObject *)&__pyx_type_5_yaml_CParser) < 0) __PYX_ERR(0, 247, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_5_yaml_CParser) < 0) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_ptype_5_yaml_CParser = &__pyx_type_5_yaml_CParser; + __pyx_vtabptr_5_yaml_CEmitter = &__pyx_vtable_5_yaml_CEmitter; + __pyx_vtable_5_yaml_CEmitter._emitter_error = (PyObject *(*)(struct __pyx_obj_5_yaml_CEmitter *))__pyx_f_5_yaml_8CEmitter__emitter_error; + __pyx_vtable_5_yaml_CEmitter._object_to_event = (int (*)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, yaml_event_t *))__pyx_f_5_yaml_8CEmitter__object_to_event; + __pyx_vtable_5_yaml_CEmitter._anchor_node = (int (*)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *))__pyx_f_5_yaml_8CEmitter__anchor_node; + __pyx_vtable_5_yaml_CEmitter._serialize_node = (int (*)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, PyObject *, PyObject *))__pyx_f_5_yaml_8CEmitter__serialize_node; + if (PyType_Ready(&__pyx_type_5_yaml_CEmitter) < 0) __PYX_ERR(0, 935, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_5_yaml_CEmitter.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5_yaml_CEmitter.tp_dictoffset && __pyx_type_5_yaml_CEmitter.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_5_yaml_CEmitter.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_5_yaml_CEmitter.tp_dict, __pyx_vtabptr_5_yaml_CEmitter) < 0) __PYX_ERR(0, 935, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CEmitter, (PyObject *)&__pyx_type_5_yaml_CEmitter) < 0) __PYX_ERR(0, 935, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_5_yaml_CEmitter) < 0) __PYX_ERR(0, 935, __pyx_L1_error) + __pyx_ptype_5_yaml_CEmitter = &__pyx_type_5_yaml_CEmitter; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#if PY_MAJOR_VERSION < 3 +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC void +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#else +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC init_yaml(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC init_yaml(void) +#else +__Pyx_PyMODINIT_FUNC PyInit__yaml(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit__yaml(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { + result = PyDict_SetItemString(moddict, to_name, value); + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec__yaml(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module '_yaml' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__yaml(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 2, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 2, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + #ifdef WITH_THREAD /* Python build with threading support? */ + PyEval_InitThreads(); + #endif + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("_yaml", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif + if (unlikely(!__pyx_m)) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 2, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 2, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 2, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 2, __pyx_L1_error); + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + if (__pyx_module_is_main__yaml) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 2, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 2, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "_yaml")) { + if (unlikely(PyDict_SetItemString(modules, "_yaml", __pyx_m) < 0)) __PYX_ERR(0, 2, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_type_import_code(); + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 2, __pyx_L1_error) + #endif + + /* "_yaml.pyx":2 + * + * import yaml # <<<<<<<<<<<<<< + * + * def get_version_string(): + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_yaml, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_yaml, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":4 + * import yaml + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5_yaml_1get_version_string, NULL, __pyx_n_s_yaml_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_version_string, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":12 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5_yaml_3get_version, NULL, __pyx_n_s_yaml_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_version, __pyx_t_1) < 0) __PYX_ERR(0, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":18 + * + * #Mark = yaml.error.Mark + * YAMLError = yaml.error.YAMLError # <<<<<<<<<<<<<< + * ReaderError = yaml.reader.ReaderError + * ScannerError = yaml.scanner.ScannerError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_YAMLError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_YAMLError, __pyx_t_1) < 0) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":19 + * #Mark = yaml.error.Mark + * YAMLError = yaml.error.YAMLError + * ReaderError = yaml.reader.ReaderError # <<<<<<<<<<<<<< + * ScannerError = yaml.scanner.ScannerError + * ParserError = yaml.parser.ParserError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reader); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ReaderError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ReaderError, __pyx_t_1) < 0) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":20 + * YAMLError = yaml.error.YAMLError + * ReaderError = yaml.reader.ReaderError + * ScannerError = yaml.scanner.ScannerError # <<<<<<<<<<<<<< + * ParserError = yaml.parser.ParserError + * ComposerError = yaml.composer.ComposerError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_scanner); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ScannerError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScannerError, __pyx_t_1) < 0) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":21 + * ReaderError = yaml.reader.ReaderError + * ScannerError = yaml.scanner.ScannerError + * ParserError = yaml.parser.ParserError # <<<<<<<<<<<<<< + * ComposerError = yaml.composer.ComposerError + * ConstructorError = yaml.constructor.ConstructorError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_parser); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ParserError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ParserError, __pyx_t_1) < 0) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":22 + * ScannerError = yaml.scanner.ScannerError + * ParserError = yaml.parser.ParserError + * ComposerError = yaml.composer.ComposerError # <<<<<<<<<<<<<< + * ConstructorError = yaml.constructor.ConstructorError + * EmitterError = yaml.emitter.EmitterError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_composer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ComposerError, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":23 + * ParserError = yaml.parser.ParserError + * ComposerError = yaml.composer.ComposerError + * ConstructorError = yaml.constructor.ConstructorError # <<<<<<<<<<<<<< + * EmitterError = yaml.emitter.EmitterError + * SerializerError = yaml.serializer.SerializerError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_constructor); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ConstructorError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ConstructorError, __pyx_t_1) < 0) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":24 + * ComposerError = yaml.composer.ComposerError + * ConstructorError = yaml.constructor.ConstructorError + * EmitterError = yaml.emitter.EmitterError # <<<<<<<<<<<<<< + * SerializerError = yaml.serializer.SerializerError + * RepresenterError = yaml.representer.RepresenterError + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_emitter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_EmitterError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EmitterError, __pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":25 + * ConstructorError = yaml.constructor.ConstructorError + * EmitterError = yaml.emitter.EmitterError + * SerializerError = yaml.serializer.SerializerError # <<<<<<<<<<<<<< + * RepresenterError = yaml.representer.RepresenterError + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_serializer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SerializerError, __pyx_t_1) < 0) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":26 + * EmitterError = yaml.emitter.EmitterError + * SerializerError = yaml.serializer.SerializerError + * RepresenterError = yaml.representer.RepresenterError # <<<<<<<<<<<<<< + * + * StreamStartToken = yaml.tokens.StreamStartToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_representer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RepresenterError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RepresenterError, __pyx_t_1) < 0) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":28 + * RepresenterError = yaml.representer.RepresenterError + * + * StreamStartToken = yaml.tokens.StreamStartToken # <<<<<<<<<<<<<< + * StreamEndToken = yaml.tokens.StreamEndToken + * DirectiveToken = yaml.tokens.DirectiveToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_StreamStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamStartToken, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":29 + * + * StreamStartToken = yaml.tokens.StreamStartToken + * StreamEndToken = yaml.tokens.StreamEndToken # <<<<<<<<<<<<<< + * DirectiveToken = yaml.tokens.DirectiveToken + * DocumentStartToken = yaml.tokens.DocumentStartToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_StreamEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamEndToken, __pyx_t_1) < 0) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":30 + * StreamStartToken = yaml.tokens.StreamStartToken + * StreamEndToken = yaml.tokens.StreamEndToken + * DirectiveToken = yaml.tokens.DirectiveToken # <<<<<<<<<<<<<< + * DocumentStartToken = yaml.tokens.DocumentStartToken + * DocumentEndToken = yaml.tokens.DocumentEndToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DirectiveToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DirectiveToken, __pyx_t_1) < 0) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":31 + * StreamEndToken = yaml.tokens.StreamEndToken + * DirectiveToken = yaml.tokens.DirectiveToken + * DocumentStartToken = yaml.tokens.DocumentStartToken # <<<<<<<<<<<<<< + * DocumentEndToken = yaml.tokens.DocumentEndToken + * BlockSequenceStartToken = yaml.tokens.BlockSequenceStartToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DocumentStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentStartToken, __pyx_t_1) < 0) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":32 + * DirectiveToken = yaml.tokens.DirectiveToken + * DocumentStartToken = yaml.tokens.DocumentStartToken + * DocumentEndToken = yaml.tokens.DocumentEndToken # <<<<<<<<<<<<<< + * BlockSequenceStartToken = yaml.tokens.BlockSequenceStartToken + * BlockMappingStartToken = yaml.tokens.BlockMappingStartToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DocumentEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentEndToken, __pyx_t_1) < 0) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":33 + * DocumentStartToken = yaml.tokens.DocumentStartToken + * DocumentEndToken = yaml.tokens.DocumentEndToken + * BlockSequenceStartToken = yaml.tokens.BlockSequenceStartToken # <<<<<<<<<<<<<< + * BlockMappingStartToken = yaml.tokens.BlockMappingStartToken + * BlockEndToken = yaml.tokens.BlockEndToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_BlockSequenceStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockSequenceStartToken, __pyx_t_1) < 0) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":34 + * DocumentEndToken = yaml.tokens.DocumentEndToken + * BlockSequenceStartToken = yaml.tokens.BlockSequenceStartToken + * BlockMappingStartToken = yaml.tokens.BlockMappingStartToken # <<<<<<<<<<<<<< + * BlockEndToken = yaml.tokens.BlockEndToken + * FlowSequenceStartToken = yaml.tokens.FlowSequenceStartToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_BlockMappingStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockMappingStartToken, __pyx_t_1) < 0) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":35 + * BlockSequenceStartToken = yaml.tokens.BlockSequenceStartToken + * BlockMappingStartToken = yaml.tokens.BlockMappingStartToken + * BlockEndToken = yaml.tokens.BlockEndToken # <<<<<<<<<<<<<< + * FlowSequenceStartToken = yaml.tokens.FlowSequenceStartToken + * FlowMappingStartToken = yaml.tokens.FlowMappingStartToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_BlockEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockEndToken, __pyx_t_1) < 0) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":36 + * BlockMappingStartToken = yaml.tokens.BlockMappingStartToken + * BlockEndToken = yaml.tokens.BlockEndToken + * FlowSequenceStartToken = yaml.tokens.FlowSequenceStartToken # <<<<<<<<<<<<<< + * FlowMappingStartToken = yaml.tokens.FlowMappingStartToken + * FlowSequenceEndToken = yaml.tokens.FlowSequenceEndToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FlowSequenceStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowSequenceStartToken, __pyx_t_1) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":37 + * BlockEndToken = yaml.tokens.BlockEndToken + * FlowSequenceStartToken = yaml.tokens.FlowSequenceStartToken + * FlowMappingStartToken = yaml.tokens.FlowMappingStartToken # <<<<<<<<<<<<<< + * FlowSequenceEndToken = yaml.tokens.FlowSequenceEndToken + * FlowMappingEndToken = yaml.tokens.FlowMappingEndToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FlowMappingStartToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowMappingStartToken, __pyx_t_1) < 0) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":38 + * FlowSequenceStartToken = yaml.tokens.FlowSequenceStartToken + * FlowMappingStartToken = yaml.tokens.FlowMappingStartToken + * FlowSequenceEndToken = yaml.tokens.FlowSequenceEndToken # <<<<<<<<<<<<<< + * FlowMappingEndToken = yaml.tokens.FlowMappingEndToken + * KeyToken = yaml.tokens.KeyToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FlowSequenceEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowSequenceEndToken, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":39 + * FlowMappingStartToken = yaml.tokens.FlowMappingStartToken + * FlowSequenceEndToken = yaml.tokens.FlowSequenceEndToken + * FlowMappingEndToken = yaml.tokens.FlowMappingEndToken # <<<<<<<<<<<<<< + * KeyToken = yaml.tokens.KeyToken + * ValueToken = yaml.tokens.ValueToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FlowMappingEndToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowMappingEndToken, __pyx_t_1) < 0) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":40 + * FlowSequenceEndToken = yaml.tokens.FlowSequenceEndToken + * FlowMappingEndToken = yaml.tokens.FlowMappingEndToken + * KeyToken = yaml.tokens.KeyToken # <<<<<<<<<<<<<< + * ValueToken = yaml.tokens.ValueToken + * BlockEntryToken = yaml.tokens.BlockEntryToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_KeyToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KeyToken, __pyx_t_1) < 0) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":41 + * FlowMappingEndToken = yaml.tokens.FlowMappingEndToken + * KeyToken = yaml.tokens.KeyToken + * ValueToken = yaml.tokens.ValueToken # <<<<<<<<<<<<<< + * BlockEntryToken = yaml.tokens.BlockEntryToken + * FlowEntryToken = yaml.tokens.FlowEntryToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ValueToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ValueToken, __pyx_t_1) < 0) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":42 + * KeyToken = yaml.tokens.KeyToken + * ValueToken = yaml.tokens.ValueToken + * BlockEntryToken = yaml.tokens.BlockEntryToken # <<<<<<<<<<<<<< + * FlowEntryToken = yaml.tokens.FlowEntryToken + * AliasToken = yaml.tokens.AliasToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_BlockEntryToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockEntryToken, __pyx_t_1) < 0) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":43 + * ValueToken = yaml.tokens.ValueToken + * BlockEntryToken = yaml.tokens.BlockEntryToken + * FlowEntryToken = yaml.tokens.FlowEntryToken # <<<<<<<<<<<<<< + * AliasToken = yaml.tokens.AliasToken + * AnchorToken = yaml.tokens.AnchorToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FlowEntryToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowEntryToken, __pyx_t_1) < 0) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":44 + * BlockEntryToken = yaml.tokens.BlockEntryToken + * FlowEntryToken = yaml.tokens.FlowEntryToken + * AliasToken = yaml.tokens.AliasToken # <<<<<<<<<<<<<< + * AnchorToken = yaml.tokens.AnchorToken + * TagToken = yaml.tokens.TagToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_AliasToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AliasToken, __pyx_t_1) < 0) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":45 + * FlowEntryToken = yaml.tokens.FlowEntryToken + * AliasToken = yaml.tokens.AliasToken + * AnchorToken = yaml.tokens.AnchorToken # <<<<<<<<<<<<<< + * TagToken = yaml.tokens.TagToken + * ScalarToken = yaml.tokens.ScalarToken + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_AnchorToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AnchorToken, __pyx_t_1) < 0) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":46 + * AliasToken = yaml.tokens.AliasToken + * AnchorToken = yaml.tokens.AnchorToken + * TagToken = yaml.tokens.TagToken # <<<<<<<<<<<<<< + * ScalarToken = yaml.tokens.ScalarToken + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TagToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TagToken, __pyx_t_1) < 0) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":47 + * AnchorToken = yaml.tokens.AnchorToken + * TagToken = yaml.tokens.TagToken + * ScalarToken = yaml.tokens.ScalarToken # <<<<<<<<<<<<<< + * + * StreamStartEvent = yaml.events.StreamStartEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ScalarToken); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarToken, __pyx_t_1) < 0) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":49 + * ScalarToken = yaml.tokens.ScalarToken + * + * StreamStartEvent = yaml.events.StreamStartEvent # <<<<<<<<<<<<<< + * StreamEndEvent = yaml.events.StreamEndEvent + * DocumentStartEvent = yaml.events.DocumentStartEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_StreamStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamStartEvent, __pyx_t_1) < 0) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":50 + * + * StreamStartEvent = yaml.events.StreamStartEvent + * StreamEndEvent = yaml.events.StreamEndEvent # <<<<<<<<<<<<<< + * DocumentStartEvent = yaml.events.DocumentStartEvent + * DocumentEndEvent = yaml.events.DocumentEndEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_StreamEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamEndEvent, __pyx_t_1) < 0) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":51 + * StreamStartEvent = yaml.events.StreamStartEvent + * StreamEndEvent = yaml.events.StreamEndEvent + * DocumentStartEvent = yaml.events.DocumentStartEvent # <<<<<<<<<<<<<< + * DocumentEndEvent = yaml.events.DocumentEndEvent + * AliasEvent = yaml.events.AliasEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DocumentStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentStartEvent, __pyx_t_1) < 0) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":52 + * StreamEndEvent = yaml.events.StreamEndEvent + * DocumentStartEvent = yaml.events.DocumentStartEvent + * DocumentEndEvent = yaml.events.DocumentEndEvent # <<<<<<<<<<<<<< + * AliasEvent = yaml.events.AliasEvent + * ScalarEvent = yaml.events.ScalarEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DocumentEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentEndEvent, __pyx_t_1) < 0) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":53 + * DocumentStartEvent = yaml.events.DocumentStartEvent + * DocumentEndEvent = yaml.events.DocumentEndEvent + * AliasEvent = yaml.events.AliasEvent # <<<<<<<<<<<<<< + * ScalarEvent = yaml.events.ScalarEvent + * SequenceStartEvent = yaml.events.SequenceStartEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_AliasEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AliasEvent, __pyx_t_1) < 0) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":54 + * DocumentEndEvent = yaml.events.DocumentEndEvent + * AliasEvent = yaml.events.AliasEvent + * ScalarEvent = yaml.events.ScalarEvent # <<<<<<<<<<<<<< + * SequenceStartEvent = yaml.events.SequenceStartEvent + * SequenceEndEvent = yaml.events.SequenceEndEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ScalarEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarEvent, __pyx_t_1) < 0) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":55 + * AliasEvent = yaml.events.AliasEvent + * ScalarEvent = yaml.events.ScalarEvent + * SequenceStartEvent = yaml.events.SequenceStartEvent # <<<<<<<<<<<<<< + * SequenceEndEvent = yaml.events.SequenceEndEvent + * MappingStartEvent = yaml.events.MappingStartEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SequenceStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SequenceStartEvent, __pyx_t_1) < 0) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":56 + * ScalarEvent = yaml.events.ScalarEvent + * SequenceStartEvent = yaml.events.SequenceStartEvent + * SequenceEndEvent = yaml.events.SequenceEndEvent # <<<<<<<<<<<<<< + * MappingStartEvent = yaml.events.MappingStartEvent + * MappingEndEvent = yaml.events.MappingEndEvent + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SequenceEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SequenceEndEvent, __pyx_t_1) < 0) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":57 + * SequenceStartEvent = yaml.events.SequenceStartEvent + * SequenceEndEvent = yaml.events.SequenceEndEvent + * MappingStartEvent = yaml.events.MappingStartEvent # <<<<<<<<<<<<<< + * MappingEndEvent = yaml.events.MappingEndEvent + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_MappingStartEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MappingStartEvent, __pyx_t_1) < 0) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":58 + * SequenceEndEvent = yaml.events.SequenceEndEvent + * MappingStartEvent = yaml.events.MappingStartEvent + * MappingEndEvent = yaml.events.MappingEndEvent # <<<<<<<<<<<<<< + * + * ScalarNode = yaml.nodes.ScalarNode + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_MappingEndEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MappingEndEvent, __pyx_t_1) < 0) __PYX_ERR(0, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":60 + * MappingEndEvent = yaml.events.MappingEndEvent + * + * ScalarNode = yaml.nodes.ScalarNode # <<<<<<<<<<<<<< + * SequenceNode = yaml.nodes.SequenceNode + * MappingNode = yaml.nodes.MappingNode + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarNode, __pyx_t_1) < 0) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":61 + * + * ScalarNode = yaml.nodes.ScalarNode + * SequenceNode = yaml.nodes.SequenceNode # <<<<<<<<<<<<<< + * MappingNode = yaml.nodes.MappingNode + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SequenceNode, __pyx_t_1) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":62 + * ScalarNode = yaml.nodes.ScalarNode + * SequenceNode = yaml.nodes.SequenceNode + * MappingNode = yaml.nodes.MappingNode # <<<<<<<<<<<<<< + * + * cdef class Mark: + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_yaml); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MappingNode, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":1 + * def __pyx_unpickle_Mark(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5_yaml_5__pyx_unpickle_Mark, NULL, __pyx_n_s_yaml_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Mark, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_yaml.pyx":2 + * + * import yaml # <<<<<<<<<<<<<< + * + * def get_version_string(): + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init _yaml", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init _yaml"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* RaiseArgTupleInvalid */ +static void __Pyx_RaiseArgtupleInvalid( + const char* func_name, + int exact, + Py_ssize_t num_min, + Py_ssize_t num_max, + Py_ssize_t num_found) +{ + Py_ssize_t num_expected; + const char *more_or_less; + if (num_found < num_min) { + num_expected = num_min; + more_or_less = "at least"; + } else { + num_expected = num_max; + more_or_less = "at most"; + } + if (exact) { + more_or_less = "exactly"; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", + func_name, more_or_less, num_expected, + (num_expected == 1) ? "" : "s", num_found); +} + +/* RaiseDoubleKeywords */ +static void __Pyx_RaiseDoubleKeywordsError( + const char* func_name, + PyObject* kw_name) +{ + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION >= 3 + "%s() got multiple values for keyword argument '%U'", func_name, kw_name); + #else + "%s() got multiple values for keyword argument '%s'", func_name, + PyString_AsString(kw_name)); + #endif +} + +/* ParseKeywords */ +static int __Pyx_ParseOptionalKeywords( + PyObject *kwds, + PyObject **argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name) +{ + PyObject *key = 0, *value = 0; + Py_ssize_t pos = 0; + PyObject*** name; + PyObject*** first_kw_arg = argnames + num_pos_args; + while (PyDict_Next(kwds, &pos, &key, &value)) { + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; + continue; + } + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { + while (*name) { + if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) + && _PyString_Eq(**name, key)) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + if ((**argname == key) || ( + (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) + && _PyString_Eq(**argname, key))) { + goto arg_passed_twice; + } + argname++; + } + } + } else + #endif + if (likely(PyUnicode_Check(key))) { + while (*name) { + int cmp = (**name == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + int cmp = (**argname == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : + #endif + PyUnicode_Compare(**argname, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) goto arg_passed_twice; + argname++; + } + } + } else + goto invalid_keyword_type; + if (kwds2) { + if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; + } else { + goto invalid_keyword; + } + } + return 0; +arg_passed_twice: + __Pyx_RaiseDoubleKeywordsError(function_name, key); + goto bad; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + goto bad; +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + return -1; +} + +/* PyErrExceptionMatches */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; i<n; i++) { + if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1; + } +#endif + for (i=0; i<n; i++) { + if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1; + } + return 0; +} +static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { + PyObject *exc_type = tstate->curexc_type; + if (exc_type == err) return 1; + if (unlikely(!exc_type)) return 0; + if (unlikely(PyTuple_Check(err))) + return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); + return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* GetAttr */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { +#if CYTHON_USE_TYPE_SLOTS +#if PY_MAJOR_VERSION >= 3 + if (likely(PyUnicode_Check(n))) +#else + if (likely(PyString_Check(n))) +#endif + return __Pyx_PyObject_GetAttrStr(o, n); +#endif + return PyObject_GetAttr(o, n); +} + +/* GetAttr3 */ +static PyObject *__Pyx_GetAttr3Default(PyObject *d) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + return NULL; + __Pyx_PyErr_Clear(); + Py_INCREF(d); + return d; +} +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { + PyObject *r = __Pyx_GetAttr(o, n); + return (likely(r)) ? r : __Pyx_GetAttr3Default(d); +} + +/* PyDictVersioning */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* GetModuleGlobalName */ +#if CYTHON_USE_DICT_VERSIONS +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) +#else +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) +#endif +{ + PyObject *result; +#if !CYTHON_AVOID_BORROWED_REFS +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 + result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } else if (unlikely(PyErr_Occurred())) { + return NULL; + } +#else + result = PyDict_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } +#endif +#else + result = PyObject_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } + PyErr_Clear(); +#endif + return __Pyx_GetBuiltinName(name); +} + +/* GetTopmostException */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * +__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) +{ + _PyErr_StackItem *exc_info = tstate->exc_info; + while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && + exc_info->previous_item != NULL) + { + exc_info = exc_info->previous_item; + } + return exc_info; +} +#endif + +/* SaveResetException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); + *type = exc_info->exc_type; + *value = exc_info->exc_value; + *tb = exc_info->exc_traceback; + #else + *type = tstate->exc_type; + *value = tstate->exc_value; + *tb = tstate->exc_traceback; + #endif + Py_XINCREF(*type); + Py_XINCREF(*value); + Py_XINCREF(*tb); +} +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = type; + exc_info->exc_value = value; + exc_info->exc_traceback = tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = type; + tstate->exc_value = value; + tstate->exc_traceback = tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +#endif + +/* GetException */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) +#endif +{ + PyObject *local_type, *local_value, *local_tb; +#if CYTHON_FAST_THREAD_STATE + PyObject *tmp_type, *tmp_value, *tmp_tb; + local_type = tstate->curexc_type; + local_value = tstate->curexc_value; + local_tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +#else + PyErr_Fetch(&local_type, &local_value, &local_tb); +#endif + PyErr_NormalizeException(&local_type, &local_value, &local_tb); +#if CYTHON_FAST_THREAD_STATE + if (unlikely(tstate->curexc_type)) +#else + if (unlikely(PyErr_Occurred())) +#endif + goto bad; + #if PY_MAJOR_VERSION >= 3 + if (local_tb) { + if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) + goto bad; + } + #endif + Py_XINCREF(local_tb); + Py_XINCREF(local_type); + Py_XINCREF(local_value); + *type = local_type; + *value = local_value; + *tb = local_tb; +#if CYTHON_FAST_THREAD_STATE + #if CYTHON_USE_EXC_INFO_STACK + { + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = local_type; + exc_info->exc_value = local_value; + exc_info->exc_traceback = local_tb; + } + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = local_type; + tstate->exc_value = local_value; + tstate->exc_traceback = local_tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +#else + PyErr_SetExcInfo(local_type, local_value, local_tb); +#endif + return 0; +bad: + *type = 0; + *value = 0; + *tb = 0; + Py_XDECREF(local_type); + Py_XDECREF(local_value); + Py_XDECREF(local_tb); + return -1; +} + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = func->ob_type->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_COMPILING_IN_PYPY + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#else + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { + PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); + PyObject *globals = PyFunction_GET_GLOBALS(func); + PyObject *argdefs = PyFunction_GET_DEFAULTS(func); + PyObject *closure; +#if PY_MAJOR_VERSION >= 3 + PyObject *kwdefs; +#endif + PyObject *kwtuple, **k; + PyObject **d; + Py_ssize_t nd; + Py_ssize_t nk; + PyObject *result; + assert(kwargs == NULL || PyDict_Check(kwargs)); + nk = kwargs ? PyDict_Size(kwargs) : 0; + if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { + return NULL; + } + if ( +#if PY_MAJOR_VERSION >= 3 + co->co_kwonlyargcount == 0 && +#endif + likely(kwargs == NULL || nk == 0) && + co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { + if (argdefs == NULL && co->co_argcount == nargs) { + result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); + goto done; + } + else if (nargs == 0 && argdefs != NULL + && co->co_argcount == Py_SIZE(argdefs)) { + /* function called with no arguments, but all parameters have + a default value: use default values as arguments .*/ + args = &PyTuple_GET_ITEM(argdefs, 0); + result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); + goto done; + } + } + if (kwargs != NULL) { + Py_ssize_t pos, i; + kwtuple = PyTuple_New(2 * nk); + if (kwtuple == NULL) { + result = NULL; + goto done; + } + k = &PyTuple_GET_ITEM(kwtuple, 0); + pos = i = 0; + while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { + Py_INCREF(k[i]); + Py_INCREF(k[i+1]); + i += 2; + } + nk = i / 2; + } + else { + kwtuple = NULL; + k = NULL; + } + closure = PyFunction_GET_CLOSURE(func); +#if PY_MAJOR_VERSION >= 3 + kwdefs = PyFunction_GET_KW_DEFAULTS(func); +#endif + if (argdefs != NULL) { + d = &PyTuple_GET_ITEM(argdefs, 0); + nd = Py_SIZE(argdefs); + } + else { + d = NULL; + nd = 0; + } +#if PY_MAJOR_VERSION >= 3 + result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, closure); +#endif + Py_XDECREF(kwtuple); +done: + Py_LeaveRecursiveCall(); + return result; +} +#endif +#endif + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kwdict, + const char* function_name, + int kw_allowed) +{ + PyObject* key = 0; + Py_ssize_t pos = 0; +#if CYTHON_COMPILING_IN_PYPY + if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + while (PyDict_Next(kwdict, &pos, &key, 0)) { + #if PY_MAJOR_VERSION < 3 + if (unlikely(!PyString_Check(key))) + #endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } + if ((!kw_allowed) && unlikely(key)) + goto invalid_keyword; + return 1; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + return 0; +#endif +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* GetItemInt */ +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + PyObject *r; + if (!j) return NULL; + r = PyObject_GetItem(o, j); + Py_DECREF(j); + return r; +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyList_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { + PyObject *r = PyList_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyTuple_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); + if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { + PyObject *r = PyList_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } + else if (PyTuple_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); + if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } else { + PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; + if (likely(m && m->sq_item)) { + if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { + Py_ssize_t l = m->sq_length(o); + if (likely(l >= 0)) { + i += l; + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + return NULL; + PyErr_Clear(); + } + } + return m->sq_item(o, i); + } + } +#else + if (is_list || PySequence_Check(o)) { + return PySequence_GetItem(o, i); + } +#endif + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +} + +/* ObjectGetItem */ +#if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { + PyObject *runerr; + Py_ssize_t key_value; + PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; + if (unlikely(!(m && m->sq_item))) { + PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); + return NULL; + } + key_value = __Pyx_PyIndex_AsSsize_t(index); + if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { + return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); + } + if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { + PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; + if (likely(m && m->mp_subscript)) { + return m->mp_subscript(obj, key); + } + return __Pyx_PyObject_GetIndex(obj, key); +} +#endif + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallNoArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, NULL, 0); + } +#endif +#ifdef __Pyx_CyFunction_USED + if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) +#else + if (likely(PyCFunction_Check(func))) +#endif + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { + return __Pyx_PyObject_CallMethO(func, NULL); + } + } + return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* None */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { + PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); +} + +/* PyObjectSetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_setattro)) + return tp->tp_setattro(obj, attr_name, value); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_setattr)) + return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); +#endif + return PyObject_SetAttr(obj, attr_name, value); +} +#endif + +/* PyObjectCall2Args */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { + PyObject *args, *result = NULL; + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyFunction_FastCall(function, args, 2); + } + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyCFunction_FastCall(function, args, 2); + } + #endif + args = PyTuple_New(2); + if (unlikely(!args)) goto done; + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 0, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 1, arg2); + Py_INCREF(function); + result = __Pyx_PyObject_Call(function, args, NULL); + Py_DECREF(args); + Py_DECREF(function); +done: + return result; +} + +/* HasAttr */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { + PyObject *r; + if (unlikely(!__Pyx_PyBaseString_Check(n))) { + PyErr_SetString(PyExc_TypeError, + "hasattr(): attribute name must be string"); + return -1; + } + r = __Pyx_GetAttr(o, n); + if (unlikely(!r)) { + PyErr_Clear(); + return 0; + } else { + Py_DECREF(r); + return 1; + } +} + +/* BytesEquals */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else + if (s1 == s2) { + return (equals == Py_EQ); + } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { + const char *ps1, *ps2; + Py_ssize_t length = PyBytes_GET_SIZE(s1); + if (length != PyBytes_GET_SIZE(s2)) + return (equals == Py_NE); + ps1 = PyBytes_AS_STRING(s1); + ps2 = PyBytes_AS_STRING(s2); + if (ps1[0] != ps2[0]) { + return (equals == Py_NE); + } else if (length == 1) { + return (equals == Py_EQ); + } else { + int result; +#if CYTHON_USE_UNICODE_INTERNALS + Py_hash_t hash1, hash2; + hash1 = ((PyBytesObject*)s1)->ob_shash; + hash2 = ((PyBytesObject*)s2)->ob_shash; + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + return (equals == Py_NE); + } +#endif + result = memcmp(ps1, ps2, (size_t)length); + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { + return (equals == Py_NE); + } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { + return (equals == Py_NE); + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +#endif +} + +/* UnicodeEquals */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else +#if PY_MAJOR_VERSION < 3 + PyObject* owned_ref = NULL; +#endif + int s1_is_unicode, s2_is_unicode; + if (s1 == s2) { + goto return_eq; + } + s1_is_unicode = PyUnicode_CheckExact(s1); + s2_is_unicode = PyUnicode_CheckExact(s2); +#if PY_MAJOR_VERSION < 3 + if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { + owned_ref = PyUnicode_FromObject(s2); + if (unlikely(!owned_ref)) + return -1; + s2 = owned_ref; + s2_is_unicode = 1; + } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { + owned_ref = PyUnicode_FromObject(s1); + if (unlikely(!owned_ref)) + return -1; + s1 = owned_ref; + s1_is_unicode = 1; + } else if (((!s2_is_unicode) & (!s1_is_unicode))) { + return __Pyx_PyBytes_Equals(s1, s2, equals); + } +#endif + if (s1_is_unicode & s2_is_unicode) { + Py_ssize_t length; + int kind; + void *data1, *data2; + if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) + return -1; + length = __Pyx_PyUnicode_GET_LENGTH(s1); + if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { + goto return_ne; + } +#if CYTHON_USE_UNICODE_INTERNALS + { + Py_hash_t hash1, hash2; + #if CYTHON_PEP393_ENABLED + hash1 = ((PyASCIIObject*)s1)->hash; + hash2 = ((PyASCIIObject*)s2)->hash; + #else + hash1 = ((PyUnicodeObject*)s1)->hash; + hash2 = ((PyUnicodeObject*)s2)->hash; + #endif + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + goto return_ne; + } + } +#endif + kind = __Pyx_PyUnicode_KIND(s1); + if (kind != __Pyx_PyUnicode_KIND(s2)) { + goto return_ne; + } + data1 = __Pyx_PyUnicode_DATA(s1); + data2 = __Pyx_PyUnicode_DATA(s2); + if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { + goto return_ne; + } else if (length == 1) { + goto return_eq; + } else { + int result = memcmp(data1, data2, (size_t)(length * kind)); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & s2_is_unicode) { + goto return_ne; + } else if ((s2 == Py_None) & s1_is_unicode) { + goto return_ne; + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +return_eq: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ); +return_ne: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_NE); +#endif +} + +/* RaiseTooManyValuesToUnpack */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + PyErr_Format(PyExc_ValueError, + "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); +} + +/* RaiseNeedMoreValuesToUnpack */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { + PyErr_Format(PyExc_ValueError, + "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", + index, (index == 1) ? "" : "s"); +} + +/* IterFinish */ +static CYTHON_INLINE int __Pyx_IterFinish(void) { +#if CYTHON_FAST_THREAD_STATE + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* exc_type = tstate->curexc_type; + if (unlikely(exc_type)) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { + PyObject *exc_value, *exc_tb; + exc_value = tstate->curexc_value; + exc_tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; + Py_DECREF(exc_type); + Py_XDECREF(exc_value); + Py_XDECREF(exc_tb); + return 0; + } else { + return -1; + } + } + return 0; +#else + if (unlikely(PyErr_Occurred())) { + if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { + PyErr_Clear(); + return 0; + } else { + return -1; + } + } + return 0; +#endif +} + +/* UnpackItemEndCheck */ +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { + if (unlikely(retval)) { + Py_DECREF(retval); + __Pyx_RaiseTooManyValuesError(expected); + return -1; + } else { + return __Pyx_IterFinish(); + } + return 0; +} + +/* Import */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + PyObject *empty_list = 0; + PyObject *module = 0; + PyObject *global_dict = 0; + PyObject *empty_dict = 0; + PyObject *list; + #if PY_MAJOR_VERSION < 3 + PyObject *py_import; + py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); + if (!py_import) + goto bad; + #endif + if (from_list) + list = from_list; + else { + empty_list = PyList_New(0); + if (!empty_list) + goto bad; + list = empty_list; + } + global_dict = PyModule_GetDict(__pyx_m); + if (!global_dict) + goto bad; + empty_dict = PyDict_New(); + if (!empty_dict) + goto bad; + { + #if PY_MAJOR_VERSION >= 3 + if (level == -1) { + if (strchr(__Pyx_MODULE_NAME, '.')) { + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, 1); + if (!module) { + if (!PyErr_ExceptionMatches(PyExc_ImportError)) + goto bad; + PyErr_Clear(); + } + } + level = 0; + } + #endif + if (!module) { + #if PY_MAJOR_VERSION < 3 + PyObject *py_level = PyInt_FromLong(level); + if (!py_level) + goto bad; + module = PyObject_CallFunctionObjArgs(py_import, + name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); + Py_DECREF(py_level); + #else + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, level); + #endif + } + } +bad: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_import); + #endif + Py_XDECREF(empty_list); + Py_XDECREF(empty_dict); + return module; +} + +/* ImportFrom */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { + PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); + if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Format(PyExc_ImportError, + #if PY_MAJOR_VERSION < 3 + "cannot import name %.230s", PyString_AS_STRING(name)); + #else + "cannot import name %S", name); + #endif + } + return value; +} + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; +#else + if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; +#endif +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto __PYX_BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto __PYX_BAD; + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto __PYX_GOOD; +__PYX_BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +__PYX_GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* SetVTable */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable) { +#if PY_VERSION_HEX >= 0x02070000 + PyObject *ob = PyCapsule_New(vtable, 0, 0); +#else + PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); +#endif + if (!ob) + goto bad; + if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) + goto bad; + Py_DECREF(ob); + return 0; +bad: + Py_XDECREF(ob); + return -1; +} + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + #if PY_MAJOR_VERSION < 3 + py_srcfile = PyString_FromString(filename); + #else + py_srcfile = PyUnicode_FromString(filename); + #endif + if (!py_srcfile) goto bad; + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + #else + py_funcname = PyUnicode_FromString(funcname); + #endif + } + if (!py_funcname) goto bad; + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + Py_DECREF(py_funcname); + return py_code; +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) goto bad; + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +/* CIntFromPyVerify */ +#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { + const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(size_t) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (size_t) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { + return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { + return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { + return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (size_t) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(size_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) + case -2: + if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + } +#endif + if (sizeof(size_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + size_t val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (size_t) -1; + } + } else { + size_t val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (size_t) -1; + val = __Pyx_PyInt_As_size_t(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to size_t"); + return (size_t) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to size_t"); + return (size_t) -1; +} + +/* CIntFromPy */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* CIntFromPy */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; i<n; i++) { + if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1; + } +#endif + for (i=0; i<n; i++) { + PyObject *t = PyTuple_GET_ITEM(tuple, i); + #if PY_MAJOR_VERSION < 3 + if (likely(exc_type == t)) return 1; + #endif + if (likely(PyExceptionClass_Check(t))) { + if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1; + } else { + } + } + return 0; +} +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { + if (likely(err == exc_type)) return 1; + if (likely(PyExceptionClass_Check(err))) { + if (likely(PyExceptionClass_Check(exc_type))) { + return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); + } else if (likely(PyTuple_Check(exc_type))) { + return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type); + } else { + } + } + return PyErr_GivenExceptionMatches(err, exc_type); +} +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { + assert(PyExceptionClass_Check(exc_type1)); + assert(PyExceptionClass_Check(exc_type2)); + if (likely(err == exc_type1 || err == exc_type2)) return 1; + if (likely(PyExceptionClass_Check(err))) { + return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); + } + return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); +} +#endif + +/* CheckBinaryVersion */ +static int __Pyx_check_binary_version(void) { + char ctversion[4], rtversion[4]; + PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); + if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char message[200]; + PyOS_snprintf(message, sizeof(message), + "compiletime version %s of module '%.100s' " + "does not match runtime version %s", + ctversion, __Pyx_MODULE_NAME, rtversion); + return PyErr_WarnEx(NULL, message, 1); + } + return 0; +} + +/* InitStrings */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/third_party/python/PyYAML/ext/_yaml.h b/third_party/python/PyYAML/ext/_yaml.h new file mode 100644 index 0000000000..21fd6a991b --- /dev/null +++ b/third_party/python/PyYAML/ext/_yaml.h @@ -0,0 +1,23 @@ + +#include <yaml.h> + +#if PY_MAJOR_VERSION < 3 + +#define PyUnicode_FromString(s) PyUnicode_DecodeUTF8((s), strlen(s), "strict") + +#else + +#define PyString_CheckExact PyBytes_CheckExact +#define PyString_AS_STRING PyBytes_AS_STRING +#define PyString_GET_SIZE PyBytes_GET_SIZE +#define PyString_FromStringAndSize PyBytes_FromStringAndSize + +#endif + +#ifdef _MSC_VER /* MS Visual C++ 6.0 */ +#if _MSC_VER == 1200 + +#define PyLong_FromUnsignedLongLong(z) PyInt_FromLong(i) + +#endif +#endif diff --git a/third_party/python/PyYAML/ext/_yaml.pxd b/third_party/python/PyYAML/ext/_yaml.pxd new file mode 100644 index 0000000000..7937c9db51 --- /dev/null +++ b/third_party/python/PyYAML/ext/_yaml.pxd @@ -0,0 +1,251 @@ + +cdef extern from "_yaml.h": + + void malloc(int l) + void memcpy(char *d, char *s, int l) + int strlen(char *s) + int PyString_CheckExact(object o) + int PyUnicode_CheckExact(object o) + char *PyString_AS_STRING(object o) + int PyString_GET_SIZE(object o) + object PyString_FromStringAndSize(char *v, int l) + object PyUnicode_FromString(char *u) + object PyUnicode_DecodeUTF8(char *u, int s, char *e) + object PyUnicode_AsUTF8String(object o) + int PY_MAJOR_VERSION + + ctypedef enum: + SIZEOF_VOID_P + ctypedef enum yaml_encoding_t: + YAML_ANY_ENCODING + YAML_UTF8_ENCODING + YAML_UTF16LE_ENCODING + YAML_UTF16BE_ENCODING + ctypedef enum yaml_break_t: + YAML_ANY_BREAK + YAML_CR_BREAK + YAML_LN_BREAK + YAML_CRLN_BREAK + ctypedef enum yaml_error_type_t: + YAML_NO_ERROR + YAML_MEMORY_ERROR + YAML_READER_ERROR + YAML_SCANNER_ERROR + YAML_PARSER_ERROR + YAML_WRITER_ERROR + YAML_EMITTER_ERROR + ctypedef enum yaml_scalar_style_t: + YAML_ANY_SCALAR_STYLE + YAML_PLAIN_SCALAR_STYLE + YAML_SINGLE_QUOTED_SCALAR_STYLE + YAML_DOUBLE_QUOTED_SCALAR_STYLE + YAML_LITERAL_SCALAR_STYLE + YAML_FOLDED_SCALAR_STYLE + ctypedef enum yaml_sequence_style_t: + YAML_ANY_SEQUENCE_STYLE + YAML_BLOCK_SEQUENCE_STYLE + YAML_FLOW_SEQUENCE_STYLE + ctypedef enum yaml_mapping_style_t: + YAML_ANY_MAPPING_STYLE + YAML_BLOCK_MAPPING_STYLE + YAML_FLOW_MAPPING_STYLE + ctypedef enum yaml_token_type_t: + YAML_NO_TOKEN + YAML_STREAM_START_TOKEN + YAML_STREAM_END_TOKEN + YAML_VERSION_DIRECTIVE_TOKEN + YAML_TAG_DIRECTIVE_TOKEN + YAML_DOCUMENT_START_TOKEN + YAML_DOCUMENT_END_TOKEN + YAML_BLOCK_SEQUENCE_START_TOKEN + YAML_BLOCK_MAPPING_START_TOKEN + YAML_BLOCK_END_TOKEN + YAML_FLOW_SEQUENCE_START_TOKEN + YAML_FLOW_SEQUENCE_END_TOKEN + YAML_FLOW_MAPPING_START_TOKEN + YAML_FLOW_MAPPING_END_TOKEN + YAML_BLOCK_ENTRY_TOKEN + YAML_FLOW_ENTRY_TOKEN + YAML_KEY_TOKEN + YAML_VALUE_TOKEN + YAML_ALIAS_TOKEN + YAML_ANCHOR_TOKEN + YAML_TAG_TOKEN + YAML_SCALAR_TOKEN + ctypedef enum yaml_event_type_t: + YAML_NO_EVENT + YAML_STREAM_START_EVENT + YAML_STREAM_END_EVENT + YAML_DOCUMENT_START_EVENT + YAML_DOCUMENT_END_EVENT + YAML_ALIAS_EVENT + YAML_SCALAR_EVENT + YAML_SEQUENCE_START_EVENT + YAML_SEQUENCE_END_EVENT + YAML_MAPPING_START_EVENT + YAML_MAPPING_END_EVENT + + ctypedef int yaml_read_handler_t(void *data, char *buffer, + size_t size, size_t *size_read) except 0 + + ctypedef int yaml_write_handler_t(void *data, char *buffer, + size_t size) except 0 + + ctypedef struct yaml_mark_t: + size_t index + size_t line + size_t column + ctypedef struct yaml_version_directive_t: + int major + int minor + ctypedef struct yaml_tag_directive_t: + char *handle + char *prefix + + ctypedef struct _yaml_token_stream_start_data_t: + yaml_encoding_t encoding + ctypedef struct _yaml_token_alias_data_t: + char *value + ctypedef struct _yaml_token_anchor_data_t: + char *value + ctypedef struct _yaml_token_tag_data_t: + char *handle + char *suffix + ctypedef struct _yaml_token_scalar_data_t: + char *value + size_t length + yaml_scalar_style_t style + ctypedef struct _yaml_token_version_directive_data_t: + int major + int minor + ctypedef struct _yaml_token_tag_directive_data_t: + char *handle + char *prefix + ctypedef union _yaml_token_data_t: + _yaml_token_stream_start_data_t stream_start + _yaml_token_alias_data_t alias + _yaml_token_anchor_data_t anchor + _yaml_token_tag_data_t tag + _yaml_token_scalar_data_t scalar + _yaml_token_version_directive_data_t version_directive + _yaml_token_tag_directive_data_t tag_directive + ctypedef struct yaml_token_t: + yaml_token_type_t type + _yaml_token_data_t data + yaml_mark_t start_mark + yaml_mark_t end_mark + + ctypedef struct _yaml_event_stream_start_data_t: + yaml_encoding_t encoding + ctypedef struct _yaml_event_document_start_data_tag_directives_t: + yaml_tag_directive_t *start + yaml_tag_directive_t *end + ctypedef struct _yaml_event_document_start_data_t: + yaml_version_directive_t *version_directive + _yaml_event_document_start_data_tag_directives_t tag_directives + int implicit + ctypedef struct _yaml_event_document_end_data_t: + int implicit + ctypedef struct _yaml_event_alias_data_t: + char *anchor + ctypedef struct _yaml_event_scalar_data_t: + char *anchor + char *tag + char *value + size_t length + int plain_implicit + int quoted_implicit + yaml_scalar_style_t style + ctypedef struct _yaml_event_sequence_start_data_t: + char *anchor + char *tag + int implicit + yaml_sequence_style_t style + ctypedef struct _yaml_event_mapping_start_data_t: + char *anchor + char *tag + int implicit + yaml_mapping_style_t style + ctypedef union _yaml_event_data_t: + _yaml_event_stream_start_data_t stream_start + _yaml_event_document_start_data_t document_start + _yaml_event_document_end_data_t document_end + _yaml_event_alias_data_t alias + _yaml_event_scalar_data_t scalar + _yaml_event_sequence_start_data_t sequence_start + _yaml_event_mapping_start_data_t mapping_start + ctypedef struct yaml_event_t: + yaml_event_type_t type + _yaml_event_data_t data + yaml_mark_t start_mark + yaml_mark_t end_mark + + ctypedef struct yaml_parser_t: + yaml_error_type_t error + char *problem + size_t problem_offset + int problem_value + yaml_mark_t problem_mark + char *context + yaml_mark_t context_mark + + ctypedef struct yaml_emitter_t: + yaml_error_type_t error + char *problem + + char *yaml_get_version_string() + void yaml_get_version(int *major, int *minor, int *patch) + + void yaml_token_delete(yaml_token_t *token) + + int yaml_stream_start_event_initialize(yaml_event_t *event, + yaml_encoding_t encoding) + int yaml_stream_end_event_initialize(yaml_event_t *event) + int yaml_document_start_event_initialize(yaml_event_t *event, + yaml_version_directive_t *version_directive, + yaml_tag_directive_t *tag_directives_start, + yaml_tag_directive_t *tag_directives_end, + int implicit) + int yaml_document_end_event_initialize(yaml_event_t *event, + int implicit) + int yaml_alias_event_initialize(yaml_event_t *event, char *anchor) + int yaml_scalar_event_initialize(yaml_event_t *event, + char *anchor, char *tag, char *value, size_t length, + int plain_implicit, int quoted_implicit, + yaml_scalar_style_t style) + int yaml_sequence_start_event_initialize(yaml_event_t *event, + char *anchor, char *tag, int implicit, yaml_sequence_style_t style) + int yaml_sequence_end_event_initialize(yaml_event_t *event) + int yaml_mapping_start_event_initialize(yaml_event_t *event, + char *anchor, char *tag, int implicit, yaml_mapping_style_t style) + int yaml_mapping_end_event_initialize(yaml_event_t *event) + void yaml_event_delete(yaml_event_t *event) + + int yaml_parser_initialize(yaml_parser_t *parser) + void yaml_parser_delete(yaml_parser_t *parser) + void yaml_parser_set_input_string(yaml_parser_t *parser, + char *input, size_t size) + void yaml_parser_set_input(yaml_parser_t *parser, + yaml_read_handler_t *handler, void *data) + void yaml_parser_set_encoding(yaml_parser_t *parser, + yaml_encoding_t encoding) + int yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token) except * + int yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event) except * + + int yaml_emitter_initialize(yaml_emitter_t *emitter) + void yaml_emitter_delete(yaml_emitter_t *emitter) + void yaml_emitter_set_output_string(yaml_emitter_t *emitter, + char *output, size_t size, size_t *size_written) + void yaml_emitter_set_output(yaml_emitter_t *emitter, + yaml_write_handler_t *handler, void *data) + void yaml_emitter_set_encoding(yaml_emitter_t *emitter, + yaml_encoding_t encoding) + void yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical) + void yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent) + void yaml_emitter_set_width(yaml_emitter_t *emitter, int width) + void yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode) + void yaml_emitter_set_break(yaml_emitter_t *emitter, + yaml_break_t line_break) + int yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event) except * + int yaml_emitter_flush(yaml_emitter_t *emitter) + diff --git a/third_party/python/PyYAML/ext/_yaml.pyx b/third_party/python/PyYAML/ext/_yaml.pyx new file mode 100644 index 0000000000..ff4efe80b5 --- /dev/null +++ b/third_party/python/PyYAML/ext/_yaml.pyx @@ -0,0 +1,1527 @@ + +import yaml + +def get_version_string(): + cdef char *value + value = yaml_get_version_string() + if PY_MAJOR_VERSION < 3: + return value + else: + return PyUnicode_FromString(value) + +def get_version(): + cdef int major, minor, patch + yaml_get_version(&major, &minor, &patch) + return (major, minor, patch) + +#Mark = yaml.error.Mark +YAMLError = yaml.error.YAMLError +ReaderError = yaml.reader.ReaderError +ScannerError = yaml.scanner.ScannerError +ParserError = yaml.parser.ParserError +ComposerError = yaml.composer.ComposerError +ConstructorError = yaml.constructor.ConstructorError +EmitterError = yaml.emitter.EmitterError +SerializerError = yaml.serializer.SerializerError +RepresenterError = yaml.representer.RepresenterError + +StreamStartToken = yaml.tokens.StreamStartToken +StreamEndToken = yaml.tokens.StreamEndToken +DirectiveToken = yaml.tokens.DirectiveToken +DocumentStartToken = yaml.tokens.DocumentStartToken +DocumentEndToken = yaml.tokens.DocumentEndToken +BlockSequenceStartToken = yaml.tokens.BlockSequenceStartToken +BlockMappingStartToken = yaml.tokens.BlockMappingStartToken +BlockEndToken = yaml.tokens.BlockEndToken +FlowSequenceStartToken = yaml.tokens.FlowSequenceStartToken +FlowMappingStartToken = yaml.tokens.FlowMappingStartToken +FlowSequenceEndToken = yaml.tokens.FlowSequenceEndToken +FlowMappingEndToken = yaml.tokens.FlowMappingEndToken +KeyToken = yaml.tokens.KeyToken +ValueToken = yaml.tokens.ValueToken +BlockEntryToken = yaml.tokens.BlockEntryToken +FlowEntryToken = yaml.tokens.FlowEntryToken +AliasToken = yaml.tokens.AliasToken +AnchorToken = yaml.tokens.AnchorToken +TagToken = yaml.tokens.TagToken +ScalarToken = yaml.tokens.ScalarToken + +StreamStartEvent = yaml.events.StreamStartEvent +StreamEndEvent = yaml.events.StreamEndEvent +DocumentStartEvent = yaml.events.DocumentStartEvent +DocumentEndEvent = yaml.events.DocumentEndEvent +AliasEvent = yaml.events.AliasEvent +ScalarEvent = yaml.events.ScalarEvent +SequenceStartEvent = yaml.events.SequenceStartEvent +SequenceEndEvent = yaml.events.SequenceEndEvent +MappingStartEvent = yaml.events.MappingStartEvent +MappingEndEvent = yaml.events.MappingEndEvent + +ScalarNode = yaml.nodes.ScalarNode +SequenceNode = yaml.nodes.SequenceNode +MappingNode = yaml.nodes.MappingNode + +cdef class Mark: + cdef readonly object name + cdef readonly size_t index + cdef readonly size_t line + cdef readonly size_t column + cdef readonly buffer + cdef readonly pointer + + def __init__(self, object name, size_t index, size_t line, size_t column, + object buffer, object pointer): + self.name = name + self.index = index + self.line = line + self.column = column + self.buffer = buffer + self.pointer = pointer + + def get_snippet(self): + return None + + def __str__(self): + where = " in \"%s\", line %d, column %d" \ + % (self.name, self.line+1, self.column+1) + return where + +#class YAMLError(Exception): +# pass +# +#class MarkedYAMLError(YAMLError): +# +# def __init__(self, context=None, context_mark=None, +# problem=None, problem_mark=None, note=None): +# self.context = context +# self.context_mark = context_mark +# self.problem = problem +# self.problem_mark = problem_mark +# self.note = note +# +# def __str__(self): +# lines = [] +# if self.context is not None: +# lines.append(self.context) +# if self.context_mark is not None \ +# and (self.problem is None or self.problem_mark is None +# or self.context_mark.name != self.problem_mark.name +# or self.context_mark.line != self.problem_mark.line +# or self.context_mark.column != self.problem_mark.column): +# lines.append(str(self.context_mark)) +# if self.problem is not None: +# lines.append(self.problem) +# if self.problem_mark is not None: +# lines.append(str(self.problem_mark)) +# if self.note is not None: +# lines.append(self.note) +# return '\n'.join(lines) +# +#class ReaderError(YAMLError): +# +# def __init__(self, name, position, character, encoding, reason): +# self.name = name +# self.character = character +# self.position = position +# self.encoding = encoding +# self.reason = reason +# +# def __str__(self): +# if isinstance(self.character, str): +# return "'%s' codec can't decode byte #x%02x: %s\n" \ +# " in \"%s\", position %d" \ +# % (self.encoding, ord(self.character), self.reason, +# self.name, self.position) +# else: +# return "unacceptable character #x%04x: %s\n" \ +# " in \"%s\", position %d" \ +# % (ord(self.character), self.reason, +# self.name, self.position) +# +#class ScannerError(MarkedYAMLError): +# pass +# +#class ParserError(MarkedYAMLError): +# pass +# +#class EmitterError(YAMLError): +# pass +# +#cdef class Token: +# cdef readonly Mark start_mark +# cdef readonly Mark end_mark +# def __init__(self, Mark start_mark, Mark end_mark): +# self.start_mark = start_mark +# self.end_mark = end_mark +# +#cdef class StreamStartToken(Token): +# cdef readonly object encoding +# def __init__(self, Mark start_mark, Mark end_mark, encoding): +# self.start_mark = start_mark +# self.end_mark = end_mark +# self.encoding = encoding +# +#cdef class StreamEndToken(Token): +# pass +# +#cdef class DirectiveToken(Token): +# cdef readonly object name +# cdef readonly object value +# def __init__(self, name, value, Mark start_mark, Mark end_mark): +# self.name = name +# self.value = value +# self.start_mark = start_mark +# self.end_mark = end_mark +# +#cdef class DocumentStartToken(Token): +# pass +# +#cdef class DocumentEndToken(Token): +# pass +# +#cdef class BlockSequenceStartToken(Token): +# pass +# +#cdef class BlockMappingStartToken(Token): +# pass +# +#cdef class BlockEndToken(Token): +# pass +# +#cdef class FlowSequenceStartToken(Token): +# pass +# +#cdef class FlowMappingStartToken(Token): +# pass +# +#cdef class FlowSequenceEndToken(Token): +# pass +# +#cdef class FlowMappingEndToken(Token): +# pass +# +#cdef class KeyToken(Token): +# pass +# +#cdef class ValueToken(Token): +# pass +# +#cdef class BlockEntryToken(Token): +# pass +# +#cdef class FlowEntryToken(Token): +# pass +# +#cdef class AliasToken(Token): +# cdef readonly object value +# def __init__(self, value, Mark start_mark, Mark end_mark): +# self.value = value +# self.start_mark = start_mark +# self.end_mark = end_mark +# +#cdef class AnchorToken(Token): +# cdef readonly object value +# def __init__(self, value, Mark start_mark, Mark end_mark): +# self.value = value +# self.start_mark = start_mark +# self.end_mark = end_mark +# +#cdef class TagToken(Token): +# cdef readonly object value +# def __init__(self, value, Mark start_mark, Mark end_mark): +# self.value = value +# self.start_mark = start_mark +# self.end_mark = end_mark +# +#cdef class ScalarToken(Token): +# cdef readonly object value +# cdef readonly object plain +# cdef readonly object style +# def __init__(self, value, plain, Mark start_mark, Mark end_mark, style=None): +# self.value = value +# self.plain = plain +# self.start_mark = start_mark +# self.end_mark = end_mark +# self.style = style + +cdef class CParser: + + cdef yaml_parser_t parser + cdef yaml_event_t parsed_event + + cdef object stream + cdef object stream_name + cdef object current_token + cdef object current_event + cdef object anchors + cdef object stream_cache + cdef int stream_cache_len + cdef int stream_cache_pos + cdef int unicode_source + + def __init__(self, stream): + cdef is_readable + if yaml_parser_initialize(&self.parser) == 0: + raise MemoryError + self.parsed_event.type = YAML_NO_EVENT + is_readable = 1 + try: + stream.read + except AttributeError: + is_readable = 0 + self.unicode_source = 0 + if is_readable: + self.stream = stream + try: + self.stream_name = stream.name + except AttributeError: + if PY_MAJOR_VERSION < 3: + self.stream_name = '<file>' + else: + self.stream_name = u'<file>' + self.stream_cache = None + self.stream_cache_len = 0 + self.stream_cache_pos = 0 + yaml_parser_set_input(&self.parser, input_handler, <void *>self) + else: + if PyUnicode_CheckExact(stream) != 0: + stream = PyUnicode_AsUTF8String(stream) + if PY_MAJOR_VERSION < 3: + self.stream_name = '<unicode string>' + else: + self.stream_name = u'<unicode string>' + self.unicode_source = 1 + else: + if PY_MAJOR_VERSION < 3: + self.stream_name = '<byte string>' + else: + self.stream_name = u'<byte string>' + if PyString_CheckExact(stream) == 0: + if PY_MAJOR_VERSION < 3: + raise TypeError("a string or stream input is required") + else: + raise TypeError(u"a string or stream input is required") + self.stream = stream + yaml_parser_set_input_string(&self.parser, PyString_AS_STRING(stream), PyString_GET_SIZE(stream)) + self.current_token = None + self.current_event = None + self.anchors = {} + + def __dealloc__(self): + yaml_parser_delete(&self.parser) + yaml_event_delete(&self.parsed_event) + + def dispose(self): + pass + + cdef object _parser_error(self): + if self.parser.error == YAML_MEMORY_ERROR: + return MemoryError + elif self.parser.error == YAML_READER_ERROR: + if PY_MAJOR_VERSION < 3: + return ReaderError(self.stream_name, self.parser.problem_offset, + self.parser.problem_value, '?', self.parser.problem) + else: + return ReaderError(self.stream_name, self.parser.problem_offset, + self.parser.problem_value, u'?', PyUnicode_FromString(self.parser.problem)) + elif self.parser.error == YAML_SCANNER_ERROR \ + or self.parser.error == YAML_PARSER_ERROR: + context_mark = None + problem_mark = None + if self.parser.context != NULL: + context_mark = Mark(self.stream_name, + self.parser.context_mark.index, + self.parser.context_mark.line, + self.parser.context_mark.column, None, None) + if self.parser.problem != NULL: + problem_mark = Mark(self.stream_name, + self.parser.problem_mark.index, + self.parser.problem_mark.line, + self.parser.problem_mark.column, None, None) + context = None + if self.parser.context != NULL: + if PY_MAJOR_VERSION < 3: + context = self.parser.context + else: + context = PyUnicode_FromString(self.parser.context) + if PY_MAJOR_VERSION < 3: + problem = self.parser.problem + else: + problem = PyUnicode_FromString(self.parser.problem) + if self.parser.error == YAML_SCANNER_ERROR: + return ScannerError(context, context_mark, problem, problem_mark) + else: + return ParserError(context, context_mark, problem, problem_mark) + if PY_MAJOR_VERSION < 3: + raise ValueError("no parser error") + else: + raise ValueError(u"no parser error") + + def raw_scan(self): + cdef yaml_token_t token + cdef int done + cdef int count + count = 0 + done = 0 + while done == 0: + if yaml_parser_scan(&self.parser, &token) == 0: + error = self._parser_error() + raise error + if token.type == YAML_NO_TOKEN: + done = 1 + else: + count = count+1 + yaml_token_delete(&token) + return count + + cdef object _scan(self): + cdef yaml_token_t token + if yaml_parser_scan(&self.parser, &token) == 0: + error = self._parser_error() + raise error + token_object = self._token_to_object(&token) + yaml_token_delete(&token) + return token_object + + cdef object _token_to_object(self, yaml_token_t *token): + start_mark = Mark(self.stream_name, + token.start_mark.index, + token.start_mark.line, + token.start_mark.column, + None, None) + end_mark = Mark(self.stream_name, + token.end_mark.index, + token.end_mark.line, + token.end_mark.column, + None, None) + if token.type == YAML_NO_TOKEN: + return None + elif token.type == YAML_STREAM_START_TOKEN: + encoding = None + if token.data.stream_start.encoding == YAML_UTF8_ENCODING: + if self.unicode_source == 0: + encoding = u"utf-8" + elif token.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + encoding = u"utf-16-le" + elif token.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + encoding = u"utf-16-be" + return StreamStartToken(start_mark, end_mark, encoding) + elif token.type == YAML_STREAM_END_TOKEN: + return StreamEndToken(start_mark, end_mark) + elif token.type == YAML_VERSION_DIRECTIVE_TOKEN: + return DirectiveToken(u"YAML", + (token.data.version_directive.major, + token.data.version_directive.minor), + start_mark, end_mark) + elif token.type == YAML_TAG_DIRECTIVE_TOKEN: + handle = PyUnicode_FromString(token.data.tag_directive.handle) + prefix = PyUnicode_FromString(token.data.tag_directive.prefix) + return DirectiveToken(u"TAG", (handle, prefix), + start_mark, end_mark) + elif token.type == YAML_DOCUMENT_START_TOKEN: + return DocumentStartToken(start_mark, end_mark) + elif token.type == YAML_DOCUMENT_END_TOKEN: + return DocumentEndToken(start_mark, end_mark) + elif token.type == YAML_BLOCK_SEQUENCE_START_TOKEN: + return BlockSequenceStartToken(start_mark, end_mark) + elif token.type == YAML_BLOCK_MAPPING_START_TOKEN: + return BlockMappingStartToken(start_mark, end_mark) + elif token.type == YAML_BLOCK_END_TOKEN: + return BlockEndToken(start_mark, end_mark) + elif token.type == YAML_FLOW_SEQUENCE_START_TOKEN: + return FlowSequenceStartToken(start_mark, end_mark) + elif token.type == YAML_FLOW_SEQUENCE_END_TOKEN: + return FlowSequenceEndToken(start_mark, end_mark) + elif token.type == YAML_FLOW_MAPPING_START_TOKEN: + return FlowMappingStartToken(start_mark, end_mark) + elif token.type == YAML_FLOW_MAPPING_END_TOKEN: + return FlowMappingEndToken(start_mark, end_mark) + elif token.type == YAML_BLOCK_ENTRY_TOKEN: + return BlockEntryToken(start_mark, end_mark) + elif token.type == YAML_FLOW_ENTRY_TOKEN: + return FlowEntryToken(start_mark, end_mark) + elif token.type == YAML_KEY_TOKEN: + return KeyToken(start_mark, end_mark) + elif token.type == YAML_VALUE_TOKEN: + return ValueToken(start_mark, end_mark) + elif token.type == YAML_ALIAS_TOKEN: + value = PyUnicode_FromString(token.data.alias.value) + return AliasToken(value, start_mark, end_mark) + elif token.type == YAML_ANCHOR_TOKEN: + value = PyUnicode_FromString(token.data.anchor.value) + return AnchorToken(value, start_mark, end_mark) + elif token.type == YAML_TAG_TOKEN: + handle = PyUnicode_FromString(token.data.tag.handle) + suffix = PyUnicode_FromString(token.data.tag.suffix) + if not handle: + handle = None + return TagToken((handle, suffix), start_mark, end_mark) + elif token.type == YAML_SCALAR_TOKEN: + value = PyUnicode_DecodeUTF8(token.data.scalar.value, + token.data.scalar.length, 'strict') + plain = False + style = None + if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + plain = True + style = u'' + elif token.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + style = u'\'' + elif token.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + style = u'"' + elif token.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + style = u'|' + elif token.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + style = u'>' + return ScalarToken(value, plain, + start_mark, end_mark, style) + else: + if PY_MAJOR_VERSION < 3: + raise ValueError("unknown token type") + else: + raise ValueError(u"unknown token type") + + def get_token(self): + if self.current_token is not None: + value = self.current_token + self.current_token = None + else: + value = self._scan() + return value + + def peek_token(self): + if self.current_token is None: + self.current_token = self._scan() + return self.current_token + + def check_token(self, *choices): + if self.current_token is None: + self.current_token = self._scan() + if self.current_token is None: + return False + if not choices: + return True + token_class = self.current_token.__class__ + for choice in choices: + if token_class is choice: + return True + return False + + def raw_parse(self): + cdef yaml_event_t event + cdef int done + cdef int count + count = 0 + done = 0 + while done == 0: + if yaml_parser_parse(&self.parser, &event) == 0: + error = self._parser_error() + raise error + if event.type == YAML_NO_EVENT: + done = 1 + else: + count = count+1 + yaml_event_delete(&event) + return count + + cdef object _parse(self): + cdef yaml_event_t event + if yaml_parser_parse(&self.parser, &event) == 0: + error = self._parser_error() + raise error + event_object = self._event_to_object(&event) + yaml_event_delete(&event) + return event_object + + cdef object _event_to_object(self, yaml_event_t *event): + cdef yaml_tag_directive_t *tag_directive + start_mark = Mark(self.stream_name, + event.start_mark.index, + event.start_mark.line, + event.start_mark.column, + None, None) + end_mark = Mark(self.stream_name, + event.end_mark.index, + event.end_mark.line, + event.end_mark.column, + None, None) + if event.type == YAML_NO_EVENT: + return None + elif event.type == YAML_STREAM_START_EVENT: + encoding = None + if event.data.stream_start.encoding == YAML_UTF8_ENCODING: + if self.unicode_source == 0: + encoding = u"utf-8" + elif event.data.stream_start.encoding == YAML_UTF16LE_ENCODING: + encoding = u"utf-16-le" + elif event.data.stream_start.encoding == YAML_UTF16BE_ENCODING: + encoding = u"utf-16-be" + return StreamStartEvent(start_mark, end_mark, encoding) + elif event.type == YAML_STREAM_END_EVENT: + return StreamEndEvent(start_mark, end_mark) + elif event.type == YAML_DOCUMENT_START_EVENT: + explicit = False + if event.data.document_start.implicit == 0: + explicit = True + version = None + if event.data.document_start.version_directive != NULL: + version = (event.data.document_start.version_directive.major, + event.data.document_start.version_directive.minor) + tags = None + if event.data.document_start.tag_directives.start != NULL: + tags = {} + tag_directive = event.data.document_start.tag_directives.start + while tag_directive != event.data.document_start.tag_directives.end: + handle = PyUnicode_FromString(tag_directive.handle) + prefix = PyUnicode_FromString(tag_directive.prefix) + tags[handle] = prefix + tag_directive = tag_directive+1 + return DocumentStartEvent(start_mark, end_mark, + explicit, version, tags) + elif event.type == YAML_DOCUMENT_END_EVENT: + explicit = False + if event.data.document_end.implicit == 0: + explicit = True + return DocumentEndEvent(start_mark, end_mark, explicit) + elif event.type == YAML_ALIAS_EVENT: + anchor = PyUnicode_FromString(event.data.alias.anchor) + return AliasEvent(anchor, start_mark, end_mark) + elif event.type == YAML_SCALAR_EVENT: + anchor = None + if event.data.scalar.anchor != NULL: + anchor = PyUnicode_FromString(event.data.scalar.anchor) + tag = None + if event.data.scalar.tag != NULL: + tag = PyUnicode_FromString(event.data.scalar.tag) + value = PyUnicode_DecodeUTF8(event.data.scalar.value, + event.data.scalar.length, 'strict') + plain_implicit = False + if event.data.scalar.plain_implicit == 1: + plain_implicit = True + quoted_implicit = False + if event.data.scalar.quoted_implicit == 1: + quoted_implicit = True + style = None + if event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + style = u'' + elif event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + style = u'\'' + elif event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + style = u'"' + elif event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + style = u'|' + elif event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + style = u'>' + return ScalarEvent(anchor, tag, + (plain_implicit, quoted_implicit), + value, start_mark, end_mark, style) + elif event.type == YAML_SEQUENCE_START_EVENT: + anchor = None + if event.data.sequence_start.anchor != NULL: + anchor = PyUnicode_FromString(event.data.sequence_start.anchor) + tag = None + if event.data.sequence_start.tag != NULL: + tag = PyUnicode_FromString(event.data.sequence_start.tag) + implicit = False + if event.data.sequence_start.implicit == 1: + implicit = True + flow_style = None + if event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + flow_style = True + elif event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + flow_style = False + return SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style) + elif event.type == YAML_MAPPING_START_EVENT: + anchor = None + if event.data.mapping_start.anchor != NULL: + anchor = PyUnicode_FromString(event.data.mapping_start.anchor) + tag = None + if event.data.mapping_start.tag != NULL: + tag = PyUnicode_FromString(event.data.mapping_start.tag) + implicit = False + if event.data.mapping_start.implicit == 1: + implicit = True + flow_style = None + if event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + flow_style = True + elif event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + flow_style = False + return MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style) + elif event.type == YAML_SEQUENCE_END_EVENT: + return SequenceEndEvent(start_mark, end_mark) + elif event.type == YAML_MAPPING_END_EVENT: + return MappingEndEvent(start_mark, end_mark) + else: + if PY_MAJOR_VERSION < 3: + raise ValueError("unknown event type") + else: + raise ValueError(u"unknown event type") + + def get_event(self): + if self.current_event is not None: + value = self.current_event + self.current_event = None + else: + value = self._parse() + return value + + def peek_event(self): + if self.current_event is None: + self.current_event = self._parse() + return self.current_event + + def check_event(self, *choices): + if self.current_event is None: + self.current_event = self._parse() + if self.current_event is None: + return False + if not choices: + return True + event_class = self.current_event.__class__ + for choice in choices: + if event_class is choice: + return True + return False + + def check_node(self): + self._parse_next_event() + if self.parsed_event.type == YAML_STREAM_START_EVENT: + yaml_event_delete(&self.parsed_event) + self._parse_next_event() + if self.parsed_event.type != YAML_STREAM_END_EVENT: + return True + return False + + def get_node(self): + self._parse_next_event() + if self.parsed_event.type != YAML_STREAM_END_EVENT: + return self._compose_document() + + def get_single_node(self): + self._parse_next_event() + yaml_event_delete(&self.parsed_event) + self._parse_next_event() + document = None + if self.parsed_event.type != YAML_STREAM_END_EVENT: + document = self._compose_document() + self._parse_next_event() + if self.parsed_event.type != YAML_STREAM_END_EVENT: + mark = Mark(self.stream_name, + self.parsed_event.start_mark.index, + self.parsed_event.start_mark.line, + self.parsed_event.start_mark.column, + None, None) + if PY_MAJOR_VERSION < 3: + raise ComposerError("expected a single document in the stream", + document.start_mark, "but found another document", mark) + else: + raise ComposerError(u"expected a single document in the stream", + document.start_mark, u"but found another document", mark) + return document + + cdef object _compose_document(self): + yaml_event_delete(&self.parsed_event) + node = self._compose_node(None, None) + self._parse_next_event() + yaml_event_delete(&self.parsed_event) + self.anchors = {} + return node + + cdef object _compose_node(self, object parent, object index): + self._parse_next_event() + if self.parsed_event.type == YAML_ALIAS_EVENT: + anchor = PyUnicode_FromString(self.parsed_event.data.alias.anchor) + if anchor not in self.anchors: + mark = Mark(self.stream_name, + self.parsed_event.start_mark.index, + self.parsed_event.start_mark.line, + self.parsed_event.start_mark.column, + None, None) + if PY_MAJOR_VERSION < 3: + raise ComposerError(None, None, "found undefined alias", mark) + else: + raise ComposerError(None, None, u"found undefined alias", mark) + yaml_event_delete(&self.parsed_event) + return self.anchors[anchor] + anchor = None + if self.parsed_event.type == YAML_SCALAR_EVENT \ + and self.parsed_event.data.scalar.anchor != NULL: + anchor = PyUnicode_FromString(self.parsed_event.data.scalar.anchor) + elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT \ + and self.parsed_event.data.sequence_start.anchor != NULL: + anchor = PyUnicode_FromString(self.parsed_event.data.sequence_start.anchor) + elif self.parsed_event.type == YAML_MAPPING_START_EVENT \ + and self.parsed_event.data.mapping_start.anchor != NULL: + anchor = PyUnicode_FromString(self.parsed_event.data.mapping_start.anchor) + if anchor is not None: + if anchor in self.anchors: + mark = Mark(self.stream_name, + self.parsed_event.start_mark.index, + self.parsed_event.start_mark.line, + self.parsed_event.start_mark.column, + None, None) + if PY_MAJOR_VERSION < 3: + raise ComposerError("found duplicate anchor; first occurrence", + self.anchors[anchor].start_mark, "second occurrence", mark) + else: + raise ComposerError(u"found duplicate anchor; first occurrence", + self.anchors[anchor].start_mark, u"second occurrence", mark) + self.descend_resolver(parent, index) + if self.parsed_event.type == YAML_SCALAR_EVENT: + node = self._compose_scalar_node(anchor) + elif self.parsed_event.type == YAML_SEQUENCE_START_EVENT: + node = self._compose_sequence_node(anchor) + elif self.parsed_event.type == YAML_MAPPING_START_EVENT: + node = self._compose_mapping_node(anchor) + self.ascend_resolver() + return node + + cdef _compose_scalar_node(self, object anchor): + start_mark = Mark(self.stream_name, + self.parsed_event.start_mark.index, + self.parsed_event.start_mark.line, + self.parsed_event.start_mark.column, + None, None) + end_mark = Mark(self.stream_name, + self.parsed_event.end_mark.index, + self.parsed_event.end_mark.line, + self.parsed_event.end_mark.column, + None, None) + value = PyUnicode_DecodeUTF8(self.parsed_event.data.scalar.value, + self.parsed_event.data.scalar.length, 'strict') + plain_implicit = False + if self.parsed_event.data.scalar.plain_implicit == 1: + plain_implicit = True + quoted_implicit = False + if self.parsed_event.data.scalar.quoted_implicit == 1: + quoted_implicit = True + if self.parsed_event.data.scalar.tag == NULL \ + or (self.parsed_event.data.scalar.tag[0] == c'!' + and self.parsed_event.data.scalar.tag[1] == c'\0'): + tag = self.resolve(ScalarNode, value, (plain_implicit, quoted_implicit)) + else: + tag = PyUnicode_FromString(self.parsed_event.data.scalar.tag) + style = None + if self.parsed_event.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: + style = u'' + elif self.parsed_event.data.scalar.style == YAML_SINGLE_QUOTED_SCALAR_STYLE: + style = u'\'' + elif self.parsed_event.data.scalar.style == YAML_DOUBLE_QUOTED_SCALAR_STYLE: + style = u'"' + elif self.parsed_event.data.scalar.style == YAML_LITERAL_SCALAR_STYLE: + style = u'|' + elif self.parsed_event.data.scalar.style == YAML_FOLDED_SCALAR_STYLE: + style = u'>' + node = ScalarNode(tag, value, start_mark, end_mark, style) + if anchor is not None: + self.anchors[anchor] = node + yaml_event_delete(&self.parsed_event) + return node + + cdef _compose_sequence_node(self, object anchor): + cdef int index + start_mark = Mark(self.stream_name, + self.parsed_event.start_mark.index, + self.parsed_event.start_mark.line, + self.parsed_event.start_mark.column, + None, None) + implicit = False + if self.parsed_event.data.sequence_start.implicit == 1: + implicit = True + if self.parsed_event.data.sequence_start.tag == NULL \ + or (self.parsed_event.data.sequence_start.tag[0] == c'!' + and self.parsed_event.data.sequence_start.tag[1] == c'\0'): + tag = self.resolve(SequenceNode, None, implicit) + else: + tag = PyUnicode_FromString(self.parsed_event.data.sequence_start.tag) + flow_style = None + if self.parsed_event.data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE: + flow_style = True + elif self.parsed_event.data.sequence_start.style == YAML_BLOCK_SEQUENCE_STYLE: + flow_style = False + value = [] + node = SequenceNode(tag, value, start_mark, None, flow_style) + if anchor is not None: + self.anchors[anchor] = node + yaml_event_delete(&self.parsed_event) + index = 0 + self._parse_next_event() + while self.parsed_event.type != YAML_SEQUENCE_END_EVENT: + value.append(self._compose_node(node, index)) + index = index+1 + self._parse_next_event() + node.end_mark = Mark(self.stream_name, + self.parsed_event.end_mark.index, + self.parsed_event.end_mark.line, + self.parsed_event.end_mark.column, + None, None) + yaml_event_delete(&self.parsed_event) + return node + + cdef _compose_mapping_node(self, object anchor): + start_mark = Mark(self.stream_name, + self.parsed_event.start_mark.index, + self.parsed_event.start_mark.line, + self.parsed_event.start_mark.column, + None, None) + implicit = False + if self.parsed_event.data.mapping_start.implicit == 1: + implicit = True + if self.parsed_event.data.mapping_start.tag == NULL \ + or (self.parsed_event.data.mapping_start.tag[0] == c'!' + and self.parsed_event.data.mapping_start.tag[1] == c'\0'): + tag = self.resolve(MappingNode, None, implicit) + else: + tag = PyUnicode_FromString(self.parsed_event.data.mapping_start.tag) + flow_style = None + if self.parsed_event.data.mapping_start.style == YAML_FLOW_MAPPING_STYLE: + flow_style = True + elif self.parsed_event.data.mapping_start.style == YAML_BLOCK_MAPPING_STYLE: + flow_style = False + value = [] + node = MappingNode(tag, value, start_mark, None, flow_style) + if anchor is not None: + self.anchors[anchor] = node + yaml_event_delete(&self.parsed_event) + self._parse_next_event() + while self.parsed_event.type != YAML_MAPPING_END_EVENT: + item_key = self._compose_node(node, None) + item_value = self._compose_node(node, item_key) + value.append((item_key, item_value)) + self._parse_next_event() + node.end_mark = Mark(self.stream_name, + self.parsed_event.end_mark.index, + self.parsed_event.end_mark.line, + self.parsed_event.end_mark.column, + None, None) + yaml_event_delete(&self.parsed_event) + return node + + cdef int _parse_next_event(self) except 0: + if self.parsed_event.type == YAML_NO_EVENT: + if yaml_parser_parse(&self.parser, &self.parsed_event) == 0: + error = self._parser_error() + raise error + return 1 + +cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0: + cdef CParser parser + parser = <CParser>data + if parser.stream_cache is None: + value = parser.stream.read(size) + if PyUnicode_CheckExact(value) != 0: + value = PyUnicode_AsUTF8String(value) + parser.unicode_source = 1 + if PyString_CheckExact(value) == 0: + if PY_MAJOR_VERSION < 3: + raise TypeError("a string value is expected") + else: + raise TypeError(u"a string value is expected") + parser.stream_cache = value + parser.stream_cache_pos = 0 + parser.stream_cache_len = PyString_GET_SIZE(value) + if (parser.stream_cache_len - parser.stream_cache_pos) < size: + size = parser.stream_cache_len - parser.stream_cache_pos + if size > 0: + memcpy(buffer, PyString_AS_STRING(parser.stream_cache) + + parser.stream_cache_pos, size) + read[0] = size + parser.stream_cache_pos += size + if parser.stream_cache_pos == parser.stream_cache_len: + parser.stream_cache = None + return 1 + +cdef class CEmitter: + + cdef yaml_emitter_t emitter + + cdef object stream + + cdef int document_start_implicit + cdef int document_end_implicit + cdef object use_version + cdef object use_tags + + cdef object serialized_nodes + cdef object anchors + cdef int last_alias_id + cdef int closed + cdef int dump_unicode + cdef object use_encoding + + def __init__(self, stream, canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, encoding=None, + explicit_start=None, explicit_end=None, version=None, tags=None): + if yaml_emitter_initialize(&self.emitter) == 0: + raise MemoryError + self.stream = stream + self.dump_unicode = 0 + if PY_MAJOR_VERSION < 3: + if getattr3(stream, 'encoding', None): + self.dump_unicode = 1 + else: + if hasattr(stream, u'encoding'): + self.dump_unicode = 1 + self.use_encoding = encoding + yaml_emitter_set_output(&self.emitter, output_handler, <void *>self) + if canonical: + yaml_emitter_set_canonical(&self.emitter, 1) + if indent is not None: + yaml_emitter_set_indent(&self.emitter, indent) + if width is not None: + yaml_emitter_set_width(&self.emitter, width) + if allow_unicode: + yaml_emitter_set_unicode(&self.emitter, 1) + if line_break is not None: + if line_break == '\r': + yaml_emitter_set_break(&self.emitter, YAML_CR_BREAK) + elif line_break == '\n': + yaml_emitter_set_break(&self.emitter, YAML_LN_BREAK) + elif line_break == '\r\n': + yaml_emitter_set_break(&self.emitter, YAML_CRLN_BREAK) + self.document_start_implicit = 1 + if explicit_start: + self.document_start_implicit = 0 + self.document_end_implicit = 1 + if explicit_end: + self.document_end_implicit = 0 + self.use_version = version + self.use_tags = tags + self.serialized_nodes = {} + self.anchors = {} + self.last_alias_id = 0 + self.closed = -1 + + def __dealloc__(self): + yaml_emitter_delete(&self.emitter) + + def dispose(self): + pass + + cdef object _emitter_error(self): + if self.emitter.error == YAML_MEMORY_ERROR: + return MemoryError + elif self.emitter.error == YAML_EMITTER_ERROR: + if PY_MAJOR_VERSION < 3: + problem = self.emitter.problem + else: + problem = PyUnicode_FromString(self.emitter.problem) + return EmitterError(problem) + if PY_MAJOR_VERSION < 3: + raise ValueError("no emitter error") + else: + raise ValueError(u"no emitter error") + + cdef int _object_to_event(self, object event_object, yaml_event_t *event) except 0: + cdef yaml_encoding_t encoding + cdef yaml_version_directive_t version_directive_value + cdef yaml_version_directive_t *version_directive + cdef yaml_tag_directive_t tag_directives_value[128] + cdef yaml_tag_directive_t *tag_directives_start + cdef yaml_tag_directive_t *tag_directives_end + cdef int implicit + cdef int plain_implicit + cdef int quoted_implicit + cdef char *anchor + cdef char *tag + cdef char *value + cdef int length + cdef yaml_scalar_style_t scalar_style + cdef yaml_sequence_style_t sequence_style + cdef yaml_mapping_style_t mapping_style + event_class = event_object.__class__ + if event_class is StreamStartEvent: + encoding = YAML_UTF8_ENCODING + if event_object.encoding == u'utf-16-le' or event_object.encoding == 'utf-16-le': + encoding = YAML_UTF16LE_ENCODING + elif event_object.encoding == u'utf-16-be' or event_object.encoding == 'utf-16-be': + encoding = YAML_UTF16BE_ENCODING + if event_object.encoding is None: + self.dump_unicode = 1 + if self.dump_unicode == 1: + encoding = YAML_UTF8_ENCODING + yaml_stream_start_event_initialize(event, encoding) + elif event_class is StreamEndEvent: + yaml_stream_end_event_initialize(event) + elif event_class is DocumentStartEvent: + version_directive = NULL + if event_object.version: + version_directive_value.major = event_object.version[0] + version_directive_value.minor = event_object.version[1] + version_directive = &version_directive_value + tag_directives_start = NULL + tag_directives_end = NULL + if event_object.tags: + if len(event_object.tags) > 128: + if PY_MAJOR_VERSION < 3: + raise ValueError("too many tags") + else: + raise ValueError(u"too many tags") + tag_directives_start = tag_directives_value + tag_directives_end = tag_directives_value + cache = [] + for handle in event_object.tags: + prefix = event_object.tags[handle] + if PyUnicode_CheckExact(handle): + handle = PyUnicode_AsUTF8String(handle) + cache.append(handle) + if not PyString_CheckExact(handle): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag handle must be a string") + else: + raise TypeError(u"tag handle must be a string") + tag_directives_end.handle = PyString_AS_STRING(handle) + if PyUnicode_CheckExact(prefix): + prefix = PyUnicode_AsUTF8String(prefix) + cache.append(prefix) + if not PyString_CheckExact(prefix): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag prefix must be a string") + else: + raise TypeError(u"tag prefix must be a string") + tag_directives_end.prefix = PyString_AS_STRING(prefix) + tag_directives_end = tag_directives_end+1 + implicit = 1 + if event_object.explicit: + implicit = 0 + if yaml_document_start_event_initialize(event, version_directive, + tag_directives_start, tag_directives_end, implicit) == 0: + raise MemoryError + elif event_class is DocumentEndEvent: + implicit = 1 + if event_object.explicit: + implicit = 0 + yaml_document_end_event_initialize(event, implicit) + elif event_class is AliasEvent: + anchor = NULL + anchor_object = event_object.anchor + if PyUnicode_CheckExact(anchor_object): + anchor_object = PyUnicode_AsUTF8String(anchor_object) + if not PyString_CheckExact(anchor_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("anchor must be a string") + else: + raise TypeError(u"anchor must be a string") + anchor = PyString_AS_STRING(anchor_object) + if yaml_alias_event_initialize(event, anchor) == 0: + raise MemoryError + elif event_class is ScalarEvent: + anchor = NULL + anchor_object = event_object.anchor + if anchor_object is not None: + if PyUnicode_CheckExact(anchor_object): + anchor_object = PyUnicode_AsUTF8String(anchor_object) + if not PyString_CheckExact(anchor_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("anchor must be a string") + else: + raise TypeError(u"anchor must be a string") + anchor = PyString_AS_STRING(anchor_object) + tag = NULL + tag_object = event_object.tag + if tag_object is not None: + if PyUnicode_CheckExact(tag_object): + tag_object = PyUnicode_AsUTF8String(tag_object) + if not PyString_CheckExact(tag_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag must be a string") + else: + raise TypeError(u"tag must be a string") + tag = PyString_AS_STRING(tag_object) + value_object = event_object.value + if PyUnicode_CheckExact(value_object): + value_object = PyUnicode_AsUTF8String(value_object) + if not PyString_CheckExact(value_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("value must be a string") + else: + raise TypeError(u"value must be a string") + value = PyString_AS_STRING(value_object) + length = PyString_GET_SIZE(value_object) + plain_implicit = 0 + quoted_implicit = 0 + if event_object.implicit is not None: + plain_implicit = event_object.implicit[0] + quoted_implicit = event_object.implicit[1] + style_object = event_object.style + scalar_style = YAML_PLAIN_SCALAR_STYLE + if style_object == "'" or style_object == u"'": + scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + elif style_object == "\"" or style_object == u"\"": + scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + elif style_object == "|" or style_object == u"|": + scalar_style = YAML_LITERAL_SCALAR_STYLE + elif style_object == ">" or style_object == u">": + scalar_style = YAML_FOLDED_SCALAR_STYLE + if yaml_scalar_event_initialize(event, anchor, tag, value, length, + plain_implicit, quoted_implicit, scalar_style) == 0: + raise MemoryError + elif event_class is SequenceStartEvent: + anchor = NULL + anchor_object = event_object.anchor + if anchor_object is not None: + if PyUnicode_CheckExact(anchor_object): + anchor_object = PyUnicode_AsUTF8String(anchor_object) + if not PyString_CheckExact(anchor_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("anchor must be a string") + else: + raise TypeError(u"anchor must be a string") + anchor = PyString_AS_STRING(anchor_object) + tag = NULL + tag_object = event_object.tag + if tag_object is not None: + if PyUnicode_CheckExact(tag_object): + tag_object = PyUnicode_AsUTF8String(tag_object) + if not PyString_CheckExact(tag_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag must be a string") + else: + raise TypeError(u"tag must be a string") + tag = PyString_AS_STRING(tag_object) + implicit = 0 + if event_object.implicit: + implicit = 1 + sequence_style = YAML_BLOCK_SEQUENCE_STYLE + if event_object.flow_style: + sequence_style = YAML_FLOW_SEQUENCE_STYLE + if yaml_sequence_start_event_initialize(event, anchor, tag, + implicit, sequence_style) == 0: + raise MemoryError + elif event_class is MappingStartEvent: + anchor = NULL + anchor_object = event_object.anchor + if anchor_object is not None: + if PyUnicode_CheckExact(anchor_object): + anchor_object = PyUnicode_AsUTF8String(anchor_object) + if not PyString_CheckExact(anchor_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("anchor must be a string") + else: + raise TypeError(u"anchor must be a string") + anchor = PyString_AS_STRING(anchor_object) + tag = NULL + tag_object = event_object.tag + if tag_object is not None: + if PyUnicode_CheckExact(tag_object): + tag_object = PyUnicode_AsUTF8String(tag_object) + if not PyString_CheckExact(tag_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag must be a string") + else: + raise TypeError(u"tag must be a string") + tag = PyString_AS_STRING(tag_object) + implicit = 0 + if event_object.implicit: + implicit = 1 + mapping_style = YAML_BLOCK_MAPPING_STYLE + if event_object.flow_style: + mapping_style = YAML_FLOW_MAPPING_STYLE + if yaml_mapping_start_event_initialize(event, anchor, tag, + implicit, mapping_style) == 0: + raise MemoryError + elif event_class is SequenceEndEvent: + yaml_sequence_end_event_initialize(event) + elif event_class is MappingEndEvent: + yaml_mapping_end_event_initialize(event) + else: + if PY_MAJOR_VERSION < 3: + raise TypeError("invalid event %s" % event_object) + else: + raise TypeError(u"invalid event %s" % event_object) + return 1 + + def emit(self, event_object): + cdef yaml_event_t event + self._object_to_event(event_object, &event) + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + + def open(self): + cdef yaml_event_t event + cdef yaml_encoding_t encoding + if self.closed == -1: + if self.use_encoding == u'utf-16-le' or self.use_encoding == 'utf-16-le': + encoding = YAML_UTF16LE_ENCODING + elif self.use_encoding == u'utf-16-be' or self.use_encoding == 'utf-16-be': + encoding = YAML_UTF16BE_ENCODING + else: + encoding = YAML_UTF8_ENCODING + if self.use_encoding is None: + self.dump_unicode = 1 + if self.dump_unicode == 1: + encoding = YAML_UTF8_ENCODING + yaml_stream_start_event_initialize(&event, encoding) + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + self.closed = 0 + elif self.closed == 1: + if PY_MAJOR_VERSION < 3: + raise SerializerError("serializer is closed") + else: + raise SerializerError(u"serializer is closed") + else: + if PY_MAJOR_VERSION < 3: + raise SerializerError("serializer is already opened") + else: + raise SerializerError(u"serializer is already opened") + + def close(self): + cdef yaml_event_t event + if self.closed == -1: + if PY_MAJOR_VERSION < 3: + raise SerializerError("serializer is not opened") + else: + raise SerializerError(u"serializer is not opened") + elif self.closed == 0: + yaml_stream_end_event_initialize(&event) + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + self.closed = 1 + + def serialize(self, node): + cdef yaml_event_t event + cdef yaml_version_directive_t version_directive_value + cdef yaml_version_directive_t *version_directive + cdef yaml_tag_directive_t tag_directives_value[128] + cdef yaml_tag_directive_t *tag_directives_start + cdef yaml_tag_directive_t *tag_directives_end + if self.closed == -1: + if PY_MAJOR_VERSION < 3: + raise SerializerError("serializer is not opened") + else: + raise SerializerError(u"serializer is not opened") + elif self.closed == 1: + if PY_MAJOR_VERSION < 3: + raise SerializerError("serializer is closed") + else: + raise SerializerError(u"serializer is closed") + cache = [] + version_directive = NULL + if self.use_version: + version_directive_value.major = self.use_version[0] + version_directive_value.minor = self.use_version[1] + version_directive = &version_directive_value + tag_directives_start = NULL + tag_directives_end = NULL + if self.use_tags: + if len(self.use_tags) > 128: + if PY_MAJOR_VERSION < 3: + raise ValueError("too many tags") + else: + raise ValueError(u"too many tags") + tag_directives_start = tag_directives_value + tag_directives_end = tag_directives_value + for handle in self.use_tags: + prefix = self.use_tags[handle] + if PyUnicode_CheckExact(handle): + handle = PyUnicode_AsUTF8String(handle) + cache.append(handle) + if not PyString_CheckExact(handle): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag handle must be a string") + else: + raise TypeError(u"tag handle must be a string") + tag_directives_end.handle = PyString_AS_STRING(handle) + if PyUnicode_CheckExact(prefix): + prefix = PyUnicode_AsUTF8String(prefix) + cache.append(prefix) + if not PyString_CheckExact(prefix): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag prefix must be a string") + else: + raise TypeError(u"tag prefix must be a string") + tag_directives_end.prefix = PyString_AS_STRING(prefix) + tag_directives_end = tag_directives_end+1 + if yaml_document_start_event_initialize(&event, version_directive, + tag_directives_start, tag_directives_end, + self.document_start_implicit) == 0: + raise MemoryError + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + self._anchor_node(node) + self._serialize_node(node, None, None) + yaml_document_end_event_initialize(&event, self.document_end_implicit) + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + self.serialized_nodes = {} + self.anchors = {} + self.last_alias_id = 0 + + cdef int _anchor_node(self, object node) except 0: + if node in self.anchors: + if self.anchors[node] is None: + self.last_alias_id = self.last_alias_id+1 + self.anchors[node] = u"id%03d" % self.last_alias_id + else: + self.anchors[node] = None + node_class = node.__class__ + if node_class is SequenceNode: + for item in node.value: + self._anchor_node(item) + elif node_class is MappingNode: + for key, value in node.value: + self._anchor_node(key) + self._anchor_node(value) + return 1 + + cdef int _serialize_node(self, object node, object parent, object index) except 0: + cdef yaml_event_t event + cdef int implicit + cdef int plain_implicit + cdef int quoted_implicit + cdef char *anchor + cdef char *tag + cdef char *value + cdef int length + cdef int item_index + cdef yaml_scalar_style_t scalar_style + cdef yaml_sequence_style_t sequence_style + cdef yaml_mapping_style_t mapping_style + anchor_object = self.anchors[node] + anchor = NULL + if anchor_object is not None: + if PyUnicode_CheckExact(anchor_object): + anchor_object = PyUnicode_AsUTF8String(anchor_object) + if not PyString_CheckExact(anchor_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("anchor must be a string") + else: + raise TypeError(u"anchor must be a string") + anchor = PyString_AS_STRING(anchor_object) + if node in self.serialized_nodes: + if yaml_alias_event_initialize(&event, anchor) == 0: + raise MemoryError + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + else: + node_class = node.__class__ + self.serialized_nodes[node] = True + self.descend_resolver(parent, index) + if node_class is ScalarNode: + plain_implicit = 0 + quoted_implicit = 0 + tag_object = node.tag + if self.resolve(ScalarNode, node.value, (True, False)) == tag_object: + plain_implicit = 1 + if self.resolve(ScalarNode, node.value, (False, True)) == tag_object: + quoted_implicit = 1 + tag = NULL + if tag_object is not None: + if PyUnicode_CheckExact(tag_object): + tag_object = PyUnicode_AsUTF8String(tag_object) + if not PyString_CheckExact(tag_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag must be a string") + else: + raise TypeError(u"tag must be a string") + tag = PyString_AS_STRING(tag_object) + value_object = node.value + if PyUnicode_CheckExact(value_object): + value_object = PyUnicode_AsUTF8String(value_object) + if not PyString_CheckExact(value_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("value must be a string") + else: + raise TypeError(u"value must be a string") + value = PyString_AS_STRING(value_object) + length = PyString_GET_SIZE(value_object) + style_object = node.style + scalar_style = YAML_PLAIN_SCALAR_STYLE + if style_object == "'" or style_object == u"'": + scalar_style = YAML_SINGLE_QUOTED_SCALAR_STYLE + elif style_object == "\"" or style_object == u"\"": + scalar_style = YAML_DOUBLE_QUOTED_SCALAR_STYLE + elif style_object == "|" or style_object == u"|": + scalar_style = YAML_LITERAL_SCALAR_STYLE + elif style_object == ">" or style_object == u">": + scalar_style = YAML_FOLDED_SCALAR_STYLE + if yaml_scalar_event_initialize(&event, anchor, tag, value, length, + plain_implicit, quoted_implicit, scalar_style) == 0: + raise MemoryError + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + elif node_class is SequenceNode: + implicit = 0 + tag_object = node.tag + if self.resolve(SequenceNode, node.value, True) == tag_object: + implicit = 1 + tag = NULL + if tag_object is not None: + if PyUnicode_CheckExact(tag_object): + tag_object = PyUnicode_AsUTF8String(tag_object) + if not PyString_CheckExact(tag_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag must be a string") + else: + raise TypeError(u"tag must be a string") + tag = PyString_AS_STRING(tag_object) + sequence_style = YAML_BLOCK_SEQUENCE_STYLE + if node.flow_style: + sequence_style = YAML_FLOW_SEQUENCE_STYLE + if yaml_sequence_start_event_initialize(&event, anchor, tag, + implicit, sequence_style) == 0: + raise MemoryError + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + item_index = 0 + for item in node.value: + self._serialize_node(item, node, item_index) + item_index = item_index+1 + yaml_sequence_end_event_initialize(&event) + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + elif node_class is MappingNode: + implicit = 0 + tag_object = node.tag + if self.resolve(MappingNode, node.value, True) == tag_object: + implicit = 1 + tag = NULL + if tag_object is not None: + if PyUnicode_CheckExact(tag_object): + tag_object = PyUnicode_AsUTF8String(tag_object) + if not PyString_CheckExact(tag_object): + if PY_MAJOR_VERSION < 3: + raise TypeError("tag must be a string") + else: + raise TypeError(u"tag must be a string") + tag = PyString_AS_STRING(tag_object) + mapping_style = YAML_BLOCK_MAPPING_STYLE + if node.flow_style: + mapping_style = YAML_FLOW_MAPPING_STYLE + if yaml_mapping_start_event_initialize(&event, anchor, tag, + implicit, mapping_style) == 0: + raise MemoryError + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + for item_key, item_value in node.value: + self._serialize_node(item_key, node, None) + self._serialize_node(item_value, node, item_key) + yaml_mapping_end_event_initialize(&event) + if yaml_emitter_emit(&self.emitter, &event) == 0: + error = self._emitter_error() + raise error + self.ascend_resolver() + return 1 + +cdef int output_handler(void *data, char *buffer, size_t size) except 0: + cdef CEmitter emitter + emitter = <CEmitter>data + if emitter.dump_unicode == 0: + value = PyString_FromStringAndSize(buffer, size) + else: + value = PyUnicode_DecodeUTF8(buffer, size, 'strict') + emitter.stream.write(value) + return 1 + diff --git a/third_party/python/PyYAML/lib/yaml/__init__.py b/third_party/python/PyYAML/lib/yaml/__init__.py new file mode 100644 index 0000000000..211fc8665e --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/__init__.py @@ -0,0 +1,431 @@ + +from error import * + +from tokens import * +from events import * +from nodes import * + +from loader import * +from dumper import * + +__version__ = '5.3.1' + +try: + from cyaml import * + __with_libyaml__ = True +except ImportError: + __with_libyaml__ = False + + +#------------------------------------------------------------------------------ +# Warnings control +#------------------------------------------------------------------------------ + +# 'Global' warnings state: +_warnings_enabled = { + 'YAMLLoadWarning': True, +} + +# Get or set global warnings' state +def warnings(settings=None): + if settings is None: + return _warnings_enabled + + if type(settings) is dict: + for key in settings: + if key in _warnings_enabled: + _warnings_enabled[key] = settings[key] + +# Warn when load() is called without Loader=... +class YAMLLoadWarning(RuntimeWarning): + pass + +def load_warning(method): + if _warnings_enabled['YAMLLoadWarning'] is False: + return + + import warnings + + message = ( + "calling yaml.%s() without Loader=... is deprecated, as the " + "default Loader is unsafe. Please read " + "https://msg.pyyaml.org/load for full details." + ) % method + + warnings.warn(message, YAMLLoadWarning, stacklevel=3) + +#------------------------------------------------------------------------------ +def scan(stream, Loader=Loader): + """ + Scan a YAML stream and produce scanning tokens. + """ + loader = Loader(stream) + try: + while loader.check_token(): + yield loader.get_token() + finally: + loader.dispose() + +def parse(stream, Loader=Loader): + """ + Parse a YAML stream and produce parsing events. + """ + loader = Loader(stream) + try: + while loader.check_event(): + yield loader.get_event() + finally: + loader.dispose() + +def compose(stream, Loader=Loader): + """ + Parse the first YAML document in a stream + and produce the corresponding representation tree. + """ + loader = Loader(stream) + try: + return loader.get_single_node() + finally: + loader.dispose() + +def compose_all(stream, Loader=Loader): + """ + Parse all YAML documents in a stream + and produce corresponding representation trees. + """ + loader = Loader(stream) + try: + while loader.check_node(): + yield loader.get_node() + finally: + loader.dispose() + +def load(stream, Loader=None): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + """ + if Loader is None: + load_warning('load') + Loader = FullLoader + + loader = Loader(stream) + try: + return loader.get_single_data() + finally: + loader.dispose() + +def load_all(stream, Loader=None): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + """ + if Loader is None: + load_warning('load_all') + Loader = FullLoader + + loader = Loader(stream) + try: + while loader.check_data(): + yield loader.get_data() + finally: + loader.dispose() + +def full_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve all tags except those known to be + unsafe on untrusted input. + """ + return load(stream, FullLoader) + +def full_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve all tags except those known to be + unsafe on untrusted input. + """ + return load_all(stream, FullLoader) + +def safe_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve only basic YAML tags. This is known + to be safe for untrusted input. + """ + return load(stream, SafeLoader) + +def safe_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve only basic YAML tags. This is known + to be safe for untrusted input. + """ + return load_all(stream, SafeLoader) + +def unsafe_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve all tags, even those known to be + unsafe on untrusted input. + """ + return load(stream, UnsafeLoader) + +def unsafe_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve all tags, even those known to be + unsafe on untrusted input. + """ + return load_all(stream, UnsafeLoader) + +def emit(events, stream=None, Dumper=Dumper, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None): + """ + Emit YAML parsing events into a stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + 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) + try: + for event in events: + dumper.emit(event) + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def serialize_all(nodes, stream=None, Dumper=Dumper, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding='utf-8', explicit_start=None, explicit_end=None, + version=None, tags=None): + """ + Serialize a sequence of representation trees into a YAML stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + if encoding is None: + from StringIO import StringIO + else: + 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, + encoding=encoding, version=version, tags=tags, + explicit_start=explicit_start, explicit_end=explicit_end) + try: + dumper.open() + for node in nodes: + dumper.serialize(node) + dumper.close() + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def serialize(node, stream=None, Dumper=Dumper, **kwds): + """ + Serialize a representation tree into a YAML stream. + If stream is None, return the produced string instead. + """ + return serialize_all([node], stream, Dumper=Dumper, **kwds) + +def dump_all(documents, stream=None, Dumper=Dumper, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding='utf-8', explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + """ + Serialize a sequence of Python objects into a YAML stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + if encoding is None: + from StringIO import StringIO + else: + from cStringIO import StringIO + stream = StringIO() + getvalue = stream.getvalue + dumper = Dumper(stream, default_style=default_style, + default_flow_style=default_flow_style, + canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break, + encoding=encoding, version=version, tags=tags, + explicit_start=explicit_start, explicit_end=explicit_end, sort_keys=sort_keys) + try: + dumper.open() + for data in documents: + dumper.represent(data) + dumper.close() + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def dump(data, stream=None, Dumper=Dumper, **kwds): + """ + Serialize a Python object into a YAML stream. + If stream is None, return the produced string instead. + """ + return dump_all([data], stream, Dumper=Dumper, **kwds) + +def safe_dump_all(documents, stream=None, **kwds): + """ + Serialize a sequence of Python objects into a YAML stream. + Produce only basic YAML tags. + If stream is None, return the produced string instead. + """ + return dump_all(documents, stream, Dumper=SafeDumper, **kwds) + +def safe_dump(data, stream=None, **kwds): + """ + Serialize a Python object into a YAML stream. + Produce only basic YAML tags. + If stream is None, return the produced string instead. + """ + return dump_all([data], stream, Dumper=SafeDumper, **kwds) + +def add_implicit_resolver(tag, regexp, first=None, + Loader=None, Dumper=Dumper): + """ + Add an implicit scalar detector. + If an implicit scalar value matches the given regexp, + the corresponding tag is assigned to the scalar. + first is a sequence of possible initial characters or None. + """ + if Loader is None: + loader.Loader.add_implicit_resolver(tag, regexp, first) + loader.FullLoader.add_implicit_resolver(tag, regexp, first) + loader.UnsafeLoader.add_implicit_resolver(tag, regexp, first) + else: + Loader.add_implicit_resolver(tag, regexp, first) + Dumper.add_implicit_resolver(tag, regexp, first) + +def add_path_resolver(tag, path, kind=None, Loader=None, Dumper=Dumper): + """ + Add a path based resolver for the given tag. + A path is a list of keys that forms a path + to a node in the representation tree. + Keys can be string values, integers, or None. + """ + if Loader is None: + loader.Loader.add_path_resolver(tag, path, kind) + loader.FullLoader.add_path_resolver(tag, path, kind) + loader.UnsafeLoader.add_path_resolver(tag, path, kind) + else: + Loader.add_path_resolver(tag, path, kind) + Dumper.add_path_resolver(tag, path, kind) + +def add_constructor(tag, constructor, Loader=None): + """ + Add a constructor for the given tag. + Constructor is a function that accepts a Loader instance + and a node object and produces the corresponding Python object. + """ + if Loader is None: + loader.Loader.add_constructor(tag, constructor) + loader.FullLoader.add_constructor(tag, constructor) + loader.UnsafeLoader.add_constructor(tag, constructor) + else: + Loader.add_constructor(tag, constructor) + +def add_multi_constructor(tag_prefix, multi_constructor, Loader=None): + """ + Add a multi-constructor for the given tag prefix. + Multi-constructor is called for a node if its tag starts with tag_prefix. + Multi-constructor accepts a Loader instance, a tag suffix, + and a node object and produces the corresponding Python object. + """ + if Loader is None: + loader.Loader.add_multi_constructor(tag_prefix, multi_constructor) + loader.FullLoader.add_multi_constructor(tag_prefix, multi_constructor) + loader.UnsafeLoader.add_multi_constructor(tag_prefix, multi_constructor) + else: + Loader.add_multi_constructor(tag_prefix, multi_constructor) + +def add_representer(data_type, representer, Dumper=Dumper): + """ + Add a representer for the given type. + Representer is a function accepting a Dumper instance + and an instance of the given data type + and producing the corresponding representation node. + """ + Dumper.add_representer(data_type, representer) + +def add_multi_representer(data_type, multi_representer, Dumper=Dumper): + """ + Add a representer for the given type. + Multi-representer is a function accepting a Dumper instance + and an instance of the given data type or subtype + and producing the corresponding representation node. + """ + Dumper.add_multi_representer(data_type, multi_representer) + +class YAMLObjectMetaclass(type): + """ + The metaclass for YAMLObject. + """ + def __init__(cls, name, bases, kwds): + super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds) + if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None: + if isinstance(cls.yaml_loader, list): + for loader in cls.yaml_loader: + loader.add_constructor(cls.yaml_tag, cls.from_yaml) + else: + cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml) + + cls.yaml_dumper.add_representer(cls, cls.to_yaml) + +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, FullLoader, UnsafeLoader] + yaml_dumper = Dumper + + yaml_tag = None + yaml_flow_style = None + + 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) + + 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) + diff --git a/third_party/python/PyYAML/lib/yaml/composer.py b/third_party/python/PyYAML/lib/yaml/composer.py new file mode 100644 index 0000000000..df85ef653b --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/composer.py @@ -0,0 +1,139 @@ + +__all__ = ['Composer', 'ComposerError'] + +from error import MarkedYAMLError +from events import * +from nodes import * + +class ComposerError(MarkedYAMLError): + pass + +class Composer(object): + + def __init__(self): + self.anchors = {} + + def check_node(self): + # Drop the STREAM-START event. + if self.check_event(StreamStartEvent): + self.get_event() + + # If there are more documents available? + return not self.check_event(StreamEndEvent) + + def get_node(self): + # Get the root node of the next document. + if not self.check_event(StreamEndEvent): + return self.compose_document() + + def get_single_node(self): + # Drop the STREAM-START event. + self.get_event() + + # Compose a document if the stream is not empty. + document = None + if not self.check_event(StreamEndEvent): + document = self.compose_document() + + # Ensure that the stream contains no more documents. + if not self.check_event(StreamEndEvent): + event = self.get_event() + raise ComposerError("expected a single document in the stream", + document.start_mark, "but found another document", + event.start_mark) + + # Drop the STREAM-END event. + self.get_event() + + return document + + def compose_document(self): + # Drop the DOCUMENT-START event. + self.get_event() + + # Compose the root node. + node = self.compose_node(None, None) + + # Drop the DOCUMENT-END event. + self.get_event() + + self.anchors = {} + return node + + def compose_node(self, parent, index): + if self.check_event(AliasEvent): + event = self.get_event() + anchor = event.anchor + if anchor not in self.anchors: + raise ComposerError(None, None, "found undefined alias %r" + % anchor.encode('utf-8'), event.start_mark) + return self.anchors[anchor] + event = self.peek_event() + anchor = event.anchor + if anchor is not None: + if anchor in self.anchors: + raise ComposerError("found duplicate anchor %r; first occurrence" + % anchor.encode('utf-8'), self.anchors[anchor].start_mark, + "second occurrence", event.start_mark) + self.descend_resolver(parent, index) + if self.check_event(ScalarEvent): + node = self.compose_scalar_node(anchor) + elif self.check_event(SequenceStartEvent): + node = self.compose_sequence_node(anchor) + elif self.check_event(MappingStartEvent): + node = self.compose_mapping_node(anchor) + self.ascend_resolver() + return node + + def compose_scalar_node(self, anchor): + event = self.get_event() + tag = event.tag + if tag is None or tag == u'!': + tag = self.resolve(ScalarNode, event.value, event.implicit) + node = ScalarNode(tag, event.value, + event.start_mark, event.end_mark, style=event.style) + if anchor is not None: + self.anchors[anchor] = node + return node + + def compose_sequence_node(self, anchor): + start_event = self.get_event() + tag = start_event.tag + if tag is None or tag == u'!': + tag = self.resolve(SequenceNode, None, start_event.implicit) + node = SequenceNode(tag, [], + start_event.start_mark, None, + flow_style=start_event.flow_style) + if anchor is not None: + self.anchors[anchor] = node + index = 0 + while not self.check_event(SequenceEndEvent): + node.value.append(self.compose_node(node, index)) + index += 1 + end_event = self.get_event() + node.end_mark = end_event.end_mark + return node + + def compose_mapping_node(self, anchor): + start_event = self.get_event() + tag = start_event.tag + if tag is None or tag == u'!': + tag = self.resolve(MappingNode, None, start_event.implicit) + node = MappingNode(tag, [], + start_event.start_mark, None, + flow_style=start_event.flow_style) + if anchor is not None: + self.anchors[anchor] = node + while not self.check_event(MappingEndEvent): + #key_event = self.peek_event() + item_key = self.compose_node(node, None) + #if item_key in node.value: + # raise ComposerError("while composing a mapping", start_event.start_mark, + # "found duplicate key", key_event.start_mark) + item_value = self.compose_node(node, item_key) + #node.value[item_key] = item_value + node.value.append((item_key, item_value)) + end_event = self.get_event() + node.end_mark = end_event.end_mark + return node + diff --git a/third_party/python/PyYAML/lib/yaml/constructor.py b/third_party/python/PyYAML/lib/yaml/constructor.py new file mode 100644 index 0000000000..794681cb7f --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/constructor.py @@ -0,0 +1,760 @@ + +__all__ = [ + 'BaseConstructor', + 'SafeConstructor', + 'FullConstructor', + 'UnsafeConstructor', + 'Constructor', + 'ConstructorError' +] + +from error import * +from nodes import * + +import datetime + +import binascii, re, sys, types + +class ConstructorError(MarkedYAMLError): + pass + + +class timezone(datetime.tzinfo): + def __init__(self, offset): + self._offset = offset + seconds = abs(offset).total_seconds() + self._name = 'UTC%s%02d:%02d' % ( + '-' if offset.days < 0 else '+', + seconds // 3600, + seconds % 3600 // 60 + ) + + def tzname(self, dt=None): + return self._name + + def utcoffset(self, dt=None): + return self._offset + + def dst(self, dt=None): + return datetime.timedelta(0) + + __repr__ = __str__ = tzname + + +class BaseConstructor(object): + + yaml_constructors = {} + yaml_multi_constructors = {} + + def __init__(self): + self.constructed_objects = {} + self.recursive_objects = {} + self.state_generators = [] + self.deep_construct = False + + def check_data(self): + # If there are more documents available? + return self.check_node() + + def check_state_key(self, key): + """Block special attributes/methods from being set in a newly created + object, to prevent user-controlled methods from being called during + deserialization""" + if self.get_state_keys_blacklist_regexp().match(key): + raise ConstructorError(None, None, + "blacklisted key '%s' in instance state found" % (key,), None) + + def get_data(self): + # Construct and return the next document. + if self.check_node(): + return self.construct_document(self.get_node()) + + def get_single_data(self): + # Ensure that the stream contains a single document and construct it. + node = self.get_single_node() + if node is not None: + return self.construct_document(node) + return None + + def construct_document(self, node): + data = self.construct_object(node) + while self.state_generators: + state_generators = self.state_generators + self.state_generators = [] + for generator in state_generators: + for dummy in generator: + pass + self.constructed_objects = {} + self.recursive_objects = {} + self.deep_construct = False + return data + + def construct_object(self, node, deep=False): + if node in self.constructed_objects: + return self.constructed_objects[node] + if deep: + old_deep = self.deep_construct + self.deep_construct = True + if node in self.recursive_objects: + raise ConstructorError(None, None, + "found unconstructable recursive node", node.start_mark) + self.recursive_objects[node] = None + constructor = None + tag_suffix = None + if node.tag in self.yaml_constructors: + constructor = self.yaml_constructors[node.tag] + else: + for tag_prefix in self.yaml_multi_constructors: + if tag_prefix is not None and node.tag.startswith(tag_prefix): + tag_suffix = node.tag[len(tag_prefix):] + constructor = self.yaml_multi_constructors[tag_prefix] + break + else: + if None in self.yaml_multi_constructors: + tag_suffix = node.tag + constructor = self.yaml_multi_constructors[None] + elif None in self.yaml_constructors: + constructor = self.yaml_constructors[None] + elif isinstance(node, ScalarNode): + constructor = self.__class__.construct_scalar + elif isinstance(node, SequenceNode): + constructor = self.__class__.construct_sequence + elif isinstance(node, MappingNode): + constructor = self.__class__.construct_mapping + if tag_suffix is None: + data = constructor(self, node) + else: + data = constructor(self, tag_suffix, node) + if isinstance(data, types.GeneratorType): + generator = data + data = generator.next() + if self.deep_construct: + for dummy in generator: + pass + else: + self.state_generators.append(generator) + self.constructed_objects[node] = data + del self.recursive_objects[node] + if deep: + self.deep_construct = old_deep + return data + + def construct_scalar(self, node): + if not isinstance(node, ScalarNode): + raise ConstructorError(None, None, + "expected a scalar node, but found %s" % node.id, + node.start_mark) + return node.value + + def construct_sequence(self, node, deep=False): + if not isinstance(node, SequenceNode): + raise ConstructorError(None, None, + "expected a sequence node, but found %s" % node.id, + node.start_mark) + return [self.construct_object(child, deep=deep) + for child in node.value] + + def construct_mapping(self, node, deep=False): + if not isinstance(node, MappingNode): + raise ConstructorError(None, None, + "expected a mapping node, but found %s" % node.id, + node.start_mark) + mapping = {} + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) + try: + hash(key) + except TypeError, exc: + raise ConstructorError("while constructing a mapping", node.start_mark, + "found unacceptable key (%s)" % exc, key_node.start_mark) + value = self.construct_object(value_node, deep=deep) + mapping[key] = value + return mapping + + def construct_pairs(self, node, deep=False): + if not isinstance(node, MappingNode): + raise ConstructorError(None, None, + "expected a mapping node, but found %s" % node.id, + node.start_mark) + pairs = [] + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) + value = self.construct_object(value_node, deep=deep) + pairs.append((key, value)) + return pairs + + def add_constructor(cls, tag, constructor): + if not 'yaml_constructors' in cls.__dict__: + cls.yaml_constructors = cls.yaml_constructors.copy() + cls.yaml_constructors[tag] = constructor + add_constructor = classmethod(add_constructor) + + def add_multi_constructor(cls, tag_prefix, multi_constructor): + if not 'yaml_multi_constructors' in cls.__dict__: + cls.yaml_multi_constructors = cls.yaml_multi_constructors.copy() + cls.yaml_multi_constructors[tag_prefix] = multi_constructor + add_multi_constructor = classmethod(add_multi_constructor) + +class SafeConstructor(BaseConstructor): + + def construct_scalar(self, node): + if isinstance(node, MappingNode): + for key_node, value_node in node.value: + if key_node.tag == u'tag:yaml.org,2002:value': + return self.construct_scalar(value_node) + return BaseConstructor.construct_scalar(self, node) + + def flatten_mapping(self, node): + merge = [] + index = 0 + while index < len(node.value): + key_node, value_node = node.value[index] + if key_node.tag == u'tag:yaml.org,2002:merge': + del node.value[index] + if isinstance(value_node, MappingNode): + self.flatten_mapping(value_node) + merge.extend(value_node.value) + elif isinstance(value_node, SequenceNode): + submerge = [] + for subnode in value_node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing a mapping", + node.start_mark, + "expected a mapping for merging, but found %s" + % subnode.id, subnode.start_mark) + self.flatten_mapping(subnode) + submerge.append(subnode.value) + submerge.reverse() + for value in submerge: + merge.extend(value) + else: + raise ConstructorError("while constructing a mapping", node.start_mark, + "expected a mapping or list of mappings for merging, but found %s" + % value_node.id, value_node.start_mark) + elif key_node.tag == u'tag:yaml.org,2002:value': + key_node.tag = u'tag:yaml.org,2002:str' + index += 1 + else: + index += 1 + if merge: + node.value = merge + node.value + + def construct_mapping(self, node, deep=False): + if isinstance(node, MappingNode): + self.flatten_mapping(node) + return BaseConstructor.construct_mapping(self, node, deep=deep) + + def construct_yaml_null(self, node): + self.construct_scalar(node) + return None + + bool_values = { + u'yes': True, + u'no': False, + u'true': True, + u'false': False, + u'on': True, + u'off': False, + } + + def construct_yaml_bool(self, node): + value = self.construct_scalar(node) + return self.bool_values[value.lower()] + + def construct_yaml_int(self, node): + value = str(self.construct_scalar(node)) + value = value.replace('_', '') + sign = +1 + if value[0] == '-': + sign = -1 + if value[0] in '+-': + value = value[1:] + if value == '0': + return 0 + elif value.startswith('0b'): + return sign*int(value[2:], 2) + elif value.startswith('0x'): + return sign*int(value[2:], 16) + elif value[0] == '0': + return sign*int(value, 8) + elif ':' in value: + digits = [int(part) for part in value.split(':')] + digits.reverse() + base = 1 + value = 0 + for digit in digits: + value += digit*base + base *= 60 + return sign*value + else: + return sign*int(value) + + inf_value = 1e300 + while inf_value != inf_value*inf_value: + inf_value *= inf_value + nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99). + + def construct_yaml_float(self, node): + value = str(self.construct_scalar(node)) + value = value.replace('_', '').lower() + sign = +1 + if value[0] == '-': + sign = -1 + if value[0] in '+-': + value = value[1:] + if value == '.inf': + return sign*self.inf_value + elif value == '.nan': + return self.nan_value + elif ':' in value: + digits = [float(part) for part in value.split(':')] + digits.reverse() + base = 1 + value = 0.0 + for digit in digits: + value += digit*base + base *= 60 + return sign*value + else: + return sign*float(value) + + def construct_yaml_binary(self, node): + value = self.construct_scalar(node) + try: + return str(value).decode('base64') + except (binascii.Error, UnicodeEncodeError), exc: + raise ConstructorError(None, None, + "failed to decode base64 data: %s" % exc, node.start_mark) + + timestamp_regexp = re.compile( + ur'''^(?P<year>[0-9][0-9][0-9][0-9]) + -(?P<month>[0-9][0-9]?) + -(?P<day>[0-9][0-9]?) + (?:(?:[Tt]|[ \t]+) + (?P<hour>[0-9][0-9]?) + :(?P<minute>[0-9][0-9]) + :(?P<second>[0-9][0-9]) + (?:\.(?P<fraction>[0-9]*))? + (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?) + (?::(?P<tz_minute>[0-9][0-9]))?))?)?$''', re.X) + + def construct_yaml_timestamp(self, node): + value = self.construct_scalar(node) + match = self.timestamp_regexp.match(node.value) + values = match.groupdict() + year = int(values['year']) + month = int(values['month']) + day = int(values['day']) + if not values['hour']: + return datetime.date(year, month, day) + hour = int(values['hour']) + minute = int(values['minute']) + second = int(values['second']) + fraction = 0 + tzinfo = None + if values['fraction']: + fraction = values['fraction'][:6] + while len(fraction) < 6: + fraction += '0' + fraction = int(fraction) + if values['tz_sign']: + tz_hour = int(values['tz_hour']) + tz_minute = int(values['tz_minute'] or 0) + delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute) + if values['tz_sign'] == '-': + delta = -delta + tzinfo = timezone(delta) + elif values['tz']: + tzinfo = timezone(datetime.timedelta(0)) + return datetime.datetime(year, month, day, hour, minute, second, fraction, + tzinfo=tzinfo) + + def construct_yaml_omap(self, node): + # Note: we do not check for duplicate keys, because it's too + # CPU-expensive. + omap = [] + yield omap + if not isinstance(node, SequenceNode): + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a sequence, but found %s" % node.id, node.start_mark) + for subnode in node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a mapping of length 1, but found %s" % subnode.id, + subnode.start_mark) + if len(subnode.value) != 1: + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a single mapping item, but found %d items" % len(subnode.value), + subnode.start_mark) + key_node, value_node = subnode.value[0] + key = self.construct_object(key_node) + value = self.construct_object(value_node) + omap.append((key, value)) + + def construct_yaml_pairs(self, node): + # Note: the same code as `construct_yaml_omap`. + pairs = [] + yield pairs + if not isinstance(node, SequenceNode): + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a sequence, but found %s" % node.id, node.start_mark) + for subnode in node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a mapping of length 1, but found %s" % subnode.id, + subnode.start_mark) + if len(subnode.value) != 1: + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a single mapping item, but found %d items" % len(subnode.value), + subnode.start_mark) + key_node, value_node = subnode.value[0] + key = self.construct_object(key_node) + value = self.construct_object(value_node) + pairs.append((key, value)) + + def construct_yaml_set(self, node): + data = set() + yield data + value = self.construct_mapping(node) + data.update(value) + + def construct_yaml_str(self, node): + value = self.construct_scalar(node) + try: + return value.encode('ascii') + except UnicodeEncodeError: + return value + + def construct_yaml_seq(self, node): + data = [] + yield data + data.extend(self.construct_sequence(node)) + + def construct_yaml_map(self, node): + data = {} + yield data + value = self.construct_mapping(node) + data.update(value) + + def construct_yaml_object(self, node, cls): + data = cls.__new__(cls) + yield data + if hasattr(data, '__setstate__'): + state = self.construct_mapping(node, deep=True) + data.__setstate__(state) + else: + state = self.construct_mapping(node) + data.__dict__.update(state) + + def construct_undefined(self, node): + raise ConstructorError(None, None, + "could not determine a constructor for the tag %r" % node.tag.encode('utf-8'), + node.start_mark) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:null', + SafeConstructor.construct_yaml_null) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:bool', + SafeConstructor.construct_yaml_bool) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:int', + SafeConstructor.construct_yaml_int) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:float', + SafeConstructor.construct_yaml_float) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:binary', + SafeConstructor.construct_yaml_binary) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:timestamp', + SafeConstructor.construct_yaml_timestamp) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:omap', + SafeConstructor.construct_yaml_omap) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:pairs', + SafeConstructor.construct_yaml_pairs) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:set', + SafeConstructor.construct_yaml_set) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:str', + SafeConstructor.construct_yaml_str) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:seq', + SafeConstructor.construct_yaml_seq) + +SafeConstructor.add_constructor( + u'tag:yaml.org,2002:map', + SafeConstructor.construct_yaml_map) + +SafeConstructor.add_constructor(None, + SafeConstructor.construct_undefined) + +class FullConstructor(SafeConstructor): + # 'extend' is blacklisted because it is used by + # construct_python_object_apply to add `listitems` to a newly generate + # python instance + def get_state_keys_blacklist(self): + return ['^extend$', '^__.*__$'] + + def get_state_keys_blacklist_regexp(self): + if not hasattr(self, 'state_keys_blacklist_regexp'): + self.state_keys_blacklist_regexp = re.compile('(' + '|'.join(self.get_state_keys_blacklist()) + ')') + return self.state_keys_blacklist_regexp + + def construct_python_str(self, node): + return self.construct_scalar(node).encode('utf-8') + + def construct_python_unicode(self, node): + return self.construct_scalar(node) + + def construct_python_long(self, node): + return long(self.construct_yaml_int(node)) + + def construct_python_complex(self, node): + return complex(self.construct_scalar(node)) + + def construct_python_tuple(self, node): + return tuple(self.construct_sequence(node)) + + def find_python_module(self, name, mark, unsafe=False): + if not name: + raise ConstructorError("while constructing a Python module", mark, + "expected non-empty name appended to the tag", mark) + if unsafe: + try: + __import__(name) + except ImportError, exc: + raise ConstructorError("while constructing a Python module", mark, + "cannot find module %r (%s)" % (name.encode('utf-8'), exc), mark) + if name not in sys.modules: + raise ConstructorError("while constructing a Python module", mark, + "module %r is not imported" % name.encode('utf-8'), mark) + return sys.modules[name] + + def find_python_name(self, name, mark, unsafe=False): + if not name: + raise ConstructorError("while constructing a Python object", mark, + "expected non-empty name appended to the tag", mark) + if u'.' in name: + module_name, object_name = name.rsplit('.', 1) + else: + module_name = '__builtin__' + object_name = name + if unsafe: + try: + __import__(module_name) + except ImportError, exc: + raise ConstructorError("while constructing a Python object", mark, + "cannot find module %r (%s)" % (module_name.encode('utf-8'), exc), mark) + if module_name not in sys.modules: + raise ConstructorError("while constructing a Python object", mark, + "module %r is not imported" % module_name.encode('utf-8'), mark) + module = sys.modules[module_name] + if not hasattr(module, object_name): + raise ConstructorError("while constructing a Python object", mark, + "cannot find %r in the module %r" % (object_name.encode('utf-8'), + module.__name__), mark) + return getattr(module, object_name) + + def construct_python_name(self, suffix, node): + value = self.construct_scalar(node) + if value: + raise ConstructorError("while constructing a Python name", node.start_mark, + "expected the empty value, but found %r" % value.encode('utf-8'), + node.start_mark) + return self.find_python_name(suffix, node.start_mark) + + def construct_python_module(self, suffix, node): + value = self.construct_scalar(node) + if value: + raise ConstructorError("while constructing a Python module", node.start_mark, + "expected the empty value, but found %r" % value.encode('utf-8'), + node.start_mark) + return self.find_python_module(suffix, node.start_mark) + + class classobj: pass + + def make_python_instance(self, suffix, node, + args=None, kwds=None, newobj=False, unsafe=False): + if not args: + args = [] + if not kwds: + kwds = {} + cls = self.find_python_name(suffix, node.start_mark) + if not (unsafe or isinstance(cls, type) or isinstance(cls, type(self.classobj))): + raise ConstructorError("while constructing a Python instance", node.start_mark, + "expected a class, but found %r" % type(cls), + node.start_mark) + if newobj and isinstance(cls, type(self.classobj)) \ + and not args and not kwds: + instance = self.classobj() + instance.__class__ = cls + return instance + elif newobj and isinstance(cls, type): + return cls.__new__(cls, *args, **kwds) + else: + return cls(*args, **kwds) + + def set_python_instance_state(self, instance, state, unsafe=False): + if hasattr(instance, '__setstate__'): + instance.__setstate__(state) + else: + slotstate = {} + if isinstance(state, tuple) and len(state) == 2: + state, slotstate = state + if hasattr(instance, '__dict__'): + if not unsafe and state: + for key in state.keys(): + self.check_state_key(key) + instance.__dict__.update(state) + elif state: + slotstate.update(state) + for key, value in slotstate.items(): + if not unsafe: + self.check_state_key(key) + setattr(instance, key, value) + + def construct_python_object(self, suffix, node): + # Format: + # !!python/object:module.name { ... state ... } + instance = self.make_python_instance(suffix, node, newobj=True) + yield instance + deep = hasattr(instance, '__setstate__') + state = self.construct_mapping(node, deep=deep) + self.set_python_instance_state(instance, state) + + def construct_python_object_apply(self, suffix, node, newobj=False): + # Format: + # !!python/object/apply # (or !!python/object/new) + # args: [ ... arguments ... ] + # kwds: { ... keywords ... } + # state: ... state ... + # listitems: [ ... listitems ... ] + # dictitems: { ... dictitems ... } + # or short format: + # !!python/object/apply [ ... arguments ... ] + # The difference between !!python/object/apply and !!python/object/new + # is how an object is created, check make_python_instance for details. + if isinstance(node, SequenceNode): + args = self.construct_sequence(node, deep=True) + kwds = {} + state = {} + listitems = [] + dictitems = {} + else: + value = self.construct_mapping(node, deep=True) + args = value.get('args', []) + kwds = value.get('kwds', {}) + state = value.get('state', {}) + listitems = value.get('listitems', []) + dictitems = value.get('dictitems', {}) + instance = self.make_python_instance(suffix, node, args, kwds, newobj) + if state: + self.set_python_instance_state(instance, state) + if listitems: + instance.extend(listitems) + if dictitems: + for key in dictitems: + instance[key] = dictitems[key] + return instance + + def construct_python_object_new(self, suffix, node): + return self.construct_python_object_apply(suffix, node, newobj=True) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/none', + FullConstructor.construct_yaml_null) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/bool', + FullConstructor.construct_yaml_bool) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/str', + FullConstructor.construct_python_str) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/unicode', + FullConstructor.construct_python_unicode) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/int', + FullConstructor.construct_yaml_int) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/long', + FullConstructor.construct_python_long) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/float', + FullConstructor.construct_yaml_float) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/complex', + FullConstructor.construct_python_complex) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/list', + FullConstructor.construct_yaml_seq) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/tuple', + FullConstructor.construct_python_tuple) + +FullConstructor.add_constructor( + u'tag:yaml.org,2002:python/dict', + FullConstructor.construct_yaml_map) + +FullConstructor.add_multi_constructor( + u'tag:yaml.org,2002:python/name:', + FullConstructor.construct_python_name) + +FullConstructor.add_multi_constructor( + u'tag:yaml.org,2002:python/module:', + FullConstructor.construct_python_module) + +FullConstructor.add_multi_constructor( + u'tag:yaml.org,2002:python/object:', + FullConstructor.construct_python_object) + +FullConstructor.add_multi_constructor( + u'tag:yaml.org,2002:python/object/new:', + FullConstructor.construct_python_object_new) + +class UnsafeConstructor(FullConstructor): + + def find_python_module(self, name, mark): + return super(UnsafeConstructor, self).find_python_module(name, mark, unsafe=True) + + def find_python_name(self, name, mark): + return super(UnsafeConstructor, self).find_python_name(name, mark, unsafe=True) + + def make_python_instance(self, suffix, node, args=None, kwds=None, newobj=False): + return super(UnsafeConstructor, self).make_python_instance( + suffix, node, args, kwds, newobj, unsafe=True) + + def set_python_instance_state(self, instance, state): + return super(UnsafeConstructor, self).set_python_instance_state( + instance, state, unsafe=True) + +UnsafeConstructor.add_multi_constructor( + u'tag:yaml.org,2002:python/object/apply:', + UnsafeConstructor.construct_python_object_apply) + +# Constructor is same as UnsafeConstructor. Need to leave this in place in case +# people have extended it directly. +class Constructor(UnsafeConstructor): + pass diff --git a/third_party/python/PyYAML/lib/yaml/cyaml.py b/third_party/python/PyYAML/lib/yaml/cyaml.py new file mode 100644 index 0000000000..ebb8959352 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/cyaml.py @@ -0,0 +1,101 @@ + +__all__ = [ + 'CBaseLoader', 'CSafeLoader', 'CFullLoader', 'CUnsafeLoader', 'CLoader', + 'CBaseDumper', 'CSafeDumper', 'CDumper' +] + +from _yaml import CParser, CEmitter + +from constructor import * + +from serializer import * +from representer import * + +from resolver import * + +class CBaseLoader(CParser, BaseConstructor, BaseResolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + BaseConstructor.__init__(self) + BaseResolver.__init__(self) + +class CSafeLoader(CParser, SafeConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + SafeConstructor.__init__(self) + Resolver.__init__(self) + +class CFullLoader(CParser, FullConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + FullConstructor.__init__(self) + Resolver.__init__(self) + +class CUnsafeLoader(CParser, UnsafeConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + UnsafeConstructor.__init__(self) + Resolver.__init__(self) + +class CLoader(CParser, Constructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + Constructor.__init__(self) + Resolver.__init__(self) + +class CBaseDumper(CEmitter, BaseRepresenter, BaseResolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class CSafeDumper(CEmitter, SafeRepresenter, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + SafeRepresenter.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class CDumper(CEmitter, Serializer, Representer, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + diff --git a/third_party/python/PyYAML/lib/yaml/dumper.py b/third_party/python/PyYAML/lib/yaml/dumper.py new file mode 100644 index 0000000000..f9cd49fda5 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/dumper.py @@ -0,0 +1,62 @@ + +__all__ = ['BaseDumper', 'SafeDumper', 'Dumper'] + +from emitter import * +from serializer import * +from representer import * +from resolver import * + +class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + SafeRepresenter.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class Dumper(Emitter, Serializer, Representer, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + diff --git a/third_party/python/PyYAML/lib/yaml/emitter.py b/third_party/python/PyYAML/lib/yaml/emitter.py new file mode 100644 index 0000000000..23c25ca80a --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/emitter.py @@ -0,0 +1,1144 @@ + +# Emitter expects events obeying the following grammar: +# stream ::= STREAM-START document* STREAM-END +# document ::= DOCUMENT-START node DOCUMENT-END +# node ::= SCALAR | sequence | mapping +# sequence ::= SEQUENCE-START node* SEQUENCE-END +# mapping ::= MAPPING-START (node node)* MAPPING-END + +__all__ = ['Emitter', 'EmitterError'] + +import sys + +from error import YAMLError +from events import * + +has_ucs4 = sys.maxunicode > 0xffff + +class EmitterError(YAMLError): + pass + +class ScalarAnalysis(object): + def __init__(self, scalar, empty, multiline, + allow_flow_plain, allow_block_plain, + allow_single_quoted, allow_double_quoted, + allow_block): + self.scalar = scalar + self.empty = empty + self.multiline = multiline + self.allow_flow_plain = allow_flow_plain + self.allow_block_plain = allow_block_plain + self.allow_single_quoted = allow_single_quoted + self.allow_double_quoted = allow_double_quoted + self.allow_block = allow_block + +class Emitter(object): + + DEFAULT_TAG_PREFIXES = { + u'!' : u'!', + u'tag:yaml.org,2002:' : u'!!', + } + + def __init__(self, stream, canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None): + + # The stream should have the methods `write` and possibly `flush`. + self.stream = stream + + # Encoding can be overridden by STREAM-START. + self.encoding = None + + # Emitter is a state machine with a stack of states to handle nested + # structures. + self.states = [] + self.state = self.expect_stream_start + + # Current event and the event queue. + self.events = [] + self.event = None + + # The current indentation level and the stack of previous indents. + self.indents = [] + self.indent = None + + # Flow level. + self.flow_level = 0 + + # Contexts. + self.root_context = False + self.sequence_context = False + self.mapping_context = False + self.simple_key_context = False + + # Characteristics of the last emitted character: + # - current position. + # - is it a whitespace? + # - is it an indention character + # (indentation space, '-', '?', or ':')? + self.line = 0 + self.column = 0 + self.whitespace = True + self.indention = True + + # Whether the document requires an explicit document indicator + self.open_ended = False + + # Formatting details. + self.canonical = canonical + self.allow_unicode = allow_unicode + self.best_indent = 2 + if indent and 1 < indent < 10: + self.best_indent = indent + self.best_width = 80 + if width and width > self.best_indent*2: + self.best_width = width + self.best_line_break = u'\n' + if line_break in [u'\r', u'\n', u'\r\n']: + self.best_line_break = line_break + + # Tag prefixes. + self.tag_prefixes = None + + # Prepared anchor and tag. + self.prepared_anchor = None + self.prepared_tag = None + + # Scalar analysis and style. + self.analysis = None + self.style = None + + def dispose(self): + # Reset the state attributes (to clear self-references) + self.states = [] + self.state = None + + def emit(self, event): + self.events.append(event) + while not self.need_more_events(): + self.event = self.events.pop(0) + self.state() + self.event = None + + # In some cases, we wait for a few next events before emitting. + + def need_more_events(self): + if not self.events: + return True + event = self.events[0] + if isinstance(event, DocumentStartEvent): + return self.need_events(1) + elif isinstance(event, SequenceStartEvent): + return self.need_events(2) + elif isinstance(event, MappingStartEvent): + return self.need_events(3) + else: + return False + + def need_events(self, count): + level = 0 + for event in self.events[1:]: + if isinstance(event, (DocumentStartEvent, CollectionStartEvent)): + level += 1 + elif isinstance(event, (DocumentEndEvent, CollectionEndEvent)): + level -= 1 + elif isinstance(event, StreamEndEvent): + level = -1 + if level < 0: + return False + return (len(self.events) < count+1) + + def increase_indent(self, flow=False, indentless=False): + self.indents.append(self.indent) + if self.indent is None: + if flow: + self.indent = self.best_indent + else: + self.indent = 0 + elif not indentless: + self.indent += self.best_indent + + # States. + + # Stream handlers. + + def expect_stream_start(self): + if isinstance(self.event, StreamStartEvent): + if self.event.encoding and not getattr(self.stream, 'encoding', None): + self.encoding = self.event.encoding + self.write_stream_start() + self.state = self.expect_first_document_start + else: + raise EmitterError("expected StreamStartEvent, but got %s" + % self.event) + + def expect_nothing(self): + raise EmitterError("expected nothing, but got %s" % self.event) + + # Document handlers. + + def expect_first_document_start(self): + return self.expect_document_start(first=True) + + def expect_document_start(self, first=False): + if isinstance(self.event, DocumentStartEvent): + if (self.event.version or self.event.tags) and self.open_ended: + self.write_indicator(u'...', True) + self.write_indent() + if self.event.version: + version_text = self.prepare_version(self.event.version) + self.write_version_directive(version_text) + self.tag_prefixes = self.DEFAULT_TAG_PREFIXES.copy() + if self.event.tags: + handles = self.event.tags.keys() + handles.sort() + for handle in handles: + prefix = self.event.tags[handle] + self.tag_prefixes[prefix] = handle + handle_text = self.prepare_tag_handle(handle) + prefix_text = self.prepare_tag_prefix(prefix) + self.write_tag_directive(handle_text, prefix_text) + implicit = (first and not self.event.explicit and not self.canonical + and not self.event.version and not self.event.tags + and not self.check_empty_document()) + if not implicit: + self.write_indent() + self.write_indicator(u'---', True) + if self.canonical: + self.write_indent() + self.state = self.expect_document_root + elif isinstance(self.event, StreamEndEvent): + if self.open_ended: + self.write_indicator(u'...', True) + self.write_indent() + self.write_stream_end() + self.state = self.expect_nothing + else: + raise EmitterError("expected DocumentStartEvent, but got %s" + % self.event) + + def expect_document_end(self): + if isinstance(self.event, DocumentEndEvent): + self.write_indent() + if self.event.explicit: + self.write_indicator(u'...', True) + self.write_indent() + self.flush_stream() + self.state = self.expect_document_start + else: + raise EmitterError("expected DocumentEndEvent, but got %s" + % self.event) + + def expect_document_root(self): + self.states.append(self.expect_document_end) + self.expect_node(root=True) + + # Node handlers. + + def expect_node(self, root=False, sequence=False, mapping=False, + simple_key=False): + self.root_context = root + self.sequence_context = sequence + self.mapping_context = mapping + self.simple_key_context = simple_key + if isinstance(self.event, AliasEvent): + self.expect_alias() + elif isinstance(self.event, (ScalarEvent, CollectionStartEvent)): + self.process_anchor(u'&') + self.process_tag() + if isinstance(self.event, ScalarEvent): + self.expect_scalar() + elif isinstance(self.event, SequenceStartEvent): + if self.flow_level or self.canonical or self.event.flow_style \ + or self.check_empty_sequence(): + self.expect_flow_sequence() + else: + self.expect_block_sequence() + elif isinstance(self.event, MappingStartEvent): + if self.flow_level or self.canonical or self.event.flow_style \ + or self.check_empty_mapping(): + self.expect_flow_mapping() + else: + self.expect_block_mapping() + else: + raise EmitterError("expected NodeEvent, but got %s" % self.event) + + def expect_alias(self): + if self.event.anchor is None: + raise EmitterError("anchor is not specified for alias") + self.process_anchor(u'*') + self.state = self.states.pop() + + def expect_scalar(self): + self.increase_indent(flow=True) + self.process_scalar() + self.indent = self.indents.pop() + self.state = self.states.pop() + + # Flow sequence handlers. + + def expect_flow_sequence(self): + self.write_indicator(u'[', True, whitespace=True) + self.flow_level += 1 + self.increase_indent(flow=True) + self.state = self.expect_first_flow_sequence_item + + def expect_first_flow_sequence_item(self): + if isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + self.write_indicator(u']', False) + self.state = self.states.pop() + else: + if self.canonical or self.column > self.best_width: + self.write_indent() + self.states.append(self.expect_flow_sequence_item) + self.expect_node(sequence=True) + + def expect_flow_sequence_item(self): + if isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + if self.canonical: + self.write_indicator(u',', False) + self.write_indent() + self.write_indicator(u']', False) + self.state = self.states.pop() + else: + self.write_indicator(u',', False) + if self.canonical or self.column > self.best_width: + self.write_indent() + self.states.append(self.expect_flow_sequence_item) + self.expect_node(sequence=True) + + # Flow mapping handlers. + + def expect_flow_mapping(self): + self.write_indicator(u'{', True, whitespace=True) + self.flow_level += 1 + self.increase_indent(flow=True) + self.state = self.expect_first_flow_mapping_key + + def expect_first_flow_mapping_key(self): + if isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + self.write_indicator(u'}', False) + self.state = self.states.pop() + else: + if self.canonical or self.column > self.best_width: + self.write_indent() + if not self.canonical and self.check_simple_key(): + self.states.append(self.expect_flow_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator(u'?', True) + self.states.append(self.expect_flow_mapping_value) + self.expect_node(mapping=True) + + def expect_flow_mapping_key(self): + if isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + if self.canonical: + self.write_indicator(u',', False) + self.write_indent() + self.write_indicator(u'}', False) + self.state = self.states.pop() + else: + self.write_indicator(u',', False) + if self.canonical or self.column > self.best_width: + self.write_indent() + if not self.canonical and self.check_simple_key(): + self.states.append(self.expect_flow_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator(u'?', True) + self.states.append(self.expect_flow_mapping_value) + self.expect_node(mapping=True) + + def expect_flow_mapping_simple_value(self): + self.write_indicator(u':', False) + self.states.append(self.expect_flow_mapping_key) + self.expect_node(mapping=True) + + def expect_flow_mapping_value(self): + if self.canonical or self.column > self.best_width: + self.write_indent() + self.write_indicator(u':', True) + self.states.append(self.expect_flow_mapping_key) + self.expect_node(mapping=True) + + # Block sequence handlers. + + def expect_block_sequence(self): + indentless = (self.mapping_context and not self.indention) + self.increase_indent(flow=False, indentless=indentless) + self.state = self.expect_first_block_sequence_item + + def expect_first_block_sequence_item(self): + return self.expect_block_sequence_item(first=True) + + def expect_block_sequence_item(self, first=False): + if not first and isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.state = self.states.pop() + else: + self.write_indent() + self.write_indicator(u'-', True, indention=True) + self.states.append(self.expect_block_sequence_item) + self.expect_node(sequence=True) + + # Block mapping handlers. + + def expect_block_mapping(self): + self.increase_indent(flow=False) + self.state = self.expect_first_block_mapping_key + + def expect_first_block_mapping_key(self): + return self.expect_block_mapping_key(first=True) + + def expect_block_mapping_key(self, first=False): + if not first and isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.state = self.states.pop() + else: + self.write_indent() + if self.check_simple_key(): + self.states.append(self.expect_block_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator(u'?', True, indention=True) + self.states.append(self.expect_block_mapping_value) + self.expect_node(mapping=True) + + def expect_block_mapping_simple_value(self): + self.write_indicator(u':', False) + self.states.append(self.expect_block_mapping_key) + self.expect_node(mapping=True) + + def expect_block_mapping_value(self): + self.write_indent() + self.write_indicator(u':', True, indention=True) + self.states.append(self.expect_block_mapping_key) + self.expect_node(mapping=True) + + # Checkers. + + def check_empty_sequence(self): + return (isinstance(self.event, SequenceStartEvent) and self.events + and isinstance(self.events[0], SequenceEndEvent)) + + def check_empty_mapping(self): + return (isinstance(self.event, MappingStartEvent) and self.events + and isinstance(self.events[0], MappingEndEvent)) + + def check_empty_document(self): + if not isinstance(self.event, DocumentStartEvent) or not self.events: + return False + event = self.events[0] + return (isinstance(event, ScalarEvent) and event.anchor is None + and event.tag is None and event.implicit and event.value == u'') + + def check_simple_key(self): + length = 0 + if isinstance(self.event, NodeEvent) and self.event.anchor is not None: + if self.prepared_anchor is None: + self.prepared_anchor = self.prepare_anchor(self.event.anchor) + length += len(self.prepared_anchor) + if isinstance(self.event, (ScalarEvent, CollectionStartEvent)) \ + and self.event.tag is not None: + if self.prepared_tag is None: + self.prepared_tag = self.prepare_tag(self.event.tag) + length += len(self.prepared_tag) + if isinstance(self.event, ScalarEvent): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + length += len(self.analysis.scalar) + return (length < 128 and (isinstance(self.event, AliasEvent) + or (isinstance(self.event, ScalarEvent) + and not self.analysis.empty and not self.analysis.multiline) + or self.check_empty_sequence() or self.check_empty_mapping())) + + # Anchor, Tag, and Scalar processors. + + def process_anchor(self, indicator): + if self.event.anchor is None: + self.prepared_anchor = None + return + if self.prepared_anchor is None: + self.prepared_anchor = self.prepare_anchor(self.event.anchor) + if self.prepared_anchor: + self.write_indicator(indicator+self.prepared_anchor, True) + self.prepared_anchor = None + + def process_tag(self): + tag = self.event.tag + if isinstance(self.event, ScalarEvent): + if self.style is None: + self.style = self.choose_scalar_style() + if ((not self.canonical or tag is None) and + ((self.style == '' and self.event.implicit[0]) + or (self.style != '' and self.event.implicit[1]))): + self.prepared_tag = None + return + if self.event.implicit[0] and tag is None: + tag = u'!' + self.prepared_tag = None + else: + if (not self.canonical or tag is None) and self.event.implicit: + self.prepared_tag = None + return + if tag is None: + raise EmitterError("tag is not specified") + if self.prepared_tag is None: + self.prepared_tag = self.prepare_tag(tag) + if self.prepared_tag: + self.write_indicator(self.prepared_tag, True) + self.prepared_tag = None + + def choose_scalar_style(self): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + if self.event.style == '"' or self.canonical: + return '"' + if not self.event.style and self.event.implicit[0]: + if (not (self.simple_key_context and + (self.analysis.empty or self.analysis.multiline)) + and (self.flow_level and self.analysis.allow_flow_plain + or (not self.flow_level and self.analysis.allow_block_plain))): + return '' + if self.event.style and self.event.style in '|>': + if (not self.flow_level and not self.simple_key_context + and self.analysis.allow_block): + return self.event.style + if not self.event.style or self.event.style == '\'': + if (self.analysis.allow_single_quoted and + not (self.simple_key_context and self.analysis.multiline)): + return '\'' + return '"' + + def process_scalar(self): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + if self.style is None: + self.style = self.choose_scalar_style() + split = (not self.simple_key_context) + #if self.analysis.multiline and split \ + # and (not self.style or self.style in '\'\"'): + # self.write_indent() + if self.style == '"': + self.write_double_quoted(self.analysis.scalar, split) + elif self.style == '\'': + self.write_single_quoted(self.analysis.scalar, split) + elif self.style == '>': + self.write_folded(self.analysis.scalar) + elif self.style == '|': + self.write_literal(self.analysis.scalar) + else: + self.write_plain(self.analysis.scalar, split) + self.analysis = None + self.style = None + + # Analyzers. + + def prepare_version(self, version): + major, minor = version + if major != 1: + raise EmitterError("unsupported YAML version: %d.%d" % (major, minor)) + return u'%d.%d' % (major, minor) + + def prepare_tag_handle(self, handle): + if not handle: + raise EmitterError("tag handle must not be empty") + if handle[0] != u'!' or handle[-1] != u'!': + raise EmitterError("tag handle must start and end with '!': %r" + % (handle.encode('utf-8'))) + for ch in handle[1:-1]: + if not (u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-_'): + raise EmitterError("invalid character %r in the tag handle: %r" + % (ch.encode('utf-8'), handle.encode('utf-8'))) + return handle + + def prepare_tag_prefix(self, prefix): + if not prefix: + raise EmitterError("tag prefix must not be empty") + chunks = [] + start = end = 0 + if prefix[0] == u'!': + end = 1 + while end < len(prefix): + ch = prefix[end] + if u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-;/?!:@&=+$,_.~*\'()[]': + end += 1 + else: + if start < end: + chunks.append(prefix[start:end]) + start = end = end+1 + data = ch.encode('utf-8') + for ch in data: + chunks.append(u'%%%02X' % ord(ch)) + if start < end: + chunks.append(prefix[start:end]) + return u''.join(chunks) + + def prepare_tag(self, tag): + if not tag: + raise EmitterError("tag must not be empty") + if tag == u'!': + return tag + handle = None + suffix = tag + prefixes = self.tag_prefixes.keys() + prefixes.sort() + for prefix in prefixes: + if tag.startswith(prefix) \ + and (prefix == u'!' or len(prefix) < len(tag)): + handle = self.tag_prefixes[prefix] + suffix = tag[len(prefix):] + chunks = [] + start = end = 0 + while end < len(suffix): + ch = suffix[end] + if u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-;/?:@&=+$,_.~*\'()[]' \ + or (ch == u'!' and handle != u'!'): + end += 1 + else: + if start < end: + chunks.append(suffix[start:end]) + start = end = end+1 + data = ch.encode('utf-8') + for ch in data: + chunks.append(u'%%%02X' % ord(ch)) + if start < end: + chunks.append(suffix[start:end]) + suffix_text = u''.join(chunks) + if handle: + return u'%s%s' % (handle, suffix_text) + else: + return u'!<%s>' % suffix_text + + def prepare_anchor(self, anchor): + if not anchor: + raise EmitterError("anchor must not be empty") + for ch in anchor: + if not (u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-_'): + raise EmitterError("invalid character %r in the anchor: %r" + % (ch.encode('utf-8'), anchor.encode('utf-8'))) + return anchor + + def analyze_scalar(self, scalar): + + # Empty scalar is a special case. + if not scalar: + return ScalarAnalysis(scalar=scalar, empty=True, multiline=False, + allow_flow_plain=False, allow_block_plain=True, + allow_single_quoted=True, allow_double_quoted=True, + allow_block=False) + + # Indicators and special characters. + block_indicators = False + flow_indicators = False + line_breaks = False + special_characters = False + + # Important whitespace combinations. + leading_space = False + leading_break = False + trailing_space = False + trailing_break = False + break_space = False + space_break = False + + # Check document indicators. + if scalar.startswith(u'---') or scalar.startswith(u'...'): + block_indicators = True + flow_indicators = True + + # First character or preceded by a whitespace. + preceded_by_whitespace = True + + # Last character or followed by a whitespace. + followed_by_whitespace = (len(scalar) == 1 or + scalar[1] in u'\0 \t\r\n\x85\u2028\u2029') + + # The previous character is a space. + previous_space = False + + # The previous character is a break. + previous_break = False + + index = 0 + while index < len(scalar): + ch = scalar[index] + + # Check for indicators. + if index == 0: + # Leading indicators are special characters. + if ch in u'#,[]{}&*!|>\'\"%@`': + flow_indicators = True + block_indicators = True + if ch in u'?:': + flow_indicators = True + if followed_by_whitespace: + block_indicators = True + if ch == u'-' and followed_by_whitespace: + flow_indicators = True + block_indicators = True + else: + # Some indicators cannot appear within a scalar as well. + if ch in u',?[]{}': + flow_indicators = True + if ch == u':': + flow_indicators = True + if followed_by_whitespace: + block_indicators = True + if ch == u'#' and preceded_by_whitespace: + flow_indicators = True + block_indicators = True + + # Check for line breaks, special, and unicode characters. + if ch in u'\n\x85\u2028\u2029': + line_breaks = True + if not (ch == u'\n' or u'\x20' <= ch <= u'\x7E'): + if (ch == u'\x85' or u'\xA0' <= ch <= u'\uD7FF' + or u'\uE000' <= ch <= u'\uFFFD' + or (u'\U00010000' <= ch < u'\U0010ffff')) and ch != u'\uFEFF': + unicode_characters = True + if not self.allow_unicode: + special_characters = True + else: + special_characters = True + + # Detect important whitespace combinations. + if ch == u' ': + if index == 0: + leading_space = True + if index == len(scalar)-1: + trailing_space = True + if previous_break: + break_space = True + previous_space = True + previous_break = False + elif ch in u'\n\x85\u2028\u2029': + if index == 0: + leading_break = True + if index == len(scalar)-1: + trailing_break = True + if previous_space: + space_break = True + previous_space = False + previous_break = True + else: + previous_space = False + previous_break = False + + # Prepare for the next character. + index += 1 + preceded_by_whitespace = (ch in u'\0 \t\r\n\x85\u2028\u2029') + followed_by_whitespace = (index+1 >= len(scalar) or + scalar[index+1] in u'\0 \t\r\n\x85\u2028\u2029') + + # Let's decide what styles are allowed. + allow_flow_plain = True + allow_block_plain = True + allow_single_quoted = True + allow_double_quoted = True + allow_block = True + + # Leading and trailing whitespaces are bad for plain scalars. + if (leading_space or leading_break + or trailing_space or trailing_break): + allow_flow_plain = allow_block_plain = False + + # We do not permit trailing spaces for block scalars. + if trailing_space: + allow_block = False + + # Spaces at the beginning of a new line are only acceptable for block + # scalars. + if break_space: + allow_flow_plain = allow_block_plain = allow_single_quoted = False + + # Spaces followed by breaks, as well as special character are only + # allowed for double quoted scalars. + if space_break or special_characters: + allow_flow_plain = allow_block_plain = \ + allow_single_quoted = allow_block = False + + # Although the plain scalar writer supports breaks, we never emit + # multiline plain scalars. + if line_breaks: + allow_flow_plain = allow_block_plain = False + + # Flow indicators are forbidden for flow plain scalars. + if flow_indicators: + allow_flow_plain = False + + # Block indicators are forbidden for block plain scalars. + if block_indicators: + allow_block_plain = False + + return ScalarAnalysis(scalar=scalar, + empty=False, multiline=line_breaks, + allow_flow_plain=allow_flow_plain, + allow_block_plain=allow_block_plain, + allow_single_quoted=allow_single_quoted, + allow_double_quoted=allow_double_quoted, + allow_block=allow_block) + + # Writers. + + def flush_stream(self): + if hasattr(self.stream, 'flush'): + self.stream.flush() + + def write_stream_start(self): + # Write BOM if needed. + if self.encoding and self.encoding.startswith('utf-16'): + self.stream.write(u'\uFEFF'.encode(self.encoding)) + + def write_stream_end(self): + self.flush_stream() + + def write_indicator(self, indicator, need_whitespace, + whitespace=False, indention=False): + if self.whitespace or not need_whitespace: + data = indicator + else: + data = u' '+indicator + self.whitespace = whitespace + self.indention = self.indention and indention + self.column += len(data) + self.open_ended = False + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_indent(self): + indent = self.indent or 0 + if not self.indention or self.column > indent \ + or (self.column == indent and not self.whitespace): + self.write_line_break() + if self.column < indent: + self.whitespace = True + data = u' '*(indent-self.column) + self.column = indent + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_line_break(self, data=None): + if data is None: + data = self.best_line_break + self.whitespace = True + self.indention = True + self.line += 1 + self.column = 0 + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_version_directive(self, version_text): + data = u'%%YAML %s' % version_text + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_line_break() + + def write_tag_directive(self, handle_text, prefix_text): + data = u'%%TAG %s %s' % (handle_text, prefix_text) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_line_break() + + # Scalar streams. + + def write_single_quoted(self, text, split=True): + self.write_indicator(u'\'', True) + spaces = False + breaks = False + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if spaces: + if ch is None or ch != u' ': + if start+1 == end and self.column > self.best_width and split \ + and start != 0 and end != len(text): + self.write_indent() + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + elif breaks: + if ch is None or ch not in u'\n\x85\u2028\u2029': + if text[start] == u'\n': + self.write_line_break() + for br in text[start:end]: + if br == u'\n': + self.write_line_break() + else: + self.write_line_break(br) + self.write_indent() + start = end + else: + if ch is None or ch in u' \n\x85\u2028\u2029' or ch == u'\'': + if start < end: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch == u'\'': + data = u'\'\'' + self.column += 2 + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + 1 + if ch is not None: + spaces = (ch == u' ') + breaks = (ch in u'\n\x85\u2028\u2029') + end += 1 + self.write_indicator(u'\'', False) + + ESCAPE_REPLACEMENTS = { + u'\0': u'0', + u'\x07': u'a', + u'\x08': u'b', + u'\x09': u't', + u'\x0A': u'n', + u'\x0B': u'v', + u'\x0C': u'f', + u'\x0D': u'r', + u'\x1B': u'e', + u'\"': u'\"', + u'\\': u'\\', + u'\x85': u'N', + u'\xA0': u'_', + u'\u2028': u'L', + u'\u2029': u'P', + } + + def write_double_quoted(self, text, split=True): + self.write_indicator(u'"', True) + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if ch is None or ch in u'"\\\x85\u2028\u2029\uFEFF' \ + or not (u'\x20' <= ch <= u'\x7E' + or (self.allow_unicode + and (u'\xA0' <= ch <= u'\uD7FF' + or u'\uE000' <= ch <= u'\uFFFD'))): + if start < end: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch is not None: + if ch in self.ESCAPE_REPLACEMENTS: + data = u'\\'+self.ESCAPE_REPLACEMENTS[ch] + elif ch <= u'\xFF': + data = u'\\x%02X' % ord(ch) + elif ch <= u'\uFFFF': + data = u'\\u%04X' % ord(ch) + else: + data = u'\\U%08X' % ord(ch) + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end+1 + if 0 < end < len(text)-1 and (ch == u' ' or start >= end) \ + and self.column+(end-start) > self.best_width and split: + data = text[start:end]+u'\\' + if start < end: + start = end + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_indent() + self.whitespace = False + self.indention = False + if text[start] == u' ': + data = u'\\' + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + end += 1 + self.write_indicator(u'"', False) + + def determine_block_hints(self, text): + hints = u'' + if text: + if text[0] in u' \n\x85\u2028\u2029': + hints += unicode(self.best_indent) + if text[-1] not in u'\n\x85\u2028\u2029': + hints += u'-' + elif len(text) == 1 or text[-2] in u'\n\x85\u2028\u2029': + hints += u'+' + return hints + + def write_folded(self, text): + hints = self.determine_block_hints(text) + self.write_indicator(u'>'+hints, True) + if hints[-1:] == u'+': + self.open_ended = True + self.write_line_break() + leading_space = True + spaces = False + breaks = True + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if breaks: + if ch is None or ch not in u'\n\x85\u2028\u2029': + if not leading_space and ch is not None and ch != u' ' \ + and text[start] == u'\n': + self.write_line_break() + leading_space = (ch == u' ') + for br in text[start:end]: + if br == u'\n': + self.write_line_break() + else: + self.write_line_break(br) + if ch is not None: + self.write_indent() + start = end + elif spaces: + if ch != u' ': + if start+1 == end and self.column > self.best_width: + self.write_indent() + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + else: + if ch is None or ch in u' \n\x85\u2028\u2029': + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + if ch is None: + self.write_line_break() + start = end + if ch is not None: + breaks = (ch in u'\n\x85\u2028\u2029') + spaces = (ch == u' ') + end += 1 + + def write_literal(self, text): + hints = self.determine_block_hints(text) + self.write_indicator(u'|'+hints, True) + if hints[-1:] == u'+': + self.open_ended = True + self.write_line_break() + breaks = True + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if breaks: + if ch is None or ch not in u'\n\x85\u2028\u2029': + for br in text[start:end]: + if br == u'\n': + self.write_line_break() + else: + self.write_line_break(br) + if ch is not None: + self.write_indent() + start = end + else: + if ch is None or ch in u'\n\x85\u2028\u2029': + data = text[start:end] + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + if ch is None: + self.write_line_break() + start = end + if ch is not None: + breaks = (ch in u'\n\x85\u2028\u2029') + end += 1 + + def write_plain(self, text, split=True): + if self.root_context: + self.open_ended = True + if not text: + return + if not self.whitespace: + data = u' ' + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.whitespace = False + self.indention = False + spaces = False + breaks = False + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if spaces: + if ch != u' ': + if start+1 == end and self.column > self.best_width and split: + self.write_indent() + self.whitespace = False + self.indention = False + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + elif breaks: + if ch not in u'\n\x85\u2028\u2029': + if text[start] == u'\n': + self.write_line_break() + for br in text[start:end]: + if br == u'\n': + self.write_line_break() + else: + self.write_line_break(br) + self.write_indent() + self.whitespace = False + self.indention = False + start = end + else: + if ch is None or ch in u' \n\x85\u2028\u2029': + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch is not None: + spaces = (ch == u' ') + breaks = (ch in u'\n\x85\u2028\u2029') + end += 1 diff --git a/third_party/python/PyYAML/lib/yaml/error.py b/third_party/python/PyYAML/lib/yaml/error.py new file mode 100644 index 0000000000..577686db5f --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/error.py @@ -0,0 +1,75 @@ + +__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError'] + +class Mark(object): + + def __init__(self, name, index, line, column, buffer, pointer): + self.name = name + self.index = index + self.line = line + self.column = column + self.buffer = buffer + self.pointer = pointer + + def get_snippet(self, indent=4, max_length=75): + if self.buffer is None: + return None + head = '' + start = self.pointer + while start > 0 and self.buffer[start-1] not in u'\0\r\n\x85\u2028\u2029': + start -= 1 + if self.pointer-start > max_length/2-1: + head = ' ... ' + start += 5 + break + tail = '' + end = self.pointer + while end < len(self.buffer) and self.buffer[end] not in u'\0\r\n\x85\u2028\u2029': + end += 1 + if end-self.pointer > max_length/2-1: + tail = ' ... ' + end -= 5 + break + snippet = self.buffer[start:end].encode('utf-8') + return ' '*indent + head + snippet + tail + '\n' \ + + ' '*(indent+self.pointer-start+len(head)) + '^' + + def __str__(self): + snippet = self.get_snippet() + where = " in \"%s\", line %d, column %d" \ + % (self.name, self.line+1, self.column+1) + if snippet is not None: + where += ":\n"+snippet + return where + +class YAMLError(Exception): + pass + +class MarkedYAMLError(YAMLError): + + def __init__(self, context=None, context_mark=None, + problem=None, problem_mark=None, note=None): + self.context = context + self.context_mark = context_mark + self.problem = problem + self.problem_mark = problem_mark + self.note = note + + def __str__(self): + lines = [] + if self.context is not None: + lines.append(self.context) + if self.context_mark is not None \ + and (self.problem is None or self.problem_mark is None + or self.context_mark.name != self.problem_mark.name + or self.context_mark.line != self.problem_mark.line + or self.context_mark.column != self.problem_mark.column): + lines.append(str(self.context_mark)) + if self.problem is not None: + lines.append(self.problem) + if self.problem_mark is not None: + lines.append(str(self.problem_mark)) + if self.note is not None: + lines.append(self.note) + return '\n'.join(lines) + diff --git a/third_party/python/PyYAML/lib/yaml/events.py b/third_party/python/PyYAML/lib/yaml/events.py new file mode 100644 index 0000000000..f79ad389cb --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/events.py @@ -0,0 +1,86 @@ + +# Abstract classes. + +class Event(object): + def __init__(self, start_mark=None, end_mark=None): + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + attributes = [key for key in ['anchor', 'tag', 'implicit', 'value'] + if hasattr(self, key)] + arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) + for key in attributes]) + return '%s(%s)' % (self.__class__.__name__, arguments) + +class NodeEvent(Event): + def __init__(self, anchor, start_mark=None, end_mark=None): + self.anchor = anchor + self.start_mark = start_mark + self.end_mark = end_mark + +class CollectionStartEvent(NodeEvent): + def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None, + flow_style=None): + self.anchor = anchor + self.tag = tag + self.implicit = implicit + self.start_mark = start_mark + self.end_mark = end_mark + self.flow_style = flow_style + +class CollectionEndEvent(Event): + pass + +# Implementations. + +class StreamStartEvent(Event): + def __init__(self, start_mark=None, end_mark=None, encoding=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.encoding = encoding + +class StreamEndEvent(Event): + pass + +class DocumentStartEvent(Event): + def __init__(self, start_mark=None, end_mark=None, + explicit=None, version=None, tags=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.explicit = explicit + self.version = version + self.tags = tags + +class DocumentEndEvent(Event): + def __init__(self, start_mark=None, end_mark=None, + explicit=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.explicit = explicit + +class AliasEvent(NodeEvent): + pass + +class ScalarEvent(NodeEvent): + def __init__(self, anchor, tag, implicit, value, + start_mark=None, end_mark=None, style=None): + self.anchor = anchor + self.tag = tag + self.implicit = implicit + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + +class SequenceStartEvent(CollectionStartEvent): + pass + +class SequenceEndEvent(CollectionEndEvent): + pass + +class MappingStartEvent(CollectionStartEvent): + pass + +class MappingEndEvent(CollectionEndEvent): + pass + diff --git a/third_party/python/PyYAML/lib/yaml/loader.py b/third_party/python/PyYAML/lib/yaml/loader.py new file mode 100644 index 0000000000..4d773c3cc1 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/loader.py @@ -0,0 +1,63 @@ + +__all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader'] + +from reader import * +from scanner import * +from parser import * +from composer import * +from constructor import * +from resolver import * + +class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + BaseConstructor.__init__(self) + BaseResolver.__init__(self) + +class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + FullConstructor.__init__(self) + Resolver.__init__(self) + +class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + SafeConstructor.__init__(self) + Resolver.__init__(self) + +class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + Constructor.__init__(self) + Resolver.__init__(self) + +# UnsafeLoader is the same as Loader (which is and was always unsafe on +# untrusted input). Use of either Loader or UnsafeLoader should be rare, since +# FullLoad should be able to load almost all YAML safely. Loader is left intact +# to ensure backwards compatibility. +class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + Constructor.__init__(self) + Resolver.__init__(self) diff --git a/third_party/python/PyYAML/lib/yaml/nodes.py b/third_party/python/PyYAML/lib/yaml/nodes.py new file mode 100644 index 0000000000..c4f070c41e --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/nodes.py @@ -0,0 +1,49 @@ + +class Node(object): + def __init__(self, tag, value, start_mark, end_mark): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + value = self.value + #if isinstance(value, list): + # if len(value) == 0: + # value = '<empty>' + # elif len(value) == 1: + # value = '<1 item>' + # else: + # value = '<%d items>' % len(value) + #else: + # if len(value) > 75: + # value = repr(value[:70]+u' ... ') + # else: + # value = repr(value) + value = repr(value) + return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value) + +class ScalarNode(Node): + id = 'scalar' + def __init__(self, tag, value, + start_mark=None, end_mark=None, style=None): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + +class CollectionNode(Node): + def __init__(self, tag, value, + start_mark=None, end_mark=None, flow_style=None): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.flow_style = flow_style + +class SequenceNode(CollectionNode): + id = 'sequence' + +class MappingNode(CollectionNode): + id = 'mapping' + diff --git a/third_party/python/PyYAML/lib/yaml/parser.py b/third_party/python/PyYAML/lib/yaml/parser.py new file mode 100644 index 0000000000..f9e3057f33 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/parser.py @@ -0,0 +1,589 @@ + +# The following YAML grammar is LL(1) and is parsed by a recursive descent +# parser. +# +# stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +# implicit_document ::= block_node DOCUMENT-END* +# explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +# block_node_or_indentless_sequence ::= +# ALIAS +# | properties (block_content | indentless_block_sequence)? +# | block_content +# | indentless_block_sequence +# block_node ::= ALIAS +# | properties block_content? +# | block_content +# flow_node ::= ALIAS +# | properties flow_content? +# | flow_content +# properties ::= TAG ANCHOR? | ANCHOR TAG? +# block_content ::= block_collection | flow_collection | SCALAR +# flow_content ::= flow_collection | SCALAR +# block_collection ::= block_sequence | block_mapping +# flow_collection ::= flow_sequence | flow_mapping +# block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +# indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +# block_mapping ::= BLOCK-MAPPING_START +# ((KEY block_node_or_indentless_sequence?)? +# (VALUE block_node_or_indentless_sequence?)?)* +# BLOCK-END +# flow_sequence ::= FLOW-SEQUENCE-START +# (flow_sequence_entry FLOW-ENTRY)* +# flow_sequence_entry? +# FLOW-SEQUENCE-END +# flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +# flow_mapping ::= FLOW-MAPPING-START +# (flow_mapping_entry FLOW-ENTRY)* +# flow_mapping_entry? +# FLOW-MAPPING-END +# flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +# +# FIRST sets: +# +# stream: { STREAM-START } +# explicit_document: { DIRECTIVE DOCUMENT-START } +# implicit_document: FIRST(block_node) +# block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START } +# flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START } +# block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR } +# flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR } +# block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START } +# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START } +# block_sequence: { BLOCK-SEQUENCE-START } +# block_mapping: { BLOCK-MAPPING-START } +# block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY } +# indentless_sequence: { ENTRY } +# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START } +# flow_sequence: { FLOW-SEQUENCE-START } +# flow_mapping: { FLOW-MAPPING-START } +# flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY } +# flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY } + +__all__ = ['Parser', 'ParserError'] + +from error import MarkedYAMLError +from tokens import * +from events import * +from scanner import * + +class ParserError(MarkedYAMLError): + pass + +class Parser(object): + # Since writing a recursive-descendant parser is a straightforward task, we + # do not give many comments here. + + DEFAULT_TAGS = { + u'!': u'!', + u'!!': u'tag:yaml.org,2002:', + } + + def __init__(self): + self.current_event = None + self.yaml_version = None + self.tag_handles = {} + self.states = [] + self.marks = [] + self.state = self.parse_stream_start + + def dispose(self): + # Reset the state attributes (to clear self-references) + self.states = [] + self.state = None + + def check_event(self, *choices): + # Check the type of the next event. + if self.current_event is None: + if self.state: + self.current_event = self.state() + if self.current_event is not None: + if not choices: + return True + for choice in choices: + if isinstance(self.current_event, choice): + return True + return False + + def peek_event(self): + # Get the next event. + if self.current_event is None: + if self.state: + self.current_event = self.state() + return self.current_event + + def get_event(self): + # Get the next event and proceed further. + if self.current_event is None: + if self.state: + self.current_event = self.state() + value = self.current_event + self.current_event = None + return value + + # stream ::= STREAM-START implicit_document? explicit_document* STREAM-END + # implicit_document ::= block_node DOCUMENT-END* + # explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* + + def parse_stream_start(self): + + # Parse the stream start. + token = self.get_token() + event = StreamStartEvent(token.start_mark, token.end_mark, + encoding=token.encoding) + + # Prepare the next state. + self.state = self.parse_implicit_document_start + + return event + + def parse_implicit_document_start(self): + + # Parse an implicit document. + if not self.check_token(DirectiveToken, DocumentStartToken, + StreamEndToken): + self.tag_handles = self.DEFAULT_TAGS + token = self.peek_token() + start_mark = end_mark = token.start_mark + event = DocumentStartEvent(start_mark, end_mark, + explicit=False) + + # Prepare the next state. + self.states.append(self.parse_document_end) + self.state = self.parse_block_node + + return event + + else: + return self.parse_document_start() + + def parse_document_start(self): + + # Parse any extra document end indicators. + while self.check_token(DocumentEndToken): + self.get_token() + + # Parse an explicit document. + if not self.check_token(StreamEndToken): + token = self.peek_token() + start_mark = token.start_mark + version, tags = self.process_directives() + if not self.check_token(DocumentStartToken): + raise ParserError(None, None, + "expected '<document start>', but found %r" + % self.peek_token().id, + self.peek_token().start_mark) + token = self.get_token() + end_mark = token.end_mark + event = DocumentStartEvent(start_mark, end_mark, + explicit=True, version=version, tags=tags) + self.states.append(self.parse_document_end) + self.state = self.parse_document_content + else: + # Parse the end of the stream. + token = self.get_token() + event = StreamEndEvent(token.start_mark, token.end_mark) + assert not self.states + assert not self.marks + self.state = None + return event + + def parse_document_end(self): + + # Parse the document end. + token = self.peek_token() + start_mark = end_mark = token.start_mark + explicit = False + if self.check_token(DocumentEndToken): + token = self.get_token() + end_mark = token.end_mark + explicit = True + event = DocumentEndEvent(start_mark, end_mark, + explicit=explicit) + + # Prepare the next state. + self.state = self.parse_document_start + + return event + + def parse_document_content(self): + if self.check_token(DirectiveToken, + DocumentStartToken, DocumentEndToken, StreamEndToken): + event = self.process_empty_scalar(self.peek_token().start_mark) + self.state = self.states.pop() + return event + else: + return self.parse_block_node() + + def process_directives(self): + self.yaml_version = None + self.tag_handles = {} + while self.check_token(DirectiveToken): + token = self.get_token() + if token.name == u'YAML': + if self.yaml_version is not None: + raise ParserError(None, None, + "found duplicate YAML directive", token.start_mark) + major, minor = token.value + if major != 1: + raise ParserError(None, None, + "found incompatible YAML document (version 1.* is required)", + token.start_mark) + self.yaml_version = token.value + elif token.name == u'TAG': + handle, prefix = token.value + if handle in self.tag_handles: + raise ParserError(None, None, + "duplicate tag handle %r" % handle.encode('utf-8'), + token.start_mark) + self.tag_handles[handle] = prefix + if self.tag_handles: + value = self.yaml_version, self.tag_handles.copy() + else: + value = self.yaml_version, None + for key in self.DEFAULT_TAGS: + if key not in self.tag_handles: + self.tag_handles[key] = self.DEFAULT_TAGS[key] + return value + + # block_node_or_indentless_sequence ::= ALIAS + # | properties (block_content | indentless_block_sequence)? + # | block_content + # | indentless_block_sequence + # block_node ::= ALIAS + # | properties block_content? + # | block_content + # flow_node ::= ALIAS + # | properties flow_content? + # | flow_content + # properties ::= TAG ANCHOR? | ANCHOR TAG? + # block_content ::= block_collection | flow_collection | SCALAR + # flow_content ::= flow_collection | SCALAR + # block_collection ::= block_sequence | block_mapping + # flow_collection ::= flow_sequence | flow_mapping + + def parse_block_node(self): + return self.parse_node(block=True) + + def parse_flow_node(self): + return self.parse_node() + + def parse_block_node_or_indentless_sequence(self): + return self.parse_node(block=True, indentless_sequence=True) + + def parse_node(self, block=False, indentless_sequence=False): + if self.check_token(AliasToken): + token = self.get_token() + event = AliasEvent(token.value, token.start_mark, token.end_mark) + self.state = self.states.pop() + else: + anchor = None + tag = None + start_mark = end_mark = tag_mark = None + if self.check_token(AnchorToken): + token = self.get_token() + start_mark = token.start_mark + end_mark = token.end_mark + anchor = token.value + if self.check_token(TagToken): + token = self.get_token() + tag_mark = token.start_mark + end_mark = token.end_mark + tag = token.value + elif self.check_token(TagToken): + token = self.get_token() + start_mark = tag_mark = token.start_mark + end_mark = token.end_mark + tag = token.value + if self.check_token(AnchorToken): + token = self.get_token() + end_mark = token.end_mark + anchor = token.value + if tag is not None: + handle, suffix = tag + if handle is not None: + if handle not in self.tag_handles: + raise ParserError("while parsing a node", start_mark, + "found undefined tag handle %r" % handle.encode('utf-8'), + tag_mark) + tag = self.tag_handles[handle]+suffix + else: + tag = suffix + #if tag == u'!': + # raise ParserError("while parsing a node", start_mark, + # "found non-specific tag '!'", tag_mark, + # "Please check 'http://pyyaml.org/wiki/YAMLNonSpecificTag' and share your opinion.") + if start_mark is None: + start_mark = end_mark = self.peek_token().start_mark + event = None + implicit = (tag is None or tag == u'!') + if indentless_sequence and self.check_token(BlockEntryToken): + end_mark = self.peek_token().end_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark) + self.state = self.parse_indentless_sequence_entry + else: + if self.check_token(ScalarToken): + token = self.get_token() + end_mark = token.end_mark + if (token.plain and tag is None) or tag == u'!': + implicit = (True, False) + elif tag is None: + implicit = (False, True) + else: + implicit = (False, False) + event = ScalarEvent(anchor, tag, implicit, token.value, + start_mark, end_mark, style=token.style) + self.state = self.states.pop() + elif self.check_token(FlowSequenceStartToken): + end_mark = self.peek_token().end_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=True) + self.state = self.parse_flow_sequence_first_entry + elif self.check_token(FlowMappingStartToken): + end_mark = self.peek_token().end_mark + event = MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=True) + self.state = self.parse_flow_mapping_first_key + elif block and self.check_token(BlockSequenceStartToken): + end_mark = self.peek_token().start_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=False) + self.state = self.parse_block_sequence_first_entry + elif block and self.check_token(BlockMappingStartToken): + end_mark = self.peek_token().start_mark + event = MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=False) + self.state = self.parse_block_mapping_first_key + elif anchor is not None or tag is not None: + # Empty scalars are allowed even if a tag or an anchor is + # specified. + event = ScalarEvent(anchor, tag, (implicit, False), u'', + start_mark, end_mark) + self.state = self.states.pop() + else: + if block: + node = 'block' + else: + node = 'flow' + token = self.peek_token() + raise ParserError("while parsing a %s node" % node, start_mark, + "expected the node content, but found %r" % token.id, + token.start_mark) + return event + + # block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END + + def parse_block_sequence_first_entry(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_block_sequence_entry() + + def parse_block_sequence_entry(self): + if self.check_token(BlockEntryToken): + token = self.get_token() + if not self.check_token(BlockEntryToken, BlockEndToken): + self.states.append(self.parse_block_sequence_entry) + return self.parse_block_node() + else: + self.state = self.parse_block_sequence_entry + return self.process_empty_scalar(token.end_mark) + if not self.check_token(BlockEndToken): + token = self.peek_token() + raise ParserError("while parsing a block collection", self.marks[-1], + "expected <block end>, but found %r" % token.id, token.start_mark) + token = self.get_token() + event = SequenceEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + # indentless_sequence ::= (BLOCK-ENTRY block_node?)+ + + def parse_indentless_sequence_entry(self): + if self.check_token(BlockEntryToken): + token = self.get_token() + if not self.check_token(BlockEntryToken, + KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_indentless_sequence_entry) + return self.parse_block_node() + else: + self.state = self.parse_indentless_sequence_entry + return self.process_empty_scalar(token.end_mark) + token = self.peek_token() + event = SequenceEndEvent(token.start_mark, token.start_mark) + self.state = self.states.pop() + return event + + # block_mapping ::= BLOCK-MAPPING_START + # ((KEY block_node_or_indentless_sequence?)? + # (VALUE block_node_or_indentless_sequence?)?)* + # BLOCK-END + + def parse_block_mapping_first_key(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_block_mapping_key() + + def parse_block_mapping_key(self): + if self.check_token(KeyToken): + token = self.get_token() + if not self.check_token(KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_block_mapping_value) + return self.parse_block_node_or_indentless_sequence() + else: + self.state = self.parse_block_mapping_value + return self.process_empty_scalar(token.end_mark) + if not self.check_token(BlockEndToken): + token = self.peek_token() + raise ParserError("while parsing a block mapping", self.marks[-1], + "expected <block end>, but found %r" % token.id, token.start_mark) + token = self.get_token() + event = MappingEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_block_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_block_mapping_key) + return self.parse_block_node_or_indentless_sequence() + else: + self.state = self.parse_block_mapping_key + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_block_mapping_key + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + # flow_sequence ::= FLOW-SEQUENCE-START + # (flow_sequence_entry FLOW-ENTRY)* + # flow_sequence_entry? + # FLOW-SEQUENCE-END + # flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + # + # Note that while production rules for both flow_sequence_entry and + # flow_mapping_entry are equal, their interpretations are different. + # For `flow_sequence_entry`, the part `KEY flow_node? (VALUE flow_node?)?` + # generate an inline mapping (set syntax). + + def parse_flow_sequence_first_entry(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_flow_sequence_entry(first=True) + + def parse_flow_sequence_entry(self, first=False): + if not self.check_token(FlowSequenceEndToken): + if not first: + if self.check_token(FlowEntryToken): + self.get_token() + else: + token = self.peek_token() + raise ParserError("while parsing a flow sequence", self.marks[-1], + "expected ',' or ']', but got %r" % token.id, token.start_mark) + + if self.check_token(KeyToken): + token = self.peek_token() + event = MappingStartEvent(None, None, True, + token.start_mark, token.end_mark, + flow_style=True) + self.state = self.parse_flow_sequence_entry_mapping_key + return event + elif not self.check_token(FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry) + return self.parse_flow_node() + token = self.get_token() + event = SequenceEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_flow_sequence_entry_mapping_key(self): + token = self.get_token() + if not self.check_token(ValueToken, + FlowEntryToken, FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry_mapping_value) + return self.parse_flow_node() + else: + self.state = self.parse_flow_sequence_entry_mapping_value + return self.process_empty_scalar(token.end_mark) + + def parse_flow_sequence_entry_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(FlowEntryToken, FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry_mapping_end) + return self.parse_flow_node() + else: + self.state = self.parse_flow_sequence_entry_mapping_end + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_flow_sequence_entry_mapping_end + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + def parse_flow_sequence_entry_mapping_end(self): + self.state = self.parse_flow_sequence_entry + token = self.peek_token() + return MappingEndEvent(token.start_mark, token.start_mark) + + # flow_mapping ::= FLOW-MAPPING-START + # (flow_mapping_entry FLOW-ENTRY)* + # flow_mapping_entry? + # FLOW-MAPPING-END + # flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + + def parse_flow_mapping_first_key(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_flow_mapping_key(first=True) + + def parse_flow_mapping_key(self, first=False): + if not self.check_token(FlowMappingEndToken): + if not first: + if self.check_token(FlowEntryToken): + self.get_token() + else: + token = self.peek_token() + raise ParserError("while parsing a flow mapping", self.marks[-1], + "expected ',' or '}', but got %r" % token.id, token.start_mark) + if self.check_token(KeyToken): + token = self.get_token() + if not self.check_token(ValueToken, + FlowEntryToken, FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_value) + return self.parse_flow_node() + else: + self.state = self.parse_flow_mapping_value + return self.process_empty_scalar(token.end_mark) + elif not self.check_token(FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_empty_value) + return self.parse_flow_node() + token = self.get_token() + event = MappingEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_flow_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(FlowEntryToken, FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_key) + return self.parse_flow_node() + else: + self.state = self.parse_flow_mapping_key + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_flow_mapping_key + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + def parse_flow_mapping_empty_value(self): + self.state = self.parse_flow_mapping_key + return self.process_empty_scalar(self.peek_token().start_mark) + + def process_empty_scalar(self, mark): + return ScalarEvent(None, None, (True, False), u'', mark, mark) + diff --git a/third_party/python/PyYAML/lib/yaml/reader.py b/third_party/python/PyYAML/lib/yaml/reader.py new file mode 100644 index 0000000000..4b377d61e2 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/reader.py @@ -0,0 +1,188 @@ +# This module contains abstractions for the input stream. You don't have to +# looks further, there are no pretty code. +# +# We define two classes here. +# +# Mark(source, line, column) +# It's just a record and its only use is producing nice error messages. +# Parser does not use it for any other purposes. +# +# Reader(source, data) +# Reader determines the encoding of `data` and converts it to unicode. +# Reader provides the following methods and attributes: +# reader.peek(length=1) - return the next `length` characters +# reader.forward(length=1) - move the current position to `length` characters. +# reader.index - the number of the current character. +# reader.line, stream.column - the line and the column of the current character. + +__all__ = ['Reader', 'ReaderError'] + +from error import YAMLError, Mark + +import codecs, re, sys + +has_ucs4 = sys.maxunicode > 0xffff + +class ReaderError(YAMLError): + + def __init__(self, name, position, character, encoding, reason): + self.name = name + self.character = character + self.position = position + self.encoding = encoding + self.reason = reason + + def __str__(self): + if isinstance(self.character, str): + return "'%s' codec can't decode byte #x%02x: %s\n" \ + " in \"%s\", position %d" \ + % (self.encoding, ord(self.character), self.reason, + self.name, self.position) + else: + return "unacceptable character #x%04x: %s\n" \ + " in \"%s\", position %d" \ + % (self.character, self.reason, + self.name, self.position) + +class Reader(object): + # Reader: + # - determines the data encoding and converts it to unicode, + # - checks if characters are in allowed range, + # - adds '\0' to the end. + + # Reader accepts + # - a `str` object, + # - a `unicode` object, + # - a file-like object with its `read` method returning `str`, + # - a file-like object with its `read` method returning `unicode`. + + # Yeah, it's ugly and slow. + + def __init__(self, stream): + self.name = None + self.stream = None + self.stream_pointer = 0 + self.eof = True + self.buffer = u'' + self.pointer = 0 + self.raw_buffer = None + self.raw_decode = None + self.encoding = None + self.index = 0 + self.line = 0 + self.column = 0 + if isinstance(stream, unicode): + self.name = "<unicode string>" + self.check_printable(stream) + self.buffer = stream+u'\0' + elif isinstance(stream, str): + self.name = "<string>" + self.raw_buffer = stream + self.determine_encoding() + else: + self.stream = stream + self.name = getattr(stream, 'name', "<file>") + self.eof = False + self.raw_buffer = '' + self.determine_encoding() + + def peek(self, index=0): + try: + return self.buffer[self.pointer+index] + except IndexError: + self.update(index+1) + return self.buffer[self.pointer+index] + + def prefix(self, length=1): + if self.pointer+length >= len(self.buffer): + self.update(length) + return self.buffer[self.pointer:self.pointer+length] + + def forward(self, length=1): + if self.pointer+length+1 >= len(self.buffer): + self.update(length+1) + while length: + ch = self.buffer[self.pointer] + self.pointer += 1 + self.index += 1 + if ch in u'\n\x85\u2028\u2029' \ + or (ch == u'\r' and self.buffer[self.pointer] != u'\n'): + self.line += 1 + self.column = 0 + elif ch != u'\uFEFF': + self.column += 1 + length -= 1 + + def get_mark(self): + if self.stream is None: + return Mark(self.name, self.index, self.line, self.column, + self.buffer, self.pointer) + else: + return Mark(self.name, self.index, self.line, self.column, + None, None) + + def determine_encoding(self): + while not self.eof and len(self.raw_buffer) < 2: + self.update_raw() + if not isinstance(self.raw_buffer, unicode): + if self.raw_buffer.startswith(codecs.BOM_UTF16_LE): + self.raw_decode = codecs.utf_16_le_decode + self.encoding = 'utf-16-le' + elif self.raw_buffer.startswith(codecs.BOM_UTF16_BE): + self.raw_decode = codecs.utf_16_be_decode + self.encoding = 'utf-16-be' + else: + self.raw_decode = codecs.utf_8_decode + self.encoding = 'utf-8' + self.update(1) + + if has_ucs4: + NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]') + else: + NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uFFFD]|(?:^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)') + def check_printable(self, data): + match = self.NON_PRINTABLE.search(data) + if match: + character = match.group() + position = self.index+(len(self.buffer)-self.pointer)+match.start() + raise ReaderError(self.name, position, ord(character), + 'unicode', "special characters are not allowed") + + def update(self, length): + if self.raw_buffer is None: + return + self.buffer = self.buffer[self.pointer:] + self.pointer = 0 + while len(self.buffer) < length: + if not self.eof: + self.update_raw() + if self.raw_decode is not None: + try: + data, converted = self.raw_decode(self.raw_buffer, + 'strict', self.eof) + except UnicodeDecodeError, exc: + character = exc.object[exc.start] + if self.stream is not None: + position = self.stream_pointer-len(self.raw_buffer)+exc.start + else: + position = exc.start + raise ReaderError(self.name, position, character, + exc.encoding, exc.reason) + else: + data = self.raw_buffer + converted = len(data) + self.check_printable(data) + self.buffer += data + self.raw_buffer = self.raw_buffer[converted:] + if self.eof: + self.buffer += u'\0' + self.raw_buffer = None + break + + def update_raw(self, size=1024): + data = self.stream.read(size) + if data: + self.raw_buffer += data + self.stream_pointer += len(data) + else: + self.eof = True diff --git a/third_party/python/PyYAML/lib/yaml/representer.py b/third_party/python/PyYAML/lib/yaml/representer.py new file mode 100644 index 0000000000..93e09b67b3 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/representer.py @@ -0,0 +1,489 @@ + +__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer', + 'RepresenterError'] + +from error import * + +from nodes import * + +import datetime + +import copy_reg, types + +class RepresenterError(YAMLError): + pass + +class BaseRepresenter(object): + + yaml_representers = {} + yaml_multi_representers = {} + + def __init__(self, default_style=None, default_flow_style=False, sort_keys=True): + self.default_style = default_style + self.default_flow_style = default_flow_style + self.sort_keys = sort_keys + self.represented_objects = {} + self.object_keeper = [] + self.alias_key = None + + def represent(self, data): + node = self.represent_data(data) + self.serialize(node) + self.represented_objects = {} + self.object_keeper = [] + self.alias_key = None + + def get_classobj_bases(self, cls): + bases = [cls] + for base in cls.__bases__: + bases.extend(self.get_classobj_bases(base)) + return bases + + def represent_data(self, data): + if self.ignore_aliases(data): + self.alias_key = None + else: + self.alias_key = id(data) + if self.alias_key is not None: + if self.alias_key in self.represented_objects: + node = self.represented_objects[self.alias_key] + #if node is None: + # raise RepresenterError("recursive objects are not allowed: %r" % data) + return node + #self.represented_objects[alias_key] = None + self.object_keeper.append(data) + data_types = type(data).__mro__ + if type(data) is types.InstanceType: + data_types = self.get_classobj_bases(data.__class__)+list(data_types) + if data_types[0] in self.yaml_representers: + node = self.yaml_representers[data_types[0]](self, data) + else: + for data_type in data_types: + if data_type in self.yaml_multi_representers: + node = self.yaml_multi_representers[data_type](self, data) + break + else: + if None in self.yaml_multi_representers: + node = self.yaml_multi_representers[None](self, data) + elif None in self.yaml_representers: + node = self.yaml_representers[None](self, data) + else: + node = ScalarNode(None, unicode(data)) + #if alias_key is not None: + # self.represented_objects[alias_key] = node + return node + + def add_representer(cls, data_type, representer): + if not 'yaml_representers' in cls.__dict__: + cls.yaml_representers = cls.yaml_representers.copy() + cls.yaml_representers[data_type] = representer + add_representer = classmethod(add_representer) + + def add_multi_representer(cls, data_type, representer): + if not 'yaml_multi_representers' in cls.__dict__: + cls.yaml_multi_representers = cls.yaml_multi_representers.copy() + cls.yaml_multi_representers[data_type] = representer + add_multi_representer = classmethod(add_multi_representer) + + def represent_scalar(self, tag, value, style=None): + if style is None: + style = self.default_style + node = ScalarNode(tag, value, style=style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + return node + + def represent_sequence(self, tag, sequence, flow_style=None): + value = [] + node = SequenceNode(tag, value, flow_style=flow_style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + best_style = True + for item in sequence: + node_item = self.represent_data(item) + if not (isinstance(node_item, ScalarNode) and not node_item.style): + best_style = False + value.append(node_item) + if flow_style is None: + if self.default_flow_style is not None: + node.flow_style = self.default_flow_style + else: + node.flow_style = best_style + return node + + def represent_mapping(self, tag, mapping, flow_style=None): + value = [] + node = MappingNode(tag, value, flow_style=flow_style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + best_style = True + if hasattr(mapping, 'items'): + mapping = mapping.items() + if self.sort_keys: + mapping.sort() + for item_key, item_value in mapping: + node_key = self.represent_data(item_key) + node_value = self.represent_data(item_value) + if not (isinstance(node_key, ScalarNode) and not node_key.style): + best_style = False + if not (isinstance(node_value, ScalarNode) and not node_value.style): + best_style = False + value.append((node_key, node_value)) + if flow_style is None: + if self.default_flow_style is not None: + node.flow_style = self.default_flow_style + else: + node.flow_style = best_style + return node + + def ignore_aliases(self, data): + return False + +class SafeRepresenter(BaseRepresenter): + + def ignore_aliases(self, data): + if data is None: + return True + if isinstance(data, tuple) and data == (): + return True + if isinstance(data, (str, unicode, bool, int, float)): + return True + + def represent_none(self, data): + return self.represent_scalar(u'tag:yaml.org,2002:null', + u'null') + + def represent_str(self, data): + tag = None + style = None + try: + data = unicode(data, 'ascii') + tag = u'tag:yaml.org,2002:str' + except UnicodeDecodeError: + try: + data = unicode(data, 'utf-8') + tag = u'tag:yaml.org,2002:str' + except UnicodeDecodeError: + data = data.encode('base64') + tag = u'tag:yaml.org,2002:binary' + style = '|' + return self.represent_scalar(tag, data, style=style) + + def represent_unicode(self, data): + return self.represent_scalar(u'tag:yaml.org,2002:str', data) + + def represent_bool(self, data): + if data: + value = u'true' + else: + value = u'false' + return self.represent_scalar(u'tag:yaml.org,2002:bool', value) + + def represent_int(self, data): + return self.represent_scalar(u'tag:yaml.org,2002:int', unicode(data)) + + def represent_long(self, data): + return self.represent_scalar(u'tag:yaml.org,2002:int', unicode(data)) + + inf_value = 1e300 + while repr(inf_value) != repr(inf_value*inf_value): + inf_value *= inf_value + + def represent_float(self, data): + if data != data or (data == 0.0 and data == 1.0): + value = u'.nan' + elif data == self.inf_value: + value = u'.inf' + elif data == -self.inf_value: + value = u'-.inf' + else: + value = unicode(repr(data)).lower() + # Note that in some cases `repr(data)` represents a float number + # without the decimal parts. For instance: + # >>> repr(1e17) + # '1e17' + # Unfortunately, this is not a valid float representation according + # to the definition of the `!!float` tag. We fix this by adding + # '.0' before the 'e' symbol. + if u'.' not in value and u'e' in value: + value = value.replace(u'e', u'.0e', 1) + return self.represent_scalar(u'tag:yaml.org,2002:float', value) + + def represent_list(self, data): + #pairs = (len(data) > 0 and isinstance(data, list)) + #if pairs: + # for item in data: + # if not isinstance(item, tuple) or len(item) != 2: + # pairs = False + # break + #if not pairs: + return self.represent_sequence(u'tag:yaml.org,2002:seq', data) + #value = [] + #for item_key, item_value in data: + # value.append(self.represent_mapping(u'tag:yaml.org,2002:map', + # [(item_key, item_value)])) + #return SequenceNode(u'tag:yaml.org,2002:pairs', value) + + def represent_dict(self, data): + return self.represent_mapping(u'tag:yaml.org,2002:map', data) + + def represent_set(self, data): + value = {} + for key in data: + value[key] = None + return self.represent_mapping(u'tag:yaml.org,2002:set', value) + + def represent_date(self, data): + value = unicode(data.isoformat()) + return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value) + + def represent_datetime(self, data): + value = unicode(data.isoformat(' ')) + return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value) + + def represent_yaml_object(self, tag, data, cls, flow_style=None): + if hasattr(data, '__getstate__'): + state = data.__getstate__() + else: + state = data.__dict__.copy() + return self.represent_mapping(tag, state, flow_style=flow_style) + + def represent_undefined(self, data): + raise RepresenterError("cannot represent an object", data) + +SafeRepresenter.add_representer(type(None), + SafeRepresenter.represent_none) + +SafeRepresenter.add_representer(str, + SafeRepresenter.represent_str) + +SafeRepresenter.add_representer(unicode, + SafeRepresenter.represent_unicode) + +SafeRepresenter.add_representer(bool, + SafeRepresenter.represent_bool) + +SafeRepresenter.add_representer(int, + SafeRepresenter.represent_int) + +SafeRepresenter.add_representer(long, + SafeRepresenter.represent_long) + +SafeRepresenter.add_representer(float, + SafeRepresenter.represent_float) + +SafeRepresenter.add_representer(list, + SafeRepresenter.represent_list) + +SafeRepresenter.add_representer(tuple, + SafeRepresenter.represent_list) + +SafeRepresenter.add_representer(dict, + SafeRepresenter.represent_dict) + +SafeRepresenter.add_representer(set, + SafeRepresenter.represent_set) + +SafeRepresenter.add_representer(datetime.date, + SafeRepresenter.represent_date) + +SafeRepresenter.add_representer(datetime.datetime, + SafeRepresenter.represent_datetime) + +SafeRepresenter.add_representer(None, + SafeRepresenter.represent_undefined) + +class Representer(SafeRepresenter): + + def represent_str(self, data): + tag = None + style = None + try: + data = unicode(data, 'ascii') + tag = u'tag:yaml.org,2002:str' + except UnicodeDecodeError: + try: + data = unicode(data, 'utf-8') + tag = u'tag:yaml.org,2002:python/str' + except UnicodeDecodeError: + data = data.encode('base64') + tag = u'tag:yaml.org,2002:binary' + style = '|' + return self.represent_scalar(tag, data, style=style) + + def represent_unicode(self, data): + tag = None + try: + data.encode('ascii') + tag = u'tag:yaml.org,2002:python/unicode' + except UnicodeEncodeError: + tag = u'tag:yaml.org,2002:str' + return self.represent_scalar(tag, data) + + def represent_long(self, data): + tag = u'tag:yaml.org,2002:int' + if int(data) is not data: + tag = u'tag:yaml.org,2002:python/long' + return self.represent_scalar(tag, unicode(data)) + + def represent_complex(self, data): + if data.imag == 0.0: + data = u'%r' % data.real + elif data.real == 0.0: + data = u'%rj' % data.imag + elif data.imag > 0: + data = u'%r+%rj' % (data.real, data.imag) + else: + data = u'%r%rj' % (data.real, data.imag) + return self.represent_scalar(u'tag:yaml.org,2002:python/complex', data) + + def represent_tuple(self, data): + return self.represent_sequence(u'tag:yaml.org,2002:python/tuple', data) + + def represent_name(self, data): + name = u'%s.%s' % (data.__module__, data.__name__) + return self.represent_scalar(u'tag:yaml.org,2002:python/name:'+name, u'') + + def represent_module(self, data): + return self.represent_scalar( + u'tag:yaml.org,2002:python/module:'+data.__name__, u'') + + def represent_instance(self, data): + # For instances of classic classes, we use __getinitargs__ and + # __getstate__ to serialize the data. + + # If data.__getinitargs__ exists, the object must be reconstructed by + # calling cls(**args), where args is a tuple returned by + # __getinitargs__. Otherwise, the cls.__init__ method should never be + # called and the class instance is created by instantiating a trivial + # class and assigning to the instance's __class__ variable. + + # If data.__getstate__ exists, it returns the state of the object. + # Otherwise, the state of the object is data.__dict__. + + # We produce either a !!python/object or !!python/object/new node. + # If data.__getinitargs__ does not exist and state is a dictionary, we + # produce a !!python/object node . Otherwise we produce a + # !!python/object/new node. + + cls = data.__class__ + class_name = u'%s.%s' % (cls.__module__, cls.__name__) + args = None + state = None + if hasattr(data, '__getinitargs__'): + args = list(data.__getinitargs__()) + if hasattr(data, '__getstate__'): + state = data.__getstate__() + else: + state = data.__dict__ + if args is None and isinstance(state, dict): + return self.represent_mapping( + u'tag:yaml.org,2002:python/object:'+class_name, state) + if isinstance(state, dict) and not state: + return self.represent_sequence( + u'tag:yaml.org,2002:python/object/new:'+class_name, args) + value = {} + if args: + value['args'] = args + value['state'] = state + return self.represent_mapping( + u'tag:yaml.org,2002:python/object/new:'+class_name, value) + + def represent_object(self, data): + # We use __reduce__ API to save the data. data.__reduce__ returns + # a tuple of length 2-5: + # (function, args, state, listitems, dictitems) + + # For reconstructing, we calls function(*args), then set its state, + # listitems, and dictitems if they are not None. + + # A special case is when function.__name__ == '__newobj__'. In this + # case we create the object with args[0].__new__(*args). + + # Another special case is when __reduce__ returns a string - we don't + # support it. + + # We produce a !!python/object, !!python/object/new or + # !!python/object/apply node. + + cls = type(data) + if cls in copy_reg.dispatch_table: + reduce = copy_reg.dispatch_table[cls](data) + elif hasattr(data, '__reduce_ex__'): + reduce = data.__reduce_ex__(2) + elif hasattr(data, '__reduce__'): + reduce = data.__reduce__() + else: + raise RepresenterError("cannot represent an object", data) + reduce = (list(reduce)+[None]*5)[:5] + function, args, state, listitems, dictitems = reduce + args = list(args) + if state is None: + state = {} + if listitems is not None: + listitems = list(listitems) + if dictitems is not None: + dictitems = dict(dictitems) + if function.__name__ == '__newobj__': + function = args[0] + args = args[1:] + tag = u'tag:yaml.org,2002:python/object/new:' + newobj = True + else: + tag = u'tag:yaml.org,2002:python/object/apply:' + newobj = False + function_name = u'%s.%s' % (function.__module__, function.__name__) + if not args and not listitems and not dictitems \ + and isinstance(state, dict) and newobj: + return self.represent_mapping( + u'tag:yaml.org,2002:python/object:'+function_name, state) + if not listitems and not dictitems \ + and isinstance(state, dict) and not state: + return self.represent_sequence(tag+function_name, args) + value = {} + if args: + value['args'] = args + if state or not isinstance(state, dict): + value['state'] = state + if listitems: + value['listitems'] = listitems + if dictitems: + value['dictitems'] = dictitems + return self.represent_mapping(tag+function_name, value) + +Representer.add_representer(str, + Representer.represent_str) + +Representer.add_representer(unicode, + Representer.represent_unicode) + +Representer.add_representer(long, + Representer.represent_long) + +Representer.add_representer(complex, + Representer.represent_complex) + +Representer.add_representer(tuple, + Representer.represent_tuple) + +Representer.add_representer(type, + Representer.represent_name) + +Representer.add_representer(types.ClassType, + Representer.represent_name) + +Representer.add_representer(types.FunctionType, + Representer.represent_name) + +Representer.add_representer(types.BuiltinFunctionType, + Representer.represent_name) + +Representer.add_representer(types.ModuleType, + Representer.represent_module) + +Representer.add_multi_representer(types.InstanceType, + Representer.represent_instance) + +Representer.add_multi_representer(object, + Representer.represent_object) + diff --git a/third_party/python/PyYAML/lib/yaml/resolver.py b/third_party/python/PyYAML/lib/yaml/resolver.py new file mode 100644 index 0000000000..528fbc0ead --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/resolver.py @@ -0,0 +1,227 @@ + +__all__ = ['BaseResolver', 'Resolver'] + +from error import * +from nodes import * + +import re + +class ResolverError(YAMLError): + pass + +class BaseResolver(object): + + DEFAULT_SCALAR_TAG = u'tag:yaml.org,2002:str' + DEFAULT_SEQUENCE_TAG = u'tag:yaml.org,2002:seq' + DEFAULT_MAPPING_TAG = u'tag:yaml.org,2002:map' + + yaml_implicit_resolvers = {} + yaml_path_resolvers = {} + + def __init__(self): + self.resolver_exact_paths = [] + self.resolver_prefix_paths = [] + + def add_implicit_resolver(cls, tag, regexp, first): + if not 'yaml_implicit_resolvers' in cls.__dict__: + implicit_resolvers = {} + for key in cls.yaml_implicit_resolvers: + implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:] + cls.yaml_implicit_resolvers = implicit_resolvers + if first is None: + first = [None] + for ch in first: + cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp)) + add_implicit_resolver = classmethod(add_implicit_resolver) + + def add_path_resolver(cls, tag, path, kind=None): + # Note: `add_path_resolver` is experimental. The API could be changed. + # `new_path` is a pattern that is matched against the path from the + # root to the node that is being considered. `node_path` elements are + # tuples `(node_check, index_check)`. `node_check` is a node class: + # `ScalarNode`, `SequenceNode`, `MappingNode` or `None`. `None` + # matches any kind of a node. `index_check` could be `None`, a boolean + # value, a string value, or a number. `None` and `False` match against + # any _value_ of sequence and mapping nodes. `True` matches against + # any _key_ of a mapping node. A string `index_check` matches against + # a mapping value that corresponds to a scalar key which content is + # equal to the `index_check` value. An integer `index_check` matches + # against a sequence value with the index equal to `index_check`. + if not 'yaml_path_resolvers' in cls.__dict__: + cls.yaml_path_resolvers = cls.yaml_path_resolvers.copy() + new_path = [] + for element in path: + if isinstance(element, (list, tuple)): + if len(element) == 2: + node_check, index_check = element + elif len(element) == 1: + node_check = element[0] + index_check = True + else: + raise ResolverError("Invalid path element: %s" % element) + else: + node_check = None + index_check = element + if node_check is str: + node_check = ScalarNode + elif node_check is list: + node_check = SequenceNode + elif node_check is dict: + node_check = MappingNode + elif node_check not in [ScalarNode, SequenceNode, MappingNode] \ + and not isinstance(node_check, basestring) \ + and node_check is not None: + raise ResolverError("Invalid node checker: %s" % node_check) + if not isinstance(index_check, (basestring, int)) \ + and index_check is not None: + raise ResolverError("Invalid index checker: %s" % index_check) + new_path.append((node_check, index_check)) + if kind is str: + kind = ScalarNode + elif kind is list: + kind = SequenceNode + elif kind is dict: + kind = MappingNode + elif kind not in [ScalarNode, SequenceNode, MappingNode] \ + and kind is not None: + raise ResolverError("Invalid node kind: %s" % kind) + cls.yaml_path_resolvers[tuple(new_path), kind] = tag + add_path_resolver = classmethod(add_path_resolver) + + def descend_resolver(self, current_node, current_index): + if not self.yaml_path_resolvers: + return + exact_paths = {} + prefix_paths = [] + if current_node: + depth = len(self.resolver_prefix_paths) + for path, kind in self.resolver_prefix_paths[-1]: + if self.check_resolver_prefix(depth, path, kind, + current_node, current_index): + if len(path) > depth: + prefix_paths.append((path, kind)) + else: + exact_paths[kind] = self.yaml_path_resolvers[path, kind] + else: + for path, kind in self.yaml_path_resolvers: + if not path: + exact_paths[kind] = self.yaml_path_resolvers[path, kind] + else: + prefix_paths.append((path, kind)) + self.resolver_exact_paths.append(exact_paths) + self.resolver_prefix_paths.append(prefix_paths) + + def ascend_resolver(self): + if not self.yaml_path_resolvers: + return + self.resolver_exact_paths.pop() + self.resolver_prefix_paths.pop() + + def check_resolver_prefix(self, depth, path, kind, + current_node, current_index): + node_check, index_check = path[depth-1] + if isinstance(node_check, basestring): + if current_node.tag != node_check: + return + elif node_check is not None: + if not isinstance(current_node, node_check): + return + if index_check is True and current_index is not None: + return + if (index_check is False or index_check is None) \ + and current_index is None: + return + if isinstance(index_check, basestring): + if not (isinstance(current_index, ScalarNode) + and index_check == current_index.value): + return + elif isinstance(index_check, int) and not isinstance(index_check, bool): + if index_check != current_index: + return + return True + + def resolve(self, kind, value, implicit): + if kind is ScalarNode and implicit[0]: + if value == u'': + resolvers = self.yaml_implicit_resolvers.get(u'', []) + else: + resolvers = self.yaml_implicit_resolvers.get(value[0], []) + resolvers += self.yaml_implicit_resolvers.get(None, []) + for tag, regexp in resolvers: + if regexp.match(value): + return tag + implicit = implicit[1] + if self.yaml_path_resolvers: + exact_paths = self.resolver_exact_paths[-1] + if kind in exact_paths: + return exact_paths[kind] + if None in exact_paths: + return exact_paths[None] + if kind is ScalarNode: + return self.DEFAULT_SCALAR_TAG + elif kind is SequenceNode: + return self.DEFAULT_SEQUENCE_TAG + elif kind is MappingNode: + return self.DEFAULT_MAPPING_TAG + +class Resolver(BaseResolver): + pass + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:bool', + re.compile(ur'''^(?:yes|Yes|YES|no|No|NO + |true|True|TRUE|false|False|FALSE + |on|On|ON|off|Off|OFF)$''', re.X), + list(u'yYnNtTfFoO')) + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:float', + re.compile(ur'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)? + |\.[0-9_]+(?:[eE][-+][0-9]+)? + |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]* + |[-+]?\.(?:inf|Inf|INF) + |\.(?:nan|NaN|NAN))$''', re.X), + list(u'-+0123456789.')) + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:int', + re.compile(ur'''^(?:[-+]?0b[0-1_]+ + |[-+]?0[0-7_]+ + |[-+]?(?:0|[1-9][0-9_]*) + |[-+]?0x[0-9a-fA-F_]+ + |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X), + list(u'-+0123456789')) + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:merge', + re.compile(ur'^(?:<<)$'), + [u'<']) + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:null', + re.compile(ur'''^(?: ~ + |null|Null|NULL + | )$''', re.X), + [u'~', u'n', u'N', u'']) + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:timestamp', + re.compile(ur'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] + |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]? + (?:[Tt]|[ \t]+)[0-9][0-9]? + :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)? + (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X), + list(u'0123456789')) + +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:value', + re.compile(ur'^(?:=)$'), + [u'=']) + +# The following resolver is only for documentation purposes. It cannot work +# because plain scalars cannot start with '!', '&', or '*'. +Resolver.add_implicit_resolver( + u'tag:yaml.org,2002:yaml', + re.compile(ur'^(?:!|&|\*)$'), + list(u'!&*')) + diff --git a/third_party/python/PyYAML/lib/yaml/scanner.py b/third_party/python/PyYAML/lib/yaml/scanner.py new file mode 100644 index 0000000000..098ea7be82 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/scanner.py @@ -0,0 +1,1444 @@ + +# Scanner produces tokens of the following types: +# STREAM-START +# STREAM-END +# DIRECTIVE(name, value) +# DOCUMENT-START +# DOCUMENT-END +# BLOCK-SEQUENCE-START +# BLOCK-MAPPING-START +# BLOCK-END +# FLOW-SEQUENCE-START +# FLOW-MAPPING-START +# FLOW-SEQUENCE-END +# FLOW-MAPPING-END +# BLOCK-ENTRY +# FLOW-ENTRY +# KEY +# VALUE +# ALIAS(value) +# ANCHOR(value) +# TAG(value) +# SCALAR(value, plain, style) +# +# Read comments in the Scanner code for more details. +# + +__all__ = ['Scanner', 'ScannerError'] + +from error import MarkedYAMLError +from tokens import * + +class ScannerError(MarkedYAMLError): + pass + +class SimpleKey(object): + # See below simple keys treatment. + + def __init__(self, token_number, required, index, line, column, mark): + self.token_number = token_number + self.required = required + self.index = index + self.line = line + self.column = column + self.mark = mark + +class Scanner(object): + + def __init__(self): + """Initialize the scanner.""" + # It is assumed that Scanner and Reader will have a common descendant. + # Reader do the dirty work of checking for BOM and converting the + # input data to Unicode. It also adds NUL to the end. + # + # Reader supports the following methods + # self.peek(i=0) # peek the next i-th character + # self.prefix(l=1) # peek the next l characters + # self.forward(l=1) # read the next l characters and move the pointer. + + # Had we reached the end of the stream? + self.done = False + + # The number of unclosed '{' and '['. `flow_level == 0` means block + # context. + self.flow_level = 0 + + # List of processed tokens that are not yet emitted. + self.tokens = [] + + # Add the STREAM-START token. + self.fetch_stream_start() + + # Number of tokens that were emitted through the `get_token` method. + self.tokens_taken = 0 + + # The current indentation level. + self.indent = -1 + + # Past indentation levels. + self.indents = [] + + # Variables related to simple keys treatment. + + # A simple key is a key that is not denoted by the '?' indicator. + # Example of simple keys: + # --- + # block simple key: value + # ? not a simple key: + # : { flow simple key: value } + # We emit the KEY token before all keys, so when we find a potential + # simple key, we try to locate the corresponding ':' indicator. + # Simple keys should be limited to a single line and 1024 characters. + + # Can a simple key start at the current position? A simple key may + # start: + # - at the beginning of the line, not counting indentation spaces + # (in block context), + # - after '{', '[', ',' (in the flow context), + # - after '?', ':', '-' (in the block context). + # In the block context, this flag also signifies if a block collection + # may start at the current position. + self.allow_simple_key = True + + # Keep track of possible simple keys. This is a dictionary. The key + # is `flow_level`; there can be no more that one possible simple key + # for each level. The value is a SimpleKey record: + # (token_number, required, index, line, column, mark) + # A simple key may start with ALIAS, ANCHOR, TAG, SCALAR(flow), + # '[', or '{' tokens. + self.possible_simple_keys = {} + + # Public methods. + + def check_token(self, *choices): + # Check if the next token is one of the given types. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + if not choices: + return True + for choice in choices: + if isinstance(self.tokens[0], choice): + return True + return False + + def peek_token(self): + # Return the next token, but do not delete if from the queue. + # Return None if no more tokens. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + return self.tokens[0] + else: + return None + + def get_token(self): + # Return the next token. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + self.tokens_taken += 1 + return self.tokens.pop(0) + + # Private methods. + + def need_more_tokens(self): + if self.done: + return False + if not self.tokens: + return True + # The current token may be a potential simple key, so we + # need to look further. + self.stale_possible_simple_keys() + if self.next_possible_simple_key() == self.tokens_taken: + return True + + def fetch_more_tokens(self): + + # Eat whitespaces and comments until we reach the next token. + self.scan_to_next_token() + + # Remove obsolete possible simple keys. + self.stale_possible_simple_keys() + + # Compare the current indentation and column. It may add some tokens + # and decrease the current indentation level. + self.unwind_indent(self.column) + + # Peek the next character. + ch = self.peek() + + # Is it the end of stream? + if ch == u'\0': + return self.fetch_stream_end() + + # Is it a directive? + if ch == u'%' and self.check_directive(): + return self.fetch_directive() + + # Is it the document start? + if ch == u'-' and self.check_document_start(): + return self.fetch_document_start() + + # Is it the document end? + if ch == u'.' and self.check_document_end(): + return self.fetch_document_end() + + # TODO: support for BOM within a stream. + #if ch == u'\uFEFF': + # return self.fetch_bom() <-- issue BOMToken + + # Note: the order of the following checks is NOT significant. + + # Is it the flow sequence start indicator? + if ch == u'[': + return self.fetch_flow_sequence_start() + + # Is it the flow mapping start indicator? + if ch == u'{': + return self.fetch_flow_mapping_start() + + # Is it the flow sequence end indicator? + if ch == u']': + return self.fetch_flow_sequence_end() + + # Is it the flow mapping end indicator? + if ch == u'}': + return self.fetch_flow_mapping_end() + + # Is it the flow entry indicator? + if ch == u',': + return self.fetch_flow_entry() + + # Is it the block entry indicator? + if ch == u'-' and self.check_block_entry(): + return self.fetch_block_entry() + + # Is it the key indicator? + if ch == u'?' and self.check_key(): + return self.fetch_key() + + # Is it the value indicator? + if ch == u':' and self.check_value(): + return self.fetch_value() + + # Is it an alias? + if ch == u'*': + return self.fetch_alias() + + # Is it an anchor? + if ch == u'&': + return self.fetch_anchor() + + # Is it a tag? + if ch == u'!': + return self.fetch_tag() + + # Is it a literal scalar? + if ch == u'|' and not self.flow_level: + return self.fetch_literal() + + # Is it a folded scalar? + if ch == u'>' and not self.flow_level: + return self.fetch_folded() + + # Is it a single quoted scalar? + if ch == u'\'': + return self.fetch_single() + + # Is it a double quoted scalar? + if ch == u'\"': + return self.fetch_double() + + # It must be a plain scalar then. + if self.check_plain(): + return self.fetch_plain() + + # No? It's an error. Let's produce a nice error message. + raise ScannerError("while scanning for the next token", None, + "found character %r that cannot start any token" + % ch.encode('utf-8'), self.get_mark()) + + # Simple keys treatment. + + def next_possible_simple_key(self): + # Return the number of the nearest possible simple key. Actually we + # don't need to loop through the whole dictionary. We may replace it + # with the following code: + # if not self.possible_simple_keys: + # return None + # return self.possible_simple_keys[ + # min(self.possible_simple_keys.keys())].token_number + min_token_number = None + for level in self.possible_simple_keys: + key = self.possible_simple_keys[level] + if min_token_number is None or key.token_number < min_token_number: + min_token_number = key.token_number + return min_token_number + + def stale_possible_simple_keys(self): + # Remove entries that are no longer possible simple keys. According to + # the YAML specification, simple keys + # - should be limited to a single line, + # - should be no longer than 1024 characters. + # Disabling this procedure will allow simple keys of any length and + # height (may cause problems if indentation is broken though). + for level in self.possible_simple_keys.keys(): + key = self.possible_simple_keys[level] + if key.line != self.line \ + or self.index-key.index > 1024: + if key.required: + raise ScannerError("while scanning a simple key", key.mark, + "could not find expected ':'", self.get_mark()) + del self.possible_simple_keys[level] + + def save_possible_simple_key(self): + # The next token may start a simple key. We check if it's possible + # and save its position. This function is called for + # ALIAS, ANCHOR, TAG, SCALAR(flow), '[', and '{'. + + # Check if a simple key is required at the current position. + required = not self.flow_level and self.indent == self.column + + # The next token might be a simple key. Let's save it's number and + # position. + if self.allow_simple_key: + self.remove_possible_simple_key() + token_number = self.tokens_taken+len(self.tokens) + key = SimpleKey(token_number, required, + self.index, self.line, self.column, self.get_mark()) + self.possible_simple_keys[self.flow_level] = key + + def remove_possible_simple_key(self): + # Remove the saved possible key position at the current flow level. + if self.flow_level in self.possible_simple_keys: + key = self.possible_simple_keys[self.flow_level] + + if key.required: + raise ScannerError("while scanning a simple key", key.mark, + "could not find expected ':'", self.get_mark()) + + del self.possible_simple_keys[self.flow_level] + + # Indentation functions. + + def unwind_indent(self, column): + + ## In flow context, tokens should respect indentation. + ## Actually the condition should be `self.indent >= column` according to + ## the spec. But this condition will prohibit intuitively correct + ## constructions such as + ## key : { + ## } + #if self.flow_level and self.indent > column: + # raise ScannerError(None, None, + # "invalid indentation or unclosed '[' or '{'", + # self.get_mark()) + + # In the flow context, indentation is ignored. We make the scanner less + # restrictive then specification requires. + if self.flow_level: + return + + # In block context, we may need to issue the BLOCK-END tokens. + while self.indent > column: + mark = self.get_mark() + self.indent = self.indents.pop() + self.tokens.append(BlockEndToken(mark, mark)) + + def add_indent(self, column): + # Check if we need to increase indentation. + if self.indent < column: + self.indents.append(self.indent) + self.indent = column + return True + return False + + # Fetchers. + + def fetch_stream_start(self): + # We always add STREAM-START as the first token and STREAM-END as the + # last token. + + # Read the token. + mark = self.get_mark() + + # Add STREAM-START. + self.tokens.append(StreamStartToken(mark, mark, + encoding=self.encoding)) + + + def fetch_stream_end(self): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. + self.remove_possible_simple_key() + self.allow_simple_key = False + self.possible_simple_keys = {} + + # Read the token. + mark = self.get_mark() + + # Add STREAM-END. + self.tokens.append(StreamEndToken(mark, mark)) + + # The steam is finished. + self.done = True + + def fetch_directive(self): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. + self.remove_possible_simple_key() + self.allow_simple_key = False + + # Scan and add DIRECTIVE. + self.tokens.append(self.scan_directive()) + + def fetch_document_start(self): + self.fetch_document_indicator(DocumentStartToken) + + def fetch_document_end(self): + self.fetch_document_indicator(DocumentEndToken) + + def fetch_document_indicator(self, TokenClass): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. Note that there could not be a block collection + # after '---'. + self.remove_possible_simple_key() + self.allow_simple_key = False + + # Add DOCUMENT-START or DOCUMENT-END. + start_mark = self.get_mark() + self.forward(3) + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_sequence_start(self): + self.fetch_flow_collection_start(FlowSequenceStartToken) + + def fetch_flow_mapping_start(self): + self.fetch_flow_collection_start(FlowMappingStartToken) + + def fetch_flow_collection_start(self, TokenClass): + + # '[' and '{' may start a simple key. + self.save_possible_simple_key() + + # Increase the flow level. + self.flow_level += 1 + + # Simple keys are allowed after '[' and '{'. + self.allow_simple_key = True + + # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_sequence_end(self): + self.fetch_flow_collection_end(FlowSequenceEndToken) + + def fetch_flow_mapping_end(self): + self.fetch_flow_collection_end(FlowMappingEndToken) + + def fetch_flow_collection_end(self, TokenClass): + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Decrease the flow level. + self.flow_level -= 1 + + # No simple keys after ']' or '}'. + self.allow_simple_key = False + + # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_entry(self): + + # Simple keys are allowed after ','. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add FLOW-ENTRY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(FlowEntryToken(start_mark, end_mark)) + + def fetch_block_entry(self): + + # Block context needs additional checks. + if not self.flow_level: + + # Are we allowed to start a new entry? + if not self.allow_simple_key: + raise ScannerError(None, None, + "sequence entries are not allowed here", + self.get_mark()) + + # We may need to add BLOCK-SEQUENCE-START. + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockSequenceStartToken(mark, mark)) + + # It's an error for the block entry to occur in the flow context, + # but we let the parser detect this. + else: + pass + + # Simple keys are allowed after '-'. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add BLOCK-ENTRY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(BlockEntryToken(start_mark, end_mark)) + + def fetch_key(self): + + # Block context needs additional checks. + if not self.flow_level: + + # Are we allowed to start a key (not necessary a simple)? + if not self.allow_simple_key: + raise ScannerError(None, None, + "mapping keys are not allowed here", + self.get_mark()) + + # We may need to add BLOCK-MAPPING-START. + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockMappingStartToken(mark, mark)) + + # Simple keys are allowed after '?' in the block context. + self.allow_simple_key = not self.flow_level + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add KEY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(KeyToken(start_mark, end_mark)) + + def fetch_value(self): + + # Do we determine a simple key? + if self.flow_level in self.possible_simple_keys: + + # Add KEY. + key = self.possible_simple_keys[self.flow_level] + del self.possible_simple_keys[self.flow_level] + self.tokens.insert(key.token_number-self.tokens_taken, + KeyToken(key.mark, key.mark)) + + # If this key starts a new block mapping, we need to add + # BLOCK-MAPPING-START. + if not self.flow_level: + if self.add_indent(key.column): + self.tokens.insert(key.token_number-self.tokens_taken, + BlockMappingStartToken(key.mark, key.mark)) + + # There cannot be two simple keys one after another. + self.allow_simple_key = False + + # It must be a part of a complex key. + else: + + # Block context needs additional checks. + # (Do we really need them? They will be caught by the parser + # anyway.) + if not self.flow_level: + + # We are allowed to start a complex value if and only if + # we can start a simple key. + if not self.allow_simple_key: + raise ScannerError(None, None, + "mapping values are not allowed here", + self.get_mark()) + + # If this value starts a new block mapping, we need to add + # BLOCK-MAPPING-START. It will be detected as an error later by + # the parser. + if not self.flow_level: + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockMappingStartToken(mark, mark)) + + # Simple keys are allowed after ':' in the block context. + self.allow_simple_key = not self.flow_level + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add VALUE. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(ValueToken(start_mark, end_mark)) + + def fetch_alias(self): + + # ALIAS could be a simple key. + self.save_possible_simple_key() + + # No simple keys after ALIAS. + self.allow_simple_key = False + + # Scan and add ALIAS. + self.tokens.append(self.scan_anchor(AliasToken)) + + def fetch_anchor(self): + + # ANCHOR could start a simple key. + self.save_possible_simple_key() + + # No simple keys after ANCHOR. + self.allow_simple_key = False + + # Scan and add ANCHOR. + self.tokens.append(self.scan_anchor(AnchorToken)) + + def fetch_tag(self): + + # TAG could start a simple key. + self.save_possible_simple_key() + + # No simple keys after TAG. + self.allow_simple_key = False + + # Scan and add TAG. + self.tokens.append(self.scan_tag()) + + def fetch_literal(self): + self.fetch_block_scalar(style='|') + + def fetch_folded(self): + self.fetch_block_scalar(style='>') + + def fetch_block_scalar(self, style): + + # A simple key may follow a block scalar. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Scan and add SCALAR. + self.tokens.append(self.scan_block_scalar(style)) + + def fetch_single(self): + self.fetch_flow_scalar(style='\'') + + def fetch_double(self): + self.fetch_flow_scalar(style='"') + + def fetch_flow_scalar(self, style): + + # A flow scalar could be a simple key. + self.save_possible_simple_key() + + # No simple keys after flow scalars. + self.allow_simple_key = False + + # Scan and add SCALAR. + self.tokens.append(self.scan_flow_scalar(style)) + + def fetch_plain(self): + + # A plain scalar could be a simple key. + self.save_possible_simple_key() + + # No simple keys after plain scalars. But note that `scan_plain` will + # change this flag if the scan is finished at the beginning of the + # line. + self.allow_simple_key = False + + # Scan and add SCALAR. May change `allow_simple_key`. + self.tokens.append(self.scan_plain()) + + # Checkers. + + def check_directive(self): + + # DIRECTIVE: ^ '%' ... + # The '%' indicator is already checked. + if self.column == 0: + return True + + def check_document_start(self): + + # DOCUMENT-START: ^ '---' (' '|'\n') + if self.column == 0: + if self.prefix(3) == u'---' \ + and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029': + return True + + def check_document_end(self): + + # DOCUMENT-END: ^ '...' (' '|'\n') + if self.column == 0: + if self.prefix(3) == u'...' \ + and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029': + return True + + def check_block_entry(self): + + # BLOCK-ENTRY: '-' (' '|'\n') + return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029' + + def check_key(self): + + # KEY(flow context): '?' + if self.flow_level: + return True + + # KEY(block context): '?' (' '|'\n') + else: + return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029' + + def check_value(self): + + # VALUE(flow context): ':' + if self.flow_level: + return True + + # VALUE(block context): ':' (' '|'\n') + else: + return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029' + + def check_plain(self): + + # A plain scalar may start with any non-space character except: + # '-', '?', ':', ',', '[', ']', '{', '}', + # '#', '&', '*', '!', '|', '>', '\'', '\"', + # '%', '@', '`'. + # + # It may also start with + # '-', '?', ':' + # if it is followed by a non-space character. + # + # Note that we limit the last rule to the block context (except the + # '-' character) because we want the flow context to be space + # independent. + ch = self.peek() + return ch not in u'\0 \t\r\n\x85\u2028\u2029-?:,[]{}#&*!|>\'\"%@`' \ + or (self.peek(1) not in u'\0 \t\r\n\x85\u2028\u2029' + and (ch == u'-' or (not self.flow_level and ch in u'?:'))) + + # Scanners. + + def scan_to_next_token(self): + # We ignore spaces, line breaks and comments. + # If we find a line break in the block context, we set the flag + # `allow_simple_key` on. + # The byte order mark is stripped if it's the first character in the + # stream. We do not yet support BOM inside the stream as the + # specification requires. Any such mark will be considered as a part + # of the document. + # + # TODO: We need to make tab handling rules more sane. A good rule is + # Tabs cannot precede tokens + # BLOCK-SEQUENCE-START, BLOCK-MAPPING-START, BLOCK-END, + # KEY(block), VALUE(block), BLOCK-ENTRY + # So the checking code is + # if <TAB>: + # self.allow_simple_keys = False + # We also need to add the check for `allow_simple_keys == True` to + # `unwind_indent` before issuing BLOCK-END. + # Scanners for block, flow, and plain scalars need to be modified. + + if self.index == 0 and self.peek() == u'\uFEFF': + self.forward() + found = False + while not found: + while self.peek() == u' ': + self.forward() + if self.peek() == u'#': + while self.peek() not in u'\0\r\n\x85\u2028\u2029': + self.forward() + if self.scan_line_break(): + if not self.flow_level: + self.allow_simple_key = True + else: + found = True + + def scan_directive(self): + # See the specification for details. + start_mark = self.get_mark() + self.forward() + name = self.scan_directive_name(start_mark) + value = None + if name == u'YAML': + value = self.scan_yaml_directive_value(start_mark) + end_mark = self.get_mark() + elif name == u'TAG': + value = self.scan_tag_directive_value(start_mark) + end_mark = self.get_mark() + else: + end_mark = self.get_mark() + while self.peek() not in u'\0\r\n\x85\u2028\u2029': + self.forward() + self.scan_directive_ignored_line(start_mark) + return DirectiveToken(name, value, start_mark, end_mark) + + def scan_directive_name(self, start_mark): + # See the specification for details. + length = 0 + ch = self.peek(length) + while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-_': + length += 1 + ch = self.peek(length) + if not length: + raise ScannerError("while scanning a directive", start_mark, + "expected alphabetic or numeric character, but found %r" + % ch.encode('utf-8'), self.get_mark()) + value = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch not in u'\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected alphabetic or numeric character, but found %r" + % ch.encode('utf-8'), self.get_mark()) + return value + + def scan_yaml_directive_value(self, start_mark): + # See the specification for details. + while self.peek() == u' ': + self.forward() + major = self.scan_yaml_directive_number(start_mark) + if self.peek() != '.': + raise ScannerError("while scanning a directive", start_mark, + "expected a digit or '.', but found %r" + % self.peek().encode('utf-8'), + self.get_mark()) + self.forward() + minor = self.scan_yaml_directive_number(start_mark) + if self.peek() not in u'\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected a digit or ' ', but found %r" + % self.peek().encode('utf-8'), + self.get_mark()) + return (major, minor) + + def scan_yaml_directive_number(self, start_mark): + # See the specification for details. + ch = self.peek() + if not (u'0' <= ch <= u'9'): + raise ScannerError("while scanning a directive", start_mark, + "expected a digit, but found %r" % ch.encode('utf-8'), + self.get_mark()) + length = 0 + while u'0' <= self.peek(length) <= u'9': + length += 1 + value = int(self.prefix(length)) + self.forward(length) + return value + + def scan_tag_directive_value(self, start_mark): + # See the specification for details. + while self.peek() == u' ': + self.forward() + handle = self.scan_tag_directive_handle(start_mark) + while self.peek() == u' ': + self.forward() + prefix = self.scan_tag_directive_prefix(start_mark) + return (handle, prefix) + + def scan_tag_directive_handle(self, start_mark): + # See the specification for details. + value = self.scan_tag_handle('directive', start_mark) + ch = self.peek() + if ch != u' ': + raise ScannerError("while scanning a directive", start_mark, + "expected ' ', but found %r" % ch.encode('utf-8'), + self.get_mark()) + return value + + def scan_tag_directive_prefix(self, start_mark): + # See the specification for details. + value = self.scan_tag_uri('directive', start_mark) + ch = self.peek() + if ch not in u'\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected ' ', but found %r" % ch.encode('utf-8'), + self.get_mark()) + return value + + def scan_directive_ignored_line(self, start_mark): + # See the specification for details. + while self.peek() == u' ': + self.forward() + if self.peek() == u'#': + while self.peek() not in u'\0\r\n\x85\u2028\u2029': + self.forward() + ch = self.peek() + if ch not in u'\0\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected a comment or a line break, but found %r" + % ch.encode('utf-8'), self.get_mark()) + self.scan_line_break() + + def scan_anchor(self, TokenClass): + # The specification does not restrict characters for anchors and + # aliases. This may lead to problems, for instance, the document: + # [ *alias, value ] + # can be interpreted in two ways, as + # [ "value" ] + # and + # [ *alias , "value" ] + # Therefore we restrict aliases to numbers and ASCII letters. + start_mark = self.get_mark() + indicator = self.peek() + if indicator == u'*': + name = 'alias' + else: + name = 'anchor' + self.forward() + length = 0 + ch = self.peek(length) + while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-_': + length += 1 + ch = self.peek(length) + if not length: + raise ScannerError("while scanning an %s" % name, start_mark, + "expected alphabetic or numeric character, but found %r" + % ch.encode('utf-8'), self.get_mark()) + value = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch not in u'\0 \t\r\n\x85\u2028\u2029?:,]}%@`': + raise ScannerError("while scanning an %s" % name, start_mark, + "expected alphabetic or numeric character, but found %r" + % ch.encode('utf-8'), self.get_mark()) + end_mark = self.get_mark() + return TokenClass(value, start_mark, end_mark) + + def scan_tag(self): + # See the specification for details. + start_mark = self.get_mark() + ch = self.peek(1) + if ch == u'<': + handle = None + self.forward(2) + suffix = self.scan_tag_uri('tag', start_mark) + if self.peek() != u'>': + raise ScannerError("while parsing a tag", start_mark, + "expected '>', but found %r" % self.peek().encode('utf-8'), + self.get_mark()) + self.forward() + elif ch in u'\0 \t\r\n\x85\u2028\u2029': + handle = None + suffix = u'!' + self.forward() + else: + length = 1 + use_handle = False + while ch not in u'\0 \r\n\x85\u2028\u2029': + if ch == u'!': + use_handle = True + break + length += 1 + ch = self.peek(length) + handle = u'!' + if use_handle: + handle = self.scan_tag_handle('tag', start_mark) + else: + handle = u'!' + self.forward() + suffix = self.scan_tag_uri('tag', start_mark) + ch = self.peek() + if ch not in u'\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a tag", start_mark, + "expected ' ', but found %r" % ch.encode('utf-8'), + self.get_mark()) + value = (handle, suffix) + end_mark = self.get_mark() + return TagToken(value, start_mark, end_mark) + + def scan_block_scalar(self, style): + # See the specification for details. + + if style == '>': + folded = True + else: + folded = False + + chunks = [] + start_mark = self.get_mark() + + # Scan the header. + self.forward() + chomping, increment = self.scan_block_scalar_indicators(start_mark) + self.scan_block_scalar_ignored_line(start_mark) + + # Determine the indentation level and go to the first non-empty line. + min_indent = self.indent+1 + if min_indent < 1: + min_indent = 1 + if increment is None: + breaks, max_indent, end_mark = self.scan_block_scalar_indentation() + indent = max(min_indent, max_indent) + else: + indent = min_indent+increment-1 + breaks, end_mark = self.scan_block_scalar_breaks(indent) + line_break = u'' + + # Scan the inner part of the block scalar. + while self.column == indent and self.peek() != u'\0': + chunks.extend(breaks) + leading_non_space = self.peek() not in u' \t' + length = 0 + while self.peek(length) not in u'\0\r\n\x85\u2028\u2029': + length += 1 + chunks.append(self.prefix(length)) + self.forward(length) + line_break = self.scan_line_break() + breaks, end_mark = self.scan_block_scalar_breaks(indent) + if self.column == indent and self.peek() != u'\0': + + # Unfortunately, folding rules are ambiguous. + # + # This is the folding according to the specification: + + if folded and line_break == u'\n' \ + and leading_non_space and self.peek() not in u' \t': + if not breaks: + chunks.append(u' ') + else: + chunks.append(line_break) + + # This is Clark Evans's interpretation (also in the spec + # examples): + # + #if folded and line_break == u'\n': + # if not breaks: + # if self.peek() not in ' \t': + # chunks.append(u' ') + # else: + # chunks.append(line_break) + #else: + # chunks.append(line_break) + else: + break + + # Chomp the tail. + if chomping is not False: + chunks.append(line_break) + if chomping is True: + chunks.extend(breaks) + + # We are done. + return ScalarToken(u''.join(chunks), False, start_mark, end_mark, + style) + + def scan_block_scalar_indicators(self, start_mark): + # See the specification for details. + chomping = None + increment = None + ch = self.peek() + if ch in u'+-': + if ch == '+': + chomping = True + else: + chomping = False + self.forward() + ch = self.peek() + if ch in u'0123456789': + increment = int(ch) + if increment == 0: + raise ScannerError("while scanning a block scalar", start_mark, + "expected indentation indicator in the range 1-9, but found 0", + self.get_mark()) + self.forward() + elif ch in u'0123456789': + increment = int(ch) + if increment == 0: + raise ScannerError("while scanning a block scalar", start_mark, + "expected indentation indicator in the range 1-9, but found 0", + self.get_mark()) + self.forward() + ch = self.peek() + if ch in u'+-': + if ch == '+': + chomping = True + else: + chomping = False + self.forward() + ch = self.peek() + if ch not in u'\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a block scalar", start_mark, + "expected chomping or indentation indicators, but found %r" + % ch.encode('utf-8'), self.get_mark()) + return chomping, increment + + def scan_block_scalar_ignored_line(self, start_mark): + # See the specification for details. + while self.peek() == u' ': + self.forward() + if self.peek() == u'#': + while self.peek() not in u'\0\r\n\x85\u2028\u2029': + self.forward() + ch = self.peek() + if ch not in u'\0\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a block scalar", start_mark, + "expected a comment or a line break, but found %r" + % ch.encode('utf-8'), self.get_mark()) + self.scan_line_break() + + def scan_block_scalar_indentation(self): + # See the specification for details. + chunks = [] + max_indent = 0 + end_mark = self.get_mark() + while self.peek() in u' \r\n\x85\u2028\u2029': + if self.peek() != u' ': + chunks.append(self.scan_line_break()) + end_mark = self.get_mark() + else: + self.forward() + if self.column > max_indent: + max_indent = self.column + return chunks, max_indent, end_mark + + def scan_block_scalar_breaks(self, indent): + # See the specification for details. + chunks = [] + end_mark = self.get_mark() + while self.column < indent and self.peek() == u' ': + self.forward() + while self.peek() in u'\r\n\x85\u2028\u2029': + chunks.append(self.scan_line_break()) + end_mark = self.get_mark() + while self.column < indent and self.peek() == u' ': + self.forward() + return chunks, end_mark + + def scan_flow_scalar(self, style): + # See the specification for details. + # Note that we loose indentation rules for quoted scalars. Quoted + # scalars don't need to adhere indentation because " and ' clearly + # mark the beginning and the end of them. Therefore we are less + # restrictive then the specification requires. We only need to check + # that document separators are not included in scalars. + if style == '"': + double = True + else: + double = False + chunks = [] + start_mark = self.get_mark() + quote = self.peek() + self.forward() + chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark)) + while self.peek() != quote: + chunks.extend(self.scan_flow_scalar_spaces(double, start_mark)) + chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark)) + self.forward() + end_mark = self.get_mark() + return ScalarToken(u''.join(chunks), False, start_mark, end_mark, + style) + + ESCAPE_REPLACEMENTS = { + u'0': u'\0', + u'a': u'\x07', + u'b': u'\x08', + u't': u'\x09', + u'\t': u'\x09', + u'n': u'\x0A', + u'v': u'\x0B', + u'f': u'\x0C', + u'r': u'\x0D', + u'e': u'\x1B', + u' ': u'\x20', + u'\"': u'\"', + u'\\': u'\\', + u'/': u'/', + u'N': u'\x85', + u'_': u'\xA0', + u'L': u'\u2028', + u'P': u'\u2029', + } + + ESCAPE_CODES = { + u'x': 2, + u'u': 4, + u'U': 8, + } + + def scan_flow_scalar_non_spaces(self, double, start_mark): + # See the specification for details. + chunks = [] + while True: + length = 0 + while self.peek(length) not in u'\'\"\\\0 \t\r\n\x85\u2028\u2029': + length += 1 + if length: + chunks.append(self.prefix(length)) + self.forward(length) + ch = self.peek() + if not double and ch == u'\'' and self.peek(1) == u'\'': + chunks.append(u'\'') + self.forward(2) + elif (double and ch == u'\'') or (not double and ch in u'\"\\'): + chunks.append(ch) + self.forward() + elif double and ch == u'\\': + self.forward() + ch = self.peek() + if ch in self.ESCAPE_REPLACEMENTS: + chunks.append(self.ESCAPE_REPLACEMENTS[ch]) + self.forward() + elif ch in self.ESCAPE_CODES: + length = self.ESCAPE_CODES[ch] + self.forward() + for k in range(length): + if self.peek(k) not in u'0123456789ABCDEFabcdef': + raise ScannerError("while scanning a double-quoted scalar", start_mark, + "expected escape sequence of %d hexdecimal numbers, but found %r" % + (length, self.peek(k).encode('utf-8')), self.get_mark()) + code = int(self.prefix(length), 16) + chunks.append(unichr(code)) + self.forward(length) + elif ch in u'\r\n\x85\u2028\u2029': + self.scan_line_break() + chunks.extend(self.scan_flow_scalar_breaks(double, start_mark)) + else: + raise ScannerError("while scanning a double-quoted scalar", start_mark, + "found unknown escape character %r" % ch.encode('utf-8'), self.get_mark()) + else: + return chunks + + def scan_flow_scalar_spaces(self, double, start_mark): + # See the specification for details. + chunks = [] + length = 0 + while self.peek(length) in u' \t': + length += 1 + whitespaces = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch == u'\0': + raise ScannerError("while scanning a quoted scalar", start_mark, + "found unexpected end of stream", self.get_mark()) + elif ch in u'\r\n\x85\u2028\u2029': + line_break = self.scan_line_break() + breaks = self.scan_flow_scalar_breaks(double, start_mark) + if line_break != u'\n': + chunks.append(line_break) + elif not breaks: + chunks.append(u' ') + chunks.extend(breaks) + else: + chunks.append(whitespaces) + return chunks + + def scan_flow_scalar_breaks(self, double, start_mark): + # See the specification for details. + chunks = [] + while True: + # Instead of checking indentation, we check for document + # separators. + prefix = self.prefix(3) + if (prefix == u'---' or prefix == u'...') \ + and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a quoted scalar", start_mark, + "found unexpected document separator", self.get_mark()) + while self.peek() in u' \t': + self.forward() + if self.peek() in u'\r\n\x85\u2028\u2029': + chunks.append(self.scan_line_break()) + else: + return chunks + + def scan_plain(self): + # See the specification for details. + # We add an additional restriction for the flow context: + # plain scalars in the flow context cannot contain ',' or '?'. + # We also keep track of the `allow_simple_key` flag here. + # Indentation rules are loosed for the flow context. + chunks = [] + start_mark = self.get_mark() + end_mark = start_mark + indent = self.indent+1 + # We allow zero indentation for scalars, but then we need to check for + # document separators at the beginning of the line. + #if indent == 0: + # indent = 1 + spaces = [] + while True: + length = 0 + if self.peek() == u'#': + break + while True: + ch = self.peek(length) + if ch in u'\0 \t\r\n\x85\u2028\u2029' \ + or (ch == u':' and + self.peek(length+1) in u'\0 \t\r\n\x85\u2028\u2029' + + (u',[]{}' if self.flow_level else u''))\ + or (self.flow_level and ch in u',?[]{}'): + break + length += 1 + if length == 0: + break + self.allow_simple_key = False + chunks.extend(spaces) + chunks.append(self.prefix(length)) + self.forward(length) + end_mark = self.get_mark() + spaces = self.scan_plain_spaces(indent, start_mark) + if not spaces or self.peek() == u'#' \ + or (not self.flow_level and self.column < indent): + break + return ScalarToken(u''.join(chunks), True, start_mark, end_mark) + + def scan_plain_spaces(self, indent, start_mark): + # See the specification for details. + # The specification is really confusing about tabs in plain scalars. + # We just forbid them completely. Do not use tabs in YAML! + chunks = [] + length = 0 + while self.peek(length) in u' ': + length += 1 + whitespaces = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch in u'\r\n\x85\u2028\u2029': + line_break = self.scan_line_break() + self.allow_simple_key = True + prefix = self.prefix(3) + if (prefix == u'---' or prefix == u'...') \ + and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029': + return + breaks = [] + while self.peek() in u' \r\n\x85\u2028\u2029': + if self.peek() == ' ': + self.forward() + else: + breaks.append(self.scan_line_break()) + prefix = self.prefix(3) + if (prefix == u'---' or prefix == u'...') \ + and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029': + return + if line_break != u'\n': + chunks.append(line_break) + elif not breaks: + chunks.append(u' ') + chunks.extend(breaks) + elif whitespaces: + chunks.append(whitespaces) + return chunks + + def scan_tag_handle(self, name, start_mark): + # See the specification for details. + # For some strange reasons, the specification does not allow '_' in + # tag handles. I have allowed it anyway. + ch = self.peek() + if ch != u'!': + raise ScannerError("while scanning a %s" % name, start_mark, + "expected '!', but found %r" % ch.encode('utf-8'), + self.get_mark()) + length = 1 + ch = self.peek(length) + if ch != u' ': + while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-_': + length += 1 + ch = self.peek(length) + if ch != u'!': + self.forward(length) + raise ScannerError("while scanning a %s" % name, start_mark, + "expected '!', but found %r" % ch.encode('utf-8'), + self.get_mark()) + length += 1 + value = self.prefix(length) + self.forward(length) + return value + + def scan_tag_uri(self, name, start_mark): + # See the specification for details. + # Note: we do not check if URI is well-formed. + chunks = [] + length = 0 + ch = self.peek(length) + while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \ + or ch in u'-;/?:@&=+$,_.!~*\'()[]%': + if ch == u'%': + chunks.append(self.prefix(length)) + self.forward(length) + length = 0 + chunks.append(self.scan_uri_escapes(name, start_mark)) + else: + length += 1 + ch = self.peek(length) + if length: + chunks.append(self.prefix(length)) + self.forward(length) + length = 0 + if not chunks: + raise ScannerError("while parsing a %s" % name, start_mark, + "expected URI, but found %r" % ch.encode('utf-8'), + self.get_mark()) + return u''.join(chunks) + + def scan_uri_escapes(self, name, start_mark): + # See the specification for details. + bytes = [] + mark = self.get_mark() + while self.peek() == u'%': + self.forward() + for k in range(2): + if self.peek(k) not in u'0123456789ABCDEFabcdef': + raise ScannerError("while scanning a %s" % name, start_mark, + "expected URI escape sequence of 2 hexdecimal numbers, but found %r" % + (self.peek(k).encode('utf-8')), self.get_mark()) + bytes.append(chr(int(self.prefix(2), 16))) + self.forward(2) + try: + value = unicode(''.join(bytes), 'utf-8') + except UnicodeDecodeError, exc: + raise ScannerError("while scanning a %s" % name, start_mark, str(exc), mark) + return value + + def scan_line_break(self): + # Transforms: + # '\r\n' : '\n' + # '\r' : '\n' + # '\n' : '\n' + # '\x85' : '\n' + # '\u2028' : '\u2028' + # '\u2029 : '\u2029' + # default : '' + ch = self.peek() + if ch in u'\r\n\x85': + if self.prefix(2) == u'\r\n': + self.forward(2) + else: + self.forward() + return u'\n' + elif ch in u'\u2028\u2029': + self.forward() + return ch + return u'' diff --git a/third_party/python/PyYAML/lib/yaml/serializer.py b/third_party/python/PyYAML/lib/yaml/serializer.py new file mode 100644 index 0000000000..0bf1e96dc1 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/serializer.py @@ -0,0 +1,111 @@ + +__all__ = ['Serializer', 'SerializerError'] + +from error import YAMLError +from events import * +from nodes import * + +class SerializerError(YAMLError): + pass + +class Serializer(object): + + ANCHOR_TEMPLATE = u'id%03d' + + def __init__(self, encoding=None, + explicit_start=None, explicit_end=None, version=None, tags=None): + self.use_encoding = encoding + self.use_explicit_start = explicit_start + self.use_explicit_end = explicit_end + self.use_version = version + self.use_tags = tags + self.serialized_nodes = {} + self.anchors = {} + self.last_anchor_id = 0 + self.closed = None + + def open(self): + if self.closed is None: + self.emit(StreamStartEvent(encoding=self.use_encoding)) + self.closed = False + elif self.closed: + raise SerializerError("serializer is closed") + else: + raise SerializerError("serializer is already opened") + + def close(self): + if self.closed is None: + raise SerializerError("serializer is not opened") + elif not self.closed: + self.emit(StreamEndEvent()) + self.closed = True + + #def __del__(self): + # self.close() + + def serialize(self, node): + if self.closed is None: + raise SerializerError("serializer is not opened") + elif self.closed: + raise SerializerError("serializer is closed") + self.emit(DocumentStartEvent(explicit=self.use_explicit_start, + version=self.use_version, tags=self.use_tags)) + self.anchor_node(node) + self.serialize_node(node, None, None) + self.emit(DocumentEndEvent(explicit=self.use_explicit_end)) + self.serialized_nodes = {} + self.anchors = {} + self.last_anchor_id = 0 + + def anchor_node(self, node): + if node in self.anchors: + if self.anchors[node] is None: + self.anchors[node] = self.generate_anchor(node) + else: + self.anchors[node] = None + if isinstance(node, SequenceNode): + for item in node.value: + self.anchor_node(item) + elif isinstance(node, MappingNode): + for key, value in node.value: + self.anchor_node(key) + self.anchor_node(value) + + def generate_anchor(self, node): + self.last_anchor_id += 1 + return self.ANCHOR_TEMPLATE % self.last_anchor_id + + def serialize_node(self, node, parent, index): + alias = self.anchors[node] + if node in self.serialized_nodes: + self.emit(AliasEvent(alias)) + else: + self.serialized_nodes[node] = True + self.descend_resolver(parent, index) + if isinstance(node, ScalarNode): + detected_tag = self.resolve(ScalarNode, node.value, (True, False)) + default_tag = self.resolve(ScalarNode, node.value, (False, True)) + implicit = (node.tag == detected_tag), (node.tag == default_tag) + self.emit(ScalarEvent(alias, node.tag, implicit, node.value, + style=node.style)) + elif isinstance(node, SequenceNode): + implicit = (node.tag + == self.resolve(SequenceNode, node.value, True)) + self.emit(SequenceStartEvent(alias, node.tag, implicit, + flow_style=node.flow_style)) + index = 0 + for item in node.value: + self.serialize_node(item, node, index) + index += 1 + self.emit(SequenceEndEvent()) + elif isinstance(node, MappingNode): + implicit = (node.tag + == self.resolve(MappingNode, node.value, True)) + self.emit(MappingStartEvent(alias, node.tag, implicit, + flow_style=node.flow_style)) + for key, value in node.value: + self.serialize_node(key, node, None) + self.serialize_node(value, node, key) + self.emit(MappingEndEvent()) + self.ascend_resolver() + diff --git a/third_party/python/PyYAML/lib/yaml/tokens.py b/third_party/python/PyYAML/lib/yaml/tokens.py new file mode 100644 index 0000000000..4d0b48a394 --- /dev/null +++ b/third_party/python/PyYAML/lib/yaml/tokens.py @@ -0,0 +1,104 @@ + +class Token(object): + def __init__(self, start_mark, end_mark): + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + attributes = [key for key in self.__dict__ + if not key.endswith('_mark')] + attributes.sort() + arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) + for key in attributes]) + return '%s(%s)' % (self.__class__.__name__, arguments) + +#class BOMToken(Token): +# id = '<byte order mark>' + +class DirectiveToken(Token): + id = '<directive>' + def __init__(self, name, value, start_mark, end_mark): + self.name = name + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class DocumentStartToken(Token): + id = '<document start>' + +class DocumentEndToken(Token): + id = '<document end>' + +class StreamStartToken(Token): + id = '<stream start>' + def __init__(self, start_mark=None, end_mark=None, + encoding=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.encoding = encoding + +class StreamEndToken(Token): + id = '<stream end>' + +class BlockSequenceStartToken(Token): + id = '<block sequence start>' + +class BlockMappingStartToken(Token): + id = '<block mapping start>' + +class BlockEndToken(Token): + id = '<block end>' + +class FlowSequenceStartToken(Token): + id = '[' + +class FlowMappingStartToken(Token): + id = '{' + +class FlowSequenceEndToken(Token): + id = ']' + +class FlowMappingEndToken(Token): + id = '}' + +class KeyToken(Token): + id = '?' + +class ValueToken(Token): + id = ':' + +class BlockEntryToken(Token): + id = '-' + +class FlowEntryToken(Token): + id = ',' + +class AliasToken(Token): + id = '<alias>' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class AnchorToken(Token): + id = '<anchor>' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class TagToken(Token): + id = '<tag>' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class ScalarToken(Token): + id = '<scalar>' + def __init__(self, value, plain, start_mark, end_mark, style=None): + self.value = value + self.plain = plain + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + diff --git a/third_party/python/PyYAML/lib3/yaml/__init__.py b/third_party/python/PyYAML/lib3/yaml/__init__.py new file mode 100644 index 0000000000..13d687c501 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/__init__.py @@ -0,0 +1,427 @@ + +from .error import * + +from .tokens import * +from .events import * +from .nodes import * + +from .loader import * +from .dumper import * + +__version__ = '5.3.1' +try: + from .cyaml import * + __with_libyaml__ = True +except ImportError: + __with_libyaml__ = False + +import io + +#------------------------------------------------------------------------------ +# Warnings control +#------------------------------------------------------------------------------ + +# 'Global' warnings state: +_warnings_enabled = { + 'YAMLLoadWarning': True, +} + +# Get or set global warnings' state +def warnings(settings=None): + if settings is None: + return _warnings_enabled + + if type(settings) is dict: + for key in settings: + if key in _warnings_enabled: + _warnings_enabled[key] = settings[key] + +# Warn when load() is called without Loader=... +class YAMLLoadWarning(RuntimeWarning): + pass + +def load_warning(method): + if _warnings_enabled['YAMLLoadWarning'] is False: + return + + import warnings + + message = ( + "calling yaml.%s() without Loader=... is deprecated, as the " + "default Loader is unsafe. Please read " + "https://msg.pyyaml.org/load for full details." + ) % method + + warnings.warn(message, YAMLLoadWarning, stacklevel=3) + +#------------------------------------------------------------------------------ +def scan(stream, Loader=Loader): + """ + Scan a YAML stream and produce scanning tokens. + """ + loader = Loader(stream) + try: + while loader.check_token(): + yield loader.get_token() + finally: + loader.dispose() + +def parse(stream, Loader=Loader): + """ + Parse a YAML stream and produce parsing events. + """ + loader = Loader(stream) + try: + while loader.check_event(): + yield loader.get_event() + finally: + loader.dispose() + +def compose(stream, Loader=Loader): + """ + Parse the first YAML document in a stream + and produce the corresponding representation tree. + """ + loader = Loader(stream) + try: + return loader.get_single_node() + finally: + loader.dispose() + +def compose_all(stream, Loader=Loader): + """ + Parse all YAML documents in a stream + and produce corresponding representation trees. + """ + loader = Loader(stream) + try: + while loader.check_node(): + yield loader.get_node() + finally: + loader.dispose() + +def load(stream, Loader=None): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + """ + if Loader is None: + load_warning('load') + Loader = FullLoader + + loader = Loader(stream) + try: + return loader.get_single_data() + finally: + loader.dispose() + +def load_all(stream, Loader=None): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + """ + if Loader is None: + load_warning('load_all') + Loader = FullLoader + + loader = Loader(stream) + try: + while loader.check_data(): + yield loader.get_data() + finally: + loader.dispose() + +def full_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve all tags except those known to be + unsafe on untrusted input. + """ + return load(stream, FullLoader) + +def full_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve all tags except those known to be + unsafe on untrusted input. + """ + return load_all(stream, FullLoader) + +def safe_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve only basic YAML tags. This is known + to be safe for untrusted input. + """ + return load(stream, SafeLoader) + +def safe_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve only basic YAML tags. This is known + to be safe for untrusted input. + """ + return load_all(stream, SafeLoader) + +def unsafe_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve all tags, even those known to be + unsafe on untrusted input. + """ + return load(stream, UnsafeLoader) + +def unsafe_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve all tags, even those known to be + unsafe on untrusted input. + """ + return load_all(stream, UnsafeLoader) + +def emit(events, stream=None, Dumper=Dumper, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None): + """ + Emit YAML parsing events into a stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + stream = io.StringIO() + getvalue = stream.getvalue + dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + try: + for event in events: + dumper.emit(event) + finally: + dumper.dispose() + if getvalue: + return getvalue() + +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, + version=None, tags=None): + """ + Serialize a sequence of representation trees into a YAML stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + if encoding is None: + stream = io.StringIO() + else: + stream = io.BytesIO() + getvalue = stream.getvalue + dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break, + encoding=encoding, version=version, tags=tags, + explicit_start=explicit_start, explicit_end=explicit_end) + try: + dumper.open() + for node in nodes: + dumper.serialize(node) + dumper.close() + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def serialize(node, stream=None, Dumper=Dumper, **kwds): + """ + Serialize a representation tree into a YAML stream. + If stream is None, return the produced string instead. + """ + return serialize_all([node], stream, Dumper=Dumper, **kwds) + +def dump_all(documents, stream=None, Dumper=Dumper, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + """ + Serialize a sequence of Python objects into a YAML stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + if encoding is None: + stream = io.StringIO() + else: + stream = io.BytesIO() + getvalue = stream.getvalue + dumper = Dumper(stream, default_style=default_style, + default_flow_style=default_flow_style, + canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break, + encoding=encoding, version=version, tags=tags, + explicit_start=explicit_start, explicit_end=explicit_end, sort_keys=sort_keys) + try: + dumper.open() + for data in documents: + dumper.represent(data) + dumper.close() + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def dump(data, stream=None, Dumper=Dumper, **kwds): + """ + Serialize a Python object into a YAML stream. + If stream is None, return the produced string instead. + """ + return dump_all([data], stream, Dumper=Dumper, **kwds) + +def safe_dump_all(documents, stream=None, **kwds): + """ + Serialize a sequence of Python objects into a YAML stream. + Produce only basic YAML tags. + If stream is None, return the produced string instead. + """ + return dump_all(documents, stream, Dumper=SafeDumper, **kwds) + +def safe_dump(data, stream=None, **kwds): + """ + Serialize a Python object into a YAML stream. + Produce only basic YAML tags. + If stream is None, return the produced string instead. + """ + return dump_all([data], stream, Dumper=SafeDumper, **kwds) + +def add_implicit_resolver(tag, regexp, first=None, + Loader=None, Dumper=Dumper): + """ + Add an implicit scalar detector. + If an implicit scalar value matches the given regexp, + the corresponding tag is assigned to the scalar. + first is a sequence of possible initial characters or None. + """ + if Loader is None: + loader.Loader.add_implicit_resolver(tag, regexp, first) + loader.FullLoader.add_implicit_resolver(tag, regexp, first) + loader.UnsafeLoader.add_implicit_resolver(tag, regexp, first) + else: + Loader.add_implicit_resolver(tag, regexp, first) + Dumper.add_implicit_resolver(tag, regexp, first) + +def add_path_resolver(tag, path, kind=None, Loader=None, Dumper=Dumper): + """ + Add a path based resolver for the given tag. + A path is a list of keys that forms a path + to a node in the representation tree. + Keys can be string values, integers, or None. + """ + if Loader is None: + loader.Loader.add_path_resolver(tag, path, kind) + loader.FullLoader.add_path_resolver(tag, path, kind) + loader.UnsafeLoader.add_path_resolver(tag, path, kind) + else: + Loader.add_path_resolver(tag, path, kind) + Dumper.add_path_resolver(tag, path, kind) + +def add_constructor(tag, constructor, Loader=None): + """ + Add a constructor for the given tag. + Constructor is a function that accepts a Loader instance + and a node object and produces the corresponding Python object. + """ + if Loader is None: + loader.Loader.add_constructor(tag, constructor) + loader.FullLoader.add_constructor(tag, constructor) + loader.UnsafeLoader.add_constructor(tag, constructor) + else: + Loader.add_constructor(tag, constructor) + +def add_multi_constructor(tag_prefix, multi_constructor, Loader=None): + """ + Add a multi-constructor for the given tag prefix. + Multi-constructor is called for a node if its tag starts with tag_prefix. + Multi-constructor accepts a Loader instance, a tag suffix, + and a node object and produces the corresponding Python object. + """ + if Loader is None: + loader.Loader.add_multi_constructor(tag_prefix, multi_constructor) + loader.FullLoader.add_multi_constructor(tag_prefix, multi_constructor) + loader.UnsafeLoader.add_multi_constructor(tag_prefix, multi_constructor) + else: + Loader.add_multi_constructor(tag_prefix, multi_constructor) + +def add_representer(data_type, representer, Dumper=Dumper): + """ + Add a representer for the given type. + Representer is a function accepting a Dumper instance + and an instance of the given data type + and producing the corresponding representation node. + """ + Dumper.add_representer(data_type, representer) + +def add_multi_representer(data_type, multi_representer, Dumper=Dumper): + """ + Add a representer for the given type. + Multi-representer is a function accepting a Dumper instance + and an instance of the given data type or subtype + and producing the corresponding representation node. + """ + Dumper.add_multi_representer(data_type, multi_representer) + +class YAMLObjectMetaclass(type): + """ + The metaclass for YAMLObject. + """ + def __init__(cls, name, bases, kwds): + super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds) + if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None: + if isinstance(cls.yaml_loader, list): + for loader in cls.yaml_loader: + loader.add_constructor(cls.yaml_tag, cls.from_yaml) + else: + cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml) + + cls.yaml_dumper.add_representer(cls, cls.to_yaml) + +class YAMLObject(metaclass=YAMLObjectMetaclass): + """ + An object that can dump itself to a YAML stream + and load itself from a YAML stream. + """ + + __slots__ = () # no direct instantiation, so allow immutable subclasses + + yaml_loader = [Loader, FullLoader, UnsafeLoader] + yaml_dumper = Dumper + + 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) + + @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) + diff --git a/third_party/python/PyYAML/lib3/yaml/composer.py b/third_party/python/PyYAML/lib3/yaml/composer.py new file mode 100644 index 0000000000..6d15cb40e3 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/composer.py @@ -0,0 +1,139 @@ + +__all__ = ['Composer', 'ComposerError'] + +from .error import MarkedYAMLError +from .events import * +from .nodes import * + +class ComposerError(MarkedYAMLError): + pass + +class Composer: + + def __init__(self): + self.anchors = {} + + def check_node(self): + # Drop the STREAM-START event. + if self.check_event(StreamStartEvent): + self.get_event() + + # If there are more documents available? + return not self.check_event(StreamEndEvent) + + def get_node(self): + # Get the root node of the next document. + if not self.check_event(StreamEndEvent): + return self.compose_document() + + def get_single_node(self): + # Drop the STREAM-START event. + self.get_event() + + # Compose a document if the stream is not empty. + document = None + if not self.check_event(StreamEndEvent): + document = self.compose_document() + + # Ensure that the stream contains no more documents. + if not self.check_event(StreamEndEvent): + event = self.get_event() + raise ComposerError("expected a single document in the stream", + document.start_mark, "but found another document", + event.start_mark) + + # Drop the STREAM-END event. + self.get_event() + + return document + + def compose_document(self): + # Drop the DOCUMENT-START event. + self.get_event() + + # Compose the root node. + node = self.compose_node(None, None) + + # Drop the DOCUMENT-END event. + self.get_event() + + self.anchors = {} + return node + + def compose_node(self, parent, index): + if self.check_event(AliasEvent): + event = self.get_event() + anchor = event.anchor + if anchor not in self.anchors: + raise ComposerError(None, None, "found undefined alias %r" + % anchor, event.start_mark) + return self.anchors[anchor] + event = self.peek_event() + anchor = event.anchor + if anchor is not None: + if anchor in self.anchors: + raise ComposerError("found duplicate anchor %r; first occurrence" + % anchor, self.anchors[anchor].start_mark, + "second occurrence", event.start_mark) + self.descend_resolver(parent, index) + if self.check_event(ScalarEvent): + node = self.compose_scalar_node(anchor) + elif self.check_event(SequenceStartEvent): + node = self.compose_sequence_node(anchor) + elif self.check_event(MappingStartEvent): + node = self.compose_mapping_node(anchor) + self.ascend_resolver() + return node + + def compose_scalar_node(self, anchor): + event = self.get_event() + tag = event.tag + if tag is None or tag == '!': + tag = self.resolve(ScalarNode, event.value, event.implicit) + node = ScalarNode(tag, event.value, + event.start_mark, event.end_mark, style=event.style) + if anchor is not None: + self.anchors[anchor] = node + return node + + def compose_sequence_node(self, anchor): + start_event = self.get_event() + tag = start_event.tag + if tag is None or tag == '!': + tag = self.resolve(SequenceNode, None, start_event.implicit) + node = SequenceNode(tag, [], + start_event.start_mark, None, + flow_style=start_event.flow_style) + if anchor is not None: + self.anchors[anchor] = node + index = 0 + while not self.check_event(SequenceEndEvent): + node.value.append(self.compose_node(node, index)) + index += 1 + end_event = self.get_event() + node.end_mark = end_event.end_mark + return node + + def compose_mapping_node(self, anchor): + start_event = self.get_event() + tag = start_event.tag + if tag is None or tag == '!': + tag = self.resolve(MappingNode, None, start_event.implicit) + node = MappingNode(tag, [], + start_event.start_mark, None, + flow_style=start_event.flow_style) + if anchor is not None: + self.anchors[anchor] = node + while not self.check_event(MappingEndEvent): + #key_event = self.peek_event() + item_key = self.compose_node(node, None) + #if item_key in node.value: + # raise ComposerError("while composing a mapping", start_event.start_mark, + # "found duplicate key", key_event.start_mark) + item_value = self.compose_node(node, item_key) + #node.value[item_key] = item_value + node.value.append((item_key, item_value)) + end_event = self.get_event() + node.end_mark = end_event.end_mark + return node + diff --git a/third_party/python/PyYAML/lib3/yaml/constructor.py b/third_party/python/PyYAML/lib3/yaml/constructor.py new file mode 100644 index 0000000000..1948b125c2 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/constructor.py @@ -0,0 +1,748 @@ + +__all__ = [ + 'BaseConstructor', + 'SafeConstructor', + 'FullConstructor', + 'UnsafeConstructor', + 'Constructor', + 'ConstructorError' +] + +from .error import * +from .nodes import * + +import collections.abc, datetime, base64, binascii, re, sys, types + +class ConstructorError(MarkedYAMLError): + pass + +class BaseConstructor: + + yaml_constructors = {} + yaml_multi_constructors = {} + + def __init__(self): + self.constructed_objects = {} + self.recursive_objects = {} + self.state_generators = [] + self.deep_construct = False + + def check_data(self): + # If there are more documents available? + return self.check_node() + + def check_state_key(self, key): + """Block special attributes/methods from being set in a newly created + object, to prevent user-controlled methods from being called during + deserialization""" + if self.get_state_keys_blacklist_regexp().match(key): + raise ConstructorError(None, None, + "blacklisted key '%s' in instance state found" % (key,), None) + + def get_data(self): + # Construct and return the next document. + if self.check_node(): + return self.construct_document(self.get_node()) + + def get_single_data(self): + # Ensure that the stream contains a single document and construct it. + node = self.get_single_node() + if node is not None: + return self.construct_document(node) + return None + + def construct_document(self, node): + data = self.construct_object(node) + while self.state_generators: + state_generators = self.state_generators + self.state_generators = [] + for generator in state_generators: + for dummy in generator: + pass + self.constructed_objects = {} + self.recursive_objects = {} + self.deep_construct = False + return data + + def construct_object(self, node, deep=False): + if node in self.constructed_objects: + return self.constructed_objects[node] + if deep: + old_deep = self.deep_construct + self.deep_construct = True + if node in self.recursive_objects: + raise ConstructorError(None, None, + "found unconstructable recursive node", node.start_mark) + self.recursive_objects[node] = None + constructor = None + tag_suffix = None + if node.tag in self.yaml_constructors: + constructor = self.yaml_constructors[node.tag] + else: + for tag_prefix in self.yaml_multi_constructors: + if tag_prefix is not None and node.tag.startswith(tag_prefix): + tag_suffix = node.tag[len(tag_prefix):] + constructor = self.yaml_multi_constructors[tag_prefix] + break + else: + if None in self.yaml_multi_constructors: + tag_suffix = node.tag + constructor = self.yaml_multi_constructors[None] + elif None in self.yaml_constructors: + constructor = self.yaml_constructors[None] + elif isinstance(node, ScalarNode): + constructor = self.__class__.construct_scalar + elif isinstance(node, SequenceNode): + constructor = self.__class__.construct_sequence + elif isinstance(node, MappingNode): + constructor = self.__class__.construct_mapping + if tag_suffix is None: + data = constructor(self, node) + else: + data = constructor(self, tag_suffix, node) + if isinstance(data, types.GeneratorType): + generator = data + data = next(generator) + if self.deep_construct: + for dummy in generator: + pass + else: + self.state_generators.append(generator) + self.constructed_objects[node] = data + del self.recursive_objects[node] + if deep: + self.deep_construct = old_deep + return data + + def construct_scalar(self, node): + if not isinstance(node, ScalarNode): + raise ConstructorError(None, None, + "expected a scalar node, but found %s" % node.id, + node.start_mark) + return node.value + + def construct_sequence(self, node, deep=False): + if not isinstance(node, SequenceNode): + raise ConstructorError(None, None, + "expected a sequence node, but found %s" % node.id, + node.start_mark) + return [self.construct_object(child, deep=deep) + for child in node.value] + + def construct_mapping(self, node, deep=False): + if not isinstance(node, MappingNode): + raise ConstructorError(None, None, + "expected a mapping node, but found %s" % node.id, + node.start_mark) + mapping = {} + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) + if not isinstance(key, collections.abc.Hashable): + raise ConstructorError("while constructing a mapping", node.start_mark, + "found unhashable key", key_node.start_mark) + value = self.construct_object(value_node, deep=deep) + mapping[key] = value + return mapping + + def construct_pairs(self, node, deep=False): + if not isinstance(node, MappingNode): + raise ConstructorError(None, None, + "expected a mapping node, but found %s" % node.id, + node.start_mark) + pairs = [] + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) + value = self.construct_object(value_node, deep=deep) + pairs.append((key, value)) + return pairs + + @classmethod + def add_constructor(cls, tag, constructor): + if not 'yaml_constructors' in cls.__dict__: + cls.yaml_constructors = cls.yaml_constructors.copy() + cls.yaml_constructors[tag] = constructor + + @classmethod + def add_multi_constructor(cls, tag_prefix, multi_constructor): + if not 'yaml_multi_constructors' in cls.__dict__: + cls.yaml_multi_constructors = cls.yaml_multi_constructors.copy() + cls.yaml_multi_constructors[tag_prefix] = multi_constructor + +class SafeConstructor(BaseConstructor): + + def construct_scalar(self, node): + if isinstance(node, MappingNode): + for key_node, value_node in node.value: + if key_node.tag == 'tag:yaml.org,2002:value': + return self.construct_scalar(value_node) + return super().construct_scalar(node) + + def flatten_mapping(self, node): + merge = [] + index = 0 + while index < len(node.value): + key_node, value_node = node.value[index] + if key_node.tag == 'tag:yaml.org,2002:merge': + del node.value[index] + if isinstance(value_node, MappingNode): + self.flatten_mapping(value_node) + merge.extend(value_node.value) + elif isinstance(value_node, SequenceNode): + submerge = [] + for subnode in value_node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing a mapping", + node.start_mark, + "expected a mapping for merging, but found %s" + % subnode.id, subnode.start_mark) + self.flatten_mapping(subnode) + submerge.append(subnode.value) + submerge.reverse() + for value in submerge: + merge.extend(value) + else: + raise ConstructorError("while constructing a mapping", node.start_mark, + "expected a mapping or list of mappings for merging, but found %s" + % value_node.id, value_node.start_mark) + elif key_node.tag == 'tag:yaml.org,2002:value': + key_node.tag = 'tag:yaml.org,2002:str' + index += 1 + else: + index += 1 + if merge: + node.value = merge + node.value + + def construct_mapping(self, node, deep=False): + if isinstance(node, MappingNode): + self.flatten_mapping(node) + return super().construct_mapping(node, deep=deep) + + def construct_yaml_null(self, node): + self.construct_scalar(node) + return None + + bool_values = { + 'yes': True, + 'no': False, + 'true': True, + 'false': False, + 'on': True, + 'off': False, + } + + def construct_yaml_bool(self, node): + value = self.construct_scalar(node) + return self.bool_values[value.lower()] + + def construct_yaml_int(self, node): + value = self.construct_scalar(node) + value = value.replace('_', '') + sign = +1 + if value[0] == '-': + sign = -1 + if value[0] in '+-': + value = value[1:] + if value == '0': + return 0 + elif value.startswith('0b'): + return sign*int(value[2:], 2) + elif value.startswith('0x'): + return sign*int(value[2:], 16) + elif value[0] == '0': + return sign*int(value, 8) + elif ':' in value: + digits = [int(part) for part in value.split(':')] + digits.reverse() + base = 1 + value = 0 + for digit in digits: + value += digit*base + base *= 60 + return sign*value + else: + return sign*int(value) + + inf_value = 1e300 + while inf_value != inf_value*inf_value: + inf_value *= inf_value + nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99). + + def construct_yaml_float(self, node): + value = self.construct_scalar(node) + value = value.replace('_', '').lower() + sign = +1 + if value[0] == '-': + sign = -1 + if value[0] in '+-': + value = value[1:] + if value == '.inf': + return sign*self.inf_value + elif value == '.nan': + return self.nan_value + elif ':' in value: + digits = [float(part) for part in value.split(':')] + digits.reverse() + base = 1 + value = 0.0 + for digit in digits: + value += digit*base + base *= 60 + return sign*value + else: + return sign*float(value) + + def construct_yaml_binary(self, node): + try: + value = self.construct_scalar(node).encode('ascii') + except UnicodeEncodeError as exc: + raise ConstructorError(None, None, + "failed to convert base64 data into ascii: %s" % exc, + node.start_mark) + try: + if hasattr(base64, 'decodebytes'): + return base64.decodebytes(value) + else: + return base64.decodestring(value) + except binascii.Error as exc: + raise ConstructorError(None, None, + "failed to decode base64 data: %s" % exc, node.start_mark) + + timestamp_regexp = re.compile( + r'''^(?P<year>[0-9][0-9][0-9][0-9]) + -(?P<month>[0-9][0-9]?) + -(?P<day>[0-9][0-9]?) + (?:(?:[Tt]|[ \t]+) + (?P<hour>[0-9][0-9]?) + :(?P<minute>[0-9][0-9]) + :(?P<second>[0-9][0-9]) + (?:\.(?P<fraction>[0-9]*))? + (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?) + (?::(?P<tz_minute>[0-9][0-9]))?))?)?$''', re.X) + + def construct_yaml_timestamp(self, node): + value = self.construct_scalar(node) + match = self.timestamp_regexp.match(node.value) + values = match.groupdict() + year = int(values['year']) + month = int(values['month']) + day = int(values['day']) + if not values['hour']: + return datetime.date(year, month, day) + hour = int(values['hour']) + minute = int(values['minute']) + second = int(values['second']) + fraction = 0 + tzinfo = None + if values['fraction']: + fraction = values['fraction'][:6] + while len(fraction) < 6: + fraction += '0' + fraction = int(fraction) + if values['tz_sign']: + tz_hour = int(values['tz_hour']) + tz_minute = int(values['tz_minute'] or 0) + delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute) + if values['tz_sign'] == '-': + delta = -delta + tzinfo = datetime.timezone(delta) + elif values['tz']: + tzinfo = datetime.timezone.utc + return datetime.datetime(year, month, day, hour, minute, second, fraction, + tzinfo=tzinfo) + + def construct_yaml_omap(self, node): + # Note: we do not check for duplicate keys, because it's too + # CPU-expensive. + omap = [] + yield omap + if not isinstance(node, SequenceNode): + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a sequence, but found %s" % node.id, node.start_mark) + for subnode in node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a mapping of length 1, but found %s" % subnode.id, + subnode.start_mark) + if len(subnode.value) != 1: + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a single mapping item, but found %d items" % len(subnode.value), + subnode.start_mark) + key_node, value_node = subnode.value[0] + key = self.construct_object(key_node) + value = self.construct_object(value_node) + omap.append((key, value)) + + def construct_yaml_pairs(self, node): + # Note: the same code as `construct_yaml_omap`. + pairs = [] + yield pairs + if not isinstance(node, SequenceNode): + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a sequence, but found %s" % node.id, node.start_mark) + for subnode in node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a mapping of length 1, but found %s" % subnode.id, + subnode.start_mark) + if len(subnode.value) != 1: + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a single mapping item, but found %d items" % len(subnode.value), + subnode.start_mark) + key_node, value_node = subnode.value[0] + key = self.construct_object(key_node) + value = self.construct_object(value_node) + pairs.append((key, value)) + + def construct_yaml_set(self, node): + data = set() + yield data + value = self.construct_mapping(node) + data.update(value) + + def construct_yaml_str(self, node): + return self.construct_scalar(node) + + def construct_yaml_seq(self, node): + data = [] + yield data + data.extend(self.construct_sequence(node)) + + def construct_yaml_map(self, node): + data = {} + yield data + value = self.construct_mapping(node) + data.update(value) + + def construct_yaml_object(self, node, cls): + data = cls.__new__(cls) + yield data + if hasattr(data, '__setstate__'): + state = self.construct_mapping(node, deep=True) + data.__setstate__(state) + else: + state = self.construct_mapping(node) + data.__dict__.update(state) + + def construct_undefined(self, node): + raise ConstructorError(None, None, + "could not determine a constructor for the tag %r" % node.tag, + node.start_mark) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:null', + SafeConstructor.construct_yaml_null) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:bool', + SafeConstructor.construct_yaml_bool) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:int', + SafeConstructor.construct_yaml_int) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:float', + SafeConstructor.construct_yaml_float) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:binary', + SafeConstructor.construct_yaml_binary) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:timestamp', + SafeConstructor.construct_yaml_timestamp) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:omap', + SafeConstructor.construct_yaml_omap) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:pairs', + SafeConstructor.construct_yaml_pairs) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:set', + SafeConstructor.construct_yaml_set) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:str', + SafeConstructor.construct_yaml_str) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:seq', + SafeConstructor.construct_yaml_seq) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:map', + SafeConstructor.construct_yaml_map) + +SafeConstructor.add_constructor(None, + SafeConstructor.construct_undefined) + +class FullConstructor(SafeConstructor): + # 'extend' is blacklisted because it is used by + # construct_python_object_apply to add `listitems` to a newly generate + # python instance + def get_state_keys_blacklist(self): + return ['^extend$', '^__.*__$'] + + def get_state_keys_blacklist_regexp(self): + if not hasattr(self, 'state_keys_blacklist_regexp'): + self.state_keys_blacklist_regexp = re.compile('(' + '|'.join(self.get_state_keys_blacklist()) + ')') + return self.state_keys_blacklist_regexp + + def construct_python_str(self, node): + return self.construct_scalar(node) + + def construct_python_unicode(self, node): + return self.construct_scalar(node) + + def construct_python_bytes(self, node): + try: + value = self.construct_scalar(node).encode('ascii') + except UnicodeEncodeError as exc: + raise ConstructorError(None, None, + "failed to convert base64 data into ascii: %s" % exc, + node.start_mark) + try: + if hasattr(base64, 'decodebytes'): + return base64.decodebytes(value) + else: + return base64.decodestring(value) + except binascii.Error as exc: + raise ConstructorError(None, None, + "failed to decode base64 data: %s" % exc, node.start_mark) + + def construct_python_long(self, node): + return self.construct_yaml_int(node) + + def construct_python_complex(self, node): + return complex(self.construct_scalar(node)) + + def construct_python_tuple(self, node): + return tuple(self.construct_sequence(node)) + + def find_python_module(self, name, mark, unsafe=False): + if not name: + raise ConstructorError("while constructing a Python module", mark, + "expected non-empty name appended to the tag", mark) + if unsafe: + try: + __import__(name) + except ImportError as exc: + raise ConstructorError("while constructing a Python module", mark, + "cannot find module %r (%s)" % (name, exc), mark) + if name not in sys.modules: + raise ConstructorError("while constructing a Python module", mark, + "module %r is not imported" % name, mark) + return sys.modules[name] + + def find_python_name(self, name, mark, unsafe=False): + if not name: + raise ConstructorError("while constructing a Python object", mark, + "expected non-empty name appended to the tag", mark) + if '.' in name: + module_name, object_name = name.rsplit('.', 1) + else: + module_name = 'builtins' + object_name = name + if unsafe: + try: + __import__(module_name) + except ImportError as exc: + raise ConstructorError("while constructing a Python object", mark, + "cannot find module %r (%s)" % (module_name, exc), mark) + if module_name not in sys.modules: + raise ConstructorError("while constructing a Python object", mark, + "module %r is not imported" % module_name, mark) + module = sys.modules[module_name] + if not hasattr(module, object_name): + raise ConstructorError("while constructing a Python object", mark, + "cannot find %r in the module %r" + % (object_name, module.__name__), mark) + return getattr(module, object_name) + + def construct_python_name(self, suffix, node): + value = self.construct_scalar(node) + if value: + raise ConstructorError("while constructing a Python name", node.start_mark, + "expected the empty value, but found %r" % value, node.start_mark) + return self.find_python_name(suffix, node.start_mark) + + def construct_python_module(self, suffix, node): + value = self.construct_scalar(node) + if value: + raise ConstructorError("while constructing a Python module", node.start_mark, + "expected the empty value, but found %r" % value, node.start_mark) + return self.find_python_module(suffix, node.start_mark) + + def make_python_instance(self, suffix, node, + args=None, kwds=None, newobj=False, unsafe=False): + if not args: + args = [] + if not kwds: + kwds = {} + cls = self.find_python_name(suffix, node.start_mark) + if not (unsafe or isinstance(cls, type)): + raise ConstructorError("while constructing a Python instance", node.start_mark, + "expected a class, but found %r" % type(cls), + node.start_mark) + if newobj and isinstance(cls, type): + return cls.__new__(cls, *args, **kwds) + else: + return cls(*args, **kwds) + + def set_python_instance_state(self, instance, state, unsafe=False): + if hasattr(instance, '__setstate__'): + instance.__setstate__(state) + else: + slotstate = {} + if isinstance(state, tuple) and len(state) == 2: + state, slotstate = state + if hasattr(instance, '__dict__'): + if not unsafe and state: + for key in state.keys(): + self.check_state_key(key) + instance.__dict__.update(state) + elif state: + slotstate.update(state) + for key, value in slotstate.items(): + if not unsafe: + self.check_state_key(key) + setattr(instance, key, value) + + def construct_python_object(self, suffix, node): + # Format: + # !!python/object:module.name { ... state ... } + instance = self.make_python_instance(suffix, node, newobj=True) + yield instance + deep = hasattr(instance, '__setstate__') + state = self.construct_mapping(node, deep=deep) + self.set_python_instance_state(instance, state) + + def construct_python_object_apply(self, suffix, node, newobj=False): + # Format: + # !!python/object/apply # (or !!python/object/new) + # args: [ ... arguments ... ] + # kwds: { ... keywords ... } + # state: ... state ... + # listitems: [ ... listitems ... ] + # dictitems: { ... dictitems ... } + # or short format: + # !!python/object/apply [ ... arguments ... ] + # The difference between !!python/object/apply and !!python/object/new + # is how an object is created, check make_python_instance for details. + if isinstance(node, SequenceNode): + args = self.construct_sequence(node, deep=True) + kwds = {} + state = {} + listitems = [] + dictitems = {} + else: + value = self.construct_mapping(node, deep=True) + args = value.get('args', []) + kwds = value.get('kwds', {}) + state = value.get('state', {}) + listitems = value.get('listitems', []) + dictitems = value.get('dictitems', {}) + instance = self.make_python_instance(suffix, node, args, kwds, newobj) + if state: + self.set_python_instance_state(instance, state) + if listitems: + instance.extend(listitems) + if dictitems: + for key in dictitems: + instance[key] = dictitems[key] + return instance + + def construct_python_object_new(self, suffix, node): + return self.construct_python_object_apply(suffix, node, newobj=True) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/none', + FullConstructor.construct_yaml_null) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/bool', + FullConstructor.construct_yaml_bool) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/str', + FullConstructor.construct_python_str) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/unicode', + FullConstructor.construct_python_unicode) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/bytes', + FullConstructor.construct_python_bytes) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/int', + FullConstructor.construct_yaml_int) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/long', + FullConstructor.construct_python_long) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/float', + FullConstructor.construct_yaml_float) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/complex', + FullConstructor.construct_python_complex) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/list', + FullConstructor.construct_yaml_seq) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/tuple', + FullConstructor.construct_python_tuple) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/dict', + FullConstructor.construct_yaml_map) + +FullConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/name:', + FullConstructor.construct_python_name) + +FullConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/module:', + FullConstructor.construct_python_module) + +FullConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/object:', + FullConstructor.construct_python_object) + +FullConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/object/new:', + FullConstructor.construct_python_object_new) + +class UnsafeConstructor(FullConstructor): + + def find_python_module(self, name, mark): + return super(UnsafeConstructor, self).find_python_module(name, mark, unsafe=True) + + def find_python_name(self, name, mark): + return super(UnsafeConstructor, self).find_python_name(name, mark, unsafe=True) + + def make_python_instance(self, suffix, node, args=None, kwds=None, newobj=False): + return super(UnsafeConstructor, self).make_python_instance( + suffix, node, args, kwds, newobj, unsafe=True) + + def set_python_instance_state(self, instance, state): + return super(UnsafeConstructor, self).set_python_instance_state( + instance, state, unsafe=True) + +UnsafeConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/object/apply:', + UnsafeConstructor.construct_python_object_apply) + +# Constructor is same as UnsafeConstructor. Need to leave this in place in case +# people have extended it directly. +class Constructor(UnsafeConstructor): + pass diff --git a/third_party/python/PyYAML/lib3/yaml/cyaml.py b/third_party/python/PyYAML/lib3/yaml/cyaml.py new file mode 100644 index 0000000000..1e606c74b9 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/cyaml.py @@ -0,0 +1,101 @@ + +__all__ = [ + 'CBaseLoader', 'CSafeLoader', 'CFullLoader', 'CUnsafeLoader', 'CLoader', + 'CBaseDumper', 'CSafeDumper', 'CDumper' +] + +from _yaml import CParser, CEmitter + +from .constructor import * + +from .serializer import * +from .representer import * + +from .resolver import * + +class CBaseLoader(CParser, BaseConstructor, BaseResolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + BaseConstructor.__init__(self) + BaseResolver.__init__(self) + +class CSafeLoader(CParser, SafeConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + SafeConstructor.__init__(self) + Resolver.__init__(self) + +class CFullLoader(CParser, FullConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + FullConstructor.__init__(self) + Resolver.__init__(self) + +class CUnsafeLoader(CParser, UnsafeConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + UnsafeConstructor.__init__(self) + Resolver.__init__(self) + +class CLoader(CParser, Constructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + Constructor.__init__(self) + Resolver.__init__(self) + +class CBaseDumper(CEmitter, BaseRepresenter, BaseResolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class CSafeDumper(CEmitter, SafeRepresenter, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + SafeRepresenter.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class CDumper(CEmitter, Serializer, Representer, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + diff --git a/third_party/python/PyYAML/lib3/yaml/dumper.py b/third_party/python/PyYAML/lib3/yaml/dumper.py new file mode 100644 index 0000000000..6aadba551f --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/dumper.py @@ -0,0 +1,62 @@ + +__all__ = ['BaseDumper', 'SafeDumper', 'Dumper'] + +from .emitter import * +from .serializer import * +from .representer import * +from .resolver import * + +class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + SafeRepresenter.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class Dumper(Emitter, Serializer, Representer, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + diff --git a/third_party/python/PyYAML/lib3/yaml/emitter.py b/third_party/python/PyYAML/lib3/yaml/emitter.py new file mode 100644 index 0000000000..a664d01116 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/emitter.py @@ -0,0 +1,1137 @@ + +# Emitter expects events obeying the following grammar: +# stream ::= STREAM-START document* STREAM-END +# document ::= DOCUMENT-START node DOCUMENT-END +# node ::= SCALAR | sequence | mapping +# sequence ::= SEQUENCE-START node* SEQUENCE-END +# mapping ::= MAPPING-START (node node)* MAPPING-END + +__all__ = ['Emitter', 'EmitterError'] + +from .error import YAMLError +from .events import * + +class EmitterError(YAMLError): + pass + +class ScalarAnalysis: + def __init__(self, scalar, empty, multiline, + allow_flow_plain, allow_block_plain, + allow_single_quoted, allow_double_quoted, + allow_block): + self.scalar = scalar + self.empty = empty + self.multiline = multiline + self.allow_flow_plain = allow_flow_plain + self.allow_block_plain = allow_block_plain + self.allow_single_quoted = allow_single_quoted + self.allow_double_quoted = allow_double_quoted + self.allow_block = allow_block + +class Emitter: + + DEFAULT_TAG_PREFIXES = { + '!' : '!', + 'tag:yaml.org,2002:' : '!!', + } + + def __init__(self, stream, canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None): + + # The stream should have the methods `write` and possibly `flush`. + self.stream = stream + + # Encoding can be overridden by STREAM-START. + self.encoding = None + + # Emitter is a state machine with a stack of states to handle nested + # structures. + self.states = [] + self.state = self.expect_stream_start + + # Current event and the event queue. + self.events = [] + self.event = None + + # The current indentation level and the stack of previous indents. + self.indents = [] + self.indent = None + + # Flow level. + self.flow_level = 0 + + # Contexts. + self.root_context = False + self.sequence_context = False + self.mapping_context = False + self.simple_key_context = False + + # Characteristics of the last emitted character: + # - current position. + # - is it a whitespace? + # - is it an indention character + # (indentation space, '-', '?', or ':')? + self.line = 0 + self.column = 0 + self.whitespace = True + self.indention = True + + # Whether the document requires an explicit document indicator + self.open_ended = False + + # Formatting details. + self.canonical = canonical + self.allow_unicode = allow_unicode + self.best_indent = 2 + if indent and 1 < indent < 10: + self.best_indent = indent + self.best_width = 80 + if width and width > self.best_indent*2: + self.best_width = width + self.best_line_break = '\n' + if line_break in ['\r', '\n', '\r\n']: + self.best_line_break = line_break + + # Tag prefixes. + self.tag_prefixes = None + + # Prepared anchor and tag. + self.prepared_anchor = None + self.prepared_tag = None + + # Scalar analysis and style. + self.analysis = None + self.style = None + + def dispose(self): + # Reset the state attributes (to clear self-references) + self.states = [] + self.state = None + + def emit(self, event): + self.events.append(event) + while not self.need_more_events(): + self.event = self.events.pop(0) + self.state() + self.event = None + + # In some cases, we wait for a few next events before emitting. + + def need_more_events(self): + if not self.events: + return True + event = self.events[0] + if isinstance(event, DocumentStartEvent): + return self.need_events(1) + elif isinstance(event, SequenceStartEvent): + return self.need_events(2) + elif isinstance(event, MappingStartEvent): + return self.need_events(3) + else: + return False + + def need_events(self, count): + level = 0 + for event in self.events[1:]: + if isinstance(event, (DocumentStartEvent, CollectionStartEvent)): + level += 1 + elif isinstance(event, (DocumentEndEvent, CollectionEndEvent)): + level -= 1 + elif isinstance(event, StreamEndEvent): + level = -1 + if level < 0: + return False + return (len(self.events) < count+1) + + def increase_indent(self, flow=False, indentless=False): + self.indents.append(self.indent) + if self.indent is None: + if flow: + self.indent = self.best_indent + else: + self.indent = 0 + elif not indentless: + self.indent += self.best_indent + + # States. + + # Stream handlers. + + def expect_stream_start(self): + if isinstance(self.event, StreamStartEvent): + if self.event.encoding and not hasattr(self.stream, 'encoding'): + self.encoding = self.event.encoding + self.write_stream_start() + self.state = self.expect_first_document_start + else: + raise EmitterError("expected StreamStartEvent, but got %s" + % self.event) + + def expect_nothing(self): + raise EmitterError("expected nothing, but got %s" % self.event) + + # Document handlers. + + def expect_first_document_start(self): + return self.expect_document_start(first=True) + + def expect_document_start(self, first=False): + if isinstance(self.event, DocumentStartEvent): + if (self.event.version or self.event.tags) and self.open_ended: + self.write_indicator('...', True) + self.write_indent() + if self.event.version: + version_text = self.prepare_version(self.event.version) + self.write_version_directive(version_text) + self.tag_prefixes = self.DEFAULT_TAG_PREFIXES.copy() + if self.event.tags: + handles = sorted(self.event.tags.keys()) + for handle in handles: + prefix = self.event.tags[handle] + self.tag_prefixes[prefix] = handle + handle_text = self.prepare_tag_handle(handle) + prefix_text = self.prepare_tag_prefix(prefix) + self.write_tag_directive(handle_text, prefix_text) + implicit = (first and not self.event.explicit and not self.canonical + and not self.event.version and not self.event.tags + and not self.check_empty_document()) + if not implicit: + self.write_indent() + self.write_indicator('---', True) + if self.canonical: + self.write_indent() + self.state = self.expect_document_root + elif isinstance(self.event, StreamEndEvent): + if self.open_ended: + self.write_indicator('...', True) + self.write_indent() + self.write_stream_end() + self.state = self.expect_nothing + else: + raise EmitterError("expected DocumentStartEvent, but got %s" + % self.event) + + def expect_document_end(self): + if isinstance(self.event, DocumentEndEvent): + self.write_indent() + if self.event.explicit: + self.write_indicator('...', True) + self.write_indent() + self.flush_stream() + self.state = self.expect_document_start + else: + raise EmitterError("expected DocumentEndEvent, but got %s" + % self.event) + + def expect_document_root(self): + self.states.append(self.expect_document_end) + self.expect_node(root=True) + + # Node handlers. + + def expect_node(self, root=False, sequence=False, mapping=False, + simple_key=False): + self.root_context = root + self.sequence_context = sequence + self.mapping_context = mapping + self.simple_key_context = simple_key + if isinstance(self.event, AliasEvent): + self.expect_alias() + elif isinstance(self.event, (ScalarEvent, CollectionStartEvent)): + self.process_anchor('&') + self.process_tag() + if isinstance(self.event, ScalarEvent): + self.expect_scalar() + elif isinstance(self.event, SequenceStartEvent): + if self.flow_level or self.canonical or self.event.flow_style \ + or self.check_empty_sequence(): + self.expect_flow_sequence() + else: + self.expect_block_sequence() + elif isinstance(self.event, MappingStartEvent): + if self.flow_level or self.canonical or self.event.flow_style \ + or self.check_empty_mapping(): + self.expect_flow_mapping() + else: + self.expect_block_mapping() + else: + raise EmitterError("expected NodeEvent, but got %s" % self.event) + + def expect_alias(self): + if self.event.anchor is None: + raise EmitterError("anchor is not specified for alias") + self.process_anchor('*') + self.state = self.states.pop() + + def expect_scalar(self): + self.increase_indent(flow=True) + self.process_scalar() + self.indent = self.indents.pop() + self.state = self.states.pop() + + # Flow sequence handlers. + + def expect_flow_sequence(self): + self.write_indicator('[', True, whitespace=True) + self.flow_level += 1 + self.increase_indent(flow=True) + self.state = self.expect_first_flow_sequence_item + + def expect_first_flow_sequence_item(self): + if isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + self.write_indicator(']', False) + self.state = self.states.pop() + else: + if self.canonical or self.column > self.best_width: + self.write_indent() + self.states.append(self.expect_flow_sequence_item) + self.expect_node(sequence=True) + + def expect_flow_sequence_item(self): + if isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + if self.canonical: + self.write_indicator(',', False) + self.write_indent() + self.write_indicator(']', False) + self.state = self.states.pop() + else: + self.write_indicator(',', False) + if self.canonical or self.column > self.best_width: + self.write_indent() + self.states.append(self.expect_flow_sequence_item) + self.expect_node(sequence=True) + + # Flow mapping handlers. + + def expect_flow_mapping(self): + self.write_indicator('{', True, whitespace=True) + self.flow_level += 1 + self.increase_indent(flow=True) + self.state = self.expect_first_flow_mapping_key + + def expect_first_flow_mapping_key(self): + if isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + self.write_indicator('}', False) + self.state = self.states.pop() + else: + if self.canonical or self.column > self.best_width: + self.write_indent() + if not self.canonical and self.check_simple_key(): + self.states.append(self.expect_flow_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator('?', True) + self.states.append(self.expect_flow_mapping_value) + self.expect_node(mapping=True) + + def expect_flow_mapping_key(self): + if isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + if self.canonical: + self.write_indicator(',', False) + self.write_indent() + self.write_indicator('}', False) + self.state = self.states.pop() + else: + self.write_indicator(',', False) + if self.canonical or self.column > self.best_width: + self.write_indent() + if not self.canonical and self.check_simple_key(): + self.states.append(self.expect_flow_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator('?', True) + self.states.append(self.expect_flow_mapping_value) + self.expect_node(mapping=True) + + def expect_flow_mapping_simple_value(self): + self.write_indicator(':', False) + self.states.append(self.expect_flow_mapping_key) + self.expect_node(mapping=True) + + def expect_flow_mapping_value(self): + if self.canonical or self.column > self.best_width: + self.write_indent() + self.write_indicator(':', True) + self.states.append(self.expect_flow_mapping_key) + self.expect_node(mapping=True) + + # Block sequence handlers. + + def expect_block_sequence(self): + indentless = (self.mapping_context and not self.indention) + self.increase_indent(flow=False, indentless=indentless) + self.state = self.expect_first_block_sequence_item + + def expect_first_block_sequence_item(self): + return self.expect_block_sequence_item(first=True) + + def expect_block_sequence_item(self, first=False): + if not first and isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.state = self.states.pop() + else: + self.write_indent() + self.write_indicator('-', True, indention=True) + self.states.append(self.expect_block_sequence_item) + self.expect_node(sequence=True) + + # Block mapping handlers. + + def expect_block_mapping(self): + self.increase_indent(flow=False) + self.state = self.expect_first_block_mapping_key + + def expect_first_block_mapping_key(self): + return self.expect_block_mapping_key(first=True) + + def expect_block_mapping_key(self, first=False): + if not first and isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.state = self.states.pop() + else: + self.write_indent() + if self.check_simple_key(): + self.states.append(self.expect_block_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator('?', True, indention=True) + self.states.append(self.expect_block_mapping_value) + self.expect_node(mapping=True) + + def expect_block_mapping_simple_value(self): + self.write_indicator(':', False) + self.states.append(self.expect_block_mapping_key) + self.expect_node(mapping=True) + + def expect_block_mapping_value(self): + self.write_indent() + self.write_indicator(':', True, indention=True) + self.states.append(self.expect_block_mapping_key) + self.expect_node(mapping=True) + + # Checkers. + + def check_empty_sequence(self): + return (isinstance(self.event, SequenceStartEvent) and self.events + and isinstance(self.events[0], SequenceEndEvent)) + + def check_empty_mapping(self): + return (isinstance(self.event, MappingStartEvent) and self.events + and isinstance(self.events[0], MappingEndEvent)) + + def check_empty_document(self): + if not isinstance(self.event, DocumentStartEvent) or not self.events: + return False + event = self.events[0] + return (isinstance(event, ScalarEvent) and event.anchor is None + and event.tag is None and event.implicit and event.value == '') + + def check_simple_key(self): + length = 0 + if isinstance(self.event, NodeEvent) and self.event.anchor is not None: + if self.prepared_anchor is None: + self.prepared_anchor = self.prepare_anchor(self.event.anchor) + length += len(self.prepared_anchor) + if isinstance(self.event, (ScalarEvent, CollectionStartEvent)) \ + and self.event.tag is not None: + if self.prepared_tag is None: + self.prepared_tag = self.prepare_tag(self.event.tag) + length += len(self.prepared_tag) + if isinstance(self.event, ScalarEvent): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + length += len(self.analysis.scalar) + return (length < 128 and (isinstance(self.event, AliasEvent) + or (isinstance(self.event, ScalarEvent) + and not self.analysis.empty and not self.analysis.multiline) + or self.check_empty_sequence() or self.check_empty_mapping())) + + # Anchor, Tag, and Scalar processors. + + def process_anchor(self, indicator): + if self.event.anchor is None: + self.prepared_anchor = None + return + if self.prepared_anchor is None: + self.prepared_anchor = self.prepare_anchor(self.event.anchor) + if self.prepared_anchor: + self.write_indicator(indicator+self.prepared_anchor, True) + self.prepared_anchor = None + + def process_tag(self): + tag = self.event.tag + if isinstance(self.event, ScalarEvent): + if self.style is None: + self.style = self.choose_scalar_style() + if ((not self.canonical or tag is None) and + ((self.style == '' and self.event.implicit[0]) + or (self.style != '' and self.event.implicit[1]))): + self.prepared_tag = None + return + if self.event.implicit[0] and tag is None: + tag = '!' + self.prepared_tag = None + else: + if (not self.canonical or tag is None) and self.event.implicit: + self.prepared_tag = None + return + if tag is None: + raise EmitterError("tag is not specified") + if self.prepared_tag is None: + self.prepared_tag = self.prepare_tag(tag) + if self.prepared_tag: + self.write_indicator(self.prepared_tag, True) + self.prepared_tag = None + + def choose_scalar_style(self): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + if self.event.style == '"' or self.canonical: + return '"' + if not self.event.style and self.event.implicit[0]: + if (not (self.simple_key_context and + (self.analysis.empty or self.analysis.multiline)) + and (self.flow_level and self.analysis.allow_flow_plain + or (not self.flow_level and self.analysis.allow_block_plain))): + return '' + if self.event.style and self.event.style in '|>': + if (not self.flow_level and not self.simple_key_context + and self.analysis.allow_block): + return self.event.style + if not self.event.style or self.event.style == '\'': + if (self.analysis.allow_single_quoted and + not (self.simple_key_context and self.analysis.multiline)): + return '\'' + return '"' + + def process_scalar(self): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + if self.style is None: + self.style = self.choose_scalar_style() + split = (not self.simple_key_context) + #if self.analysis.multiline and split \ + # and (not self.style or self.style in '\'\"'): + # self.write_indent() + if self.style == '"': + self.write_double_quoted(self.analysis.scalar, split) + elif self.style == '\'': + self.write_single_quoted(self.analysis.scalar, split) + elif self.style == '>': + self.write_folded(self.analysis.scalar) + elif self.style == '|': + self.write_literal(self.analysis.scalar) + else: + self.write_plain(self.analysis.scalar, split) + self.analysis = None + self.style = None + + # Analyzers. + + def prepare_version(self, version): + major, minor = version + if major != 1: + raise EmitterError("unsupported YAML version: %d.%d" % (major, minor)) + return '%d.%d' % (major, minor) + + def prepare_tag_handle(self, handle): + if not handle: + raise EmitterError("tag handle must not be empty") + if handle[0] != '!' or handle[-1] != '!': + raise EmitterError("tag handle must start and end with '!': %r" % handle) + for ch in handle[1:-1]: + if not ('0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_'): + raise EmitterError("invalid character %r in the tag handle: %r" + % (ch, handle)) + return handle + + def prepare_tag_prefix(self, prefix): + if not prefix: + raise EmitterError("tag prefix must not be empty") + chunks = [] + start = end = 0 + if prefix[0] == '!': + end = 1 + while end < len(prefix): + ch = prefix[end] + if '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-;/?!:@&=+$,_.~*\'()[]': + end += 1 + else: + if start < end: + chunks.append(prefix[start:end]) + start = end = end+1 + data = ch.encode('utf-8') + for ch in data: + chunks.append('%%%02X' % ord(ch)) + if start < end: + chunks.append(prefix[start:end]) + return ''.join(chunks) + + def prepare_tag(self, tag): + if not tag: + raise EmitterError("tag must not be empty") + if tag == '!': + return tag + handle = None + suffix = tag + prefixes = sorted(self.tag_prefixes.keys()) + for prefix in prefixes: + if tag.startswith(prefix) \ + and (prefix == '!' or len(prefix) < len(tag)): + handle = self.tag_prefixes[prefix] + suffix = tag[len(prefix):] + chunks = [] + start = end = 0 + while end < len(suffix): + ch = suffix[end] + if '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-;/?:@&=+$,_.~*\'()[]' \ + or (ch == '!' and handle != '!'): + end += 1 + else: + if start < end: + chunks.append(suffix[start:end]) + start = end = end+1 + data = ch.encode('utf-8') + for ch in data: + chunks.append('%%%02X' % ch) + if start < end: + chunks.append(suffix[start:end]) + suffix_text = ''.join(chunks) + if handle: + return '%s%s' % (handle, suffix_text) + else: + return '!<%s>' % suffix_text + + def prepare_anchor(self, anchor): + if not anchor: + raise EmitterError("anchor must not be empty") + for ch in anchor: + if not ('0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_'): + raise EmitterError("invalid character %r in the anchor: %r" + % (ch, anchor)) + return anchor + + def analyze_scalar(self, scalar): + + # Empty scalar is a special case. + if not scalar: + return ScalarAnalysis(scalar=scalar, empty=True, multiline=False, + allow_flow_plain=False, allow_block_plain=True, + allow_single_quoted=True, allow_double_quoted=True, + allow_block=False) + + # Indicators and special characters. + block_indicators = False + flow_indicators = False + line_breaks = False + special_characters = False + + # Important whitespace combinations. + leading_space = False + leading_break = False + trailing_space = False + trailing_break = False + break_space = False + space_break = False + + # Check document indicators. + if scalar.startswith('---') or scalar.startswith('...'): + block_indicators = True + flow_indicators = True + + # First character or preceded by a whitespace. + preceded_by_whitespace = True + + # Last character or followed by a whitespace. + followed_by_whitespace = (len(scalar) == 1 or + scalar[1] in '\0 \t\r\n\x85\u2028\u2029') + + # The previous character is a space. + previous_space = False + + # The previous character is a break. + previous_break = False + + index = 0 + while index < len(scalar): + ch = scalar[index] + + # Check for indicators. + if index == 0: + # Leading indicators are special characters. + if ch in '#,[]{}&*!|>\'\"%@`': + flow_indicators = True + block_indicators = True + if ch in '?:': + flow_indicators = True + if followed_by_whitespace: + block_indicators = True + if ch == '-' and followed_by_whitespace: + flow_indicators = True + block_indicators = True + else: + # Some indicators cannot appear within a scalar as well. + if ch in ',?[]{}': + flow_indicators = True + if ch == ':': + flow_indicators = True + if followed_by_whitespace: + block_indicators = True + if ch == '#' and preceded_by_whitespace: + flow_indicators = True + block_indicators = True + + # Check for line breaks, special, and unicode characters. + if ch in '\n\x85\u2028\u2029': + line_breaks = True + if not (ch == '\n' or '\x20' <= ch <= '\x7E'): + if (ch == '\x85' or '\xA0' <= ch <= '\uD7FF' + or '\uE000' <= ch <= '\uFFFD' + or '\U00010000' <= ch < '\U0010ffff') and ch != '\uFEFF': + unicode_characters = True + if not self.allow_unicode: + special_characters = True + else: + special_characters = True + + # Detect important whitespace combinations. + if ch == ' ': + if index == 0: + leading_space = True + if index == len(scalar)-1: + trailing_space = True + if previous_break: + break_space = True + previous_space = True + previous_break = False + elif ch in '\n\x85\u2028\u2029': + if index == 0: + leading_break = True + if index == len(scalar)-1: + trailing_break = True + if previous_space: + space_break = True + previous_space = False + previous_break = True + else: + previous_space = False + previous_break = False + + # Prepare for the next character. + index += 1 + preceded_by_whitespace = (ch in '\0 \t\r\n\x85\u2028\u2029') + followed_by_whitespace = (index+1 >= len(scalar) or + scalar[index+1] in '\0 \t\r\n\x85\u2028\u2029') + + # Let's decide what styles are allowed. + allow_flow_plain = True + allow_block_plain = True + allow_single_quoted = True + allow_double_quoted = True + allow_block = True + + # Leading and trailing whitespaces are bad for plain scalars. + if (leading_space or leading_break + or trailing_space or trailing_break): + allow_flow_plain = allow_block_plain = False + + # We do not permit trailing spaces for block scalars. + if trailing_space: + allow_block = False + + # Spaces at the beginning of a new line are only acceptable for block + # scalars. + if break_space: + allow_flow_plain = allow_block_plain = allow_single_quoted = False + + # Spaces followed by breaks, as well as special character are only + # allowed for double quoted scalars. + if space_break or special_characters: + allow_flow_plain = allow_block_plain = \ + allow_single_quoted = allow_block = False + + # Although the plain scalar writer supports breaks, we never emit + # multiline plain scalars. + if line_breaks: + allow_flow_plain = allow_block_plain = False + + # Flow indicators are forbidden for flow plain scalars. + if flow_indicators: + allow_flow_plain = False + + # Block indicators are forbidden for block plain scalars. + if block_indicators: + allow_block_plain = False + + return ScalarAnalysis(scalar=scalar, + empty=False, multiline=line_breaks, + allow_flow_plain=allow_flow_plain, + allow_block_plain=allow_block_plain, + allow_single_quoted=allow_single_quoted, + allow_double_quoted=allow_double_quoted, + allow_block=allow_block) + + # Writers. + + def flush_stream(self): + if hasattr(self.stream, 'flush'): + self.stream.flush() + + def write_stream_start(self): + # Write BOM if needed. + if self.encoding and self.encoding.startswith('utf-16'): + self.stream.write('\uFEFF'.encode(self.encoding)) + + def write_stream_end(self): + self.flush_stream() + + def write_indicator(self, indicator, need_whitespace, + whitespace=False, indention=False): + if self.whitespace or not need_whitespace: + data = indicator + else: + data = ' '+indicator + self.whitespace = whitespace + self.indention = self.indention and indention + self.column += len(data) + self.open_ended = False + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_indent(self): + indent = self.indent or 0 + if not self.indention or self.column > indent \ + or (self.column == indent and not self.whitespace): + self.write_line_break() + if self.column < indent: + self.whitespace = True + data = ' '*(indent-self.column) + self.column = indent + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_line_break(self, data=None): + if data is None: + data = self.best_line_break + self.whitespace = True + self.indention = True + self.line += 1 + self.column = 0 + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_version_directive(self, version_text): + data = '%%YAML %s' % version_text + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_line_break() + + def write_tag_directive(self, handle_text, prefix_text): + data = '%%TAG %s %s' % (handle_text, prefix_text) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_line_break() + + # Scalar streams. + + def write_single_quoted(self, text, split=True): + self.write_indicator('\'', True) + spaces = False + breaks = False + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if spaces: + if ch is None or ch != ' ': + if start+1 == end and self.column > self.best_width and split \ + and start != 0 and end != len(text): + self.write_indent() + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + elif breaks: + if ch is None or ch not in '\n\x85\u2028\u2029': + if text[start] == '\n': + self.write_line_break() + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + self.write_indent() + start = end + else: + if ch is None or ch in ' \n\x85\u2028\u2029' or ch == '\'': + if start < end: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch == '\'': + data = '\'\'' + self.column += 2 + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + 1 + if ch is not None: + spaces = (ch == ' ') + breaks = (ch in '\n\x85\u2028\u2029') + end += 1 + self.write_indicator('\'', False) + + ESCAPE_REPLACEMENTS = { + '\0': '0', + '\x07': 'a', + '\x08': 'b', + '\x09': 't', + '\x0A': 'n', + '\x0B': 'v', + '\x0C': 'f', + '\x0D': 'r', + '\x1B': 'e', + '\"': '\"', + '\\': '\\', + '\x85': 'N', + '\xA0': '_', + '\u2028': 'L', + '\u2029': 'P', + } + + def write_double_quoted(self, text, split=True): + self.write_indicator('"', True) + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if ch is None or ch in '"\\\x85\u2028\u2029\uFEFF' \ + or not ('\x20' <= ch <= '\x7E' + or (self.allow_unicode + and ('\xA0' <= ch <= '\uD7FF' + or '\uE000' <= ch <= '\uFFFD'))): + if start < end: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch is not None: + if ch in self.ESCAPE_REPLACEMENTS: + data = '\\'+self.ESCAPE_REPLACEMENTS[ch] + elif ch <= '\xFF': + data = '\\x%02X' % ord(ch) + elif ch <= '\uFFFF': + data = '\\u%04X' % ord(ch) + else: + data = '\\U%08X' % ord(ch) + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end+1 + if 0 < end < len(text)-1 and (ch == ' ' or start >= end) \ + and self.column+(end-start) > self.best_width and split: + data = text[start:end]+'\\' + if start < end: + start = end + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_indent() + self.whitespace = False + self.indention = False + if text[start] == ' ': + data = '\\' + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + end += 1 + self.write_indicator('"', False) + + def determine_block_hints(self, text): + hints = '' + if text: + if text[0] in ' \n\x85\u2028\u2029': + hints += str(self.best_indent) + if text[-1] not in '\n\x85\u2028\u2029': + hints += '-' + elif len(text) == 1 or text[-2] in '\n\x85\u2028\u2029': + hints += '+' + return hints + + def write_folded(self, text): + hints = self.determine_block_hints(text) + self.write_indicator('>'+hints, True) + if hints[-1:] == '+': + self.open_ended = True + self.write_line_break() + leading_space = True + spaces = False + breaks = True + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if breaks: + if ch is None or ch not in '\n\x85\u2028\u2029': + if not leading_space and ch is not None and ch != ' ' \ + and text[start] == '\n': + self.write_line_break() + leading_space = (ch == ' ') + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + if ch is not None: + self.write_indent() + start = end + elif spaces: + if ch != ' ': + if start+1 == end and self.column > self.best_width: + self.write_indent() + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + else: + if ch is None or ch in ' \n\x85\u2028\u2029': + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + if ch is None: + self.write_line_break() + start = end + if ch is not None: + breaks = (ch in '\n\x85\u2028\u2029') + spaces = (ch == ' ') + end += 1 + + def write_literal(self, text): + hints = self.determine_block_hints(text) + self.write_indicator('|'+hints, True) + if hints[-1:] == '+': + self.open_ended = True + self.write_line_break() + breaks = True + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if breaks: + if ch is None or ch not in '\n\x85\u2028\u2029': + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + if ch is not None: + self.write_indent() + start = end + else: + if ch is None or ch in '\n\x85\u2028\u2029': + data = text[start:end] + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + if ch is None: + self.write_line_break() + start = end + if ch is not None: + breaks = (ch in '\n\x85\u2028\u2029') + end += 1 + + def write_plain(self, text, split=True): + if self.root_context: + self.open_ended = True + if not text: + return + if not self.whitespace: + data = ' ' + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.whitespace = False + self.indention = False + spaces = False + breaks = False + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if spaces: + if ch != ' ': + if start+1 == end and self.column > self.best_width and split: + self.write_indent() + self.whitespace = False + self.indention = False + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + elif breaks: + if ch not in '\n\x85\u2028\u2029': + if text[start] == '\n': + self.write_line_break() + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + self.write_indent() + self.whitespace = False + self.indention = False + start = end + else: + if ch is None or ch in ' \n\x85\u2028\u2029': + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch is not None: + spaces = (ch == ' ') + breaks = (ch in '\n\x85\u2028\u2029') + end += 1 diff --git a/third_party/python/PyYAML/lib3/yaml/error.py b/third_party/python/PyYAML/lib3/yaml/error.py new file mode 100644 index 0000000000..b796b4dc51 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/error.py @@ -0,0 +1,75 @@ + +__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError'] + +class Mark: + + def __init__(self, name, index, line, column, buffer, pointer): + self.name = name + self.index = index + self.line = line + self.column = column + self.buffer = buffer + self.pointer = pointer + + def get_snippet(self, indent=4, max_length=75): + if self.buffer is None: + return None + head = '' + start = self.pointer + while start > 0 and self.buffer[start-1] not in '\0\r\n\x85\u2028\u2029': + start -= 1 + if self.pointer-start > max_length/2-1: + head = ' ... ' + start += 5 + break + tail = '' + end = self.pointer + while end < len(self.buffer) and self.buffer[end] not in '\0\r\n\x85\u2028\u2029': + end += 1 + if end-self.pointer > max_length/2-1: + tail = ' ... ' + end -= 5 + break + snippet = self.buffer[start:end] + return ' '*indent + head + snippet + tail + '\n' \ + + ' '*(indent+self.pointer-start+len(head)) + '^' + + def __str__(self): + snippet = self.get_snippet() + where = " in \"%s\", line %d, column %d" \ + % (self.name, self.line+1, self.column+1) + if snippet is not None: + where += ":\n"+snippet + return where + +class YAMLError(Exception): + pass + +class MarkedYAMLError(YAMLError): + + def __init__(self, context=None, context_mark=None, + problem=None, problem_mark=None, note=None): + self.context = context + self.context_mark = context_mark + self.problem = problem + self.problem_mark = problem_mark + self.note = note + + def __str__(self): + lines = [] + if self.context is not None: + lines.append(self.context) + if self.context_mark is not None \ + and (self.problem is None or self.problem_mark is None + or self.context_mark.name != self.problem_mark.name + or self.context_mark.line != self.problem_mark.line + or self.context_mark.column != self.problem_mark.column): + lines.append(str(self.context_mark)) + if self.problem is not None: + lines.append(self.problem) + if self.problem_mark is not None: + lines.append(str(self.problem_mark)) + if self.note is not None: + lines.append(self.note) + return '\n'.join(lines) + diff --git a/third_party/python/PyYAML/lib3/yaml/events.py b/third_party/python/PyYAML/lib3/yaml/events.py new file mode 100644 index 0000000000..f79ad389cb --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/events.py @@ -0,0 +1,86 @@ + +# Abstract classes. + +class Event(object): + def __init__(self, start_mark=None, end_mark=None): + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + attributes = [key for key in ['anchor', 'tag', 'implicit', 'value'] + if hasattr(self, key)] + arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) + for key in attributes]) + return '%s(%s)' % (self.__class__.__name__, arguments) + +class NodeEvent(Event): + def __init__(self, anchor, start_mark=None, end_mark=None): + self.anchor = anchor + self.start_mark = start_mark + self.end_mark = end_mark + +class CollectionStartEvent(NodeEvent): + def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None, + flow_style=None): + self.anchor = anchor + self.tag = tag + self.implicit = implicit + self.start_mark = start_mark + self.end_mark = end_mark + self.flow_style = flow_style + +class CollectionEndEvent(Event): + pass + +# Implementations. + +class StreamStartEvent(Event): + def __init__(self, start_mark=None, end_mark=None, encoding=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.encoding = encoding + +class StreamEndEvent(Event): + pass + +class DocumentStartEvent(Event): + def __init__(self, start_mark=None, end_mark=None, + explicit=None, version=None, tags=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.explicit = explicit + self.version = version + self.tags = tags + +class DocumentEndEvent(Event): + def __init__(self, start_mark=None, end_mark=None, + explicit=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.explicit = explicit + +class AliasEvent(NodeEvent): + pass + +class ScalarEvent(NodeEvent): + def __init__(self, anchor, tag, implicit, value, + start_mark=None, end_mark=None, style=None): + self.anchor = anchor + self.tag = tag + self.implicit = implicit + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + +class SequenceStartEvent(CollectionStartEvent): + pass + +class SequenceEndEvent(CollectionEndEvent): + pass + +class MappingStartEvent(CollectionStartEvent): + pass + +class MappingEndEvent(CollectionEndEvent): + pass + diff --git a/third_party/python/PyYAML/lib3/yaml/loader.py b/third_party/python/PyYAML/lib3/yaml/loader.py new file mode 100644 index 0000000000..e90c11224c --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/loader.py @@ -0,0 +1,63 @@ + +__all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader'] + +from .reader import * +from .scanner import * +from .parser import * +from .composer import * +from .constructor import * +from .resolver import * + +class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + BaseConstructor.__init__(self) + BaseResolver.__init__(self) + +class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + FullConstructor.__init__(self) + Resolver.__init__(self) + +class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + SafeConstructor.__init__(self) + Resolver.__init__(self) + +class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + Constructor.__init__(self) + Resolver.__init__(self) + +# UnsafeLoader is the same as Loader (which is and was always unsafe on +# untrusted input). Use of either Loader or UnsafeLoader should be rare, since +# FullLoad should be able to load almost all YAML safely. Loader is left intact +# to ensure backwards compatibility. +class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + Constructor.__init__(self) + Resolver.__init__(self) diff --git a/third_party/python/PyYAML/lib3/yaml/nodes.py b/third_party/python/PyYAML/lib3/yaml/nodes.py new file mode 100644 index 0000000000..c4f070c41e --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/nodes.py @@ -0,0 +1,49 @@ + +class Node(object): + def __init__(self, tag, value, start_mark, end_mark): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + value = self.value + #if isinstance(value, list): + # if len(value) == 0: + # value = '<empty>' + # elif len(value) == 1: + # value = '<1 item>' + # else: + # value = '<%d items>' % len(value) + #else: + # if len(value) > 75: + # value = repr(value[:70]+u' ... ') + # else: + # value = repr(value) + value = repr(value) + return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value) + +class ScalarNode(Node): + id = 'scalar' + def __init__(self, tag, value, + start_mark=None, end_mark=None, style=None): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + +class CollectionNode(Node): + def __init__(self, tag, value, + start_mark=None, end_mark=None, flow_style=None): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.flow_style = flow_style + +class SequenceNode(CollectionNode): + id = 'sequence' + +class MappingNode(CollectionNode): + id = 'mapping' + diff --git a/third_party/python/PyYAML/lib3/yaml/parser.py b/third_party/python/PyYAML/lib3/yaml/parser.py new file mode 100644 index 0000000000..13a5995d29 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/parser.py @@ -0,0 +1,589 @@ + +# The following YAML grammar is LL(1) and is parsed by a recursive descent +# parser. +# +# stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +# implicit_document ::= block_node DOCUMENT-END* +# explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +# block_node_or_indentless_sequence ::= +# ALIAS +# | properties (block_content | indentless_block_sequence)? +# | block_content +# | indentless_block_sequence +# block_node ::= ALIAS +# | properties block_content? +# | block_content +# flow_node ::= ALIAS +# | properties flow_content? +# | flow_content +# properties ::= TAG ANCHOR? | ANCHOR TAG? +# block_content ::= block_collection | flow_collection | SCALAR +# flow_content ::= flow_collection | SCALAR +# block_collection ::= block_sequence | block_mapping +# flow_collection ::= flow_sequence | flow_mapping +# block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +# indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +# block_mapping ::= BLOCK-MAPPING_START +# ((KEY block_node_or_indentless_sequence?)? +# (VALUE block_node_or_indentless_sequence?)?)* +# BLOCK-END +# flow_sequence ::= FLOW-SEQUENCE-START +# (flow_sequence_entry FLOW-ENTRY)* +# flow_sequence_entry? +# FLOW-SEQUENCE-END +# flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +# flow_mapping ::= FLOW-MAPPING-START +# (flow_mapping_entry FLOW-ENTRY)* +# flow_mapping_entry? +# FLOW-MAPPING-END +# flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +# +# FIRST sets: +# +# stream: { STREAM-START } +# explicit_document: { DIRECTIVE DOCUMENT-START } +# implicit_document: FIRST(block_node) +# block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START } +# flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START } +# block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR } +# flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR } +# block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START } +# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START } +# block_sequence: { BLOCK-SEQUENCE-START } +# block_mapping: { BLOCK-MAPPING-START } +# block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY } +# indentless_sequence: { ENTRY } +# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START } +# flow_sequence: { FLOW-SEQUENCE-START } +# flow_mapping: { FLOW-MAPPING-START } +# flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY } +# flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY } + +__all__ = ['Parser', 'ParserError'] + +from .error import MarkedYAMLError +from .tokens import * +from .events import * +from .scanner import * + +class ParserError(MarkedYAMLError): + pass + +class Parser: + # Since writing a recursive-descendant parser is a straightforward task, we + # do not give many comments here. + + DEFAULT_TAGS = { + '!': '!', + '!!': 'tag:yaml.org,2002:', + } + + def __init__(self): + self.current_event = None + self.yaml_version = None + self.tag_handles = {} + self.states = [] + self.marks = [] + self.state = self.parse_stream_start + + def dispose(self): + # Reset the state attributes (to clear self-references) + self.states = [] + self.state = None + + def check_event(self, *choices): + # Check the type of the next event. + if self.current_event is None: + if self.state: + self.current_event = self.state() + if self.current_event is not None: + if not choices: + return True + for choice in choices: + if isinstance(self.current_event, choice): + return True + return False + + def peek_event(self): + # Get the next event. + if self.current_event is None: + if self.state: + self.current_event = self.state() + return self.current_event + + def get_event(self): + # Get the next event and proceed further. + if self.current_event is None: + if self.state: + self.current_event = self.state() + value = self.current_event + self.current_event = None + return value + + # stream ::= STREAM-START implicit_document? explicit_document* STREAM-END + # implicit_document ::= block_node DOCUMENT-END* + # explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* + + def parse_stream_start(self): + + # Parse the stream start. + token = self.get_token() + event = StreamStartEvent(token.start_mark, token.end_mark, + encoding=token.encoding) + + # Prepare the next state. + self.state = self.parse_implicit_document_start + + return event + + def parse_implicit_document_start(self): + + # Parse an implicit document. + if not self.check_token(DirectiveToken, DocumentStartToken, + StreamEndToken): + self.tag_handles = self.DEFAULT_TAGS + token = self.peek_token() + start_mark = end_mark = token.start_mark + event = DocumentStartEvent(start_mark, end_mark, + explicit=False) + + # Prepare the next state. + self.states.append(self.parse_document_end) + self.state = self.parse_block_node + + return event + + else: + return self.parse_document_start() + + def parse_document_start(self): + + # Parse any extra document end indicators. + while self.check_token(DocumentEndToken): + self.get_token() + + # Parse an explicit document. + if not self.check_token(StreamEndToken): + token = self.peek_token() + start_mark = token.start_mark + version, tags = self.process_directives() + if not self.check_token(DocumentStartToken): + raise ParserError(None, None, + "expected '<document start>', but found %r" + % self.peek_token().id, + self.peek_token().start_mark) + token = self.get_token() + end_mark = token.end_mark + event = DocumentStartEvent(start_mark, end_mark, + explicit=True, version=version, tags=tags) + self.states.append(self.parse_document_end) + self.state = self.parse_document_content + else: + # Parse the end of the stream. + token = self.get_token() + event = StreamEndEvent(token.start_mark, token.end_mark) + assert not self.states + assert not self.marks + self.state = None + return event + + def parse_document_end(self): + + # Parse the document end. + token = self.peek_token() + start_mark = end_mark = token.start_mark + explicit = False + if self.check_token(DocumentEndToken): + token = self.get_token() + end_mark = token.end_mark + explicit = True + event = DocumentEndEvent(start_mark, end_mark, + explicit=explicit) + + # Prepare the next state. + self.state = self.parse_document_start + + return event + + def parse_document_content(self): + if self.check_token(DirectiveToken, + DocumentStartToken, DocumentEndToken, StreamEndToken): + event = self.process_empty_scalar(self.peek_token().start_mark) + self.state = self.states.pop() + return event + else: + return self.parse_block_node() + + def process_directives(self): + self.yaml_version = None + self.tag_handles = {} + while self.check_token(DirectiveToken): + token = self.get_token() + if token.name == 'YAML': + if self.yaml_version is not None: + raise ParserError(None, None, + "found duplicate YAML directive", token.start_mark) + major, minor = token.value + if major != 1: + raise ParserError(None, None, + "found incompatible YAML document (version 1.* is required)", + token.start_mark) + self.yaml_version = token.value + elif token.name == 'TAG': + handle, prefix = token.value + if handle in self.tag_handles: + raise ParserError(None, None, + "duplicate tag handle %r" % handle, + token.start_mark) + self.tag_handles[handle] = prefix + if self.tag_handles: + value = self.yaml_version, self.tag_handles.copy() + else: + value = self.yaml_version, None + for key in self.DEFAULT_TAGS: + if key not in self.tag_handles: + self.tag_handles[key] = self.DEFAULT_TAGS[key] + return value + + # block_node_or_indentless_sequence ::= ALIAS + # | properties (block_content | indentless_block_sequence)? + # | block_content + # | indentless_block_sequence + # block_node ::= ALIAS + # | properties block_content? + # | block_content + # flow_node ::= ALIAS + # | properties flow_content? + # | flow_content + # properties ::= TAG ANCHOR? | ANCHOR TAG? + # block_content ::= block_collection | flow_collection | SCALAR + # flow_content ::= flow_collection | SCALAR + # block_collection ::= block_sequence | block_mapping + # flow_collection ::= flow_sequence | flow_mapping + + def parse_block_node(self): + return self.parse_node(block=True) + + def parse_flow_node(self): + return self.parse_node() + + def parse_block_node_or_indentless_sequence(self): + return self.parse_node(block=True, indentless_sequence=True) + + def parse_node(self, block=False, indentless_sequence=False): + if self.check_token(AliasToken): + token = self.get_token() + event = AliasEvent(token.value, token.start_mark, token.end_mark) + self.state = self.states.pop() + else: + anchor = None + tag = None + start_mark = end_mark = tag_mark = None + if self.check_token(AnchorToken): + token = self.get_token() + start_mark = token.start_mark + end_mark = token.end_mark + anchor = token.value + if self.check_token(TagToken): + token = self.get_token() + tag_mark = token.start_mark + end_mark = token.end_mark + tag = token.value + elif self.check_token(TagToken): + token = self.get_token() + start_mark = tag_mark = token.start_mark + end_mark = token.end_mark + tag = token.value + if self.check_token(AnchorToken): + token = self.get_token() + end_mark = token.end_mark + anchor = token.value + if tag is not None: + handle, suffix = tag + if handle is not None: + if handle not in self.tag_handles: + raise ParserError("while parsing a node", start_mark, + "found undefined tag handle %r" % handle, + tag_mark) + tag = self.tag_handles[handle]+suffix + else: + tag = suffix + #if tag == '!': + # raise ParserError("while parsing a node", start_mark, + # "found non-specific tag '!'", tag_mark, + # "Please check 'http://pyyaml.org/wiki/YAMLNonSpecificTag' and share your opinion.") + if start_mark is None: + start_mark = end_mark = self.peek_token().start_mark + event = None + implicit = (tag is None or tag == '!') + if indentless_sequence and self.check_token(BlockEntryToken): + end_mark = self.peek_token().end_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark) + self.state = self.parse_indentless_sequence_entry + else: + if self.check_token(ScalarToken): + token = self.get_token() + end_mark = token.end_mark + if (token.plain and tag is None) or tag == '!': + implicit = (True, False) + elif tag is None: + implicit = (False, True) + else: + implicit = (False, False) + event = ScalarEvent(anchor, tag, implicit, token.value, + start_mark, end_mark, style=token.style) + self.state = self.states.pop() + elif self.check_token(FlowSequenceStartToken): + end_mark = self.peek_token().end_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=True) + self.state = self.parse_flow_sequence_first_entry + elif self.check_token(FlowMappingStartToken): + end_mark = self.peek_token().end_mark + event = MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=True) + self.state = self.parse_flow_mapping_first_key + elif block and self.check_token(BlockSequenceStartToken): + end_mark = self.peek_token().start_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=False) + self.state = self.parse_block_sequence_first_entry + elif block and self.check_token(BlockMappingStartToken): + end_mark = self.peek_token().start_mark + event = MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=False) + self.state = self.parse_block_mapping_first_key + elif anchor is not None or tag is not None: + # Empty scalars are allowed even if a tag or an anchor is + # specified. + event = ScalarEvent(anchor, tag, (implicit, False), '', + start_mark, end_mark) + self.state = self.states.pop() + else: + if block: + node = 'block' + else: + node = 'flow' + token = self.peek_token() + raise ParserError("while parsing a %s node" % node, start_mark, + "expected the node content, but found %r" % token.id, + token.start_mark) + return event + + # block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END + + def parse_block_sequence_first_entry(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_block_sequence_entry() + + def parse_block_sequence_entry(self): + if self.check_token(BlockEntryToken): + token = self.get_token() + if not self.check_token(BlockEntryToken, BlockEndToken): + self.states.append(self.parse_block_sequence_entry) + return self.parse_block_node() + else: + self.state = self.parse_block_sequence_entry + return self.process_empty_scalar(token.end_mark) + if not self.check_token(BlockEndToken): + token = self.peek_token() + raise ParserError("while parsing a block collection", self.marks[-1], + "expected <block end>, but found %r" % token.id, token.start_mark) + token = self.get_token() + event = SequenceEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + # indentless_sequence ::= (BLOCK-ENTRY block_node?)+ + + def parse_indentless_sequence_entry(self): + if self.check_token(BlockEntryToken): + token = self.get_token() + if not self.check_token(BlockEntryToken, + KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_indentless_sequence_entry) + return self.parse_block_node() + else: + self.state = self.parse_indentless_sequence_entry + return self.process_empty_scalar(token.end_mark) + token = self.peek_token() + event = SequenceEndEvent(token.start_mark, token.start_mark) + self.state = self.states.pop() + return event + + # block_mapping ::= BLOCK-MAPPING_START + # ((KEY block_node_or_indentless_sequence?)? + # (VALUE block_node_or_indentless_sequence?)?)* + # BLOCK-END + + def parse_block_mapping_first_key(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_block_mapping_key() + + def parse_block_mapping_key(self): + if self.check_token(KeyToken): + token = self.get_token() + if not self.check_token(KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_block_mapping_value) + return self.parse_block_node_or_indentless_sequence() + else: + self.state = self.parse_block_mapping_value + return self.process_empty_scalar(token.end_mark) + if not self.check_token(BlockEndToken): + token = self.peek_token() + raise ParserError("while parsing a block mapping", self.marks[-1], + "expected <block end>, but found %r" % token.id, token.start_mark) + token = self.get_token() + event = MappingEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_block_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_block_mapping_key) + return self.parse_block_node_or_indentless_sequence() + else: + self.state = self.parse_block_mapping_key + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_block_mapping_key + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + # flow_sequence ::= FLOW-SEQUENCE-START + # (flow_sequence_entry FLOW-ENTRY)* + # flow_sequence_entry? + # FLOW-SEQUENCE-END + # flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + # + # Note that while production rules for both flow_sequence_entry and + # flow_mapping_entry are equal, their interpretations are different. + # For `flow_sequence_entry`, the part `KEY flow_node? (VALUE flow_node?)?` + # generate an inline mapping (set syntax). + + def parse_flow_sequence_first_entry(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_flow_sequence_entry(first=True) + + def parse_flow_sequence_entry(self, first=False): + if not self.check_token(FlowSequenceEndToken): + if not first: + if self.check_token(FlowEntryToken): + self.get_token() + else: + token = self.peek_token() + raise ParserError("while parsing a flow sequence", self.marks[-1], + "expected ',' or ']', but got %r" % token.id, token.start_mark) + + if self.check_token(KeyToken): + token = self.peek_token() + event = MappingStartEvent(None, None, True, + token.start_mark, token.end_mark, + flow_style=True) + self.state = self.parse_flow_sequence_entry_mapping_key + return event + elif not self.check_token(FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry) + return self.parse_flow_node() + token = self.get_token() + event = SequenceEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_flow_sequence_entry_mapping_key(self): + token = self.get_token() + if not self.check_token(ValueToken, + FlowEntryToken, FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry_mapping_value) + return self.parse_flow_node() + else: + self.state = self.parse_flow_sequence_entry_mapping_value + return self.process_empty_scalar(token.end_mark) + + def parse_flow_sequence_entry_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(FlowEntryToken, FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry_mapping_end) + return self.parse_flow_node() + else: + self.state = self.parse_flow_sequence_entry_mapping_end + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_flow_sequence_entry_mapping_end + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + def parse_flow_sequence_entry_mapping_end(self): + self.state = self.parse_flow_sequence_entry + token = self.peek_token() + return MappingEndEvent(token.start_mark, token.start_mark) + + # flow_mapping ::= FLOW-MAPPING-START + # (flow_mapping_entry FLOW-ENTRY)* + # flow_mapping_entry? + # FLOW-MAPPING-END + # flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + + def parse_flow_mapping_first_key(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_flow_mapping_key(first=True) + + def parse_flow_mapping_key(self, first=False): + if not self.check_token(FlowMappingEndToken): + if not first: + if self.check_token(FlowEntryToken): + self.get_token() + else: + token = self.peek_token() + raise ParserError("while parsing a flow mapping", self.marks[-1], + "expected ',' or '}', but got %r" % token.id, token.start_mark) + if self.check_token(KeyToken): + token = self.get_token() + if not self.check_token(ValueToken, + FlowEntryToken, FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_value) + return self.parse_flow_node() + else: + self.state = self.parse_flow_mapping_value + return self.process_empty_scalar(token.end_mark) + elif not self.check_token(FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_empty_value) + return self.parse_flow_node() + token = self.get_token() + event = MappingEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_flow_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(FlowEntryToken, FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_key) + return self.parse_flow_node() + else: + self.state = self.parse_flow_mapping_key + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_flow_mapping_key + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + def parse_flow_mapping_empty_value(self): + self.state = self.parse_flow_mapping_key + return self.process_empty_scalar(self.peek_token().start_mark) + + def process_empty_scalar(self, mark): + return ScalarEvent(None, None, (True, False), '', mark, mark) + diff --git a/third_party/python/PyYAML/lib3/yaml/reader.py b/third_party/python/PyYAML/lib3/yaml/reader.py new file mode 100644 index 0000000000..774b0219b5 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/reader.py @@ -0,0 +1,185 @@ +# This module contains abstractions for the input stream. You don't have to +# looks further, there are no pretty code. +# +# We define two classes here. +# +# Mark(source, line, column) +# It's just a record and its only use is producing nice error messages. +# Parser does not use it for any other purposes. +# +# Reader(source, data) +# Reader determines the encoding of `data` and converts it to unicode. +# Reader provides the following methods and attributes: +# reader.peek(length=1) - return the next `length` characters +# reader.forward(length=1) - move the current position to `length` characters. +# reader.index - the number of the current character. +# reader.line, stream.column - the line and the column of the current character. + +__all__ = ['Reader', 'ReaderError'] + +from .error import YAMLError, Mark + +import codecs, re + +class ReaderError(YAMLError): + + def __init__(self, name, position, character, encoding, reason): + self.name = name + self.character = character + self.position = position + self.encoding = encoding + self.reason = reason + + def __str__(self): + if isinstance(self.character, bytes): + return "'%s' codec can't decode byte #x%02x: %s\n" \ + " in \"%s\", position %d" \ + % (self.encoding, ord(self.character), self.reason, + self.name, self.position) + else: + return "unacceptable character #x%04x: %s\n" \ + " in \"%s\", position %d" \ + % (self.character, self.reason, + self.name, self.position) + +class Reader(object): + # Reader: + # - determines the data encoding and converts it to a unicode string, + # - checks if characters are in allowed range, + # - adds '\0' to the end. + + # Reader accepts + # - a `bytes` object, + # - a `str` object, + # - a file-like object with its `read` method returning `str`, + # - a file-like object with its `read` method returning `unicode`. + + # Yeah, it's ugly and slow. + + def __init__(self, stream): + self.name = None + self.stream = None + self.stream_pointer = 0 + self.eof = True + self.buffer = '' + self.pointer = 0 + self.raw_buffer = None + self.raw_decode = None + self.encoding = None + self.index = 0 + self.line = 0 + self.column = 0 + if isinstance(stream, str): + self.name = "<unicode string>" + self.check_printable(stream) + self.buffer = stream+'\0' + elif isinstance(stream, bytes): + self.name = "<byte string>" + self.raw_buffer = stream + self.determine_encoding() + else: + self.stream = stream + self.name = getattr(stream, 'name', "<file>") + self.eof = False + self.raw_buffer = None + self.determine_encoding() + + def peek(self, index=0): + try: + return self.buffer[self.pointer+index] + except IndexError: + self.update(index+1) + return self.buffer[self.pointer+index] + + def prefix(self, length=1): + if self.pointer+length >= len(self.buffer): + self.update(length) + return self.buffer[self.pointer:self.pointer+length] + + def forward(self, length=1): + if self.pointer+length+1 >= len(self.buffer): + self.update(length+1) + while length: + ch = self.buffer[self.pointer] + self.pointer += 1 + self.index += 1 + if ch in '\n\x85\u2028\u2029' \ + or (ch == '\r' and self.buffer[self.pointer] != '\n'): + self.line += 1 + self.column = 0 + elif ch != '\uFEFF': + self.column += 1 + length -= 1 + + def get_mark(self): + if self.stream is None: + return Mark(self.name, self.index, self.line, self.column, + self.buffer, self.pointer) + else: + return Mark(self.name, self.index, self.line, self.column, + None, None) + + def determine_encoding(self): + while not self.eof and (self.raw_buffer is None or len(self.raw_buffer) < 2): + self.update_raw() + if isinstance(self.raw_buffer, bytes): + if self.raw_buffer.startswith(codecs.BOM_UTF16_LE): + self.raw_decode = codecs.utf_16_le_decode + self.encoding = 'utf-16-le' + elif self.raw_buffer.startswith(codecs.BOM_UTF16_BE): + self.raw_decode = codecs.utf_16_be_decode + self.encoding = 'utf-16-be' + else: + self.raw_decode = codecs.utf_8_decode + self.encoding = 'utf-8' + self.update(1) + + NON_PRINTABLE = re.compile('[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]') + def check_printable(self, data): + match = self.NON_PRINTABLE.search(data) + if match: + character = match.group() + position = self.index+(len(self.buffer)-self.pointer)+match.start() + raise ReaderError(self.name, position, ord(character), + 'unicode', "special characters are not allowed") + + def update(self, length): + if self.raw_buffer is None: + return + self.buffer = self.buffer[self.pointer:] + self.pointer = 0 + while len(self.buffer) < length: + if not self.eof: + self.update_raw() + if self.raw_decode is not None: + try: + data, converted = self.raw_decode(self.raw_buffer, + 'strict', self.eof) + except UnicodeDecodeError as exc: + character = self.raw_buffer[exc.start] + if self.stream is not None: + position = self.stream_pointer-len(self.raw_buffer)+exc.start + else: + position = exc.start + raise ReaderError(self.name, position, character, + exc.encoding, exc.reason) + else: + data = self.raw_buffer + converted = len(data) + self.check_printable(data) + self.buffer += data + self.raw_buffer = self.raw_buffer[converted:] + if self.eof: + self.buffer += '\0' + self.raw_buffer = None + break + + def update_raw(self, size=4096): + data = self.stream.read(size) + if self.raw_buffer is None: + self.raw_buffer = data + else: + self.raw_buffer += data + self.stream_pointer += len(data) + if not data: + self.eof = True diff --git a/third_party/python/PyYAML/lib3/yaml/representer.py b/third_party/python/PyYAML/lib3/yaml/representer.py new file mode 100644 index 0000000000..3b0b192ef3 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/representer.py @@ -0,0 +1,389 @@ + +__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer', + 'RepresenterError'] + +from .error import * +from .nodes import * + +import datetime, copyreg, types, base64, collections + +class RepresenterError(YAMLError): + pass + +class BaseRepresenter: + + yaml_representers = {} + yaml_multi_representers = {} + + def __init__(self, default_style=None, default_flow_style=False, sort_keys=True): + self.default_style = default_style + self.sort_keys = sort_keys + self.default_flow_style = default_flow_style + self.represented_objects = {} + self.object_keeper = [] + self.alias_key = None + + def represent(self, data): + node = self.represent_data(data) + self.serialize(node) + self.represented_objects = {} + self.object_keeper = [] + self.alias_key = None + + def represent_data(self, data): + if self.ignore_aliases(data): + self.alias_key = None + else: + self.alias_key = id(data) + if self.alias_key is not None: + if self.alias_key in self.represented_objects: + node = self.represented_objects[self.alias_key] + #if node is None: + # raise RepresenterError("recursive objects are not allowed: %r" % data) + return node + #self.represented_objects[alias_key] = None + self.object_keeper.append(data) + data_types = type(data).__mro__ + if data_types[0] in self.yaml_representers: + node = self.yaml_representers[data_types[0]](self, data) + else: + for data_type in data_types: + if data_type in self.yaml_multi_representers: + node = self.yaml_multi_representers[data_type](self, data) + break + else: + if None in self.yaml_multi_representers: + node = self.yaml_multi_representers[None](self, data) + elif None in self.yaml_representers: + node = self.yaml_representers[None](self, data) + else: + node = ScalarNode(None, str(data)) + #if alias_key is not None: + # self.represented_objects[alias_key] = node + return node + + @classmethod + def add_representer(cls, data_type, representer): + if not 'yaml_representers' in cls.__dict__: + cls.yaml_representers = cls.yaml_representers.copy() + cls.yaml_representers[data_type] = representer + + @classmethod + def add_multi_representer(cls, data_type, representer): + if not 'yaml_multi_representers' in cls.__dict__: + cls.yaml_multi_representers = cls.yaml_multi_representers.copy() + cls.yaml_multi_representers[data_type] = representer + + def represent_scalar(self, tag, value, style=None): + if style is None: + style = self.default_style + node = ScalarNode(tag, value, style=style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + return node + + def represent_sequence(self, tag, sequence, flow_style=None): + value = [] + node = SequenceNode(tag, value, flow_style=flow_style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + best_style = True + for item in sequence: + node_item = self.represent_data(item) + if not (isinstance(node_item, ScalarNode) and not node_item.style): + best_style = False + value.append(node_item) + if flow_style is None: + if self.default_flow_style is not None: + node.flow_style = self.default_flow_style + else: + node.flow_style = best_style + return node + + def represent_mapping(self, tag, mapping, flow_style=None): + value = [] + node = MappingNode(tag, value, flow_style=flow_style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + best_style = True + if hasattr(mapping, 'items'): + mapping = list(mapping.items()) + if self.sort_keys: + try: + mapping = sorted(mapping) + except TypeError: + pass + for item_key, item_value in mapping: + node_key = self.represent_data(item_key) + node_value = self.represent_data(item_value) + if not (isinstance(node_key, ScalarNode) and not node_key.style): + best_style = False + if not (isinstance(node_value, ScalarNode) and not node_value.style): + best_style = False + value.append((node_key, node_value)) + if flow_style is None: + if self.default_flow_style is not None: + node.flow_style = self.default_flow_style + else: + node.flow_style = best_style + return node + + def ignore_aliases(self, data): + return False + +class SafeRepresenter(BaseRepresenter): + + def ignore_aliases(self, data): + if data is None: + return True + if isinstance(data, tuple) and data == (): + return True + if isinstance(data, (str, bytes, bool, int, float)): + return True + + def represent_none(self, data): + return self.represent_scalar('tag:yaml.org,2002:null', 'null') + + def represent_str(self, data): + return self.represent_scalar('tag:yaml.org,2002:str', data) + + def represent_binary(self, data): + if hasattr(base64, 'encodebytes'): + data = base64.encodebytes(data).decode('ascii') + else: + data = base64.encodestring(data).decode('ascii') + return self.represent_scalar('tag:yaml.org,2002:binary', data, style='|') + + def represent_bool(self, data): + if data: + value = 'true' + else: + value = 'false' + return self.represent_scalar('tag:yaml.org,2002:bool', value) + + def represent_int(self, data): + return self.represent_scalar('tag:yaml.org,2002:int', str(data)) + + inf_value = 1e300 + while repr(inf_value) != repr(inf_value*inf_value): + inf_value *= inf_value + + def represent_float(self, data): + if data != data or (data == 0.0 and data == 1.0): + value = '.nan' + elif data == self.inf_value: + value = '.inf' + elif data == -self.inf_value: + value = '-.inf' + else: + value = repr(data).lower() + # Note that in some cases `repr(data)` represents a float number + # without the decimal parts. For instance: + # >>> repr(1e17) + # '1e17' + # Unfortunately, this is not a valid float representation according + # to the definition of the `!!float` tag. We fix this by adding + # '.0' before the 'e' symbol. + if '.' not in value and 'e' in value: + value = value.replace('e', '.0e', 1) + return self.represent_scalar('tag:yaml.org,2002:float', value) + + def represent_list(self, data): + #pairs = (len(data) > 0 and isinstance(data, list)) + #if pairs: + # for item in data: + # if not isinstance(item, tuple) or len(item) != 2: + # pairs = False + # break + #if not pairs: + return self.represent_sequence('tag:yaml.org,2002:seq', data) + #value = [] + #for item_key, item_value in data: + # value.append(self.represent_mapping(u'tag:yaml.org,2002:map', + # [(item_key, item_value)])) + #return SequenceNode(u'tag:yaml.org,2002:pairs', value) + + def represent_dict(self, data): + return self.represent_mapping('tag:yaml.org,2002:map', data) + + def represent_set(self, data): + value = {} + for key in data: + value[key] = None + return self.represent_mapping('tag:yaml.org,2002:set', value) + + def represent_date(self, data): + value = data.isoformat() + return self.represent_scalar('tag:yaml.org,2002:timestamp', value) + + def represent_datetime(self, data): + value = data.isoformat(' ') + return self.represent_scalar('tag:yaml.org,2002:timestamp', value) + + def represent_yaml_object(self, tag, data, cls, flow_style=None): + if hasattr(data, '__getstate__'): + state = data.__getstate__() + else: + state = data.__dict__.copy() + return self.represent_mapping(tag, state, flow_style=flow_style) + + def represent_undefined(self, data): + raise RepresenterError("cannot represent an object", data) + +SafeRepresenter.add_representer(type(None), + SafeRepresenter.represent_none) + +SafeRepresenter.add_representer(str, + SafeRepresenter.represent_str) + +SafeRepresenter.add_representer(bytes, + SafeRepresenter.represent_binary) + +SafeRepresenter.add_representer(bool, + SafeRepresenter.represent_bool) + +SafeRepresenter.add_representer(int, + SafeRepresenter.represent_int) + +SafeRepresenter.add_representer(float, + SafeRepresenter.represent_float) + +SafeRepresenter.add_representer(list, + SafeRepresenter.represent_list) + +SafeRepresenter.add_representer(tuple, + SafeRepresenter.represent_list) + +SafeRepresenter.add_representer(dict, + SafeRepresenter.represent_dict) + +SafeRepresenter.add_representer(set, + SafeRepresenter.represent_set) + +SafeRepresenter.add_representer(datetime.date, + SafeRepresenter.represent_date) + +SafeRepresenter.add_representer(datetime.datetime, + SafeRepresenter.represent_datetime) + +SafeRepresenter.add_representer(None, + SafeRepresenter.represent_undefined) + +class Representer(SafeRepresenter): + + def represent_complex(self, data): + if data.imag == 0.0: + data = '%r' % data.real + elif data.real == 0.0: + data = '%rj' % data.imag + elif data.imag > 0: + data = '%r+%rj' % (data.real, data.imag) + else: + data = '%r%rj' % (data.real, data.imag) + return self.represent_scalar('tag:yaml.org,2002:python/complex', data) + + def represent_tuple(self, data): + return self.represent_sequence('tag:yaml.org,2002:python/tuple', data) + + def represent_name(self, data): + name = '%s.%s' % (data.__module__, data.__name__) + return self.represent_scalar('tag:yaml.org,2002:python/name:'+name, '') + + def represent_module(self, data): + return self.represent_scalar( + 'tag:yaml.org,2002:python/module:'+data.__name__, '') + + def represent_object(self, data): + # We use __reduce__ API to save the data. data.__reduce__ returns + # a tuple of length 2-5: + # (function, args, state, listitems, dictitems) + + # For reconstructing, we calls function(*args), then set its state, + # listitems, and dictitems if they are not None. + + # A special case is when function.__name__ == '__newobj__'. In this + # case we create the object with args[0].__new__(*args). + + # Another special case is when __reduce__ returns a string - we don't + # support it. + + # We produce a !!python/object, !!python/object/new or + # !!python/object/apply node. + + cls = type(data) + if cls in copyreg.dispatch_table: + reduce = copyreg.dispatch_table[cls](data) + elif hasattr(data, '__reduce_ex__'): + reduce = data.__reduce_ex__(2) + elif hasattr(data, '__reduce__'): + reduce = data.__reduce__() + else: + raise RepresenterError("cannot represent an object", data) + reduce = (list(reduce)+[None]*5)[:5] + function, args, state, listitems, dictitems = reduce + args = list(args) + if state is None: + state = {} + if listitems is not None: + listitems = list(listitems) + if dictitems is not None: + dictitems = dict(dictitems) + if function.__name__ == '__newobj__': + function = args[0] + args = args[1:] + tag = 'tag:yaml.org,2002:python/object/new:' + newobj = True + else: + tag = 'tag:yaml.org,2002:python/object/apply:' + newobj = False + function_name = '%s.%s' % (function.__module__, function.__name__) + if not args and not listitems and not dictitems \ + and isinstance(state, dict) and newobj: + return self.represent_mapping( + 'tag:yaml.org,2002:python/object:'+function_name, state) + if not listitems and not dictitems \ + and isinstance(state, dict) and not state: + return self.represent_sequence(tag+function_name, args) + value = {} + if args: + value['args'] = args + if state or not isinstance(state, dict): + value['state'] = state + if listitems: + value['listitems'] = listitems + if dictitems: + value['dictitems'] = dictitems + return self.represent_mapping(tag+function_name, value) + + def represent_ordered_dict(self, data): + # Provide uniform representation across different Python versions. + data_type = type(data) + tag = 'tag:yaml.org,2002:python/object/apply:%s.%s' \ + % (data_type.__module__, data_type.__name__) + items = [[key, value] for key, value in data.items()] + return self.represent_sequence(tag, [items]) + +Representer.add_representer(complex, + Representer.represent_complex) + +Representer.add_representer(tuple, + Representer.represent_tuple) + +Representer.add_representer(type, + Representer.represent_name) + +Representer.add_representer(collections.OrderedDict, + Representer.represent_ordered_dict) + +Representer.add_representer(types.FunctionType, + Representer.represent_name) + +Representer.add_representer(types.BuiltinFunctionType, + Representer.represent_name) + +Representer.add_representer(types.ModuleType, + Representer.represent_module) + +Representer.add_multi_representer(object, + Representer.represent_object) + diff --git a/third_party/python/PyYAML/lib3/yaml/resolver.py b/third_party/python/PyYAML/lib3/yaml/resolver.py new file mode 100644 index 0000000000..02b82e73ee --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/resolver.py @@ -0,0 +1,227 @@ + +__all__ = ['BaseResolver', 'Resolver'] + +from .error import * +from .nodes import * + +import re + +class ResolverError(YAMLError): + pass + +class BaseResolver: + + DEFAULT_SCALAR_TAG = 'tag:yaml.org,2002:str' + DEFAULT_SEQUENCE_TAG = 'tag:yaml.org,2002:seq' + DEFAULT_MAPPING_TAG = 'tag:yaml.org,2002:map' + + yaml_implicit_resolvers = {} + yaml_path_resolvers = {} + + def __init__(self): + self.resolver_exact_paths = [] + self.resolver_prefix_paths = [] + + @classmethod + def add_implicit_resolver(cls, tag, regexp, first): + if not 'yaml_implicit_resolvers' in cls.__dict__: + implicit_resolvers = {} + for key in cls.yaml_implicit_resolvers: + implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:] + cls.yaml_implicit_resolvers = implicit_resolvers + if first is None: + first = [None] + for ch in first: + cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp)) + + @classmethod + def add_path_resolver(cls, tag, path, kind=None): + # Note: `add_path_resolver` is experimental. The API could be changed. + # `new_path` is a pattern that is matched against the path from the + # root to the node that is being considered. `node_path` elements are + # tuples `(node_check, index_check)`. `node_check` is a node class: + # `ScalarNode`, `SequenceNode`, `MappingNode` or `None`. `None` + # matches any kind of a node. `index_check` could be `None`, a boolean + # value, a string value, or a number. `None` and `False` match against + # any _value_ of sequence and mapping nodes. `True` matches against + # any _key_ of a mapping node. A string `index_check` matches against + # a mapping value that corresponds to a scalar key which content is + # equal to the `index_check` value. An integer `index_check` matches + # against a sequence value with the index equal to `index_check`. + if not 'yaml_path_resolvers' in cls.__dict__: + cls.yaml_path_resolvers = cls.yaml_path_resolvers.copy() + new_path = [] + for element in path: + if isinstance(element, (list, tuple)): + if len(element) == 2: + node_check, index_check = element + elif len(element) == 1: + node_check = element[0] + index_check = True + else: + raise ResolverError("Invalid path element: %s" % element) + else: + node_check = None + index_check = element + if node_check is str: + node_check = ScalarNode + elif node_check is list: + node_check = SequenceNode + elif node_check is dict: + node_check = MappingNode + elif node_check not in [ScalarNode, SequenceNode, MappingNode] \ + and not isinstance(node_check, str) \ + and node_check is not None: + raise ResolverError("Invalid node checker: %s" % node_check) + if not isinstance(index_check, (str, int)) \ + and index_check is not None: + raise ResolverError("Invalid index checker: %s" % index_check) + new_path.append((node_check, index_check)) + if kind is str: + kind = ScalarNode + elif kind is list: + kind = SequenceNode + elif kind is dict: + kind = MappingNode + elif kind not in [ScalarNode, SequenceNode, MappingNode] \ + and kind is not None: + raise ResolverError("Invalid node kind: %s" % kind) + cls.yaml_path_resolvers[tuple(new_path), kind] = tag + + def descend_resolver(self, current_node, current_index): + if not self.yaml_path_resolvers: + return + exact_paths = {} + prefix_paths = [] + if current_node: + depth = len(self.resolver_prefix_paths) + for path, kind in self.resolver_prefix_paths[-1]: + if self.check_resolver_prefix(depth, path, kind, + current_node, current_index): + if len(path) > depth: + prefix_paths.append((path, kind)) + else: + exact_paths[kind] = self.yaml_path_resolvers[path, kind] + else: + for path, kind in self.yaml_path_resolvers: + if not path: + exact_paths[kind] = self.yaml_path_resolvers[path, kind] + else: + prefix_paths.append((path, kind)) + self.resolver_exact_paths.append(exact_paths) + self.resolver_prefix_paths.append(prefix_paths) + + def ascend_resolver(self): + if not self.yaml_path_resolvers: + return + self.resolver_exact_paths.pop() + self.resolver_prefix_paths.pop() + + def check_resolver_prefix(self, depth, path, kind, + current_node, current_index): + node_check, index_check = path[depth-1] + if isinstance(node_check, str): + if current_node.tag != node_check: + return + elif node_check is not None: + if not isinstance(current_node, node_check): + return + if index_check is True and current_index is not None: + return + if (index_check is False or index_check is None) \ + and current_index is None: + return + if isinstance(index_check, str): + if not (isinstance(current_index, ScalarNode) + and index_check == current_index.value): + return + elif isinstance(index_check, int) and not isinstance(index_check, bool): + if index_check != current_index: + return + return True + + def resolve(self, kind, value, implicit): + if kind is ScalarNode and implicit[0]: + if value == '': + resolvers = self.yaml_implicit_resolvers.get('', []) + else: + resolvers = self.yaml_implicit_resolvers.get(value[0], []) + resolvers += self.yaml_implicit_resolvers.get(None, []) + for tag, regexp in resolvers: + if regexp.match(value): + return tag + implicit = implicit[1] + if self.yaml_path_resolvers: + exact_paths = self.resolver_exact_paths[-1] + if kind in exact_paths: + return exact_paths[kind] + if None in exact_paths: + return exact_paths[None] + if kind is ScalarNode: + return self.DEFAULT_SCALAR_TAG + elif kind is SequenceNode: + return self.DEFAULT_SEQUENCE_TAG + elif kind is MappingNode: + return self.DEFAULT_MAPPING_TAG + +class Resolver(BaseResolver): + pass + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:bool', + re.compile(r'''^(?:yes|Yes|YES|no|No|NO + |true|True|TRUE|false|False|FALSE + |on|On|ON|off|Off|OFF)$''', re.X), + list('yYnNtTfFoO')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:float', + re.compile(r'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)? + |\.[0-9_]+(?:[eE][-+][0-9]+)? + |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]* + |[-+]?\.(?:inf|Inf|INF) + |\.(?:nan|NaN|NAN))$''', re.X), + list('-+0123456789.')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:int', + re.compile(r'''^(?:[-+]?0b[0-1_]+ + |[-+]?0[0-7_]+ + |[-+]?(?:0|[1-9][0-9_]*) + |[-+]?0x[0-9a-fA-F_]+ + |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X), + list('-+0123456789')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:merge', + re.compile(r'^(?:<<)$'), + ['<']) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:null', + re.compile(r'''^(?: ~ + |null|Null|NULL + | )$''', re.X), + ['~', 'n', 'N', '']) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:timestamp', + re.compile(r'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] + |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]? + (?:[Tt]|[ \t]+)[0-9][0-9]? + :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)? + (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X), + list('0123456789')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:value', + re.compile(r'^(?:=)$'), + ['=']) + +# The following resolver is only for documentation purposes. It cannot work +# because plain scalars cannot start with '!', '&', or '*'. +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:yaml', + re.compile(r'^(?:!|&|\*)$'), + list('!&*')) + diff --git a/third_party/python/PyYAML/lib3/yaml/scanner.py b/third_party/python/PyYAML/lib3/yaml/scanner.py new file mode 100644 index 0000000000..7437ede1c6 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/scanner.py @@ -0,0 +1,1435 @@ + +# Scanner produces tokens of the following types: +# STREAM-START +# STREAM-END +# DIRECTIVE(name, value) +# DOCUMENT-START +# DOCUMENT-END +# BLOCK-SEQUENCE-START +# BLOCK-MAPPING-START +# BLOCK-END +# FLOW-SEQUENCE-START +# FLOW-MAPPING-START +# FLOW-SEQUENCE-END +# FLOW-MAPPING-END +# BLOCK-ENTRY +# FLOW-ENTRY +# KEY +# VALUE +# ALIAS(value) +# ANCHOR(value) +# TAG(value) +# SCALAR(value, plain, style) +# +# Read comments in the Scanner code for more details. +# + +__all__ = ['Scanner', 'ScannerError'] + +from .error import MarkedYAMLError +from .tokens import * + +class ScannerError(MarkedYAMLError): + pass + +class SimpleKey: + # See below simple keys treatment. + + def __init__(self, token_number, required, index, line, column, mark): + self.token_number = token_number + self.required = required + self.index = index + self.line = line + self.column = column + self.mark = mark + +class Scanner: + + def __init__(self): + """Initialize the scanner.""" + # It is assumed that Scanner and Reader will have a common descendant. + # Reader do the dirty work of checking for BOM and converting the + # input data to Unicode. It also adds NUL to the end. + # + # Reader supports the following methods + # self.peek(i=0) # peek the next i-th character + # self.prefix(l=1) # peek the next l characters + # self.forward(l=1) # read the next l characters and move the pointer. + + # Had we reached the end of the stream? + self.done = False + + # The number of unclosed '{' and '['. `flow_level == 0` means block + # context. + self.flow_level = 0 + + # List of processed tokens that are not yet emitted. + self.tokens = [] + + # Add the STREAM-START token. + self.fetch_stream_start() + + # Number of tokens that were emitted through the `get_token` method. + self.tokens_taken = 0 + + # The current indentation level. + self.indent = -1 + + # Past indentation levels. + self.indents = [] + + # Variables related to simple keys treatment. + + # A simple key is a key that is not denoted by the '?' indicator. + # Example of simple keys: + # --- + # block simple key: value + # ? not a simple key: + # : { flow simple key: value } + # We emit the KEY token before all keys, so when we find a potential + # simple key, we try to locate the corresponding ':' indicator. + # Simple keys should be limited to a single line and 1024 characters. + + # Can a simple key start at the current position? A simple key may + # start: + # - at the beginning of the line, not counting indentation spaces + # (in block context), + # - after '{', '[', ',' (in the flow context), + # - after '?', ':', '-' (in the block context). + # In the block context, this flag also signifies if a block collection + # may start at the current position. + self.allow_simple_key = True + + # Keep track of possible simple keys. This is a dictionary. The key + # is `flow_level`; there can be no more that one possible simple key + # for each level. The value is a SimpleKey record: + # (token_number, required, index, line, column, mark) + # A simple key may start with ALIAS, ANCHOR, TAG, SCALAR(flow), + # '[', or '{' tokens. + self.possible_simple_keys = {} + + # Public methods. + + def check_token(self, *choices): + # Check if the next token is one of the given types. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + if not choices: + return True + for choice in choices: + if isinstance(self.tokens[0], choice): + return True + return False + + def peek_token(self): + # Return the next token, but do not delete if from the queue. + # Return None if no more tokens. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + return self.tokens[0] + else: + return None + + def get_token(self): + # Return the next token. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + self.tokens_taken += 1 + return self.tokens.pop(0) + + # Private methods. + + def need_more_tokens(self): + if self.done: + return False + if not self.tokens: + return True + # The current token may be a potential simple key, so we + # need to look further. + self.stale_possible_simple_keys() + if self.next_possible_simple_key() == self.tokens_taken: + return True + + def fetch_more_tokens(self): + + # Eat whitespaces and comments until we reach the next token. + self.scan_to_next_token() + + # Remove obsolete possible simple keys. + self.stale_possible_simple_keys() + + # Compare the current indentation and column. It may add some tokens + # and decrease the current indentation level. + self.unwind_indent(self.column) + + # Peek the next character. + ch = self.peek() + + # Is it the end of stream? + if ch == '\0': + return self.fetch_stream_end() + + # Is it a directive? + if ch == '%' and self.check_directive(): + return self.fetch_directive() + + # Is it the document start? + if ch == '-' and self.check_document_start(): + return self.fetch_document_start() + + # Is it the document end? + if ch == '.' and self.check_document_end(): + return self.fetch_document_end() + + # TODO: support for BOM within a stream. + #if ch == '\uFEFF': + # return self.fetch_bom() <-- issue BOMToken + + # Note: the order of the following checks is NOT significant. + + # Is it the flow sequence start indicator? + if ch == '[': + return self.fetch_flow_sequence_start() + + # Is it the flow mapping start indicator? + if ch == '{': + return self.fetch_flow_mapping_start() + + # Is it the flow sequence end indicator? + if ch == ']': + return self.fetch_flow_sequence_end() + + # Is it the flow mapping end indicator? + if ch == '}': + return self.fetch_flow_mapping_end() + + # Is it the flow entry indicator? + if ch == ',': + return self.fetch_flow_entry() + + # Is it the block entry indicator? + if ch == '-' and self.check_block_entry(): + return self.fetch_block_entry() + + # Is it the key indicator? + if ch == '?' and self.check_key(): + return self.fetch_key() + + # Is it the value indicator? + if ch == ':' and self.check_value(): + return self.fetch_value() + + # Is it an alias? + if ch == '*': + return self.fetch_alias() + + # Is it an anchor? + if ch == '&': + return self.fetch_anchor() + + # Is it a tag? + if ch == '!': + return self.fetch_tag() + + # Is it a literal scalar? + if ch == '|' and not self.flow_level: + return self.fetch_literal() + + # Is it a folded scalar? + if ch == '>' and not self.flow_level: + return self.fetch_folded() + + # Is it a single quoted scalar? + if ch == '\'': + return self.fetch_single() + + # Is it a double quoted scalar? + if ch == '\"': + return self.fetch_double() + + # It must be a plain scalar then. + if self.check_plain(): + return self.fetch_plain() + + # No? It's an error. Let's produce a nice error message. + raise ScannerError("while scanning for the next token", None, + "found character %r that cannot start any token" % ch, + self.get_mark()) + + # Simple keys treatment. + + def next_possible_simple_key(self): + # Return the number of the nearest possible simple key. Actually we + # don't need to loop through the whole dictionary. We may replace it + # with the following code: + # if not self.possible_simple_keys: + # return None + # return self.possible_simple_keys[ + # min(self.possible_simple_keys.keys())].token_number + min_token_number = None + for level in self.possible_simple_keys: + key = self.possible_simple_keys[level] + if min_token_number is None or key.token_number < min_token_number: + min_token_number = key.token_number + return min_token_number + + def stale_possible_simple_keys(self): + # Remove entries that are no longer possible simple keys. According to + # the YAML specification, simple keys + # - should be limited to a single line, + # - should be no longer than 1024 characters. + # Disabling this procedure will allow simple keys of any length and + # height (may cause problems if indentation is broken though). + for level in list(self.possible_simple_keys): + key = self.possible_simple_keys[level] + if key.line != self.line \ + or self.index-key.index > 1024: + if key.required: + raise ScannerError("while scanning a simple key", key.mark, + "could not find expected ':'", self.get_mark()) + del self.possible_simple_keys[level] + + def save_possible_simple_key(self): + # The next token may start a simple key. We check if it's possible + # and save its position. This function is called for + # ALIAS, ANCHOR, TAG, SCALAR(flow), '[', and '{'. + + # Check if a simple key is required at the current position. + required = not self.flow_level and self.indent == self.column + + # The next token might be a simple key. Let's save it's number and + # position. + if self.allow_simple_key: + self.remove_possible_simple_key() + token_number = self.tokens_taken+len(self.tokens) + key = SimpleKey(token_number, required, + self.index, self.line, self.column, self.get_mark()) + self.possible_simple_keys[self.flow_level] = key + + def remove_possible_simple_key(self): + # Remove the saved possible key position at the current flow level. + if self.flow_level in self.possible_simple_keys: + key = self.possible_simple_keys[self.flow_level] + + if key.required: + raise ScannerError("while scanning a simple key", key.mark, + "could not find expected ':'", self.get_mark()) + + del self.possible_simple_keys[self.flow_level] + + # Indentation functions. + + def unwind_indent(self, column): + + ## In flow context, tokens should respect indentation. + ## Actually the condition should be `self.indent >= column` according to + ## the spec. But this condition will prohibit intuitively correct + ## constructions such as + ## key : { + ## } + #if self.flow_level and self.indent > column: + # raise ScannerError(None, None, + # "invalid indentation or unclosed '[' or '{'", + # self.get_mark()) + + # In the flow context, indentation is ignored. We make the scanner less + # restrictive then specification requires. + if self.flow_level: + return + + # In block context, we may need to issue the BLOCK-END tokens. + while self.indent > column: + mark = self.get_mark() + self.indent = self.indents.pop() + self.tokens.append(BlockEndToken(mark, mark)) + + def add_indent(self, column): + # Check if we need to increase indentation. + if self.indent < column: + self.indents.append(self.indent) + self.indent = column + return True + return False + + # Fetchers. + + def fetch_stream_start(self): + # We always add STREAM-START as the first token and STREAM-END as the + # last token. + + # Read the token. + mark = self.get_mark() + + # Add STREAM-START. + self.tokens.append(StreamStartToken(mark, mark, + encoding=self.encoding)) + + + def fetch_stream_end(self): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. + self.remove_possible_simple_key() + self.allow_simple_key = False + self.possible_simple_keys = {} + + # Read the token. + mark = self.get_mark() + + # Add STREAM-END. + self.tokens.append(StreamEndToken(mark, mark)) + + # The steam is finished. + self.done = True + + def fetch_directive(self): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. + self.remove_possible_simple_key() + self.allow_simple_key = False + + # Scan and add DIRECTIVE. + self.tokens.append(self.scan_directive()) + + def fetch_document_start(self): + self.fetch_document_indicator(DocumentStartToken) + + def fetch_document_end(self): + self.fetch_document_indicator(DocumentEndToken) + + def fetch_document_indicator(self, TokenClass): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. Note that there could not be a block collection + # after '---'. + self.remove_possible_simple_key() + self.allow_simple_key = False + + # Add DOCUMENT-START or DOCUMENT-END. + start_mark = self.get_mark() + self.forward(3) + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_sequence_start(self): + self.fetch_flow_collection_start(FlowSequenceStartToken) + + def fetch_flow_mapping_start(self): + self.fetch_flow_collection_start(FlowMappingStartToken) + + def fetch_flow_collection_start(self, TokenClass): + + # '[' and '{' may start a simple key. + self.save_possible_simple_key() + + # Increase the flow level. + self.flow_level += 1 + + # Simple keys are allowed after '[' and '{'. + self.allow_simple_key = True + + # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_sequence_end(self): + self.fetch_flow_collection_end(FlowSequenceEndToken) + + def fetch_flow_mapping_end(self): + self.fetch_flow_collection_end(FlowMappingEndToken) + + def fetch_flow_collection_end(self, TokenClass): + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Decrease the flow level. + self.flow_level -= 1 + + # No simple keys after ']' or '}'. + self.allow_simple_key = False + + # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_entry(self): + + # Simple keys are allowed after ','. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add FLOW-ENTRY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(FlowEntryToken(start_mark, end_mark)) + + def fetch_block_entry(self): + + # Block context needs additional checks. + if not self.flow_level: + + # Are we allowed to start a new entry? + if not self.allow_simple_key: + raise ScannerError(None, None, + "sequence entries are not allowed here", + self.get_mark()) + + # We may need to add BLOCK-SEQUENCE-START. + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockSequenceStartToken(mark, mark)) + + # It's an error for the block entry to occur in the flow context, + # but we let the parser detect this. + else: + pass + + # Simple keys are allowed after '-'. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add BLOCK-ENTRY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(BlockEntryToken(start_mark, end_mark)) + + def fetch_key(self): + + # Block context needs additional checks. + if not self.flow_level: + + # Are we allowed to start a key (not necessary a simple)? + if not self.allow_simple_key: + raise ScannerError(None, None, + "mapping keys are not allowed here", + self.get_mark()) + + # We may need to add BLOCK-MAPPING-START. + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockMappingStartToken(mark, mark)) + + # Simple keys are allowed after '?' in the block context. + self.allow_simple_key = not self.flow_level + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add KEY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(KeyToken(start_mark, end_mark)) + + def fetch_value(self): + + # Do we determine a simple key? + if self.flow_level in self.possible_simple_keys: + + # Add KEY. + key = self.possible_simple_keys[self.flow_level] + del self.possible_simple_keys[self.flow_level] + self.tokens.insert(key.token_number-self.tokens_taken, + KeyToken(key.mark, key.mark)) + + # If this key starts a new block mapping, we need to add + # BLOCK-MAPPING-START. + if not self.flow_level: + if self.add_indent(key.column): + self.tokens.insert(key.token_number-self.tokens_taken, + BlockMappingStartToken(key.mark, key.mark)) + + # There cannot be two simple keys one after another. + self.allow_simple_key = False + + # It must be a part of a complex key. + else: + + # Block context needs additional checks. + # (Do we really need them? They will be caught by the parser + # anyway.) + if not self.flow_level: + + # We are allowed to start a complex value if and only if + # we can start a simple key. + if not self.allow_simple_key: + raise ScannerError(None, None, + "mapping values are not allowed here", + self.get_mark()) + + # If this value starts a new block mapping, we need to add + # BLOCK-MAPPING-START. It will be detected as an error later by + # the parser. + if not self.flow_level: + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockMappingStartToken(mark, mark)) + + # Simple keys are allowed after ':' in the block context. + self.allow_simple_key = not self.flow_level + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add VALUE. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(ValueToken(start_mark, end_mark)) + + def fetch_alias(self): + + # ALIAS could be a simple key. + self.save_possible_simple_key() + + # No simple keys after ALIAS. + self.allow_simple_key = False + + # Scan and add ALIAS. + self.tokens.append(self.scan_anchor(AliasToken)) + + def fetch_anchor(self): + + # ANCHOR could start a simple key. + self.save_possible_simple_key() + + # No simple keys after ANCHOR. + self.allow_simple_key = False + + # Scan and add ANCHOR. + self.tokens.append(self.scan_anchor(AnchorToken)) + + def fetch_tag(self): + + # TAG could start a simple key. + self.save_possible_simple_key() + + # No simple keys after TAG. + self.allow_simple_key = False + + # Scan and add TAG. + self.tokens.append(self.scan_tag()) + + def fetch_literal(self): + self.fetch_block_scalar(style='|') + + def fetch_folded(self): + self.fetch_block_scalar(style='>') + + def fetch_block_scalar(self, style): + + # A simple key may follow a block scalar. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Scan and add SCALAR. + self.tokens.append(self.scan_block_scalar(style)) + + def fetch_single(self): + self.fetch_flow_scalar(style='\'') + + def fetch_double(self): + self.fetch_flow_scalar(style='"') + + def fetch_flow_scalar(self, style): + + # A flow scalar could be a simple key. + self.save_possible_simple_key() + + # No simple keys after flow scalars. + self.allow_simple_key = False + + # Scan and add SCALAR. + self.tokens.append(self.scan_flow_scalar(style)) + + def fetch_plain(self): + + # A plain scalar could be a simple key. + self.save_possible_simple_key() + + # No simple keys after plain scalars. But note that `scan_plain` will + # change this flag if the scan is finished at the beginning of the + # line. + self.allow_simple_key = False + + # Scan and add SCALAR. May change `allow_simple_key`. + self.tokens.append(self.scan_plain()) + + # Checkers. + + def check_directive(self): + + # DIRECTIVE: ^ '%' ... + # The '%' indicator is already checked. + if self.column == 0: + return True + + def check_document_start(self): + + # DOCUMENT-START: ^ '---' (' '|'\n') + if self.column == 0: + if self.prefix(3) == '---' \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return True + + def check_document_end(self): + + # DOCUMENT-END: ^ '...' (' '|'\n') + if self.column == 0: + if self.prefix(3) == '...' \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return True + + def check_block_entry(self): + + # BLOCK-ENTRY: '-' (' '|'\n') + return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029' + + def check_key(self): + + # KEY(flow context): '?' + if self.flow_level: + return True + + # KEY(block context): '?' (' '|'\n') + else: + return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029' + + def check_value(self): + + # VALUE(flow context): ':' + if self.flow_level: + return True + + # VALUE(block context): ':' (' '|'\n') + else: + return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029' + + def check_plain(self): + + # A plain scalar may start with any non-space character except: + # '-', '?', ':', ',', '[', ']', '{', '}', + # '#', '&', '*', '!', '|', '>', '\'', '\"', + # '%', '@', '`'. + # + # It may also start with + # '-', '?', ':' + # if it is followed by a non-space character. + # + # Note that we limit the last rule to the block context (except the + # '-' character) because we want the flow context to be space + # independent. + ch = self.peek() + return ch not in '\0 \t\r\n\x85\u2028\u2029-?:,[]{}#&*!|>\'\"%@`' \ + or (self.peek(1) not in '\0 \t\r\n\x85\u2028\u2029' + and (ch == '-' or (not self.flow_level and ch in '?:'))) + + # Scanners. + + def scan_to_next_token(self): + # We ignore spaces, line breaks and comments. + # If we find a line break in the block context, we set the flag + # `allow_simple_key` on. + # The byte order mark is stripped if it's the first character in the + # stream. We do not yet support BOM inside the stream as the + # specification requires. Any such mark will be considered as a part + # of the document. + # + # TODO: We need to make tab handling rules more sane. A good rule is + # Tabs cannot precede tokens + # BLOCK-SEQUENCE-START, BLOCK-MAPPING-START, BLOCK-END, + # KEY(block), VALUE(block), BLOCK-ENTRY + # So the checking code is + # if <TAB>: + # self.allow_simple_keys = False + # We also need to add the check for `allow_simple_keys == True` to + # `unwind_indent` before issuing BLOCK-END. + # Scanners for block, flow, and plain scalars need to be modified. + + if self.index == 0 and self.peek() == '\uFEFF': + self.forward() + found = False + while not found: + while self.peek() == ' ': + self.forward() + if self.peek() == '#': + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + if self.scan_line_break(): + if not self.flow_level: + self.allow_simple_key = True + else: + found = True + + def scan_directive(self): + # See the specification for details. + start_mark = self.get_mark() + self.forward() + name = self.scan_directive_name(start_mark) + value = None + if name == 'YAML': + value = self.scan_yaml_directive_value(start_mark) + end_mark = self.get_mark() + elif name == 'TAG': + value = self.scan_tag_directive_value(start_mark) + end_mark = self.get_mark() + else: + end_mark = self.get_mark() + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + self.scan_directive_ignored_line(start_mark) + return DirectiveToken(name, value, start_mark, end_mark) + + def scan_directive_name(self, start_mark): + # See the specification for details. + length = 0 + ch = self.peek(length) + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_': + length += 1 + ch = self.peek(length) + if not length: + raise ScannerError("while scanning a directive", start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + value = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + return value + + def scan_yaml_directive_value(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + major = self.scan_yaml_directive_number(start_mark) + if self.peek() != '.': + raise ScannerError("while scanning a directive", start_mark, + "expected a digit or '.', but found %r" % self.peek(), + self.get_mark()) + self.forward() + minor = self.scan_yaml_directive_number(start_mark) + if self.peek() not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected a digit or ' ', but found %r" % self.peek(), + self.get_mark()) + return (major, minor) + + def scan_yaml_directive_number(self, start_mark): + # See the specification for details. + ch = self.peek() + if not ('0' <= ch <= '9'): + raise ScannerError("while scanning a directive", start_mark, + "expected a digit, but found %r" % ch, self.get_mark()) + length = 0 + while '0' <= self.peek(length) <= '9': + length += 1 + value = int(self.prefix(length)) + self.forward(length) + return value + + def scan_tag_directive_value(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + handle = self.scan_tag_directive_handle(start_mark) + while self.peek() == ' ': + self.forward() + prefix = self.scan_tag_directive_prefix(start_mark) + return (handle, prefix) + + def scan_tag_directive_handle(self, start_mark): + # See the specification for details. + value = self.scan_tag_handle('directive', start_mark) + ch = self.peek() + if ch != ' ': + raise ScannerError("while scanning a directive", start_mark, + "expected ' ', but found %r" % ch, self.get_mark()) + return value + + def scan_tag_directive_prefix(self, start_mark): + # See the specification for details. + value = self.scan_tag_uri('directive', start_mark) + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected ' ', but found %r" % ch, self.get_mark()) + return value + + def scan_directive_ignored_line(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + if self.peek() == '#': + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + ch = self.peek() + if ch not in '\0\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected a comment or a line break, but found %r" + % ch, self.get_mark()) + self.scan_line_break() + + def scan_anchor(self, TokenClass): + # The specification does not restrict characters for anchors and + # aliases. This may lead to problems, for instance, the document: + # [ *alias, value ] + # can be interpreted in two ways, as + # [ "value" ] + # and + # [ *alias , "value" ] + # Therefore we restrict aliases to numbers and ASCII letters. + start_mark = self.get_mark() + indicator = self.peek() + if indicator == '*': + name = 'alias' + else: + name = 'anchor' + self.forward() + length = 0 + ch = self.peek(length) + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_': + length += 1 + ch = self.peek(length) + if not length: + raise ScannerError("while scanning an %s" % name, start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + value = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch not in '\0 \t\r\n\x85\u2028\u2029?:,]}%@`': + raise ScannerError("while scanning an %s" % name, start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + end_mark = self.get_mark() + return TokenClass(value, start_mark, end_mark) + + def scan_tag(self): + # See the specification for details. + start_mark = self.get_mark() + ch = self.peek(1) + if ch == '<': + handle = None + self.forward(2) + suffix = self.scan_tag_uri('tag', start_mark) + if self.peek() != '>': + raise ScannerError("while parsing a tag", start_mark, + "expected '>', but found %r" % self.peek(), + self.get_mark()) + self.forward() + elif ch in '\0 \t\r\n\x85\u2028\u2029': + handle = None + suffix = '!' + self.forward() + else: + length = 1 + use_handle = False + while ch not in '\0 \r\n\x85\u2028\u2029': + if ch == '!': + use_handle = True + break + length += 1 + ch = self.peek(length) + handle = '!' + if use_handle: + handle = self.scan_tag_handle('tag', start_mark) + else: + handle = '!' + self.forward() + suffix = self.scan_tag_uri('tag', start_mark) + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a tag", start_mark, + "expected ' ', but found %r" % ch, self.get_mark()) + value = (handle, suffix) + end_mark = self.get_mark() + return TagToken(value, start_mark, end_mark) + + def scan_block_scalar(self, style): + # See the specification for details. + + if style == '>': + folded = True + else: + folded = False + + chunks = [] + start_mark = self.get_mark() + + # Scan the header. + self.forward() + chomping, increment = self.scan_block_scalar_indicators(start_mark) + self.scan_block_scalar_ignored_line(start_mark) + + # Determine the indentation level and go to the first non-empty line. + min_indent = self.indent+1 + if min_indent < 1: + min_indent = 1 + if increment is None: + breaks, max_indent, end_mark = self.scan_block_scalar_indentation() + indent = max(min_indent, max_indent) + else: + indent = min_indent+increment-1 + breaks, end_mark = self.scan_block_scalar_breaks(indent) + line_break = '' + + # Scan the inner part of the block scalar. + while self.column == indent and self.peek() != '\0': + chunks.extend(breaks) + leading_non_space = self.peek() not in ' \t' + length = 0 + while self.peek(length) not in '\0\r\n\x85\u2028\u2029': + length += 1 + chunks.append(self.prefix(length)) + self.forward(length) + line_break = self.scan_line_break() + breaks, end_mark = self.scan_block_scalar_breaks(indent) + if self.column == indent and self.peek() != '\0': + + # Unfortunately, folding rules are ambiguous. + # + # This is the folding according to the specification: + + if folded and line_break == '\n' \ + and leading_non_space and self.peek() not in ' \t': + if not breaks: + chunks.append(' ') + else: + chunks.append(line_break) + + # This is Clark Evans's interpretation (also in the spec + # examples): + # + #if folded and line_break == '\n': + # if not breaks: + # if self.peek() not in ' \t': + # chunks.append(' ') + # else: + # chunks.append(line_break) + #else: + # chunks.append(line_break) + else: + break + + # Chomp the tail. + if chomping is not False: + chunks.append(line_break) + if chomping is True: + chunks.extend(breaks) + + # We are done. + return ScalarToken(''.join(chunks), False, start_mark, end_mark, + style) + + def scan_block_scalar_indicators(self, start_mark): + # See the specification for details. + chomping = None + increment = None + ch = self.peek() + if ch in '+-': + if ch == '+': + chomping = True + else: + chomping = False + self.forward() + ch = self.peek() + if ch in '0123456789': + increment = int(ch) + if increment == 0: + raise ScannerError("while scanning a block scalar", start_mark, + "expected indentation indicator in the range 1-9, but found 0", + self.get_mark()) + self.forward() + elif ch in '0123456789': + increment = int(ch) + if increment == 0: + raise ScannerError("while scanning a block scalar", start_mark, + "expected indentation indicator in the range 1-9, but found 0", + self.get_mark()) + self.forward() + ch = self.peek() + if ch in '+-': + if ch == '+': + chomping = True + else: + chomping = False + self.forward() + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a block scalar", start_mark, + "expected chomping or indentation indicators, but found %r" + % ch, self.get_mark()) + return chomping, increment + + def scan_block_scalar_ignored_line(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + if self.peek() == '#': + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + ch = self.peek() + if ch not in '\0\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a block scalar", start_mark, + "expected a comment or a line break, but found %r" % ch, + self.get_mark()) + self.scan_line_break() + + def scan_block_scalar_indentation(self): + # See the specification for details. + chunks = [] + max_indent = 0 + end_mark = self.get_mark() + while self.peek() in ' \r\n\x85\u2028\u2029': + if self.peek() != ' ': + chunks.append(self.scan_line_break()) + end_mark = self.get_mark() + else: + self.forward() + if self.column > max_indent: + max_indent = self.column + return chunks, max_indent, end_mark + + def scan_block_scalar_breaks(self, indent): + # See the specification for details. + chunks = [] + end_mark = self.get_mark() + while self.column < indent and self.peek() == ' ': + self.forward() + while self.peek() in '\r\n\x85\u2028\u2029': + chunks.append(self.scan_line_break()) + end_mark = self.get_mark() + while self.column < indent and self.peek() == ' ': + self.forward() + return chunks, end_mark + + def scan_flow_scalar(self, style): + # See the specification for details. + # Note that we loose indentation rules for quoted scalars. Quoted + # scalars don't need to adhere indentation because " and ' clearly + # mark the beginning and the end of them. Therefore we are less + # restrictive then the specification requires. We only need to check + # that document separators are not included in scalars. + if style == '"': + double = True + else: + double = False + chunks = [] + start_mark = self.get_mark() + quote = self.peek() + self.forward() + chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark)) + while self.peek() != quote: + chunks.extend(self.scan_flow_scalar_spaces(double, start_mark)) + chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark)) + self.forward() + end_mark = self.get_mark() + return ScalarToken(''.join(chunks), False, start_mark, end_mark, + style) + + ESCAPE_REPLACEMENTS = { + '0': '\0', + 'a': '\x07', + 'b': '\x08', + 't': '\x09', + '\t': '\x09', + 'n': '\x0A', + 'v': '\x0B', + 'f': '\x0C', + 'r': '\x0D', + 'e': '\x1B', + ' ': '\x20', + '\"': '\"', + '\\': '\\', + '/': '/', + 'N': '\x85', + '_': '\xA0', + 'L': '\u2028', + 'P': '\u2029', + } + + ESCAPE_CODES = { + 'x': 2, + 'u': 4, + 'U': 8, + } + + def scan_flow_scalar_non_spaces(self, double, start_mark): + # See the specification for details. + chunks = [] + while True: + length = 0 + while self.peek(length) not in '\'\"\\\0 \t\r\n\x85\u2028\u2029': + length += 1 + if length: + chunks.append(self.prefix(length)) + self.forward(length) + ch = self.peek() + if not double and ch == '\'' and self.peek(1) == '\'': + chunks.append('\'') + self.forward(2) + elif (double and ch == '\'') or (not double and ch in '\"\\'): + chunks.append(ch) + self.forward() + elif double and ch == '\\': + self.forward() + ch = self.peek() + if ch in self.ESCAPE_REPLACEMENTS: + chunks.append(self.ESCAPE_REPLACEMENTS[ch]) + self.forward() + elif ch in self.ESCAPE_CODES: + length = self.ESCAPE_CODES[ch] + self.forward() + for k in range(length): + if self.peek(k) not in '0123456789ABCDEFabcdef': + raise ScannerError("while scanning a double-quoted scalar", start_mark, + "expected escape sequence of %d hexdecimal numbers, but found %r" % + (length, self.peek(k)), self.get_mark()) + code = int(self.prefix(length), 16) + chunks.append(chr(code)) + self.forward(length) + elif ch in '\r\n\x85\u2028\u2029': + self.scan_line_break() + chunks.extend(self.scan_flow_scalar_breaks(double, start_mark)) + else: + raise ScannerError("while scanning a double-quoted scalar", start_mark, + "found unknown escape character %r" % ch, self.get_mark()) + else: + return chunks + + def scan_flow_scalar_spaces(self, double, start_mark): + # See the specification for details. + chunks = [] + length = 0 + while self.peek(length) in ' \t': + length += 1 + whitespaces = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch == '\0': + raise ScannerError("while scanning a quoted scalar", start_mark, + "found unexpected end of stream", self.get_mark()) + elif ch in '\r\n\x85\u2028\u2029': + line_break = self.scan_line_break() + breaks = self.scan_flow_scalar_breaks(double, start_mark) + if line_break != '\n': + chunks.append(line_break) + elif not breaks: + chunks.append(' ') + chunks.extend(breaks) + else: + chunks.append(whitespaces) + return chunks + + def scan_flow_scalar_breaks(self, double, start_mark): + # See the specification for details. + chunks = [] + while True: + # Instead of checking indentation, we check for document + # separators. + prefix = self.prefix(3) + if (prefix == '---' or prefix == '...') \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a quoted scalar", start_mark, + "found unexpected document separator", self.get_mark()) + while self.peek() in ' \t': + self.forward() + if self.peek() in '\r\n\x85\u2028\u2029': + chunks.append(self.scan_line_break()) + else: + return chunks + + def scan_plain(self): + # See the specification for details. + # We add an additional restriction for the flow context: + # plain scalars in the flow context cannot contain ',' or '?'. + # We also keep track of the `allow_simple_key` flag here. + # Indentation rules are loosed for the flow context. + chunks = [] + start_mark = self.get_mark() + end_mark = start_mark + indent = self.indent+1 + # We allow zero indentation for scalars, but then we need to check for + # document separators at the beginning of the line. + #if indent == 0: + # indent = 1 + spaces = [] + while True: + length = 0 + if self.peek() == '#': + break + while True: + ch = self.peek(length) + if ch in '\0 \t\r\n\x85\u2028\u2029' \ + or (ch == ':' and + self.peek(length+1) in '\0 \t\r\n\x85\u2028\u2029' + + (u',[]{}' if self.flow_level else u''))\ + or (self.flow_level and ch in ',?[]{}'): + break + length += 1 + if length == 0: + break + self.allow_simple_key = False + chunks.extend(spaces) + chunks.append(self.prefix(length)) + self.forward(length) + end_mark = self.get_mark() + spaces = self.scan_plain_spaces(indent, start_mark) + if not spaces or self.peek() == '#' \ + or (not self.flow_level and self.column < indent): + break + return ScalarToken(''.join(chunks), True, start_mark, end_mark) + + def scan_plain_spaces(self, indent, start_mark): + # See the specification for details. + # The specification is really confusing about tabs in plain scalars. + # We just forbid them completely. Do not use tabs in YAML! + chunks = [] + length = 0 + while self.peek(length) in ' ': + length += 1 + whitespaces = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch in '\r\n\x85\u2028\u2029': + line_break = self.scan_line_break() + self.allow_simple_key = True + prefix = self.prefix(3) + if (prefix == '---' or prefix == '...') \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return + breaks = [] + while self.peek() in ' \r\n\x85\u2028\u2029': + if self.peek() == ' ': + self.forward() + else: + breaks.append(self.scan_line_break()) + prefix = self.prefix(3) + if (prefix == '---' or prefix == '...') \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return + if line_break != '\n': + chunks.append(line_break) + elif not breaks: + chunks.append(' ') + chunks.extend(breaks) + elif whitespaces: + chunks.append(whitespaces) + return chunks + + def scan_tag_handle(self, name, start_mark): + # See the specification for details. + # For some strange reasons, the specification does not allow '_' in + # tag handles. I have allowed it anyway. + ch = self.peek() + if ch != '!': + raise ScannerError("while scanning a %s" % name, start_mark, + "expected '!', but found %r" % ch, self.get_mark()) + length = 1 + ch = self.peek(length) + if ch != ' ': + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_': + length += 1 + ch = self.peek(length) + if ch != '!': + self.forward(length) + raise ScannerError("while scanning a %s" % name, start_mark, + "expected '!', but found %r" % ch, self.get_mark()) + length += 1 + value = self.prefix(length) + self.forward(length) + return value + + def scan_tag_uri(self, name, start_mark): + # See the specification for details. + # Note: we do not check if URI is well-formed. + chunks = [] + length = 0 + ch = self.peek(length) + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-;/?:@&=+$,_.!~*\'()[]%': + if ch == '%': + chunks.append(self.prefix(length)) + self.forward(length) + length = 0 + chunks.append(self.scan_uri_escapes(name, start_mark)) + else: + length += 1 + ch = self.peek(length) + if length: + chunks.append(self.prefix(length)) + self.forward(length) + length = 0 + if not chunks: + raise ScannerError("while parsing a %s" % name, start_mark, + "expected URI, but found %r" % ch, self.get_mark()) + return ''.join(chunks) + + def scan_uri_escapes(self, name, start_mark): + # See the specification for details. + codes = [] + mark = self.get_mark() + while self.peek() == '%': + self.forward() + for k in range(2): + if self.peek(k) not in '0123456789ABCDEFabcdef': + raise ScannerError("while scanning a %s" % name, start_mark, + "expected URI escape sequence of 2 hexdecimal numbers, but found %r" + % self.peek(k), self.get_mark()) + codes.append(int(self.prefix(2), 16)) + self.forward(2) + try: + value = bytes(codes).decode('utf-8') + except UnicodeDecodeError as exc: + raise ScannerError("while scanning a %s" % name, start_mark, str(exc), mark) + return value + + def scan_line_break(self): + # Transforms: + # '\r\n' : '\n' + # '\r' : '\n' + # '\n' : '\n' + # '\x85' : '\n' + # '\u2028' : '\u2028' + # '\u2029 : '\u2029' + # default : '' + ch = self.peek() + if ch in '\r\n\x85': + if self.prefix(2) == '\r\n': + self.forward(2) + else: + self.forward() + return '\n' + elif ch in '\u2028\u2029': + self.forward() + return ch + return '' diff --git a/third_party/python/PyYAML/lib3/yaml/serializer.py b/third_party/python/PyYAML/lib3/yaml/serializer.py new file mode 100644 index 0000000000..fe911e67ae --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/serializer.py @@ -0,0 +1,111 @@ + +__all__ = ['Serializer', 'SerializerError'] + +from .error import YAMLError +from .events import * +from .nodes import * + +class SerializerError(YAMLError): + pass + +class Serializer: + + ANCHOR_TEMPLATE = 'id%03d' + + def __init__(self, encoding=None, + explicit_start=None, explicit_end=None, version=None, tags=None): + self.use_encoding = encoding + self.use_explicit_start = explicit_start + self.use_explicit_end = explicit_end + self.use_version = version + self.use_tags = tags + self.serialized_nodes = {} + self.anchors = {} + self.last_anchor_id = 0 + self.closed = None + + def open(self): + if self.closed is None: + self.emit(StreamStartEvent(encoding=self.use_encoding)) + self.closed = False + elif self.closed: + raise SerializerError("serializer is closed") + else: + raise SerializerError("serializer is already opened") + + def close(self): + if self.closed is None: + raise SerializerError("serializer is not opened") + elif not self.closed: + self.emit(StreamEndEvent()) + self.closed = True + + #def __del__(self): + # self.close() + + def serialize(self, node): + if self.closed is None: + raise SerializerError("serializer is not opened") + elif self.closed: + raise SerializerError("serializer is closed") + self.emit(DocumentStartEvent(explicit=self.use_explicit_start, + version=self.use_version, tags=self.use_tags)) + self.anchor_node(node) + self.serialize_node(node, None, None) + self.emit(DocumentEndEvent(explicit=self.use_explicit_end)) + self.serialized_nodes = {} + self.anchors = {} + self.last_anchor_id = 0 + + def anchor_node(self, node): + if node in self.anchors: + if self.anchors[node] is None: + self.anchors[node] = self.generate_anchor(node) + else: + self.anchors[node] = None + if isinstance(node, SequenceNode): + for item in node.value: + self.anchor_node(item) + elif isinstance(node, MappingNode): + for key, value in node.value: + self.anchor_node(key) + self.anchor_node(value) + + def generate_anchor(self, node): + self.last_anchor_id += 1 + return self.ANCHOR_TEMPLATE % self.last_anchor_id + + def serialize_node(self, node, parent, index): + alias = self.anchors[node] + if node in self.serialized_nodes: + self.emit(AliasEvent(alias)) + else: + self.serialized_nodes[node] = True + self.descend_resolver(parent, index) + if isinstance(node, ScalarNode): + detected_tag = self.resolve(ScalarNode, node.value, (True, False)) + default_tag = self.resolve(ScalarNode, node.value, (False, True)) + implicit = (node.tag == detected_tag), (node.tag == default_tag) + self.emit(ScalarEvent(alias, node.tag, implicit, node.value, + style=node.style)) + elif isinstance(node, SequenceNode): + implicit = (node.tag + == self.resolve(SequenceNode, node.value, True)) + self.emit(SequenceStartEvent(alias, node.tag, implicit, + flow_style=node.flow_style)) + index = 0 + for item in node.value: + self.serialize_node(item, node, index) + index += 1 + self.emit(SequenceEndEvent()) + elif isinstance(node, MappingNode): + implicit = (node.tag + == self.resolve(MappingNode, node.value, True)) + self.emit(MappingStartEvent(alias, node.tag, implicit, + flow_style=node.flow_style)) + for key, value in node.value: + self.serialize_node(key, node, None) + self.serialize_node(value, node, key) + self.emit(MappingEndEvent()) + self.ascend_resolver() + diff --git a/third_party/python/PyYAML/lib3/yaml/tokens.py b/third_party/python/PyYAML/lib3/yaml/tokens.py new file mode 100644 index 0000000000..4d0b48a394 --- /dev/null +++ b/third_party/python/PyYAML/lib3/yaml/tokens.py @@ -0,0 +1,104 @@ + +class Token(object): + def __init__(self, start_mark, end_mark): + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + attributes = [key for key in self.__dict__ + if not key.endswith('_mark')] + attributes.sort() + arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) + for key in attributes]) + return '%s(%s)' % (self.__class__.__name__, arguments) + +#class BOMToken(Token): +# id = '<byte order mark>' + +class DirectiveToken(Token): + id = '<directive>' + def __init__(self, name, value, start_mark, end_mark): + self.name = name + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class DocumentStartToken(Token): + id = '<document start>' + +class DocumentEndToken(Token): + id = '<document end>' + +class StreamStartToken(Token): + id = '<stream start>' + def __init__(self, start_mark=None, end_mark=None, + encoding=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.encoding = encoding + +class StreamEndToken(Token): + id = '<stream end>' + +class BlockSequenceStartToken(Token): + id = '<block sequence start>' + +class BlockMappingStartToken(Token): + id = '<block mapping start>' + +class BlockEndToken(Token): + id = '<block end>' + +class FlowSequenceStartToken(Token): + id = '[' + +class FlowMappingStartToken(Token): + id = '{' + +class FlowSequenceEndToken(Token): + id = ']' + +class FlowMappingEndToken(Token): + id = '}' + +class KeyToken(Token): + id = '?' + +class ValueToken(Token): + id = ':' + +class BlockEntryToken(Token): + id = '-' + +class FlowEntryToken(Token): + id = ',' + +class AliasToken(Token): + id = '<alias>' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class AnchorToken(Token): + id = '<anchor>' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class TagToken(Token): + id = '<tag>' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class ScalarToken(Token): + id = '<scalar>' + def __init__(self, value, plain, start_mark, end_mark, style=None): + self.value = value + self.plain = plain + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + diff --git a/third_party/python/PyYAML/setup.cfg b/third_party/python/PyYAML/setup.cfg new file mode 100644 index 0000000000..b186858a70 --- /dev/null +++ b/third_party/python/PyYAML/setup.cfg @@ -0,0 +1,25 @@ + +# The INCLUDE and LIB directories to build the '_yaml' extension. +# You may also set them using the options '-I' and '-L'. +[build_ext] + +# List of directories to search for 'yaml.h' (separated by ':'). +#include_dirs=/usr/local/include:../../include + +# List of directories to search for 'libyaml.a' (separated by ':'). +#library_dirs=/usr/local/lib:../../lib + +# An alternative compiler to build the extension. +#compiler=mingw32 + +# Additional preprocessor definitions might be required. +#define=YAML_DECLARE_STATIC + +# The following options are used to build PyYAML Windows installer +# for Python 2.7 on my PC: +#include_dirs=../../../libyaml/tags/0.1.4/include +#library_dirs=../../../libyaml/tags/0.1.4/win32/vs2008/output/release/lib +#define=YAML_DECLARE_STATIC + +[metadata] +license_file = LICENSE
\ No newline at end of file diff --git a/third_party/python/PyYAML/setup.py b/third_party/python/PyYAML/setup.py new file mode 100644 index 0000000000..5e34adfb59 --- /dev/null +++ b/third_party/python/PyYAML/setup.py @@ -0,0 +1,315 @@ + +NAME = 'PyYAML' +VERSION = '5.3.1' +DESCRIPTION = "YAML parser and emitter for Python" +LONG_DESCRIPTION = """\ +YAML is a data serialization format designed for human readability +and interaction with scripting languages. PyYAML is a YAML parser +and emitter for Python. + +PyYAML features a complete YAML 1.1 parser, Unicode support, pickle +support, capable extension API, and sensible error messages. PyYAML +supports standard YAML tags and provides Python-specific tags that +allow to represent an arbitrary Python object. + +PyYAML is applicable for a broad range of tasks from complex +configuration files to object serialization and persistence.""" +AUTHOR = "Kirill Simonov" +AUTHOR_EMAIL = 'xi@resolvent.net' +LICENSE = "MIT" +PLATFORMS = "Any" +URL = "https://github.com/yaml/pyyaml" +DOWNLOAD_URL = "https://pypi.org/project/PyYAML/" +CLASSIFIERS = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Cython", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Text Processing :: Markup", +] + + +LIBYAML_CHECK = """ +#include <yaml.h> + +int main(void) { + yaml_parser_t parser; + yaml_emitter_t emitter; + + yaml_parser_initialize(&parser); + yaml_parser_delete(&parser); + + yaml_emitter_initialize(&emitter); + yaml_emitter_delete(&emitter); + + return 0; +} +""" + + +import sys, os.path, platform, warnings + +from distutils import log +from distutils.core import setup, Command +from distutils.core import Distribution as _Distribution +from distutils.core import Extension as _Extension +from distutils.command.build_ext import build_ext as _build_ext +from distutils.command.bdist_rpm import bdist_rpm as _bdist_rpm +from distutils.errors import DistutilsError, CompileError, LinkError, DistutilsPlatformError + +if 'setuptools.extension' in sys.modules: + _Extension = sys.modules['setuptools.extension']._Extension + sys.modules['distutils.core'].Extension = _Extension + sys.modules['distutils.extension'].Extension = _Extension + sys.modules['distutils.command.build_ext'].Extension = _Extension + +with_cython = False +if 'sdist' in sys.argv: + # we need cython here + with_cython = True +try: + from Cython.Distutils.extension import Extension as _Extension + from Cython.Distutils import build_ext as _build_ext + with_cython = True +except ImportError: + if with_cython: + raise + +try: + from wheel.bdist_wheel import bdist_wheel +except ImportError: + bdist_wheel = None + + +# on Windows, disable wheel generation warning noise +windows_ignore_warnings = [ +"Unknown distribution option: 'python_requires'", +"Config variable 'Py_DEBUG' is unset", +"Config variable 'WITH_PYMALLOC' is unset", +"Config variable 'Py_UNICODE_SIZE' is unset", +"Cython directive 'language_level' not set" +] + +if platform.system() == 'Windows': + for w in windows_ignore_warnings: + warnings.filterwarnings('ignore', w) + +class Distribution(_Distribution): + + def __init__(self, attrs=None): + _Distribution.__init__(self, attrs) + if not self.ext_modules: + return + for idx in range(len(self.ext_modules)-1, -1, -1): + ext = self.ext_modules[idx] + if not isinstance(ext, Extension): + continue + setattr(self, ext.attr_name, None) + self.global_options = [ + (ext.option_name, None, + "include %s (default if %s is available)" + % (ext.feature_description, ext.feature_name)), + (ext.neg_option_name, None, + "exclude %s" % ext.feature_description), + ] + self.global_options + self.negative_opt = self.negative_opt.copy() + self.negative_opt[ext.neg_option_name] = ext.option_name + + def has_ext_modules(self): + if not self.ext_modules: + return False + for ext in self.ext_modules: + with_ext = self.ext_status(ext) + if with_ext is None or with_ext: + return True + return False + + def ext_status(self, ext): + implementation = platform.python_implementation() + if implementation != 'CPython': + return False + if isinstance(ext, Extension): + with_ext = getattr(self, ext.attr_name) + return with_ext + else: + return True + + +class Extension(_Extension): + + def __init__(self, name, sources, feature_name, feature_description, + feature_check, **kwds): + if not with_cython: + for filename in sources[:]: + base, ext = os.path.splitext(filename) + if ext == '.pyx': + sources.remove(filename) + sources.append('%s.c' % base) + _Extension.__init__(self, name, sources, **kwds) + self.feature_name = feature_name + self.feature_description = feature_description + self.feature_check = feature_check + self.attr_name = 'with_' + feature_name.replace('-', '_') + self.option_name = 'with-' + feature_name + self.neg_option_name = 'without-' + feature_name + + +class build_ext(_build_ext): + + def run(self): + optional = True + disabled = True + for ext in self.extensions: + with_ext = self.distribution.ext_status(ext) + if with_ext is None: + disabled = False + elif with_ext: + optional = False + disabled = False + break + if disabled: + return + try: + _build_ext.run(self) + except DistutilsPlatformError: + exc = sys.exc_info()[1] + if optional: + log.warn(str(exc)) + log.warn("skipping build_ext") + else: + raise + + def get_source_files(self): + self.check_extensions_list(self.extensions) + filenames = [] + for ext in self.extensions: + if with_cython: + self.cython_sources(ext.sources, ext) + for filename in ext.sources: + filenames.append(filename) + base = os.path.splitext(filename)[0] + for ext in ['c', 'h', 'pyx', 'pxd']: + filename = '%s.%s' % (base, ext) + if filename not in filenames and os.path.isfile(filename): + filenames.append(filename) + return filenames + + def get_outputs(self): + self.check_extensions_list(self.extensions) + outputs = [] + for ext in self.extensions: + fullname = self.get_ext_fullname(ext.name) + filename = os.path.join(self.build_lib, + self.get_ext_filename(fullname)) + if os.path.isfile(filename): + outputs.append(filename) + return outputs + + def build_extensions(self): + self.check_extensions_list(self.extensions) + for ext in self.extensions: + with_ext = self.distribution.ext_status(ext) + if with_ext is not None and not with_ext: + continue + if with_cython: + ext.sources = self.cython_sources(ext.sources, ext) + try: + self.build_extension(ext) + except (CompileError, LinkError): + if with_ext is not None: + raise + log.warn("Error compiling module, falling back to pure Python") + + +class bdist_rpm(_bdist_rpm): + + def _make_spec_file(self): + argv0 = sys.argv[0] + features = [] + for ext in self.distribution.ext_modules: + if not isinstance(ext, Extension): + continue + with_ext = getattr(self.distribution, ext.attr_name) + if with_ext is None: + continue + if with_ext: + features.append('--'+ext.option_name) + else: + features.append('--'+ext.neg_option_name) + sys.argv[0] = ' '.join([argv0]+features) + spec_file = _bdist_rpm._make_spec_file(self) + sys.argv[0] = argv0 + return spec_file + + +class test(Command): + + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + build_cmd = self.get_finalized_command('build') + build_cmd.run() + sys.path.insert(0, build_cmd.build_lib) + if sys.version_info[0] < 3: + sys.path.insert(0, 'tests/lib') + else: + sys.path.insert(0, 'tests/lib3') + import test_all + if not test_all.main([]): + raise DistutilsError("Tests failed") + + +cmdclass = { + 'build_ext': build_ext, + 'bdist_rpm': bdist_rpm, + 'test': test, +} +if bdist_wheel: + cmdclass['bdist_wheel'] = bdist_wheel + + +if __name__ == '__main__': + + setup( + name=NAME, + version=VERSION, + description=DESCRIPTION, + long_description=LONG_DESCRIPTION, + author=AUTHOR, + author_email=AUTHOR_EMAIL, + license=LICENSE, + platforms=PLATFORMS, + url=URL, + download_url=DOWNLOAD_URL, + classifiers=CLASSIFIERS, + + package_dir={'': {2: 'lib', 3: 'lib3'}[sys.version_info[0]]}, + packages=['yaml'], + ext_modules=[ + Extension('_yaml', ['ext/_yaml.pyx'], + 'libyaml', "LibYAML bindings", LIBYAML_CHECK, + libraries=['yaml']), + ], + + distclass=Distribution, + cmdclass=cmdclass, + python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*', + ) |