diff options
-rw-r--r-- | LICENSE | 21 | ||||
-rw-r--r-- | MANIFEST.in | 1 | ||||
-rw-r--r-- | PKG-INFO | 52 | ||||
-rw-r--r-- | README.rst | 26 | ||||
-rw-r--r-- | __init__.py | 75 | ||||
-rw-r--r-- | _ruamel_yaml.c | 34441 | ||||
-rw-r--r-- | _ruamel_yaml.h | 23 | ||||
-rw-r--r-- | api.c | 1398 | ||||
-rw-r--r-- | config.h | 81 | ||||
-rw-r--r-- | dumper.c | 394 | ||||
-rw-r--r-- | emitter.c | 2341 | ||||
-rw-r--r-- | loader.c | 444 | ||||
-rw-r--r-- | parser.c | 1378 | ||||
-rw-r--r-- | pyproject.toml | 4 | ||||
-rw-r--r-- | reader.c | 469 | ||||
-rw-r--r-- | ruamel.yaml.clib.egg-info/PKG-INFO | 52 | ||||
-rw-r--r-- | ruamel.yaml.clib.egg-info/SOURCES.txt | 25 | ||||
-rw-r--r-- | ruamel.yaml.clib.egg-info/dependency_links.txt | 1 | ||||
-rw-r--r-- | ruamel.yaml.clib.egg-info/not-zip-safe | 1 | ||||
-rw-r--r-- | ruamel.yaml.clib.egg-info/top_level.txt | 2 | ||||
-rw-r--r-- | scanner.c | 3575 | ||||
-rw-r--r-- | setup.cfg | 4 | ||||
-rw-r--r-- | setup.py | 917 | ||||
-rw-r--r-- | writer.c | 140 | ||||
-rw-r--r-- | yaml.h | 1977 | ||||
-rw-r--r-- | yaml_private.h | 683 |
26 files changed, 48525 insertions, 0 deletions
@@ -0,0 +1,21 @@ + The MIT License (MIT) + + Copyright (c) 2019-2023 Anthon van der Neut, Ruamel bvba + + 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/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..6ad05db --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include README.rst LICENSE setup.py *.c *.h diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 0000000..01aea7b --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,52 @@ +Metadata-Version: 2.1 +Name: ruamel.yaml.clib +Version: 0.2.8 +Summary: C version of reader, parser and emitter for ruamel.yaml derived from libyaml +Home-page: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree +Author: Anthon van der Neut +Author-email: a.van.der.neut@ruamel.eu +License: MIT +Keywords: yaml 1.2 parser c-library config +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE + + +ruamel.yaml.clib +================ + +``ruamel.yaml.clib`` is the C based reader/scanner and emitter for ruamel.yaml + +:version: 0.2.7 +:updated: 2022-10-19 +:documentation: http://yaml.readthedocs.io +:repository: https://sourceforge.net/projects/ruamel-yaml-clib/ +:pypi: https://pypi.org/project/ruamel.yaml.clib/ + +This package was split of from ruamel.yaml, so that ruamel.yaml can be build as +a universal wheel. Apart from the C code seldom changing, and taking a long +time to compile for all platforms, this allows installation of the .so +on Linux systems under /usr/lib64/pythonX.Y (without a .pth file or a ruamel +directory) and the Python code for ruamel.yaml under /usr/lib/pythonX.Y. + + +.. image:: https://bestpractices.coreinfrastructure.org/projects/1128/badge + :target: https://bestpractices.coreinfrastructure.org/projects/1128 + +.. image:: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/_doc/_static/license.svg?format=raw + :target: https://opensource.org/licenses/MIT + +This release in loving memory of Johanna Clasina van der Neut-Bandel [1922-10-19 - 2015-11-21] diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..0e83f9e --- /dev/null +++ b/README.rst @@ -0,0 +1,26 @@ + +ruamel.yaml.clib +================ + +``ruamel.yaml.clib`` is the C based reader/scanner and emitter for ruamel.yaml + +:version: 0.2.7 +:updated: 2022-10-19 +:documentation: http://yaml.readthedocs.io +:repository: https://sourceforge.net/projects/ruamel-yaml-clib/ +:pypi: https://pypi.org/project/ruamel.yaml.clib/ + +This package was split of from ruamel.yaml, so that ruamel.yaml can be build as +a universal wheel. Apart from the C code seldom changing, and taking a long +time to compile for all platforms, this allows installation of the .so +on Linux systems under /usr/lib64/pythonX.Y (without a .pth file or a ruamel +directory) and the Python code for ruamel.yaml under /usr/lib/pythonX.Y. + + +.. image:: https://bestpractices.coreinfrastructure.org/projects/1128/badge + :target: https://bestpractices.coreinfrastructure.org/projects/1128 + +.. image:: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/_doc/_static/license.svg?format=raw + :target: https://opensource.org/licenses/MIT + +This release in loving memory of Johanna Clasina van der Neut-Bandel [1922-10-19 - 2015-11-21] diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..b9608a0 --- /dev/null +++ b/__init__.py @@ -0,0 +1,75 @@ +# coding: utf-8 + +from __future__ import print_function, absolute_import, division, unicode_literals + +if False: # MYPY + from typing import Dict, Any # NOQA + +_package_data = dict( + full_package_name='ruamel.yaml.clib', + version_info=(0, 2, 8), + __version__='0.2.8', + version_timestamp='2023-10-03 09:43:38', + author='Anthon van der Neut', + author_email='a.van.der.neut@ruamel.eu', + description='C version of reader, parser and emitter for ruamel.yaml derived from libyaml', + license='MIT', + entry_points=None, + nested=True, # not really nested as this should not have any files under ruamel + binary_only=True, + since=2019, + ext_modules=[ + dict( + name='_ruamel_yaml', + src=[ + '_ruamel_yaml.c', + 'api.c', + 'writer.c', + 'dumper.c', + 'loader.c', + 'reader.c', + 'scanner.c', + 'parser.c', + 'emitter.c', + ], + lib=[], + test=""" + int main(int argc, char* argv[]) + { + /* prevent warning */ + return 0; + } + """, + ), + ], + # NOQA + # test='#include "ext/yaml.h"\n\nint main(int argc, char* argv[])\n{\nyaml_parser_t parser;\nparser = parser; /* prevent warning */\nreturn 0;\n}\n', # NOQA + classifiers=[ + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Software Development :: Libraries :: Python Modules', + ], + keywords='yaml 1.2 parser c-library config', + wheels=dict( + windows='appveyor', + linux='libyaml-devel', + macos='builder@macos', + ), + # read_the_docs='yaml', + supported=[(3, 6)], # minimum + python_requires='>=3.6', + tox=dict( + env='*g', + ), + manifest='include README.rst LICENSE setup.py *.c *.h', + # rtfd='yaml', +) # type: Dict[Any, Any] + + +version_info = _package_data['version_info'] +__version__ = _package_data['__version__'] diff --git a/_ruamel_yaml.c b/_ruamel_yaml.c new file mode 100644 index 0000000..9da72d5 --- /dev/null +++ b/_ruamel_yaml.c @@ -0,0 +1,34441 @@ +/* Generated by Cython 3.0.2 */ + +#ifndef PY_SSIZE_T_CLEAN +#define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ +#if defined(CYTHON_LIMITED_API) && 0 + #ifndef Py_LIMITED_API + #if CYTHON_LIMITED_API+0 > 0x03030000 + #define Py_LIMITED_API CYTHON_LIMITED_API + #else + #define Py_LIMITED_API 0x03030000 + #endif + #endif +#endif + +#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 < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) + #error Cython requires Python 2.7+ or Python 3.3+. +#else +#if CYTHON_LIMITED_API +#define __PYX_EXTRA_ABI_MODULE_NAME "limited" +#else +#define __PYX_EXTRA_ABI_MODULE_NAME "" +#endif +#define CYTHON_ABI "3_0_2" __PYX_EXTRA_ABI_MODULE_NAME +#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI +#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." +#define CYTHON_HEX_VERSION 0x030002F0 +#define CYTHON_FUTURE_DIVISION 1 +#include <stddef.h> +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(_WIN32) && !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 + #define HAVE_LONG_LONG +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX +#if defined(GRAALVM_PYTHON) + /* For very preliminary testing purposes. Most variables are set the same as PyPy. + The existence of this section does not imply that anything works or is even tested */ + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_LIMITED_API 0 + #define CYTHON_COMPILING_IN_GRAAL 1 + #define CYTHON_COMPILING_IN_NOGIL 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_TYPE_SPECS + #define CYTHON_USE_TYPE_SPECS 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_GIL + #define CYTHON_FAST_GIL 0 + #undef CYTHON_METH_FASTCALL + #define CYTHON_METH_FASTCALL 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP487_INIT_SUBCLASS + #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) + #endif + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #undef CYTHON_USE_MODULE_STATE + #define CYTHON_USE_MODULE_STATE 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 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PYPY_VERSION) + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_LIMITED_API 0 + #define CYTHON_COMPILING_IN_GRAAL 0 + #define CYTHON_COMPILING_IN_NOGIL 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #ifndef CYTHON_USE_TYPE_SPECS + #define CYTHON_USE_TYPE_SPECS 0 + #endif + #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_GIL + #define CYTHON_FAST_GIL 0 + #undef CYTHON_METH_FASTCALL + #define CYTHON_METH_FASTCALL 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP487_INIT_SUBCLASS + #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) + #endif + #if PY_VERSION_HEX < 0x03090000 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #undef CYTHON_USE_MODULE_STATE + #define CYTHON_USE_MODULE_STATE 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00) + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(CYTHON_LIMITED_API) + #ifdef Py_LIMITED_API + #undef __PYX_LIMITED_VERSION_HEX + #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API + #endif + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_LIMITED_API 1 + #define CYTHON_COMPILING_IN_GRAAL 0 + #define CYTHON_COMPILING_IN_NOGIL 0 + #undef CYTHON_CLINE_IN_TRACEBACK + #define CYTHON_CLINE_IN_TRACEBACK 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_TYPE_SPECS + #define CYTHON_USE_TYPE_SPECS 1 + #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 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #endif + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #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_GIL + #define CYTHON_FAST_GIL 0 + #undef CYTHON_METH_FASTCALL + #define CYTHON_METH_FASTCALL 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP487_INIT_SUBCLASS + #define CYTHON_PEP487_INIT_SUBCLASS 1 + #endif + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_MODULE_STATE + #define CYTHON_USE_MODULE_STATE 1 + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_LIMITED_API 0 + #define CYTHON_COMPILING_IN_GRAAL 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #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 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #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_CPYTHON 1 + #define CYTHON_COMPILING_IN_LIMITED_API 0 + #define CYTHON_COMPILING_IN_GRAAL 0 + #define CYTHON_COMPILING_IN_NOGIL 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #ifndef CYTHON_USE_TYPE_SPECS + #define CYTHON_USE_TYPE_SPECS 0 + #endif + #ifndef 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 + #ifndef 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 || PY_VERSION_HEX >= 0x030B00A2 + #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_GIL + #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6) + #endif + #ifndef CYTHON_METH_FASTCALL + #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1) + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 1 + #endif + #ifndef CYTHON_PEP487_INIT_SUBCLASS + #define CYTHON_PEP487_INIT_SUBCLASS 1 + #endif + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_MODULE_STATE + #define CYTHON_USE_MODULE_STATE 0 + #endif + #if PY_VERSION_HEX < 0x030400a1 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #elif !defined(CYTHON_USE_TP_FINALIZE) + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #if PY_VERSION_HEX < 0x030600B1 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #elif !defined(CYTHON_USE_DICT_VERSIONS) + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5) + #endif + #if PY_VERSION_HEX < 0x030700A3 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) + #define CYTHON_USE_EXC_INFO_STACK 1 + #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if !defined(CYTHON_VECTORCALL) +#define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1) +#endif +#define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1) +#if CYTHON_USE_PYLONG_INTERNALS + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif + #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(__cplusplus) + /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17 + * but leads to warnings with -pedantic, since it is a C++17 feature */ + #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) + #if __has_cpp_attribute(maybe_unused) + #define CYTHON_UNUSED [[maybe_unused]] + #endif + #endif + #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_UNUSED_VAR +# if defined(__cplusplus) + template<class T> void CYTHON_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR + #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x) +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_USE_CPP_STD_MOVE + #if defined(__cplusplus) && (\ + __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)) + #define CYTHON_USE_CPP_STD_MOVE 1 + #else + #define CYTHON_USE_CPP_STD_MOVE 0 + #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 short uint16_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; + #endif + #endif + #if _MSC_VER < 1300 + #ifdef _WIN64 + typedef unsigned long long __pyx_uintptr_t; + #else + typedef unsigned int __pyx_uintptr_t; + #endif + #else + #ifdef _WIN64 + typedef unsigned __int64 __pyx_uintptr_t; + #else + typedef unsigned __int32 __pyx_uintptr_t; + #endif + #endif +#else + #include <stdint.h> + typedef uintptr_t __pyx_uintptr_t; +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) + /* for clang __has_cpp_attribute(fallthrough) is true even before C++17 + * but leads to warnings with -pedantic, since it is a C++17 feature */ + #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #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 +#ifdef __cplusplus + template <typename T> + struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);}; + #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value) +#else + #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0) +#endif +#if CYTHON_COMPILING_IN_PYPY == 1 + #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000) +#else + #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000) +#endif +#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer)) + +#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 + +#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_DefaultClassType PyClass_Type + #define __Pyx_PyCode_New(a, p, 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) +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" + #define __Pyx_DefaultClassType PyType_Type +#if CYTHON_COMPILING_IN_LIMITED_API + static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *exception_table = NULL; + PyObject *types_module=NULL, *code_type=NULL, *result=NULL; + PyObject *version_info; // borrowed + PyObject *py_minor_version = NULL; + long minor_version = 0; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000 + minor_version = 11; // we don't yet need to distinguish between versions > 11 + #else + if (!(version_info = PySys_GetObject("version_info"))) goto end; + if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end; + minor_version = PyLong_AsLong(py_minor_version); + if (minor_version == -1 && PyErr_Occurred()) goto end; + #endif + if (!(types_module = PyImport_ImportModule("types"))) goto end; + if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end; + if (minor_version <= 7) { + (void)p; + result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code, + c, n, v, fn, name, fline, lnos, fv, cell); + } else if (minor_version <= 10) { + result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code, + c, n, v, fn, name, fline, lnos, fv, cell); + } else { + if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end; + result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code, + c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell); + } + end: + Py_XDECREF(code_type); + Py_XDECREF(exception_table); + Py_XDECREF(types_module); + Py_XDECREF(py_minor_version); + if (type) { + PyErr_Restore(type, value, traceback); + } + return result; + } + #ifndef CO_OPTIMIZED + #define CO_OPTIMIZED 0x0001 + #endif + #ifndef CO_NEWLOCALS + #define CO_NEWLOCALS 0x0002 + #endif + #ifndef CO_VARARGS + #define CO_VARARGS 0x0004 + #endif + #ifndef CO_VARKEYWORDS + #define CO_VARKEYWORDS 0x0008 + #endif + #ifndef CO_ASYNC_GENERATOR + #define CO_ASYNC_GENERATOR 0x0200 + #endif + #ifndef CO_GENERATOR + #define CO_GENERATOR 0x0020 + #endif + #ifndef CO_COROUTINE + #define CO_COROUTINE 0x0080 + #endif +#elif PY_VERSION_HEX >= 0x030B0000 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyCodeObject *result; + PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0); // we don't have access to __pyx_empty_bytes here + if (!empty_bytes) return NULL; + result = + #if PY_VERSION_HEX >= 0x030C0000 + PyUnstable_Code_NewWithPosOnlyArgs + #else + PyCode_NewWithPosOnlyArgs + #endif + (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes); + Py_DECREF(empty_bytes); + return result; + } +#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, p, 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 +#endif +#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE) + #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type) +#else + #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type)) +#endif +#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is) + #define __Pyx_Py_Is(x, y) Py_Is(x, y) +#else + #define __Pyx_Py_Is(x, y) ((x) == (y)) +#endif +#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone) + #define __Pyx_Py_IsNone(ob) Py_IsNone(ob) +#else + #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None) +#endif +#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue) + #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob) +#else + #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True) +#endif +#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse) + #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob) +#else + #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False) +#endif +#define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj)) +#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o) +#else + #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o) +#endif +#ifndef CO_COROUTINE + #define CO_COROUTINE 0x80 +#endif +#ifndef CO_ASYNC_GENERATOR + #define CO_ASYNC_GENERATOR 0x200 +#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 Py_TPFLAGS_SEQUENCE + #define Py_TPFLAGS_SEQUENCE 0 +#endif +#ifndef Py_TPFLAGS_MAPPING + #define Py_TPFLAGS_MAPPING 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_METH_FASTCALL + #define __Pyx_METH_FASTCALL METH_FASTCALL + #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast + #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords +#else + #define __Pyx_METH_FASTCALL METH_VARARGS + #define __Pyx_PyCFunction_FastCall PyCFunction + #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords +#endif +#if CYTHON_VECTORCALL + #define __pyx_vectorcallfunc vectorcallfunc + #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET + #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n)) +#elif CYTHON_BACKPORT_VECTORCALL + typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames); + #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1)) + #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)) +#else + #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0 + #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n)) +#endif +#if __PYX_LIMITED_VERSION_HEX < 0x030900B1 + #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b)) + typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *); +#else + #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b) + #define __Pyx_PyCMethod PyCMethod +#endif +#ifndef METH_METHOD + #define METH_METHOD 0x200 +#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_LIMITED_API + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_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_COMPILING_IN_LIMITED_API + #define __Pyx_PyThreadState_Current PyThreadState_Get() +#elif !CYTHON_FAST_THREAD_STATE + #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 CYTHON_COMPILING_IN_LIMITED_API +static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op) +{ + void *result; + result = PyModule_GetState(op); + if (!result) + Py_FatalError("Couldn't find the module state"); + return result; +} +#endif +#define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype) +#if CYTHON_COMPILING_IN_LIMITED_API + #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name)) +#else + #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name) +#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 PY_MAJOR_VERSION < 3 + #if CYTHON_COMPILING_IN_PYPY + #if PYPY_VERSION_NUM < 0x07030600 + #if defined(__cplusplus) && __cplusplus >= 201402L + [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]] + #elif defined(__GNUC__) || defined(__clang__) + __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))) + #elif defined(_MSC_VER) + __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")) + #endif + static CYTHON_INLINE int PyGILState_Check(void) { + return 0; + } + #else // PYPY_VERSION_NUM < 0x07030600 + #endif // PYPY_VERSION_NUM < 0x07030600 + #else + static CYTHON_INLINE int PyGILState_Check(void) { + PyThreadState * tstate = _PyThreadState_Current; + return tstate && (tstate == PyGILState_GetThisThreadState()); + } + #endif +#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 > 0x030600B4 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) { + PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name); + if (res == NULL) PyErr_Clear(); + return res; +} +#elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000) +#define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError +#define __Pyx_PyDict_GetItemStr PyDict_GetItem +#else +static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) { +#if CYTHON_COMPILING_IN_PYPY + return PyDict_GetItem(dict, name); +#else + PyDictEntry *ep; + PyDictObject *mp = (PyDictObject*) dict; + long hash = ((PyStringObject *) name)->ob_shash; + assert(hash != -1); + ep = (mp->ma_lookup)(mp, name, hash); + if (ep == NULL) { + return NULL; + } + return ep->me_value; +#endif +} +#define __Pyx_PyDict_GetItemStr PyDict_GetItem +#endif +#if CYTHON_USE_TYPE_SLOTS + #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags) + #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0) + #define __Pyx_PyObject_GetIterNextFunc(obj) (Py_TYPE(obj)->tp_iternext) +#else + #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp)) + #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature) + #define __Pyx_PyObject_GetIterNextFunc(obj) PyIter_Next +#endif +#if CYTHON_COMPILING_IN_LIMITED_API + #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v) +#else + #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v) +#endif +#if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000 +#define __Pyx_PyHeapTypeObject_GC_Del(obj) {\ + PyTypeObject *type = Py_TYPE(obj);\ + assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\ + PyObject_GC_Del(obj);\ + Py_DECREF(type);\ +} +#else +#define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj) +#endif +#if CYTHON_COMPILING_IN_LIMITED_API + #define CYTHON_PEP393_ENABLED 1 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GetLength(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U) + #define __Pyx_PyUnicode_KIND(u) ((void)u, (0)) + #define __Pyx_PyUnicode_DATA(u) ((void*)u) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i)) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u)) +#elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #if PY_VERSION_HEX >= 0x030C0000 + #define __Pyx_PyUnicode_READY(op) (0) + #else + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #endif + #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) ((int)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, (Py_UCS4) ch) + #if PY_VERSION_HEX >= 0x030C0000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) + #else + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif + #endif +#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) ? 65535U : 1114111U) + #define __Pyx_PyUnicode_KIND(u) ((int)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] = (Py_UNICODE) 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 + #if !defined(PyUnicode_DecodeUnicodeEscape) + #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors) + #endif + #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500) + #undef PyUnicode_Contains + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) + #endif + #if !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) + #endif + #if !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) + #endif +#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 +#ifndef PyObject_Unicode + #define PyObject_Unicode PyObject_Str +#endif +#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 +#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_PySequence_ListKeepNew(obj)\ + (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj)) +#else + #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type) +#endif +#if PY_VERSION_HEX >= 0x030900A4 + #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) + #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) +#else + #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) + #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i) + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) + #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0)) + #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0)) + #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o) + #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o) + #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o) + #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o) + #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o) +#else + #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i) + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) + #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v) + #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v) + #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o) + #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o) + #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o) + #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o) + #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o) +#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 __Pyx_Py3Int_Check(op) PyLong_Check(op) + #define __Pyx_Py3Int_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 +#else + #define __Pyx_Py3Int_Check(op) (PyLong_Check(op) || PyInt_Check(op)) + #define __Pyx_Py3Int_CheckExact(op) (PyLong_CheckExact(op) || PyInt_CheckExact(op)) +#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 __Pyx_PyIndex_AsHash_t +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t +#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(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif +#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_MARK_ERR_POS(f_index, lineno) \ + { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } +#define __PYX_ERR(f_index, lineno, Ln_error) \ + { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } + +#ifdef CYTHON_EXTERN_C + #undef __PYX_EXTERN_C + #define __PYX_EXTERN_C CYTHON_EXTERN_C +#elif defined(__PYX_EXTERN_C) + #ifdef _MSC_VER + #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.") + #else + #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead. + #endif +#else + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__ruamel__yaml__clib___ruamel_yaml +#define __PYX_HAVE_API__ruamel__yaml__clib___ruamel_yaml +/* Early includes */ +#include "_ruamel_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_uintptr_t) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __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) +#if CYTHON_COMPILING_IN_LIMITED_API +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const wchar_t *u) +{ + const wchar_t *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#else +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); +} +#endif +#define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o) +#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); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); +#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 +#if CYTHON_USE_PYLONG_INTERNALS + #if PY_VERSION_HEX >= 0x030C00A7 + #ifndef _PyLong_SIGN_MASK + #define _PyLong_SIGN_MASK 3 + #endif + #ifndef _PyLong_NON_SIZE_BITS + #define _PyLong_NON_SIZE_BITS 3 + #endif + #define __Pyx_PyLong_Sign(x) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK) + #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_Sign(x) & 2) != 0) + #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x)) + #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_Sign(x) & 1) + #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_Sign(x) == 0) + #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0]) + #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS)) + #define __Pyx_PyLong_SignedDigitCount(x)\ + ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x)) + #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue) + #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x) + #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x) + #else + #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS)) + #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0]) + #endif + typedef Py_ssize_t __Pyx_compact_pylong; + typedef size_t __Pyx_compact_upylong; + #else // Py < 3.12 + #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0) + #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0) + #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0) + #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0) + #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0]) + #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x)) + #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x) + #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1) + #define __Pyx_PyLong_CompactValue(x)\ + ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0])) + typedef sdigit __Pyx_compact_pylong; + typedef digit __Pyx_compact_upylong; + #endif + #if PY_VERSION_HEX >= 0x030C00A5 + #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit) + #else + #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit) + #endif +#endif +#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] = (char) 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; } + +#if !CYTHON_USE_MODULE_STATE +static PyObject *__pyx_m = NULL; +#endif +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm = __FILE__; +static const char *__pyx_filename; + +/* #### Code section: filename_table ### */ + +static const char *__pyx_f[] = { + "_ruamel_yaml.pyx", + "<stringsource>", +}; +/* #### Code section: utility_code_proto_before_types ### */ +/* #### Code section: numeric_typedefs ### */ +/* #### Code section: complex_type_declarations ### */ +/* #### Code section: type_declarations ### */ + +/*--- Type declarations ---*/ +struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark; +struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; +struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":63 + * from ruamel.yaml.nodes import MappingNode + * + * cdef class Mark: # <<<<<<<<<<<<<< + * cdef readonly object name + * cdef readonly size_t index + */ +struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark { + PyObject_HEAD + PyObject *name; + size_t index; + size_t line; + size_t column; + PyObject *buffer; + PyObject *pointer; +}; + + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":246 + * # self.style = style + * + * cdef class CParser: # <<<<<<<<<<<<<< + * + * cdef yaml_parser_t parser + */ +struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser { + PyObject_HEAD + struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_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; +}; + + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":934 + * return 1 + * + * cdef class CEmitter: # <<<<<<<<<<<<<< + * + * cdef yaml_emitter_t emitter + */ +struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter { + PyObject_HEAD + struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_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; +}; + + + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":246 + * # self.style = style + * + * cdef class CParser: # <<<<<<<<<<<<<< + * + * cdef yaml_parser_t parser + */ + +struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser { + PyObject *(*_parser_error)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *); + PyObject *(*_scan)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *); + PyObject *(*_token_to_object)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, yaml_token_t *); + PyObject *(*_parse)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *); + PyObject *(*_event_to_object)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, yaml_event_t *); + PyObject *(*_compose_document)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *); + PyObject *(*_compose_node)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *, PyObject *); + PyObject *(*_compose_scalar_node)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *); + PyObject *(*_compose_sequence_node)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *); + PyObject *(*_compose_mapping_node)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *); + int (*_parse_next_event)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *); +}; +static struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; + + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":934 + * return 1 + * + * cdef class CEmitter: # <<<<<<<<<<<<<< + * + * cdef yaml_emitter_t emitter + */ + +struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter { + PyObject *(*_emitter_error)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *); + int (*_object_to_event)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *, PyObject *, yaml_event_t *); + int (*_anchor_node)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *, PyObject *); + int (*_serialize_node)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *, PyObject *, PyObject *, PyObject *); +}; +static struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; +/* #### Code section: utility_code_proto ### */ + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, Py_ssize_t); + void (*DECREF)(void*, PyObject*, Py_ssize_t); + void (*GOTREF)(void*, PyObject*, Py_ssize_t); + void (*GIVEREF)(void*, PyObject*, Py_ssize_t); + void* (*SetupContext)(const char*, Py_ssize_t, 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__));\ + } + #define __Pyx_RefNannyFinishContextNogil() {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __Pyx_RefNannyFinishContext();\ + PyGILState_Release(__pyx_gilstate_save);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__)) + #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext() +#endif + #define __Pyx_RefNannyFinishContextNogil() {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __Pyx_RefNannyFinishContext();\ + PyGILState_Release(__pyx_gilstate_save);\ + } + #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); else {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContextNogil() + #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_Py_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; Py_XDECREF(tmp);\ + } while (0) +#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) + +/* 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; +#if PY_VERSION_HEX >= 0x030C00A6 +#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL) +#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL) +#else +#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL) +#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type) +#endif +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL) +#define __Pyx_PyErr_CurrentExceptionType() 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 && PY_VERSION_HEX < 0x030C00A6 +#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 + +/* 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 + +/* PyObjectGetAttrStrNoError.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* TupleAndListFromArray.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); +static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); +#endif + +/* 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); + +/* fastcall.proto */ +#if CYTHON_AVOID_BORROWED_REFS + #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i) +#elif CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i) +#else + #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i) +#endif +#if CYTHON_AVOID_BORROWED_REFS + #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg) + #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg) +#else + #define __Pyx_Arg_NewRef_VARARGS(arg) arg // no-op + #define __Pyx_Arg_XDECREF_VARARGS(arg) // no-op - arg is borrowed +#endif +#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) +#define __Pyx_KwValues_VARARGS(args, nargs) NULL +#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) +#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) +#if CYTHON_METH_FASTCALL + #define __Pyx_Arg_FASTCALL(args, i) args[i] + #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds) + #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs)) + static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); + #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) + #define __Pyx_Arg_NewRef_FASTCALL(arg) arg // no-op, __Pyx_Arg_FASTCALL is direct and this needs + #define __Pyx_Arg_XDECREF_FASTCALL(arg) // no-op - arg was returned from array +#else + #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS + #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS + #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS + #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS + #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS + #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg) + #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +#define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start) +#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start) +#else +#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) +#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop) +#endif + +/* 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 *const *kwvalues, + PyObject **argnames[], + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, + const char* function_name); + +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed); + +/* 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) do {\ + 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);\ +} while(0) +#define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ + PY_UINT64_T __pyx_dict_version;\ + PyObject *__pyx_dict_cached_value;\ + (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} while(0) +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 + +/* RaiseUnexpectedTypeError.proto */ +static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj); + +/* GetTopmostException.proto */ +#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE +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 +#if !CYTHON_VECTORCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *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 +#if !CYTHON_VECTORCALL +#if PY_VERSION_HEX >= 0x03080000 + #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif + #define __Pxy_PyFrame_Initialize_Offsets() + #define __Pyx_PyFrame_GetLocalsplus(frame) ((frame)->f_localsplus) +#else + 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 +#endif +#endif + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectFastCall.proto */ +#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) +static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs); + +/* 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); + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* 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 + +/* RaiseUnboundLocalError.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); + __Pyx_SET_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 + +/* GetAttr.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); + +/* HasAttr.proto */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); + +/* 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); + +/* IncludeStructmemberH.proto */ +#include <structmember.h> + +/* FixUpExtensionType.proto */ +#if CYTHON_USE_TYPE_SPECS +static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type); +#endif + +/* PyObjectCallNoArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); + +/* PyObjectGetMethod.proto */ +static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); + +/* PyObjectCallMethod0.proto */ +static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); + +/* ValidateBasesTuple.proto */ +#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS +static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases); +#endif + +/* PyType_Ready.proto */ +CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t); + +/* 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 */ +#if !CYTHON_COMPILING_IN_LIMITED_API +static int __Pyx_setup_reduce(PyObject* type_obj); +#endif + +/* SetVTable.proto */ +static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable); + +/* GetVTable.proto */ +static void* __Pyx_GetVtable(PyTypeObject *type); + +/* MergeVTables.proto */ +#if !CYTHON_COMPILING_IN_LIMITED_API +static int __Pyx_MergeVtables(PyTypeObject *type); +#endif + +/* FetchSharedCythonModule.proto */ +static PyObject *__Pyx_FetchSharedCythonABIModule(void); + +/* FetchCommonType.proto */ +#if !CYTHON_USE_TYPE_SPECS +static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); +#else +static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases); +#endif + +/* PyMethodNew.proto */ +#if CYTHON_COMPILING_IN_LIMITED_API +static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { + PyObject *typesModule=NULL, *methodType=NULL, *result=NULL; + CYTHON_UNUSED_VAR(typ); + if (!self) + return __Pyx_NewRef(func); + typesModule = PyImport_ImportModule("types"); + if (!typesModule) return NULL; + methodType = PyObject_GetAttrString(typesModule, "MethodType"); + Py_DECREF(typesModule); + if (!methodType) return NULL; + result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL); + Py_DECREF(methodType); + return result; +} +#elif PY_MAJOR_VERSION >= 3 +static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { + CYTHON_UNUSED_VAR(typ); + if (!self) + return __Pyx_NewRef(func); + return PyMethod_New(func, self); +} +#else + #define __Pyx_PyMethod_New PyMethod_New +#endif + +/* PyVectorcallFastCallDict.proto */ +#if CYTHON_METH_FASTCALL +static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); +#endif + +/* CythonFunctionShared.proto */ +#define __Pyx_CyFunction_USED +#define __Pyx_CYFUNCTION_STATICMETHOD 0x01 +#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 +#define __Pyx_CYFUNCTION_CCLASS 0x04 +#define __Pyx_CYFUNCTION_COROUTINE 0x08 +#define __Pyx_CyFunction_GetClosure(f)\ + (((__pyx_CyFunctionObject *) (f))->func_closure) +#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API + #define __Pyx_CyFunction_GetClassObj(f)\ + (((__pyx_CyFunctionObject *) (f))->func_classobj) +#else + #define __Pyx_CyFunction_GetClassObj(f)\ + ((PyObject*) ((PyCMethodObject *) (f))->mm_class) +#endif +#define __Pyx_CyFunction_SetClassObj(f, classobj)\ + __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj)) +#define __Pyx_CyFunction_Defaults(type, f)\ + ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) +#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ + ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) +typedef struct { +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject_HEAD + PyObject *func; +#elif PY_VERSION_HEX < 0x030900B1 + PyCFunctionObject func; +#else + PyCMethodObject func; +#endif +#if CYTHON_BACKPORT_VECTORCALL + __pyx_vectorcallfunc func_vectorcall; +#endif +#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API + PyObject *func_weakreflist; +#endif + PyObject *func_dict; + PyObject *func_name; + PyObject *func_qualname; + PyObject *func_doc; + PyObject *func_globals; + PyObject *func_code; + PyObject *func_closure; +#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API + PyObject *func_classobj; +#endif + void *defaults; + int defaults_pyobjects; + size_t defaults_size; // used by FusedFunction for copying defaults + int flags; + PyObject *defaults_tuple; + PyObject *defaults_kwdict; + PyObject *(*defaults_getter)(PyObject *); + PyObject *func_annotations; + PyObject *func_is_coroutine; +} __pyx_CyFunctionObject; +#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_CyFunctionType) +#define __Pyx_IsCyOrPyCFunction(obj) __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type) +#define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CyFunctionType) +static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml, + int flags, PyObject* qualname, + PyObject *closure, + PyObject *module, PyObject *globals, + PyObject* code); +static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); +static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, + size_t size, + int pyobjects); +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, + PyObject *tuple); +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, + PyObject *dict); +static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, + PyObject *dict); +static int __pyx_CyFunction_init(PyObject *module); +#if CYTHON_METH_FASTCALL +static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +#if CYTHON_BACKPORT_VECTORCALL +#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall) +#else +#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) +#endif +#endif + +/* CythonFunction.proto */ +static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, + int flags, PyObject* qualname, + PyObject *closure, + PyObject *module, PyObject *globals, + PyObject* code); + +/* 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 */ +#if !CYTHON_COMPILING_IN_LIMITED_API +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); +#endif + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +/* GCCDiagnostics.proto */ +#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + +/* CIntFromPy.proto */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* FormatTypeName.proto */ +#if CYTHON_COMPILING_IN_LIMITED_API +typedef PyObject *__Pyx_TypeName; +#define __Pyx_FMT_TYPENAME "%U" +static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp); +#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) +#else +typedef const char *__Pyx_TypeName; +#define __Pyx_FMT_TYPENAME "%.200s" +#define __Pyx_PyType_GetName(tp) ((tp)->tp_name) +#define __Pyx_DECREF_TypeName(obj) +#endif + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, 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_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) +#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_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2) +#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); + +/* #### Code section: module_declarations ### */ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parser_error(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__scan(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__token_to_object(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, yaml_token_t *__pyx_v_token); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parse(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__event_to_object(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, yaml_event_t *__pyx_v_event); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_document(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_index); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_scalar_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_sequence_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_mapping_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor); /* proto*/ +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parse_next_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__emitter_error(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self); /* proto*/ +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__object_to_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object, yaml_event_t *__pyx_v_event); /* proto*/ +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__anchor_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node); /* proto*/ +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__serialize_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_parent, PyObject *__pyx_v_index); /* proto*/ + +/* Module declarations from "ruamel.yaml.clib._ruamel_yaml" */ +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_input_handler(void *, char *, int, int *); /*proto*/ +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_output_handler(void *, char *, int); /*proto*/ +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml___pyx_unpickle_Mark__set_state(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *, PyObject *); /*proto*/ +/* #### Code section: typeinfo ### */ +/* #### Code section: before_global_var ### */ +#define __Pyx_MODULE_NAME "ruamel.yaml.clib._ruamel_yaml" +extern int __pyx_module_is_main_ruamel__yaml__clib___ruamel_yaml; +int __pyx_module_is_main_ruamel__yaml__clib___ruamel_yaml = 0; + +/* Implementation of "ruamel.yaml.clib._ruamel_yaml" */ +/* #### Code section: global_var ### */ +static PyObject *__pyx_builtin_MemoryError; +static PyObject *__pyx_builtin_AttributeError; +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_ValueError; +/* #### Code section: string_decls ### */ +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_gc[] = "gc"; +static const char __pyx_k_TAG[] = "TAG"; +static const char __pyx_k__10[] = ">"; +static const char __pyx_k__17[] = "\r"; +static const char __pyx_k__18[] = "\n"; +static const char __pyx_k__19[] = "\r\n"; +static const char __pyx_k__37[] = "."; +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_done[] = "done"; +static const char __pyx_k_emit[] = "emit"; +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_mark[] = "mark"; +static const char __pyx_k_name[] = "name"; +static const char __pyx_k_node[] = "node"; +static const char __pyx_k_open[] = "open"; +static const char __pyx_k_read[] = "read"; +static const char __pyx_k_self[] = "self"; +static const char __pyx_k_tags[] = "tags"; +static const char __pyx_k_test[] = "__test__"; +static const char __pyx_k_cache[] = "cache"; +static const char __pyx_k_class[] = "__class__"; +static const char __pyx_k_close[] = "close"; +static const char __pyx_k_count[] = "count"; +static const char __pyx_k_error[] = "error"; +static const char __pyx_k_event[] = "event"; +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_patch[] = "patch"; +static const char __pyx_k_state[] = "state"; +static const char __pyx_k_style[] = "style"; +static const char __pyx_k_token[] = "token"; +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_choice[] = "choice"; +static const char __pyx_k_column[] = "column"; +static const char __pyx_k_dict_2[] = "_dict"; +static const char __pyx_k_enable[] = "enable"; +static const char __pyx_k_handle[] = "handle"; +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_pickle[] = "pickle"; +static const char __pyx_k_prefix[] = "prefix"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_stream[] = "stream"; +static const char __pyx_k_update[] = "update"; +static const char __pyx_k_CParser[] = "CParser"; +static const char __pyx_k_choices[] = "choices"; +static const char __pyx_k_disable[] = "disable"; +static const char __pyx_k_dispose[] = "dispose"; +static const char __pyx_k_pointer[] = "pointer"; +static const char __pyx_k_resolve[] = "resolve"; +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_document[] = "document"; +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_get_node[] = "get_node"; +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_raw_scan[] = "raw_scan"; +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_get_event[] = "get_event"; +static const char __pyx_k_get_token[] = "get_token"; +static const char __pyx_k_isenabled[] = "isenabled"; +static const char __pyx_k_pyx_state[] = "__pyx_state"; +static const char __pyx_k_raw_parse[] = "raw_parse"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_serialize[] = "serialize"; +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_check_node[] = "check_node"; +static const char __pyx_k_flow_style[] = "flow_style"; +static const char __pyx_k_line_break[] = "line_break"; +static const char __pyx_k_peek_event[] = "peek_event"; +static const char __pyx_k_peek_token[] = "peek_token"; +static const char __pyx_k_pyx_result[] = "__pyx_result"; +static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; +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_check_event[] = "check_event"; +static const char __pyx_k_check_token[] = "check_token"; +static const char __pyx_k_event_class[] = "event_class"; +static const char __pyx_k_get_snippet[] = "get_snippet"; +static const char __pyx_k_get_version[] = "get_version"; +static const char __pyx_k_token_class[] = "token_class"; +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_event_object[] = "event_object"; +static const char __pyx_k_explicit_end[] = "explicit_end"; +static const char __pyx_k_is_coroutine[] = "_is_coroutine"; +static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; +static const char __pyx_k_stringsource[] = "<stringsource>"; +static const char __pyx_k_use_setstate[] = "use_setstate"; +static const char __pyx_k_BlockEndToken[] = "BlockEndToken"; +static const char __pyx_k_CEmitter_emit[] = "CEmitter.emit"; +static const char __pyx_k_CEmitter_open[] = "CEmitter.open"; +static const char __pyx_k_ComposerError[] = "ComposerError"; +static const char __pyx_k_allow_unicode[] = "allow_unicode"; +static const char __pyx_k_class_getitem[] = "__class_getitem__"; +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_CEmitter_close[] = "CEmitter.close"; +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_CParser_dispose[] = "CParser.dispose"; +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_get_single_node[] = "get_single_node"; +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_ruamel_yaml_pyx[] = "_ruamel_yaml.pyx"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_CEmitter_dispose[] = "CEmitter.dispose"; +static const char __pyx_k_CParser_get_node[] = "CParser.get_node"; +static const char __pyx_k_CParser_raw_scan[] = "CParser.raw_scan"; +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_Mark_get_snippet[] = "Mark.get_snippet"; +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_CParser_get_event[] = "CParser.get_event"; +static const char __pyx_k_CParser_get_token[] = "CParser.get_token"; +static const char __pyx_k_CParser_raw_parse[] = "CParser.raw_parse"; +static const char __pyx_k_MappingStartEvent[] = "MappingStartEvent"; +static const char __pyx_k_pyx_unpickle_Mark[] = "__pyx_unpickle_Mark"; +static const char __pyx_k_ruamel_yaml_error[] = "ruamel.yaml.error"; +static const char __pyx_k_ruamel_yaml_nodes[] = "ruamel.yaml.nodes"; +static const char __pyx_k_second_occurrence[] = "second occurrence"; +static const char __pyx_k_version_directive[] = "version_directive"; +static const char __pyx_k_CEmitter_serialize[] = "CEmitter.serialize"; +static const char __pyx_k_CParser_check_node[] = "CParser.check_node"; +static const char __pyx_k_CParser_peek_event[] = "CParser.peek_event"; +static const char __pyx_k_CParser_peek_token[] = "CParser.peek_token"; +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_asyncio_coroutines[] = "asyncio.coroutines"; +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_ruamel_yaml_events[] = "ruamel.yaml.events"; +static const char __pyx_k_ruamel_yaml_parser[] = "ruamel.yaml.parser"; +static const char __pyx_k_ruamel_yaml_reader[] = "ruamel.yaml.reader"; +static const char __pyx_k_ruamel_yaml_tokens[] = "ruamel.yaml.tokens"; +static const char __pyx_k_tag_directives_end[] = "tag_directives_end"; +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_CParser_check_event[] = "CParser.check_event"; +static const char __pyx_k_CParser_check_token[] = "CParser.check_token"; +static const char __pyx_k_FlowMappingEndToken[] = "FlowMappingEndToken"; +static const char __pyx_k_ruamel_yaml_emitter[] = "ruamel.yaml.emitter"; +static const char __pyx_k_ruamel_yaml_scanner[] = "ruamel.yaml.scanner"; +static const char __pyx_k_FlowSequenceEndToken[] = "FlowSequenceEndToken"; +static const char __pyx_k_Mark___reduce_cython[] = "Mark.__reduce_cython__"; +static const char __pyx_k_in_s_line_d_column_d[] = " in \"%s\", line %d, column %d"; +static const char __pyx_k_ruamel_yaml_composer[] = "ruamel.yaml.composer"; +static const char __pyx_k_serializer_is_closed[] = "serializer is closed"; +static const char __pyx_k_tag_directives_start[] = "tag_directives_start"; +static const char __pyx_k_tag_directives_value[] = "tag_directives_value"; +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_Mark___setstate_cython[] = "Mark.__setstate_cython__"; +static const char __pyx_k_ruamel_yaml_serializer[] = "ruamel.yaml.serializer"; +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_CParser___reduce_cython[] = "CParser.__reduce_cython__"; +static const char __pyx_k_CParser_get_single_node[] = "CParser.get_single_node"; +static const char __pyx_k_anchor_must_be_a_string[] = "anchor must be a string"; +static const char __pyx_k_ruamel_yaml_constructor[] = "ruamel.yaml.constructor"; +static const char __pyx_k_ruamel_yaml_representer[] = "ruamel.yaml.representer"; +static const char __pyx_k_version_directive_value[] = "version_directive_value"; +static const char __pyx_k_CEmitter___reduce_cython[] = "CEmitter.__reduce_cython__"; +static const char __pyx_k_serializer_is_not_opened[] = "serializer is not opened"; +static const char __pyx_k_CParser___setstate_cython[] = "CParser.__setstate_cython__"; +static const char __pyx_k_CEmitter___setstate_cython[] = "CEmitter.__setstate_cython__"; +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_ruamel_yaml_clib__ruamel_yaml[] = "ruamel.yaml.clib._ruamel_yaml"; +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_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 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"; +/* #### Code section: decls ### */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static int __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark___init__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4__str__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4name___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5index___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4line___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6column___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6buffer___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7pointer___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6__reduce_cython__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_8__setstate_cython__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser___init__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_stream); /* proto */ +static void __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_2__dealloc__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_4dispose(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_6raw_scan(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_8get_token(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_10peek_token(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_12check_token(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_14raw_parse(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_16get_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_18peek_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_20check_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_22check_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_24get_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_26get_single_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter___init__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_2__dealloc__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_4dispose(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_6emit(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_8open(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_10close(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_12serialize(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +/* #### Code section: late_includes ### */ +/* #### Code section: module_state ### */ +typedef struct { + PyObject *__pyx_d; + PyObject *__pyx_b; + PyObject *__pyx_cython_runtime; + PyObject *__pyx_empty_tuple; + PyObject *__pyx_empty_bytes; + PyObject *__pyx_empty_unicode; + #ifdef __Pyx_CyFunction_USED + PyTypeObject *__pyx_CyFunctionType; + #endif + #ifdef __Pyx_FusedFunction_USED + PyTypeObject *__pyx_FusedFunctionType; + #endif + #ifdef __Pyx_Generator_USED + PyTypeObject *__pyx_GeneratorType; + #endif + #ifdef __Pyx_IterableCoroutine_USED + PyTypeObject *__pyx_IterableCoroutineType; + #endif + #ifdef __Pyx_Coroutine_USED + PyTypeObject *__pyx_CoroutineAwaitType; + #endif + #ifdef __Pyx_Coroutine_USED + PyTypeObject *__pyx_CoroutineType; + #endif + #if CYTHON_USE_MODULE_STATE + PyObject *__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark; + PyObject *__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; + PyObject *__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; + #endif + PyTypeObject *__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark; + PyTypeObject *__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; + PyTypeObject *__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; + PyObject *__pyx_n_s_AliasEvent; + PyObject *__pyx_n_s_AliasToken; + PyObject *__pyx_n_s_AnchorToken; + PyObject *__pyx_n_s_AttributeError; + PyObject *__pyx_n_s_BlockEndToken; + PyObject *__pyx_n_s_BlockEntryToken; + PyObject *__pyx_n_s_BlockMappingStartToken; + PyObject *__pyx_n_s_BlockSequenceStartToken; + PyObject *__pyx_n_s_CEmitter; + PyObject *__pyx_n_s_CEmitter___reduce_cython; + PyObject *__pyx_n_s_CEmitter___setstate_cython; + PyObject *__pyx_n_s_CEmitter_close; + PyObject *__pyx_n_s_CEmitter_dispose; + PyObject *__pyx_n_s_CEmitter_emit; + PyObject *__pyx_n_s_CEmitter_open; + PyObject *__pyx_n_s_CEmitter_serialize; + PyObject *__pyx_n_s_CParser; + PyObject *__pyx_n_s_CParser___reduce_cython; + PyObject *__pyx_n_s_CParser___setstate_cython; + PyObject *__pyx_n_s_CParser_check_event; + PyObject *__pyx_n_s_CParser_check_node; + PyObject *__pyx_n_s_CParser_check_token; + PyObject *__pyx_n_s_CParser_dispose; + PyObject *__pyx_n_s_CParser_get_event; + PyObject *__pyx_n_s_CParser_get_node; + PyObject *__pyx_n_s_CParser_get_single_node; + PyObject *__pyx_n_s_CParser_get_token; + PyObject *__pyx_n_s_CParser_peek_event; + PyObject *__pyx_n_s_CParser_peek_token; + PyObject *__pyx_n_s_CParser_raw_parse; + PyObject *__pyx_n_s_CParser_raw_scan; + PyObject *__pyx_n_s_ComposerError; + PyObject *__pyx_n_s_ConstructorError; + PyObject *__pyx_n_s_DirectiveToken; + PyObject *__pyx_n_s_DocumentEndEvent; + PyObject *__pyx_n_s_DocumentEndToken; + PyObject *__pyx_n_s_DocumentStartEvent; + PyObject *__pyx_n_s_DocumentStartToken; + PyObject *__pyx_n_s_EmitterError; + PyObject *__pyx_n_s_FlowEntryToken; + PyObject *__pyx_n_s_FlowMappingEndToken; + PyObject *__pyx_n_s_FlowMappingStartToken; + PyObject *__pyx_n_s_FlowSequenceEndToken; + PyObject *__pyx_n_s_FlowSequenceStartToken; + PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; + PyObject *__pyx_n_s_KeyToken; + PyObject *__pyx_n_s_MappingEndEvent; + PyObject *__pyx_n_s_MappingNode; + PyObject *__pyx_n_s_MappingStartEvent; + PyObject *__pyx_n_s_Mark; + PyObject *__pyx_n_s_Mark___reduce_cython; + PyObject *__pyx_n_s_Mark___setstate_cython; + PyObject *__pyx_n_s_Mark_get_snippet; + PyObject *__pyx_n_s_MemoryError; + PyObject *__pyx_n_s_ParserError; + PyObject *__pyx_n_s_PickleError; + PyObject *__pyx_kp_s_Pickling_of_struct_members_such; + PyObject *__pyx_n_s_ReaderError; + PyObject *__pyx_n_s_RepresenterError; + PyObject *__pyx_n_s_ScalarEvent; + PyObject *__pyx_n_s_ScalarNode; + PyObject *__pyx_n_s_ScalarToken; + PyObject *__pyx_n_s_ScannerError; + PyObject *__pyx_n_s_SequenceEndEvent; + PyObject *__pyx_n_s_SequenceNode; + PyObject *__pyx_n_s_SequenceStartEvent; + PyObject *__pyx_n_s_SerializerError; + PyObject *__pyx_n_s_StreamEndEvent; + PyObject *__pyx_n_s_StreamEndToken; + PyObject *__pyx_n_s_StreamStartEvent; + PyObject *__pyx_n_s_StreamStartToken; + PyObject *__pyx_n_u_TAG; + PyObject *__pyx_n_s_TagToken; + PyObject *__pyx_n_s_TypeError; + PyObject *__pyx_n_s_ValueError; + PyObject *__pyx_n_s_ValueToken; + PyObject *__pyx_n_u_YAML; + PyObject *__pyx_n_s_YAMLError; + PyObject *__pyx_kp_s__10; + PyObject *__pyx_kp_u__10; + PyObject *__pyx_kp_s__17; + PyObject *__pyx_kp_s__18; + PyObject *__pyx_kp_s__19; + PyObject *__pyx_kp_s__3; + PyObject *__pyx_kp_u__3; + PyObject *__pyx_kp_u__37; + PyObject *__pyx_kp_u__6; + PyObject *__pyx_kp_s__7; + PyObject *__pyx_kp_u__7; + PyObject *__pyx_kp_s__8; + PyObject *__pyx_kp_u__8; + PyObject *__pyx_kp_s__9; + PyObject *__pyx_kp_u__9; + PyObject *__pyx_kp_s_a_string_or_stream_input_is_requ; + PyObject *__pyx_kp_u_a_string_or_stream_input_is_requ; + PyObject *__pyx_kp_s_a_string_value_is_expected; + PyObject *__pyx_kp_u_a_string_value_is_expected; + PyObject *__pyx_n_s_allow_unicode; + PyObject *__pyx_n_s_anchor; + PyObject *__pyx_kp_s_anchor_must_be_a_string; + PyObject *__pyx_kp_u_anchor_must_be_a_string; + PyObject *__pyx_n_s_ascend_resolver; + PyObject *__pyx_n_s_asyncio_coroutines; + PyObject *__pyx_n_s_buffer; + PyObject *__pyx_kp_s_but_found_another_document; + PyObject *__pyx_kp_u_but_found_another_document; + PyObject *__pyx_kp_s_byte_string; + PyObject *__pyx_kp_u_byte_string; + PyObject *__pyx_n_s_cache; + PyObject *__pyx_n_s_canonical; + PyObject *__pyx_n_s_check_event; + PyObject *__pyx_n_s_check_node; + PyObject *__pyx_n_s_check_token; + PyObject *__pyx_n_s_choice; + PyObject *__pyx_n_s_choices; + PyObject *__pyx_n_s_class; + PyObject *__pyx_n_s_class_getitem; + PyObject *__pyx_n_s_cline_in_traceback; + PyObject *__pyx_n_s_close; + PyObject *__pyx_n_s_column; + PyObject *__pyx_n_s_count; + PyObject *__pyx_n_s_descend_resolver; + PyObject *__pyx_n_s_dict; + PyObject *__pyx_n_s_dict_2; + PyObject *__pyx_kp_u_disable; + PyObject *__pyx_n_s_dispose; + PyObject *__pyx_n_s_document; + PyObject *__pyx_n_s_done; + PyObject *__pyx_n_s_emit; + PyObject *__pyx_kp_u_enable; + PyObject *__pyx_n_s_encoding; + PyObject *__pyx_n_u_encoding; + PyObject *__pyx_n_s_end_mark; + PyObject *__pyx_n_s_error; + PyObject *__pyx_n_s_event; + PyObject *__pyx_n_s_event_class; + PyObject *__pyx_n_s_event_object; + PyObject *__pyx_kp_s_expected_a_single_document_in_th; + PyObject *__pyx_kp_u_expected_a_single_document_in_th; + PyObject *__pyx_n_s_explicit; + PyObject *__pyx_n_s_explicit_end; + PyObject *__pyx_n_s_explicit_start; + PyObject *__pyx_kp_s_file; + PyObject *__pyx_kp_u_file; + PyObject *__pyx_n_s_flow_style; + PyObject *__pyx_kp_s_found_duplicate_anchor_first_occ; + PyObject *__pyx_kp_u_found_duplicate_anchor_first_occ; + PyObject *__pyx_kp_s_found_undefined_alias; + PyObject *__pyx_kp_u_found_undefined_alias; + PyObject *__pyx_kp_u_gc; + PyObject *__pyx_n_s_get_event; + PyObject *__pyx_n_s_get_node; + PyObject *__pyx_n_s_get_single_node; + PyObject *__pyx_n_s_get_snippet; + PyObject *__pyx_n_s_get_token; + PyObject *__pyx_n_s_get_version; + PyObject *__pyx_n_s_get_version_string; + PyObject *__pyx_n_s_getstate; + PyObject *__pyx_n_s_handle; + PyObject *__pyx_kp_u_id_03d; + PyObject *__pyx_n_s_implicit; + PyObject *__pyx_n_s_import; + PyObject *__pyx_kp_s_in_s_line_d_column_d; + PyObject *__pyx_n_s_indent; + PyObject *__pyx_n_s_index; + PyObject *__pyx_kp_s_invalid_event_s; + PyObject *__pyx_kp_u_invalid_event_s; + PyObject *__pyx_n_s_is_coroutine; + PyObject *__pyx_kp_u_isenabled; + PyObject *__pyx_n_s_line; + PyObject *__pyx_n_s_line_break; + PyObject *__pyx_n_s_main; + PyObject *__pyx_n_s_major; + PyObject *__pyx_n_s_mark; + PyObject *__pyx_n_s_minor; + PyObject *__pyx_n_s_name; + PyObject *__pyx_n_s_name_2; + PyObject *__pyx_n_s_new; + PyObject *__pyx_kp_s_no_emitter_error; + PyObject *__pyx_kp_u_no_emitter_error; + PyObject *__pyx_kp_s_no_parser_error; + PyObject *__pyx_kp_u_no_parser_error; + PyObject *__pyx_n_s_node; + PyObject *__pyx_n_s_open; + PyObject *__pyx_n_s_patch; + PyObject *__pyx_n_s_peek_event; + PyObject *__pyx_n_s_peek_token; + PyObject *__pyx_n_s_pickle; + PyObject *__pyx_n_s_pointer; + PyObject *__pyx_n_s_prefix; + PyObject *__pyx_n_s_pyx_PickleError; + PyObject *__pyx_n_s_pyx_checksum; + PyObject *__pyx_n_s_pyx_result; + PyObject *__pyx_n_s_pyx_state; + PyObject *__pyx_n_s_pyx_type; + PyObject *__pyx_n_s_pyx_unpickle_Mark; + PyObject *__pyx_n_s_pyx_vtable; + PyObject *__pyx_n_s_raw_parse; + PyObject *__pyx_n_s_raw_scan; + PyObject *__pyx_n_s_read; + PyObject *__pyx_n_s_reduce; + PyObject *__pyx_n_s_reduce_cython; + PyObject *__pyx_n_s_reduce_ex; + PyObject *__pyx_n_s_resolve; + PyObject *__pyx_n_s_ruamel_yaml_clib__ruamel_yaml; + PyObject *__pyx_n_s_ruamel_yaml_composer; + PyObject *__pyx_n_s_ruamel_yaml_constructor; + PyObject *__pyx_n_s_ruamel_yaml_emitter; + PyObject *__pyx_n_s_ruamel_yaml_error; + PyObject *__pyx_n_s_ruamel_yaml_events; + PyObject *__pyx_n_s_ruamel_yaml_nodes; + PyObject *__pyx_n_s_ruamel_yaml_parser; + PyObject *__pyx_kp_s_ruamel_yaml_pyx; + PyObject *__pyx_n_s_ruamel_yaml_reader; + PyObject *__pyx_n_s_ruamel_yaml_representer; + PyObject *__pyx_n_s_ruamel_yaml_scanner; + PyObject *__pyx_n_s_ruamel_yaml_serializer; + PyObject *__pyx_n_s_ruamel_yaml_tokens; + PyObject *__pyx_kp_s_second_occurrence; + PyObject *__pyx_kp_u_second_occurrence; + PyObject *__pyx_n_s_self; + PyObject *__pyx_kp_s_self_parsed_event_cannot_be_conv; + PyObject *__pyx_n_s_serialize; + PyObject *__pyx_kp_s_serializer_is_already_opened; + PyObject *__pyx_kp_u_serializer_is_already_opened; + PyObject *__pyx_kp_s_serializer_is_closed; + PyObject *__pyx_kp_u_serializer_is_closed; + PyObject *__pyx_kp_s_serializer_is_not_opened; + PyObject *__pyx_kp_u_serializer_is_not_opened; + PyObject *__pyx_n_s_setstate; + PyObject *__pyx_n_s_setstate_cython; + PyObject *__pyx_n_s_start_mark; + PyObject *__pyx_n_s_state; + PyObject *__pyx_n_s_stream; + PyObject *__pyx_kp_s_stringsource; + PyObject *__pyx_n_s_style; + PyObject *__pyx_n_s_tag; + PyObject *__pyx_n_s_tag_directives_end; + PyObject *__pyx_n_s_tag_directives_start; + PyObject *__pyx_n_s_tag_directives_value; + PyObject *__pyx_kp_s_tag_handle_must_be_a_string; + PyObject *__pyx_kp_u_tag_handle_must_be_a_string; + PyObject *__pyx_kp_s_tag_must_be_a_string; + PyObject *__pyx_kp_u_tag_must_be_a_string; + PyObject *__pyx_kp_s_tag_prefix_must_be_a_string; + PyObject *__pyx_kp_u_tag_prefix_must_be_a_string; + PyObject *__pyx_n_s_tags; + PyObject *__pyx_n_s_test; + PyObject *__pyx_n_s_token; + PyObject *__pyx_n_s_token_class; + PyObject *__pyx_kp_s_too_many_tags; + PyObject *__pyx_kp_u_too_many_tags; + PyObject *__pyx_kp_s_unicode_string; + PyObject *__pyx_kp_u_unicode_string; + PyObject *__pyx_kp_s_unknown_event_type; + PyObject *__pyx_kp_u_unknown_event_type; + PyObject *__pyx_kp_s_unknown_token_type; + PyObject *__pyx_kp_u_unknown_token_type; + PyObject *__pyx_n_s_update; + PyObject *__pyx_n_s_use_setstate; + PyObject *__pyx_kp_s_utf_16_be; + PyObject *__pyx_kp_u_utf_16_be; + PyObject *__pyx_kp_s_utf_16_le; + PyObject *__pyx_kp_u_utf_16_le; + PyObject *__pyx_kp_u_utf_8; + PyObject *__pyx_n_s_value; + PyObject *__pyx_kp_s_value_must_be_a_string; + PyObject *__pyx_kp_u_value_must_be_a_string; + PyObject *__pyx_n_s_version; + PyObject *__pyx_n_s_version_directive; + PyObject *__pyx_n_s_version_directive_value; + PyObject *__pyx_n_s_width; + PyObject *__pyx_n_s_write; + PyObject *__pyx_int_0; + PyObject *__pyx_int_1; + PyObject *__pyx_int_41581148; + PyObject *__pyx_int_66733494; + PyObject *__pyx_int_96533895; + PyObject *__pyx_tuple_; + PyObject *__pyx_tuple__2; + PyObject *__pyx_tuple__4; + PyObject *__pyx_tuple__5; + PyObject *__pyx_tuple__11; + PyObject *__pyx_tuple__12; + PyObject *__pyx_tuple__13; + PyObject *__pyx_tuple__14; + PyObject *__pyx_tuple__15; + PyObject *__pyx_tuple__16; + PyObject *__pyx_tuple__20; + PyObject *__pyx_tuple__21; + PyObject *__pyx_tuple__22; + PyObject *__pyx_tuple__23; + PyObject *__pyx_tuple__24; + PyObject *__pyx_tuple__25; + PyObject *__pyx_tuple__26; + PyObject *__pyx_tuple__27; + PyObject *__pyx_tuple__28; + PyObject *__pyx_tuple__29; + PyObject *__pyx_tuple__30; + PyObject *__pyx_tuple__31; + PyObject *__pyx_tuple__32; + PyObject *__pyx_tuple__33; + PyObject *__pyx_tuple__34; + PyObject *__pyx_tuple__35; + PyObject *__pyx_tuple__36; + PyObject *__pyx_tuple__38; + PyObject *__pyx_tuple__40; + PyObject *__pyx_tuple__42; + PyObject *__pyx_tuple__44; + PyObject *__pyx_tuple__46; + PyObject *__pyx_tuple__49; + PyObject *__pyx_tuple__51; + PyObject *__pyx_tuple__54; + PyObject *__pyx_tuple__56; + PyObject *__pyx_tuple__60; + PyObject *__pyx_tuple__64; + PyObject *__pyx_tuple__69; + PyObject *__pyx_tuple__71; + PyObject *__pyx_tuple__73; + PyObject *__pyx_tuple__75; + PyObject *__pyx_tuple__79; + PyObject *__pyx_codeobj__39; + PyObject *__pyx_codeobj__41; + PyObject *__pyx_codeobj__43; + PyObject *__pyx_codeobj__45; + PyObject *__pyx_codeobj__47; + PyObject *__pyx_codeobj__48; + PyObject *__pyx_codeobj__50; + PyObject *__pyx_codeobj__52; + PyObject *__pyx_codeobj__53; + PyObject *__pyx_codeobj__55; + PyObject *__pyx_codeobj__57; + PyObject *__pyx_codeobj__58; + PyObject *__pyx_codeobj__59; + PyObject *__pyx_codeobj__61; + PyObject *__pyx_codeobj__62; + PyObject *__pyx_codeobj__63; + PyObject *__pyx_codeobj__65; + PyObject *__pyx_codeobj__66; + PyObject *__pyx_codeobj__67; + PyObject *__pyx_codeobj__68; + PyObject *__pyx_codeobj__70; + PyObject *__pyx_codeobj__72; + PyObject *__pyx_codeobj__74; + PyObject *__pyx_codeobj__76; + PyObject *__pyx_codeobj__77; + PyObject *__pyx_codeobj__78; + PyObject *__pyx_codeobj__80; +} __pyx_mstate; + +#if CYTHON_USE_MODULE_STATE +#ifdef __cplusplus +namespace { + extern struct PyModuleDef __pyx_moduledef; +} /* anonymous namespace */ +#else +static struct PyModuleDef __pyx_moduledef; +#endif + +#define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o)) + +#define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef))) + +#define __pyx_m (PyState_FindModule(&__pyx_moduledef)) +#else +static __pyx_mstate __pyx_mstate_global_static = +#ifdef __cplusplus + {}; +#else + {0}; +#endif +static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static; +#endif +/* #### Code section: module_state_clear ### */ +#if CYTHON_USE_MODULE_STATE +static int __pyx_m_clear(PyObject *m) { + __pyx_mstate *clear_module_state = __pyx_mstate(m); + if (!clear_module_state) return 0; + Py_CLEAR(clear_module_state->__pyx_d); + Py_CLEAR(clear_module_state->__pyx_b); + Py_CLEAR(clear_module_state->__pyx_cython_runtime); + Py_CLEAR(clear_module_state->__pyx_empty_tuple); + Py_CLEAR(clear_module_state->__pyx_empty_bytes); + Py_CLEAR(clear_module_state->__pyx_empty_unicode); + #ifdef __Pyx_CyFunction_USED + Py_CLEAR(clear_module_state->__pyx_CyFunctionType); + #endif + #ifdef __Pyx_FusedFunction_USED + Py_CLEAR(clear_module_state->__pyx_FusedFunctionType); + #endif + Py_CLEAR(clear_module_state->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + Py_CLEAR(clear_module_state->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + Py_CLEAR(clear_module_state->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + Py_CLEAR(clear_module_state->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + Py_CLEAR(clear_module_state->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + Py_CLEAR(clear_module_state->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + Py_CLEAR(clear_module_state->__pyx_n_s_AliasEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_AliasToken); + Py_CLEAR(clear_module_state->__pyx_n_s_AnchorToken); + Py_CLEAR(clear_module_state->__pyx_n_s_AttributeError); + Py_CLEAR(clear_module_state->__pyx_n_s_BlockEndToken); + Py_CLEAR(clear_module_state->__pyx_n_s_BlockEntryToken); + Py_CLEAR(clear_module_state->__pyx_n_s_BlockMappingStartToken); + Py_CLEAR(clear_module_state->__pyx_n_s_BlockSequenceStartToken); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter___reduce_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter___setstate_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter_close); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter_dispose); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter_emit); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter_open); + Py_CLEAR(clear_module_state->__pyx_n_s_CEmitter_serialize); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser___reduce_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser___setstate_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_check_event); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_check_node); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_check_token); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_dispose); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_get_event); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_get_node); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_get_single_node); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_get_token); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_peek_event); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_peek_token); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_raw_parse); + Py_CLEAR(clear_module_state->__pyx_n_s_CParser_raw_scan); + Py_CLEAR(clear_module_state->__pyx_n_s_ComposerError); + Py_CLEAR(clear_module_state->__pyx_n_s_ConstructorError); + Py_CLEAR(clear_module_state->__pyx_n_s_DirectiveToken); + Py_CLEAR(clear_module_state->__pyx_n_s_DocumentEndEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_DocumentEndToken); + Py_CLEAR(clear_module_state->__pyx_n_s_DocumentStartEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_DocumentStartToken); + Py_CLEAR(clear_module_state->__pyx_n_s_EmitterError); + Py_CLEAR(clear_module_state->__pyx_n_s_FlowEntryToken); + Py_CLEAR(clear_module_state->__pyx_n_s_FlowMappingEndToken); + Py_CLEAR(clear_module_state->__pyx_n_s_FlowMappingStartToken); + Py_CLEAR(clear_module_state->__pyx_n_s_FlowSequenceEndToken); + Py_CLEAR(clear_module_state->__pyx_n_s_FlowSequenceStartToken); + Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0); + Py_CLEAR(clear_module_state->__pyx_n_s_KeyToken); + Py_CLEAR(clear_module_state->__pyx_n_s_MappingEndEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_MappingNode); + Py_CLEAR(clear_module_state->__pyx_n_s_MappingStartEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_Mark); + Py_CLEAR(clear_module_state->__pyx_n_s_Mark___reduce_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_Mark___setstate_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_Mark_get_snippet); + Py_CLEAR(clear_module_state->__pyx_n_s_MemoryError); + Py_CLEAR(clear_module_state->__pyx_n_s_ParserError); + Py_CLEAR(clear_module_state->__pyx_n_s_PickleError); + Py_CLEAR(clear_module_state->__pyx_kp_s_Pickling_of_struct_members_such); + Py_CLEAR(clear_module_state->__pyx_n_s_ReaderError); + Py_CLEAR(clear_module_state->__pyx_n_s_RepresenterError); + Py_CLEAR(clear_module_state->__pyx_n_s_ScalarEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_ScalarNode); + Py_CLEAR(clear_module_state->__pyx_n_s_ScalarToken); + Py_CLEAR(clear_module_state->__pyx_n_s_ScannerError); + Py_CLEAR(clear_module_state->__pyx_n_s_SequenceEndEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_SequenceNode); + Py_CLEAR(clear_module_state->__pyx_n_s_SequenceStartEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_SerializerError); + Py_CLEAR(clear_module_state->__pyx_n_s_StreamEndEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_StreamEndToken); + Py_CLEAR(clear_module_state->__pyx_n_s_StreamStartEvent); + Py_CLEAR(clear_module_state->__pyx_n_s_StreamStartToken); + Py_CLEAR(clear_module_state->__pyx_n_u_TAG); + Py_CLEAR(clear_module_state->__pyx_n_s_TagToken); + Py_CLEAR(clear_module_state->__pyx_n_s_TypeError); + Py_CLEAR(clear_module_state->__pyx_n_s_ValueError); + Py_CLEAR(clear_module_state->__pyx_n_s_ValueToken); + Py_CLEAR(clear_module_state->__pyx_n_u_YAML); + Py_CLEAR(clear_module_state->__pyx_n_s_YAMLError); + Py_CLEAR(clear_module_state->__pyx_kp_s__10); + Py_CLEAR(clear_module_state->__pyx_kp_u__10); + Py_CLEAR(clear_module_state->__pyx_kp_s__17); + Py_CLEAR(clear_module_state->__pyx_kp_s__18); + Py_CLEAR(clear_module_state->__pyx_kp_s__19); + Py_CLEAR(clear_module_state->__pyx_kp_s__3); + Py_CLEAR(clear_module_state->__pyx_kp_u__3); + Py_CLEAR(clear_module_state->__pyx_kp_u__37); + Py_CLEAR(clear_module_state->__pyx_kp_u__6); + Py_CLEAR(clear_module_state->__pyx_kp_s__7); + Py_CLEAR(clear_module_state->__pyx_kp_u__7); + Py_CLEAR(clear_module_state->__pyx_kp_s__8); + Py_CLEAR(clear_module_state->__pyx_kp_u__8); + Py_CLEAR(clear_module_state->__pyx_kp_s__9); + Py_CLEAR(clear_module_state->__pyx_kp_u__9); + Py_CLEAR(clear_module_state->__pyx_kp_s_a_string_or_stream_input_is_requ); + Py_CLEAR(clear_module_state->__pyx_kp_u_a_string_or_stream_input_is_requ); + Py_CLEAR(clear_module_state->__pyx_kp_s_a_string_value_is_expected); + Py_CLEAR(clear_module_state->__pyx_kp_u_a_string_value_is_expected); + Py_CLEAR(clear_module_state->__pyx_n_s_allow_unicode); + Py_CLEAR(clear_module_state->__pyx_n_s_anchor); + Py_CLEAR(clear_module_state->__pyx_kp_s_anchor_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_anchor_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_n_s_ascend_resolver); + Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines); + Py_CLEAR(clear_module_state->__pyx_n_s_buffer); + Py_CLEAR(clear_module_state->__pyx_kp_s_but_found_another_document); + Py_CLEAR(clear_module_state->__pyx_kp_u_but_found_another_document); + Py_CLEAR(clear_module_state->__pyx_kp_s_byte_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_byte_string); + Py_CLEAR(clear_module_state->__pyx_n_s_cache); + Py_CLEAR(clear_module_state->__pyx_n_s_canonical); + Py_CLEAR(clear_module_state->__pyx_n_s_check_event); + Py_CLEAR(clear_module_state->__pyx_n_s_check_node); + Py_CLEAR(clear_module_state->__pyx_n_s_check_token); + Py_CLEAR(clear_module_state->__pyx_n_s_choice); + Py_CLEAR(clear_module_state->__pyx_n_s_choices); + Py_CLEAR(clear_module_state->__pyx_n_s_class); + Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem); + Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback); + Py_CLEAR(clear_module_state->__pyx_n_s_close); + Py_CLEAR(clear_module_state->__pyx_n_s_column); + Py_CLEAR(clear_module_state->__pyx_n_s_count); + Py_CLEAR(clear_module_state->__pyx_n_s_descend_resolver); + Py_CLEAR(clear_module_state->__pyx_n_s_dict); + Py_CLEAR(clear_module_state->__pyx_n_s_dict_2); + Py_CLEAR(clear_module_state->__pyx_kp_u_disable); + Py_CLEAR(clear_module_state->__pyx_n_s_dispose); + Py_CLEAR(clear_module_state->__pyx_n_s_document); + Py_CLEAR(clear_module_state->__pyx_n_s_done); + Py_CLEAR(clear_module_state->__pyx_n_s_emit); + Py_CLEAR(clear_module_state->__pyx_kp_u_enable); + Py_CLEAR(clear_module_state->__pyx_n_s_encoding); + Py_CLEAR(clear_module_state->__pyx_n_u_encoding); + Py_CLEAR(clear_module_state->__pyx_n_s_end_mark); + Py_CLEAR(clear_module_state->__pyx_n_s_error); + Py_CLEAR(clear_module_state->__pyx_n_s_event); + Py_CLEAR(clear_module_state->__pyx_n_s_event_class); + Py_CLEAR(clear_module_state->__pyx_n_s_event_object); + Py_CLEAR(clear_module_state->__pyx_kp_s_expected_a_single_document_in_th); + Py_CLEAR(clear_module_state->__pyx_kp_u_expected_a_single_document_in_th); + Py_CLEAR(clear_module_state->__pyx_n_s_explicit); + Py_CLEAR(clear_module_state->__pyx_n_s_explicit_end); + Py_CLEAR(clear_module_state->__pyx_n_s_explicit_start); + Py_CLEAR(clear_module_state->__pyx_kp_s_file); + Py_CLEAR(clear_module_state->__pyx_kp_u_file); + Py_CLEAR(clear_module_state->__pyx_n_s_flow_style); + Py_CLEAR(clear_module_state->__pyx_kp_s_found_duplicate_anchor_first_occ); + Py_CLEAR(clear_module_state->__pyx_kp_u_found_duplicate_anchor_first_occ); + Py_CLEAR(clear_module_state->__pyx_kp_s_found_undefined_alias); + Py_CLEAR(clear_module_state->__pyx_kp_u_found_undefined_alias); + Py_CLEAR(clear_module_state->__pyx_kp_u_gc); + Py_CLEAR(clear_module_state->__pyx_n_s_get_event); + Py_CLEAR(clear_module_state->__pyx_n_s_get_node); + Py_CLEAR(clear_module_state->__pyx_n_s_get_single_node); + Py_CLEAR(clear_module_state->__pyx_n_s_get_snippet); + Py_CLEAR(clear_module_state->__pyx_n_s_get_token); + Py_CLEAR(clear_module_state->__pyx_n_s_get_version); + Py_CLEAR(clear_module_state->__pyx_n_s_get_version_string); + Py_CLEAR(clear_module_state->__pyx_n_s_getstate); + Py_CLEAR(clear_module_state->__pyx_n_s_handle); + Py_CLEAR(clear_module_state->__pyx_kp_u_id_03d); + Py_CLEAR(clear_module_state->__pyx_n_s_implicit); + Py_CLEAR(clear_module_state->__pyx_n_s_import); + Py_CLEAR(clear_module_state->__pyx_kp_s_in_s_line_d_column_d); + Py_CLEAR(clear_module_state->__pyx_n_s_indent); + Py_CLEAR(clear_module_state->__pyx_n_s_index); + Py_CLEAR(clear_module_state->__pyx_kp_s_invalid_event_s); + Py_CLEAR(clear_module_state->__pyx_kp_u_invalid_event_s); + Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine); + Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled); + Py_CLEAR(clear_module_state->__pyx_n_s_line); + Py_CLEAR(clear_module_state->__pyx_n_s_line_break); + Py_CLEAR(clear_module_state->__pyx_n_s_main); + Py_CLEAR(clear_module_state->__pyx_n_s_major); + Py_CLEAR(clear_module_state->__pyx_n_s_mark); + Py_CLEAR(clear_module_state->__pyx_n_s_minor); + Py_CLEAR(clear_module_state->__pyx_n_s_name); + Py_CLEAR(clear_module_state->__pyx_n_s_name_2); + Py_CLEAR(clear_module_state->__pyx_n_s_new); + Py_CLEAR(clear_module_state->__pyx_kp_s_no_emitter_error); + Py_CLEAR(clear_module_state->__pyx_kp_u_no_emitter_error); + Py_CLEAR(clear_module_state->__pyx_kp_s_no_parser_error); + Py_CLEAR(clear_module_state->__pyx_kp_u_no_parser_error); + Py_CLEAR(clear_module_state->__pyx_n_s_node); + Py_CLEAR(clear_module_state->__pyx_n_s_open); + Py_CLEAR(clear_module_state->__pyx_n_s_patch); + Py_CLEAR(clear_module_state->__pyx_n_s_peek_event); + Py_CLEAR(clear_module_state->__pyx_n_s_peek_token); + Py_CLEAR(clear_module_state->__pyx_n_s_pickle); + Py_CLEAR(clear_module_state->__pyx_n_s_pointer); + Py_CLEAR(clear_module_state->__pyx_n_s_prefix); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Mark); + Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable); + Py_CLEAR(clear_module_state->__pyx_n_s_raw_parse); + Py_CLEAR(clear_module_state->__pyx_n_s_raw_scan); + Py_CLEAR(clear_module_state->__pyx_n_s_read); + Py_CLEAR(clear_module_state->__pyx_n_s_reduce); + Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex); + Py_CLEAR(clear_module_state->__pyx_n_s_resolve); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_clib__ruamel_yaml); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_composer); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_constructor); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_emitter); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_error); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_events); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_nodes); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_parser); + Py_CLEAR(clear_module_state->__pyx_kp_s_ruamel_yaml_pyx); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_reader); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_representer); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_scanner); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_serializer); + Py_CLEAR(clear_module_state->__pyx_n_s_ruamel_yaml_tokens); + Py_CLEAR(clear_module_state->__pyx_kp_s_second_occurrence); + Py_CLEAR(clear_module_state->__pyx_kp_u_second_occurrence); + Py_CLEAR(clear_module_state->__pyx_n_s_self); + Py_CLEAR(clear_module_state->__pyx_kp_s_self_parsed_event_cannot_be_conv); + Py_CLEAR(clear_module_state->__pyx_n_s_serialize); + Py_CLEAR(clear_module_state->__pyx_kp_s_serializer_is_already_opened); + Py_CLEAR(clear_module_state->__pyx_kp_u_serializer_is_already_opened); + Py_CLEAR(clear_module_state->__pyx_kp_s_serializer_is_closed); + Py_CLEAR(clear_module_state->__pyx_kp_u_serializer_is_closed); + Py_CLEAR(clear_module_state->__pyx_kp_s_serializer_is_not_opened); + Py_CLEAR(clear_module_state->__pyx_kp_u_serializer_is_not_opened); + Py_CLEAR(clear_module_state->__pyx_n_s_setstate); + Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython); + Py_CLEAR(clear_module_state->__pyx_n_s_start_mark); + Py_CLEAR(clear_module_state->__pyx_n_s_state); + Py_CLEAR(clear_module_state->__pyx_n_s_stream); + Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource); + Py_CLEAR(clear_module_state->__pyx_n_s_style); + Py_CLEAR(clear_module_state->__pyx_n_s_tag); + Py_CLEAR(clear_module_state->__pyx_n_s_tag_directives_end); + Py_CLEAR(clear_module_state->__pyx_n_s_tag_directives_start); + Py_CLEAR(clear_module_state->__pyx_n_s_tag_directives_value); + Py_CLEAR(clear_module_state->__pyx_kp_s_tag_handle_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_tag_handle_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_s_tag_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_tag_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_s_tag_prefix_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_tag_prefix_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_n_s_tags); + Py_CLEAR(clear_module_state->__pyx_n_s_test); + Py_CLEAR(clear_module_state->__pyx_n_s_token); + Py_CLEAR(clear_module_state->__pyx_n_s_token_class); + Py_CLEAR(clear_module_state->__pyx_kp_s_too_many_tags); + Py_CLEAR(clear_module_state->__pyx_kp_u_too_many_tags); + Py_CLEAR(clear_module_state->__pyx_kp_s_unicode_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_unicode_string); + Py_CLEAR(clear_module_state->__pyx_kp_s_unknown_event_type); + Py_CLEAR(clear_module_state->__pyx_kp_u_unknown_event_type); + Py_CLEAR(clear_module_state->__pyx_kp_s_unknown_token_type); + Py_CLEAR(clear_module_state->__pyx_kp_u_unknown_token_type); + Py_CLEAR(clear_module_state->__pyx_n_s_update); + Py_CLEAR(clear_module_state->__pyx_n_s_use_setstate); + Py_CLEAR(clear_module_state->__pyx_kp_s_utf_16_be); + Py_CLEAR(clear_module_state->__pyx_kp_u_utf_16_be); + Py_CLEAR(clear_module_state->__pyx_kp_s_utf_16_le); + Py_CLEAR(clear_module_state->__pyx_kp_u_utf_16_le); + Py_CLEAR(clear_module_state->__pyx_kp_u_utf_8); + Py_CLEAR(clear_module_state->__pyx_n_s_value); + Py_CLEAR(clear_module_state->__pyx_kp_s_value_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_kp_u_value_must_be_a_string); + Py_CLEAR(clear_module_state->__pyx_n_s_version); + Py_CLEAR(clear_module_state->__pyx_n_s_version_directive); + Py_CLEAR(clear_module_state->__pyx_n_s_version_directive_value); + Py_CLEAR(clear_module_state->__pyx_n_s_width); + Py_CLEAR(clear_module_state->__pyx_n_s_write); + Py_CLEAR(clear_module_state->__pyx_int_0); + Py_CLEAR(clear_module_state->__pyx_int_1); + Py_CLEAR(clear_module_state->__pyx_int_41581148); + Py_CLEAR(clear_module_state->__pyx_int_66733494); + Py_CLEAR(clear_module_state->__pyx_int_96533895); + Py_CLEAR(clear_module_state->__pyx_tuple_); + Py_CLEAR(clear_module_state->__pyx_tuple__2); + Py_CLEAR(clear_module_state->__pyx_tuple__4); + Py_CLEAR(clear_module_state->__pyx_tuple__5); + Py_CLEAR(clear_module_state->__pyx_tuple__11); + Py_CLEAR(clear_module_state->__pyx_tuple__12); + Py_CLEAR(clear_module_state->__pyx_tuple__13); + Py_CLEAR(clear_module_state->__pyx_tuple__14); + Py_CLEAR(clear_module_state->__pyx_tuple__15); + Py_CLEAR(clear_module_state->__pyx_tuple__16); + Py_CLEAR(clear_module_state->__pyx_tuple__20); + Py_CLEAR(clear_module_state->__pyx_tuple__21); + Py_CLEAR(clear_module_state->__pyx_tuple__22); + Py_CLEAR(clear_module_state->__pyx_tuple__23); + Py_CLEAR(clear_module_state->__pyx_tuple__24); + Py_CLEAR(clear_module_state->__pyx_tuple__25); + Py_CLEAR(clear_module_state->__pyx_tuple__26); + Py_CLEAR(clear_module_state->__pyx_tuple__27); + Py_CLEAR(clear_module_state->__pyx_tuple__28); + Py_CLEAR(clear_module_state->__pyx_tuple__29); + Py_CLEAR(clear_module_state->__pyx_tuple__30); + Py_CLEAR(clear_module_state->__pyx_tuple__31); + Py_CLEAR(clear_module_state->__pyx_tuple__32); + Py_CLEAR(clear_module_state->__pyx_tuple__33); + Py_CLEAR(clear_module_state->__pyx_tuple__34); + Py_CLEAR(clear_module_state->__pyx_tuple__35); + Py_CLEAR(clear_module_state->__pyx_tuple__36); + Py_CLEAR(clear_module_state->__pyx_tuple__38); + Py_CLEAR(clear_module_state->__pyx_tuple__40); + Py_CLEAR(clear_module_state->__pyx_tuple__42); + Py_CLEAR(clear_module_state->__pyx_tuple__44); + Py_CLEAR(clear_module_state->__pyx_tuple__46); + Py_CLEAR(clear_module_state->__pyx_tuple__49); + Py_CLEAR(clear_module_state->__pyx_tuple__51); + Py_CLEAR(clear_module_state->__pyx_tuple__54); + Py_CLEAR(clear_module_state->__pyx_tuple__56); + Py_CLEAR(clear_module_state->__pyx_tuple__60); + Py_CLEAR(clear_module_state->__pyx_tuple__64); + Py_CLEAR(clear_module_state->__pyx_tuple__69); + Py_CLEAR(clear_module_state->__pyx_tuple__71); + Py_CLEAR(clear_module_state->__pyx_tuple__73); + Py_CLEAR(clear_module_state->__pyx_tuple__75); + Py_CLEAR(clear_module_state->__pyx_tuple__79); + Py_CLEAR(clear_module_state->__pyx_codeobj__39); + Py_CLEAR(clear_module_state->__pyx_codeobj__41); + Py_CLEAR(clear_module_state->__pyx_codeobj__43); + Py_CLEAR(clear_module_state->__pyx_codeobj__45); + Py_CLEAR(clear_module_state->__pyx_codeobj__47); + Py_CLEAR(clear_module_state->__pyx_codeobj__48); + Py_CLEAR(clear_module_state->__pyx_codeobj__50); + Py_CLEAR(clear_module_state->__pyx_codeobj__52); + Py_CLEAR(clear_module_state->__pyx_codeobj__53); + Py_CLEAR(clear_module_state->__pyx_codeobj__55); + Py_CLEAR(clear_module_state->__pyx_codeobj__57); + Py_CLEAR(clear_module_state->__pyx_codeobj__58); + Py_CLEAR(clear_module_state->__pyx_codeobj__59); + Py_CLEAR(clear_module_state->__pyx_codeobj__61); + Py_CLEAR(clear_module_state->__pyx_codeobj__62); + Py_CLEAR(clear_module_state->__pyx_codeobj__63); + Py_CLEAR(clear_module_state->__pyx_codeobj__65); + Py_CLEAR(clear_module_state->__pyx_codeobj__66); + Py_CLEAR(clear_module_state->__pyx_codeobj__67); + Py_CLEAR(clear_module_state->__pyx_codeobj__68); + Py_CLEAR(clear_module_state->__pyx_codeobj__70); + Py_CLEAR(clear_module_state->__pyx_codeobj__72); + Py_CLEAR(clear_module_state->__pyx_codeobj__74); + Py_CLEAR(clear_module_state->__pyx_codeobj__76); + Py_CLEAR(clear_module_state->__pyx_codeobj__77); + Py_CLEAR(clear_module_state->__pyx_codeobj__78); + Py_CLEAR(clear_module_state->__pyx_codeobj__80); + return 0; +} +#endif +/* #### Code section: module_state_traverse ### */ +#if CYTHON_USE_MODULE_STATE +static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { + __pyx_mstate *traverse_module_state = __pyx_mstate(m); + if (!traverse_module_state) return 0; + Py_VISIT(traverse_module_state->__pyx_d); + Py_VISIT(traverse_module_state->__pyx_b); + Py_VISIT(traverse_module_state->__pyx_cython_runtime); + Py_VISIT(traverse_module_state->__pyx_empty_tuple); + Py_VISIT(traverse_module_state->__pyx_empty_bytes); + Py_VISIT(traverse_module_state->__pyx_empty_unicode); + #ifdef __Pyx_CyFunction_USED + Py_VISIT(traverse_module_state->__pyx_CyFunctionType); + #endif + #ifdef __Pyx_FusedFunction_USED + Py_VISIT(traverse_module_state->__pyx_FusedFunctionType); + #endif + Py_VISIT(traverse_module_state->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + Py_VISIT(traverse_module_state->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + Py_VISIT(traverse_module_state->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + Py_VISIT(traverse_module_state->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + Py_VISIT(traverse_module_state->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + Py_VISIT(traverse_module_state->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + Py_VISIT(traverse_module_state->__pyx_n_s_AliasEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_AliasToken); + Py_VISIT(traverse_module_state->__pyx_n_s_AnchorToken); + Py_VISIT(traverse_module_state->__pyx_n_s_AttributeError); + Py_VISIT(traverse_module_state->__pyx_n_s_BlockEndToken); + Py_VISIT(traverse_module_state->__pyx_n_s_BlockEntryToken); + Py_VISIT(traverse_module_state->__pyx_n_s_BlockMappingStartToken); + Py_VISIT(traverse_module_state->__pyx_n_s_BlockSequenceStartToken); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter___reduce_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter___setstate_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter_close); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter_dispose); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter_emit); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter_open); + Py_VISIT(traverse_module_state->__pyx_n_s_CEmitter_serialize); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser___reduce_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser___setstate_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_check_event); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_check_node); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_check_token); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_dispose); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_get_event); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_get_node); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_get_single_node); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_get_token); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_peek_event); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_peek_token); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_raw_parse); + Py_VISIT(traverse_module_state->__pyx_n_s_CParser_raw_scan); + Py_VISIT(traverse_module_state->__pyx_n_s_ComposerError); + Py_VISIT(traverse_module_state->__pyx_n_s_ConstructorError); + Py_VISIT(traverse_module_state->__pyx_n_s_DirectiveToken); + Py_VISIT(traverse_module_state->__pyx_n_s_DocumentEndEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_DocumentEndToken); + Py_VISIT(traverse_module_state->__pyx_n_s_DocumentStartEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_DocumentStartToken); + Py_VISIT(traverse_module_state->__pyx_n_s_EmitterError); + Py_VISIT(traverse_module_state->__pyx_n_s_FlowEntryToken); + Py_VISIT(traverse_module_state->__pyx_n_s_FlowMappingEndToken); + Py_VISIT(traverse_module_state->__pyx_n_s_FlowMappingStartToken); + Py_VISIT(traverse_module_state->__pyx_n_s_FlowSequenceEndToken); + Py_VISIT(traverse_module_state->__pyx_n_s_FlowSequenceStartToken); + Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0); + Py_VISIT(traverse_module_state->__pyx_n_s_KeyToken); + Py_VISIT(traverse_module_state->__pyx_n_s_MappingEndEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_MappingNode); + Py_VISIT(traverse_module_state->__pyx_n_s_MappingStartEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_Mark); + Py_VISIT(traverse_module_state->__pyx_n_s_Mark___reduce_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_Mark___setstate_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_Mark_get_snippet); + Py_VISIT(traverse_module_state->__pyx_n_s_MemoryError); + Py_VISIT(traverse_module_state->__pyx_n_s_ParserError); + Py_VISIT(traverse_module_state->__pyx_n_s_PickleError); + Py_VISIT(traverse_module_state->__pyx_kp_s_Pickling_of_struct_members_such); + Py_VISIT(traverse_module_state->__pyx_n_s_ReaderError); + Py_VISIT(traverse_module_state->__pyx_n_s_RepresenterError); + Py_VISIT(traverse_module_state->__pyx_n_s_ScalarEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_ScalarNode); + Py_VISIT(traverse_module_state->__pyx_n_s_ScalarToken); + Py_VISIT(traverse_module_state->__pyx_n_s_ScannerError); + Py_VISIT(traverse_module_state->__pyx_n_s_SequenceEndEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_SequenceNode); + Py_VISIT(traverse_module_state->__pyx_n_s_SequenceStartEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_SerializerError); + Py_VISIT(traverse_module_state->__pyx_n_s_StreamEndEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_StreamEndToken); + Py_VISIT(traverse_module_state->__pyx_n_s_StreamStartEvent); + Py_VISIT(traverse_module_state->__pyx_n_s_StreamStartToken); + Py_VISIT(traverse_module_state->__pyx_n_u_TAG); + Py_VISIT(traverse_module_state->__pyx_n_s_TagToken); + Py_VISIT(traverse_module_state->__pyx_n_s_TypeError); + Py_VISIT(traverse_module_state->__pyx_n_s_ValueError); + Py_VISIT(traverse_module_state->__pyx_n_s_ValueToken); + Py_VISIT(traverse_module_state->__pyx_n_u_YAML); + Py_VISIT(traverse_module_state->__pyx_n_s_YAMLError); + Py_VISIT(traverse_module_state->__pyx_kp_s__10); + Py_VISIT(traverse_module_state->__pyx_kp_u__10); + Py_VISIT(traverse_module_state->__pyx_kp_s__17); + Py_VISIT(traverse_module_state->__pyx_kp_s__18); + Py_VISIT(traverse_module_state->__pyx_kp_s__19); + Py_VISIT(traverse_module_state->__pyx_kp_s__3); + Py_VISIT(traverse_module_state->__pyx_kp_u__3); + Py_VISIT(traverse_module_state->__pyx_kp_u__37); + Py_VISIT(traverse_module_state->__pyx_kp_u__6); + Py_VISIT(traverse_module_state->__pyx_kp_s__7); + Py_VISIT(traverse_module_state->__pyx_kp_u__7); + Py_VISIT(traverse_module_state->__pyx_kp_s__8); + Py_VISIT(traverse_module_state->__pyx_kp_u__8); + Py_VISIT(traverse_module_state->__pyx_kp_s__9); + Py_VISIT(traverse_module_state->__pyx_kp_u__9); + Py_VISIT(traverse_module_state->__pyx_kp_s_a_string_or_stream_input_is_requ); + Py_VISIT(traverse_module_state->__pyx_kp_u_a_string_or_stream_input_is_requ); + Py_VISIT(traverse_module_state->__pyx_kp_s_a_string_value_is_expected); + Py_VISIT(traverse_module_state->__pyx_kp_u_a_string_value_is_expected); + Py_VISIT(traverse_module_state->__pyx_n_s_allow_unicode); + Py_VISIT(traverse_module_state->__pyx_n_s_anchor); + Py_VISIT(traverse_module_state->__pyx_kp_s_anchor_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_anchor_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_n_s_ascend_resolver); + Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines); + Py_VISIT(traverse_module_state->__pyx_n_s_buffer); + Py_VISIT(traverse_module_state->__pyx_kp_s_but_found_another_document); + Py_VISIT(traverse_module_state->__pyx_kp_u_but_found_another_document); + Py_VISIT(traverse_module_state->__pyx_kp_s_byte_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_byte_string); + Py_VISIT(traverse_module_state->__pyx_n_s_cache); + Py_VISIT(traverse_module_state->__pyx_n_s_canonical); + Py_VISIT(traverse_module_state->__pyx_n_s_check_event); + Py_VISIT(traverse_module_state->__pyx_n_s_check_node); + Py_VISIT(traverse_module_state->__pyx_n_s_check_token); + Py_VISIT(traverse_module_state->__pyx_n_s_choice); + Py_VISIT(traverse_module_state->__pyx_n_s_choices); + Py_VISIT(traverse_module_state->__pyx_n_s_class); + Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem); + Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback); + Py_VISIT(traverse_module_state->__pyx_n_s_close); + Py_VISIT(traverse_module_state->__pyx_n_s_column); + Py_VISIT(traverse_module_state->__pyx_n_s_count); + Py_VISIT(traverse_module_state->__pyx_n_s_descend_resolver); + Py_VISIT(traverse_module_state->__pyx_n_s_dict); + Py_VISIT(traverse_module_state->__pyx_n_s_dict_2); + Py_VISIT(traverse_module_state->__pyx_kp_u_disable); + Py_VISIT(traverse_module_state->__pyx_n_s_dispose); + Py_VISIT(traverse_module_state->__pyx_n_s_document); + Py_VISIT(traverse_module_state->__pyx_n_s_done); + Py_VISIT(traverse_module_state->__pyx_n_s_emit); + Py_VISIT(traverse_module_state->__pyx_kp_u_enable); + Py_VISIT(traverse_module_state->__pyx_n_s_encoding); + Py_VISIT(traverse_module_state->__pyx_n_u_encoding); + Py_VISIT(traverse_module_state->__pyx_n_s_end_mark); + Py_VISIT(traverse_module_state->__pyx_n_s_error); + Py_VISIT(traverse_module_state->__pyx_n_s_event); + Py_VISIT(traverse_module_state->__pyx_n_s_event_class); + Py_VISIT(traverse_module_state->__pyx_n_s_event_object); + Py_VISIT(traverse_module_state->__pyx_kp_s_expected_a_single_document_in_th); + Py_VISIT(traverse_module_state->__pyx_kp_u_expected_a_single_document_in_th); + Py_VISIT(traverse_module_state->__pyx_n_s_explicit); + Py_VISIT(traverse_module_state->__pyx_n_s_explicit_end); + Py_VISIT(traverse_module_state->__pyx_n_s_explicit_start); + Py_VISIT(traverse_module_state->__pyx_kp_s_file); + Py_VISIT(traverse_module_state->__pyx_kp_u_file); + Py_VISIT(traverse_module_state->__pyx_n_s_flow_style); + Py_VISIT(traverse_module_state->__pyx_kp_s_found_duplicate_anchor_first_occ); + Py_VISIT(traverse_module_state->__pyx_kp_u_found_duplicate_anchor_first_occ); + Py_VISIT(traverse_module_state->__pyx_kp_s_found_undefined_alias); + Py_VISIT(traverse_module_state->__pyx_kp_u_found_undefined_alias); + Py_VISIT(traverse_module_state->__pyx_kp_u_gc); + Py_VISIT(traverse_module_state->__pyx_n_s_get_event); + Py_VISIT(traverse_module_state->__pyx_n_s_get_node); + Py_VISIT(traverse_module_state->__pyx_n_s_get_single_node); + Py_VISIT(traverse_module_state->__pyx_n_s_get_snippet); + Py_VISIT(traverse_module_state->__pyx_n_s_get_token); + Py_VISIT(traverse_module_state->__pyx_n_s_get_version); + Py_VISIT(traverse_module_state->__pyx_n_s_get_version_string); + Py_VISIT(traverse_module_state->__pyx_n_s_getstate); + Py_VISIT(traverse_module_state->__pyx_n_s_handle); + Py_VISIT(traverse_module_state->__pyx_kp_u_id_03d); + Py_VISIT(traverse_module_state->__pyx_n_s_implicit); + Py_VISIT(traverse_module_state->__pyx_n_s_import); + Py_VISIT(traverse_module_state->__pyx_kp_s_in_s_line_d_column_d); + Py_VISIT(traverse_module_state->__pyx_n_s_indent); + Py_VISIT(traverse_module_state->__pyx_n_s_index); + Py_VISIT(traverse_module_state->__pyx_kp_s_invalid_event_s); + Py_VISIT(traverse_module_state->__pyx_kp_u_invalid_event_s); + Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine); + Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled); + Py_VISIT(traverse_module_state->__pyx_n_s_line); + Py_VISIT(traverse_module_state->__pyx_n_s_line_break); + Py_VISIT(traverse_module_state->__pyx_n_s_main); + Py_VISIT(traverse_module_state->__pyx_n_s_major); + Py_VISIT(traverse_module_state->__pyx_n_s_mark); + Py_VISIT(traverse_module_state->__pyx_n_s_minor); + Py_VISIT(traverse_module_state->__pyx_n_s_name); + Py_VISIT(traverse_module_state->__pyx_n_s_name_2); + Py_VISIT(traverse_module_state->__pyx_n_s_new); + Py_VISIT(traverse_module_state->__pyx_kp_s_no_emitter_error); + Py_VISIT(traverse_module_state->__pyx_kp_u_no_emitter_error); + Py_VISIT(traverse_module_state->__pyx_kp_s_no_parser_error); + Py_VISIT(traverse_module_state->__pyx_kp_u_no_parser_error); + Py_VISIT(traverse_module_state->__pyx_n_s_node); + Py_VISIT(traverse_module_state->__pyx_n_s_open); + Py_VISIT(traverse_module_state->__pyx_n_s_patch); + Py_VISIT(traverse_module_state->__pyx_n_s_peek_event); + Py_VISIT(traverse_module_state->__pyx_n_s_peek_token); + Py_VISIT(traverse_module_state->__pyx_n_s_pickle); + Py_VISIT(traverse_module_state->__pyx_n_s_pointer); + Py_VISIT(traverse_module_state->__pyx_n_s_prefix); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Mark); + Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable); + Py_VISIT(traverse_module_state->__pyx_n_s_raw_parse); + Py_VISIT(traverse_module_state->__pyx_n_s_raw_scan); + Py_VISIT(traverse_module_state->__pyx_n_s_read); + Py_VISIT(traverse_module_state->__pyx_n_s_reduce); + Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex); + Py_VISIT(traverse_module_state->__pyx_n_s_resolve); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_clib__ruamel_yaml); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_composer); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_constructor); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_emitter); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_error); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_events); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_nodes); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_parser); + Py_VISIT(traverse_module_state->__pyx_kp_s_ruamel_yaml_pyx); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_reader); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_representer); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_scanner); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_serializer); + Py_VISIT(traverse_module_state->__pyx_n_s_ruamel_yaml_tokens); + Py_VISIT(traverse_module_state->__pyx_kp_s_second_occurrence); + Py_VISIT(traverse_module_state->__pyx_kp_u_second_occurrence); + Py_VISIT(traverse_module_state->__pyx_n_s_self); + Py_VISIT(traverse_module_state->__pyx_kp_s_self_parsed_event_cannot_be_conv); + Py_VISIT(traverse_module_state->__pyx_n_s_serialize); + Py_VISIT(traverse_module_state->__pyx_kp_s_serializer_is_already_opened); + Py_VISIT(traverse_module_state->__pyx_kp_u_serializer_is_already_opened); + Py_VISIT(traverse_module_state->__pyx_kp_s_serializer_is_closed); + Py_VISIT(traverse_module_state->__pyx_kp_u_serializer_is_closed); + Py_VISIT(traverse_module_state->__pyx_kp_s_serializer_is_not_opened); + Py_VISIT(traverse_module_state->__pyx_kp_u_serializer_is_not_opened); + Py_VISIT(traverse_module_state->__pyx_n_s_setstate); + Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython); + Py_VISIT(traverse_module_state->__pyx_n_s_start_mark); + Py_VISIT(traverse_module_state->__pyx_n_s_state); + Py_VISIT(traverse_module_state->__pyx_n_s_stream); + Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource); + Py_VISIT(traverse_module_state->__pyx_n_s_style); + Py_VISIT(traverse_module_state->__pyx_n_s_tag); + Py_VISIT(traverse_module_state->__pyx_n_s_tag_directives_end); + Py_VISIT(traverse_module_state->__pyx_n_s_tag_directives_start); + Py_VISIT(traverse_module_state->__pyx_n_s_tag_directives_value); + Py_VISIT(traverse_module_state->__pyx_kp_s_tag_handle_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_tag_handle_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_s_tag_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_tag_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_s_tag_prefix_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_tag_prefix_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_n_s_tags); + Py_VISIT(traverse_module_state->__pyx_n_s_test); + Py_VISIT(traverse_module_state->__pyx_n_s_token); + Py_VISIT(traverse_module_state->__pyx_n_s_token_class); + Py_VISIT(traverse_module_state->__pyx_kp_s_too_many_tags); + Py_VISIT(traverse_module_state->__pyx_kp_u_too_many_tags); + Py_VISIT(traverse_module_state->__pyx_kp_s_unicode_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_unicode_string); + Py_VISIT(traverse_module_state->__pyx_kp_s_unknown_event_type); + Py_VISIT(traverse_module_state->__pyx_kp_u_unknown_event_type); + Py_VISIT(traverse_module_state->__pyx_kp_s_unknown_token_type); + Py_VISIT(traverse_module_state->__pyx_kp_u_unknown_token_type); + Py_VISIT(traverse_module_state->__pyx_n_s_update); + Py_VISIT(traverse_module_state->__pyx_n_s_use_setstate); + Py_VISIT(traverse_module_state->__pyx_kp_s_utf_16_be); + Py_VISIT(traverse_module_state->__pyx_kp_u_utf_16_be); + Py_VISIT(traverse_module_state->__pyx_kp_s_utf_16_le); + Py_VISIT(traverse_module_state->__pyx_kp_u_utf_16_le); + Py_VISIT(traverse_module_state->__pyx_kp_u_utf_8); + Py_VISIT(traverse_module_state->__pyx_n_s_value); + Py_VISIT(traverse_module_state->__pyx_kp_s_value_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_kp_u_value_must_be_a_string); + Py_VISIT(traverse_module_state->__pyx_n_s_version); + Py_VISIT(traverse_module_state->__pyx_n_s_version_directive); + Py_VISIT(traverse_module_state->__pyx_n_s_version_directive_value); + Py_VISIT(traverse_module_state->__pyx_n_s_width); + Py_VISIT(traverse_module_state->__pyx_n_s_write); + Py_VISIT(traverse_module_state->__pyx_int_0); + Py_VISIT(traverse_module_state->__pyx_int_1); + Py_VISIT(traverse_module_state->__pyx_int_41581148); + Py_VISIT(traverse_module_state->__pyx_int_66733494); + Py_VISIT(traverse_module_state->__pyx_int_96533895); + Py_VISIT(traverse_module_state->__pyx_tuple_); + Py_VISIT(traverse_module_state->__pyx_tuple__2); + Py_VISIT(traverse_module_state->__pyx_tuple__4); + Py_VISIT(traverse_module_state->__pyx_tuple__5); + Py_VISIT(traverse_module_state->__pyx_tuple__11); + Py_VISIT(traverse_module_state->__pyx_tuple__12); + Py_VISIT(traverse_module_state->__pyx_tuple__13); + Py_VISIT(traverse_module_state->__pyx_tuple__14); + Py_VISIT(traverse_module_state->__pyx_tuple__15); + Py_VISIT(traverse_module_state->__pyx_tuple__16); + Py_VISIT(traverse_module_state->__pyx_tuple__20); + Py_VISIT(traverse_module_state->__pyx_tuple__21); + Py_VISIT(traverse_module_state->__pyx_tuple__22); + Py_VISIT(traverse_module_state->__pyx_tuple__23); + Py_VISIT(traverse_module_state->__pyx_tuple__24); + Py_VISIT(traverse_module_state->__pyx_tuple__25); + Py_VISIT(traverse_module_state->__pyx_tuple__26); + Py_VISIT(traverse_module_state->__pyx_tuple__27); + Py_VISIT(traverse_module_state->__pyx_tuple__28); + Py_VISIT(traverse_module_state->__pyx_tuple__29); + Py_VISIT(traverse_module_state->__pyx_tuple__30); + Py_VISIT(traverse_module_state->__pyx_tuple__31); + Py_VISIT(traverse_module_state->__pyx_tuple__32); + Py_VISIT(traverse_module_state->__pyx_tuple__33); + Py_VISIT(traverse_module_state->__pyx_tuple__34); + Py_VISIT(traverse_module_state->__pyx_tuple__35); + Py_VISIT(traverse_module_state->__pyx_tuple__36); + Py_VISIT(traverse_module_state->__pyx_tuple__38); + Py_VISIT(traverse_module_state->__pyx_tuple__40); + Py_VISIT(traverse_module_state->__pyx_tuple__42); + Py_VISIT(traverse_module_state->__pyx_tuple__44); + Py_VISIT(traverse_module_state->__pyx_tuple__46); + Py_VISIT(traverse_module_state->__pyx_tuple__49); + Py_VISIT(traverse_module_state->__pyx_tuple__51); + Py_VISIT(traverse_module_state->__pyx_tuple__54); + Py_VISIT(traverse_module_state->__pyx_tuple__56); + Py_VISIT(traverse_module_state->__pyx_tuple__60); + Py_VISIT(traverse_module_state->__pyx_tuple__64); + Py_VISIT(traverse_module_state->__pyx_tuple__69); + Py_VISIT(traverse_module_state->__pyx_tuple__71); + Py_VISIT(traverse_module_state->__pyx_tuple__73); + Py_VISIT(traverse_module_state->__pyx_tuple__75); + Py_VISIT(traverse_module_state->__pyx_tuple__79); + Py_VISIT(traverse_module_state->__pyx_codeobj__39); + Py_VISIT(traverse_module_state->__pyx_codeobj__41); + Py_VISIT(traverse_module_state->__pyx_codeobj__43); + Py_VISIT(traverse_module_state->__pyx_codeobj__45); + Py_VISIT(traverse_module_state->__pyx_codeobj__47); + Py_VISIT(traverse_module_state->__pyx_codeobj__48); + Py_VISIT(traverse_module_state->__pyx_codeobj__50); + Py_VISIT(traverse_module_state->__pyx_codeobj__52); + Py_VISIT(traverse_module_state->__pyx_codeobj__53); + Py_VISIT(traverse_module_state->__pyx_codeobj__55); + Py_VISIT(traverse_module_state->__pyx_codeobj__57); + Py_VISIT(traverse_module_state->__pyx_codeobj__58); + Py_VISIT(traverse_module_state->__pyx_codeobj__59); + Py_VISIT(traverse_module_state->__pyx_codeobj__61); + Py_VISIT(traverse_module_state->__pyx_codeobj__62); + Py_VISIT(traverse_module_state->__pyx_codeobj__63); + Py_VISIT(traverse_module_state->__pyx_codeobj__65); + Py_VISIT(traverse_module_state->__pyx_codeobj__66); + Py_VISIT(traverse_module_state->__pyx_codeobj__67); + Py_VISIT(traverse_module_state->__pyx_codeobj__68); + Py_VISIT(traverse_module_state->__pyx_codeobj__70); + Py_VISIT(traverse_module_state->__pyx_codeobj__72); + Py_VISIT(traverse_module_state->__pyx_codeobj__74); + Py_VISIT(traverse_module_state->__pyx_codeobj__76); + Py_VISIT(traverse_module_state->__pyx_codeobj__77); + Py_VISIT(traverse_module_state->__pyx_codeobj__78); + Py_VISIT(traverse_module_state->__pyx_codeobj__80); + return 0; +} +#endif +/* #### Code section: module_state_defines ### */ +#define __pyx_d __pyx_mstate_global->__pyx_d +#define __pyx_b __pyx_mstate_global->__pyx_b +#define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime +#define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple +#define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes +#define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode +#ifdef __Pyx_CyFunction_USED +#define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType +#endif +#ifdef __Pyx_FusedFunction_USED +#define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType +#endif +#ifdef __Pyx_Generator_USED +#define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType +#endif +#ifdef __Pyx_IterableCoroutine_USED +#define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType +#endif +#ifdef __Pyx_Coroutine_USED +#define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType +#endif +#ifdef __Pyx_Coroutine_USED +#define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType +#endif +#if CYTHON_USE_MODULE_STATE +#define __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark __pyx_mstate_global->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark +#define __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser __pyx_mstate_global->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser +#define __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter __pyx_mstate_global->__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter +#endif +#define __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark __pyx_mstate_global->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark +#define __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser __pyx_mstate_global->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser +#define __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter __pyx_mstate_global->__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter +#define __pyx_n_s_AliasEvent __pyx_mstate_global->__pyx_n_s_AliasEvent +#define __pyx_n_s_AliasToken __pyx_mstate_global->__pyx_n_s_AliasToken +#define __pyx_n_s_AnchorToken __pyx_mstate_global->__pyx_n_s_AnchorToken +#define __pyx_n_s_AttributeError __pyx_mstate_global->__pyx_n_s_AttributeError +#define __pyx_n_s_BlockEndToken __pyx_mstate_global->__pyx_n_s_BlockEndToken +#define __pyx_n_s_BlockEntryToken __pyx_mstate_global->__pyx_n_s_BlockEntryToken +#define __pyx_n_s_BlockMappingStartToken __pyx_mstate_global->__pyx_n_s_BlockMappingStartToken +#define __pyx_n_s_BlockSequenceStartToken __pyx_mstate_global->__pyx_n_s_BlockSequenceStartToken +#define __pyx_n_s_CEmitter __pyx_mstate_global->__pyx_n_s_CEmitter +#define __pyx_n_s_CEmitter___reduce_cython __pyx_mstate_global->__pyx_n_s_CEmitter___reduce_cython +#define __pyx_n_s_CEmitter___setstate_cython __pyx_mstate_global->__pyx_n_s_CEmitter___setstate_cython +#define __pyx_n_s_CEmitter_close __pyx_mstate_global->__pyx_n_s_CEmitter_close +#define __pyx_n_s_CEmitter_dispose __pyx_mstate_global->__pyx_n_s_CEmitter_dispose +#define __pyx_n_s_CEmitter_emit __pyx_mstate_global->__pyx_n_s_CEmitter_emit +#define __pyx_n_s_CEmitter_open __pyx_mstate_global->__pyx_n_s_CEmitter_open +#define __pyx_n_s_CEmitter_serialize __pyx_mstate_global->__pyx_n_s_CEmitter_serialize +#define __pyx_n_s_CParser __pyx_mstate_global->__pyx_n_s_CParser +#define __pyx_n_s_CParser___reduce_cython __pyx_mstate_global->__pyx_n_s_CParser___reduce_cython +#define __pyx_n_s_CParser___setstate_cython __pyx_mstate_global->__pyx_n_s_CParser___setstate_cython +#define __pyx_n_s_CParser_check_event __pyx_mstate_global->__pyx_n_s_CParser_check_event +#define __pyx_n_s_CParser_check_node __pyx_mstate_global->__pyx_n_s_CParser_check_node +#define __pyx_n_s_CParser_check_token __pyx_mstate_global->__pyx_n_s_CParser_check_token +#define __pyx_n_s_CParser_dispose __pyx_mstate_global->__pyx_n_s_CParser_dispose +#define __pyx_n_s_CParser_get_event __pyx_mstate_global->__pyx_n_s_CParser_get_event +#define __pyx_n_s_CParser_get_node __pyx_mstate_global->__pyx_n_s_CParser_get_node +#define __pyx_n_s_CParser_get_single_node __pyx_mstate_global->__pyx_n_s_CParser_get_single_node +#define __pyx_n_s_CParser_get_token __pyx_mstate_global->__pyx_n_s_CParser_get_token +#define __pyx_n_s_CParser_peek_event __pyx_mstate_global->__pyx_n_s_CParser_peek_event +#define __pyx_n_s_CParser_peek_token __pyx_mstate_global->__pyx_n_s_CParser_peek_token +#define __pyx_n_s_CParser_raw_parse __pyx_mstate_global->__pyx_n_s_CParser_raw_parse +#define __pyx_n_s_CParser_raw_scan __pyx_mstate_global->__pyx_n_s_CParser_raw_scan +#define __pyx_n_s_ComposerError __pyx_mstate_global->__pyx_n_s_ComposerError +#define __pyx_n_s_ConstructorError __pyx_mstate_global->__pyx_n_s_ConstructorError +#define __pyx_n_s_DirectiveToken __pyx_mstate_global->__pyx_n_s_DirectiveToken +#define __pyx_n_s_DocumentEndEvent __pyx_mstate_global->__pyx_n_s_DocumentEndEvent +#define __pyx_n_s_DocumentEndToken __pyx_mstate_global->__pyx_n_s_DocumentEndToken +#define __pyx_n_s_DocumentStartEvent __pyx_mstate_global->__pyx_n_s_DocumentStartEvent +#define __pyx_n_s_DocumentStartToken __pyx_mstate_global->__pyx_n_s_DocumentStartToken +#define __pyx_n_s_EmitterError __pyx_mstate_global->__pyx_n_s_EmitterError +#define __pyx_n_s_FlowEntryToken __pyx_mstate_global->__pyx_n_s_FlowEntryToken +#define __pyx_n_s_FlowMappingEndToken __pyx_mstate_global->__pyx_n_s_FlowMappingEndToken +#define __pyx_n_s_FlowMappingStartToken __pyx_mstate_global->__pyx_n_s_FlowMappingStartToken +#define __pyx_n_s_FlowSequenceEndToken __pyx_mstate_global->__pyx_n_s_FlowSequenceEndToken +#define __pyx_n_s_FlowSequenceStartToken __pyx_mstate_global->__pyx_n_s_FlowSequenceStartToken +#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0 +#define __pyx_n_s_KeyToken __pyx_mstate_global->__pyx_n_s_KeyToken +#define __pyx_n_s_MappingEndEvent __pyx_mstate_global->__pyx_n_s_MappingEndEvent +#define __pyx_n_s_MappingNode __pyx_mstate_global->__pyx_n_s_MappingNode +#define __pyx_n_s_MappingStartEvent __pyx_mstate_global->__pyx_n_s_MappingStartEvent +#define __pyx_n_s_Mark __pyx_mstate_global->__pyx_n_s_Mark +#define __pyx_n_s_Mark___reduce_cython __pyx_mstate_global->__pyx_n_s_Mark___reduce_cython +#define __pyx_n_s_Mark___setstate_cython __pyx_mstate_global->__pyx_n_s_Mark___setstate_cython +#define __pyx_n_s_Mark_get_snippet __pyx_mstate_global->__pyx_n_s_Mark_get_snippet +#define __pyx_n_s_MemoryError __pyx_mstate_global->__pyx_n_s_MemoryError +#define __pyx_n_s_ParserError __pyx_mstate_global->__pyx_n_s_ParserError +#define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError +#define __pyx_kp_s_Pickling_of_struct_members_such __pyx_mstate_global->__pyx_kp_s_Pickling_of_struct_members_such +#define __pyx_n_s_ReaderError __pyx_mstate_global->__pyx_n_s_ReaderError +#define __pyx_n_s_RepresenterError __pyx_mstate_global->__pyx_n_s_RepresenterError +#define __pyx_n_s_ScalarEvent __pyx_mstate_global->__pyx_n_s_ScalarEvent +#define __pyx_n_s_ScalarNode __pyx_mstate_global->__pyx_n_s_ScalarNode +#define __pyx_n_s_ScalarToken __pyx_mstate_global->__pyx_n_s_ScalarToken +#define __pyx_n_s_ScannerError __pyx_mstate_global->__pyx_n_s_ScannerError +#define __pyx_n_s_SequenceEndEvent __pyx_mstate_global->__pyx_n_s_SequenceEndEvent +#define __pyx_n_s_SequenceNode __pyx_mstate_global->__pyx_n_s_SequenceNode +#define __pyx_n_s_SequenceStartEvent __pyx_mstate_global->__pyx_n_s_SequenceStartEvent +#define __pyx_n_s_SerializerError __pyx_mstate_global->__pyx_n_s_SerializerError +#define __pyx_n_s_StreamEndEvent __pyx_mstate_global->__pyx_n_s_StreamEndEvent +#define __pyx_n_s_StreamEndToken __pyx_mstate_global->__pyx_n_s_StreamEndToken +#define __pyx_n_s_StreamStartEvent __pyx_mstate_global->__pyx_n_s_StreamStartEvent +#define __pyx_n_s_StreamStartToken __pyx_mstate_global->__pyx_n_s_StreamStartToken +#define __pyx_n_u_TAG __pyx_mstate_global->__pyx_n_u_TAG +#define __pyx_n_s_TagToken __pyx_mstate_global->__pyx_n_s_TagToken +#define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError +#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError +#define __pyx_n_s_ValueToken __pyx_mstate_global->__pyx_n_s_ValueToken +#define __pyx_n_u_YAML __pyx_mstate_global->__pyx_n_u_YAML +#define __pyx_n_s_YAMLError __pyx_mstate_global->__pyx_n_s_YAMLError +#define __pyx_kp_s__10 __pyx_mstate_global->__pyx_kp_s__10 +#define __pyx_kp_u__10 __pyx_mstate_global->__pyx_kp_u__10 +#define __pyx_kp_s__17 __pyx_mstate_global->__pyx_kp_s__17 +#define __pyx_kp_s__18 __pyx_mstate_global->__pyx_kp_s__18 +#define __pyx_kp_s__19 __pyx_mstate_global->__pyx_kp_s__19 +#define __pyx_kp_s__3 __pyx_mstate_global->__pyx_kp_s__3 +#define __pyx_kp_u__3 __pyx_mstate_global->__pyx_kp_u__3 +#define __pyx_kp_u__37 __pyx_mstate_global->__pyx_kp_u__37 +#define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6 +#define __pyx_kp_s__7 __pyx_mstate_global->__pyx_kp_s__7 +#define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7 +#define __pyx_kp_s__8 __pyx_mstate_global->__pyx_kp_s__8 +#define __pyx_kp_u__8 __pyx_mstate_global->__pyx_kp_u__8 +#define __pyx_kp_s__9 __pyx_mstate_global->__pyx_kp_s__9 +#define __pyx_kp_u__9 __pyx_mstate_global->__pyx_kp_u__9 +#define __pyx_kp_s_a_string_or_stream_input_is_requ __pyx_mstate_global->__pyx_kp_s_a_string_or_stream_input_is_requ +#define __pyx_kp_u_a_string_or_stream_input_is_requ __pyx_mstate_global->__pyx_kp_u_a_string_or_stream_input_is_requ +#define __pyx_kp_s_a_string_value_is_expected __pyx_mstate_global->__pyx_kp_s_a_string_value_is_expected +#define __pyx_kp_u_a_string_value_is_expected __pyx_mstate_global->__pyx_kp_u_a_string_value_is_expected +#define __pyx_n_s_allow_unicode __pyx_mstate_global->__pyx_n_s_allow_unicode +#define __pyx_n_s_anchor __pyx_mstate_global->__pyx_n_s_anchor +#define __pyx_kp_s_anchor_must_be_a_string __pyx_mstate_global->__pyx_kp_s_anchor_must_be_a_string +#define __pyx_kp_u_anchor_must_be_a_string __pyx_mstate_global->__pyx_kp_u_anchor_must_be_a_string +#define __pyx_n_s_ascend_resolver __pyx_mstate_global->__pyx_n_s_ascend_resolver +#define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines +#define __pyx_n_s_buffer __pyx_mstate_global->__pyx_n_s_buffer +#define __pyx_kp_s_but_found_another_document __pyx_mstate_global->__pyx_kp_s_but_found_another_document +#define __pyx_kp_u_but_found_another_document __pyx_mstate_global->__pyx_kp_u_but_found_another_document +#define __pyx_kp_s_byte_string __pyx_mstate_global->__pyx_kp_s_byte_string +#define __pyx_kp_u_byte_string __pyx_mstate_global->__pyx_kp_u_byte_string +#define __pyx_n_s_cache __pyx_mstate_global->__pyx_n_s_cache +#define __pyx_n_s_canonical __pyx_mstate_global->__pyx_n_s_canonical +#define __pyx_n_s_check_event __pyx_mstate_global->__pyx_n_s_check_event +#define __pyx_n_s_check_node __pyx_mstate_global->__pyx_n_s_check_node +#define __pyx_n_s_check_token __pyx_mstate_global->__pyx_n_s_check_token +#define __pyx_n_s_choice __pyx_mstate_global->__pyx_n_s_choice +#define __pyx_n_s_choices __pyx_mstate_global->__pyx_n_s_choices +#define __pyx_n_s_class __pyx_mstate_global->__pyx_n_s_class +#define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem +#define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback +#define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close +#define __pyx_n_s_column __pyx_mstate_global->__pyx_n_s_column +#define __pyx_n_s_count __pyx_mstate_global->__pyx_n_s_count +#define __pyx_n_s_descend_resolver __pyx_mstate_global->__pyx_n_s_descend_resolver +#define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict +#define __pyx_n_s_dict_2 __pyx_mstate_global->__pyx_n_s_dict_2 +#define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable +#define __pyx_n_s_dispose __pyx_mstate_global->__pyx_n_s_dispose +#define __pyx_n_s_document __pyx_mstate_global->__pyx_n_s_document +#define __pyx_n_s_done __pyx_mstate_global->__pyx_n_s_done +#define __pyx_n_s_emit __pyx_mstate_global->__pyx_n_s_emit +#define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable +#define __pyx_n_s_encoding __pyx_mstate_global->__pyx_n_s_encoding +#define __pyx_n_u_encoding __pyx_mstate_global->__pyx_n_u_encoding +#define __pyx_n_s_end_mark __pyx_mstate_global->__pyx_n_s_end_mark +#define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error +#define __pyx_n_s_event __pyx_mstate_global->__pyx_n_s_event +#define __pyx_n_s_event_class __pyx_mstate_global->__pyx_n_s_event_class +#define __pyx_n_s_event_object __pyx_mstate_global->__pyx_n_s_event_object +#define __pyx_kp_s_expected_a_single_document_in_th __pyx_mstate_global->__pyx_kp_s_expected_a_single_document_in_th +#define __pyx_kp_u_expected_a_single_document_in_th __pyx_mstate_global->__pyx_kp_u_expected_a_single_document_in_th +#define __pyx_n_s_explicit __pyx_mstate_global->__pyx_n_s_explicit +#define __pyx_n_s_explicit_end __pyx_mstate_global->__pyx_n_s_explicit_end +#define __pyx_n_s_explicit_start __pyx_mstate_global->__pyx_n_s_explicit_start +#define __pyx_kp_s_file __pyx_mstate_global->__pyx_kp_s_file +#define __pyx_kp_u_file __pyx_mstate_global->__pyx_kp_u_file +#define __pyx_n_s_flow_style __pyx_mstate_global->__pyx_n_s_flow_style +#define __pyx_kp_s_found_duplicate_anchor_first_occ __pyx_mstate_global->__pyx_kp_s_found_duplicate_anchor_first_occ +#define __pyx_kp_u_found_duplicate_anchor_first_occ __pyx_mstate_global->__pyx_kp_u_found_duplicate_anchor_first_occ +#define __pyx_kp_s_found_undefined_alias __pyx_mstate_global->__pyx_kp_s_found_undefined_alias +#define __pyx_kp_u_found_undefined_alias __pyx_mstate_global->__pyx_kp_u_found_undefined_alias +#define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc +#define __pyx_n_s_get_event __pyx_mstate_global->__pyx_n_s_get_event +#define __pyx_n_s_get_node __pyx_mstate_global->__pyx_n_s_get_node +#define __pyx_n_s_get_single_node __pyx_mstate_global->__pyx_n_s_get_single_node +#define __pyx_n_s_get_snippet __pyx_mstate_global->__pyx_n_s_get_snippet +#define __pyx_n_s_get_token __pyx_mstate_global->__pyx_n_s_get_token +#define __pyx_n_s_get_version __pyx_mstate_global->__pyx_n_s_get_version +#define __pyx_n_s_get_version_string __pyx_mstate_global->__pyx_n_s_get_version_string +#define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate +#define __pyx_n_s_handle __pyx_mstate_global->__pyx_n_s_handle +#define __pyx_kp_u_id_03d __pyx_mstate_global->__pyx_kp_u_id_03d +#define __pyx_n_s_implicit __pyx_mstate_global->__pyx_n_s_implicit +#define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import +#define __pyx_kp_s_in_s_line_d_column_d __pyx_mstate_global->__pyx_kp_s_in_s_line_d_column_d +#define __pyx_n_s_indent __pyx_mstate_global->__pyx_n_s_indent +#define __pyx_n_s_index __pyx_mstate_global->__pyx_n_s_index +#define __pyx_kp_s_invalid_event_s __pyx_mstate_global->__pyx_kp_s_invalid_event_s +#define __pyx_kp_u_invalid_event_s __pyx_mstate_global->__pyx_kp_u_invalid_event_s +#define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine +#define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled +#define __pyx_n_s_line __pyx_mstate_global->__pyx_n_s_line +#define __pyx_n_s_line_break __pyx_mstate_global->__pyx_n_s_line_break +#define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main +#define __pyx_n_s_major __pyx_mstate_global->__pyx_n_s_major +#define __pyx_n_s_mark __pyx_mstate_global->__pyx_n_s_mark +#define __pyx_n_s_minor __pyx_mstate_global->__pyx_n_s_minor +#define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name +#define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2 +#define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new +#define __pyx_kp_s_no_emitter_error __pyx_mstate_global->__pyx_kp_s_no_emitter_error +#define __pyx_kp_u_no_emitter_error __pyx_mstate_global->__pyx_kp_u_no_emitter_error +#define __pyx_kp_s_no_parser_error __pyx_mstate_global->__pyx_kp_s_no_parser_error +#define __pyx_kp_u_no_parser_error __pyx_mstate_global->__pyx_kp_u_no_parser_error +#define __pyx_n_s_node __pyx_mstate_global->__pyx_n_s_node +#define __pyx_n_s_open __pyx_mstate_global->__pyx_n_s_open +#define __pyx_n_s_patch __pyx_mstate_global->__pyx_n_s_patch +#define __pyx_n_s_peek_event __pyx_mstate_global->__pyx_n_s_peek_event +#define __pyx_n_s_peek_token __pyx_mstate_global->__pyx_n_s_peek_token +#define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle +#define __pyx_n_s_pointer __pyx_mstate_global->__pyx_n_s_pointer +#define __pyx_n_s_prefix __pyx_mstate_global->__pyx_n_s_prefix +#define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError +#define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum +#define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result +#define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state +#define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type +#define __pyx_n_s_pyx_unpickle_Mark __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Mark +#define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable +#define __pyx_n_s_raw_parse __pyx_mstate_global->__pyx_n_s_raw_parse +#define __pyx_n_s_raw_scan __pyx_mstate_global->__pyx_n_s_raw_scan +#define __pyx_n_s_read __pyx_mstate_global->__pyx_n_s_read +#define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce +#define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython +#define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex +#define __pyx_n_s_resolve __pyx_mstate_global->__pyx_n_s_resolve +#define __pyx_n_s_ruamel_yaml_clib__ruamel_yaml __pyx_mstate_global->__pyx_n_s_ruamel_yaml_clib__ruamel_yaml +#define __pyx_n_s_ruamel_yaml_composer __pyx_mstate_global->__pyx_n_s_ruamel_yaml_composer +#define __pyx_n_s_ruamel_yaml_constructor __pyx_mstate_global->__pyx_n_s_ruamel_yaml_constructor +#define __pyx_n_s_ruamel_yaml_emitter __pyx_mstate_global->__pyx_n_s_ruamel_yaml_emitter +#define __pyx_n_s_ruamel_yaml_error __pyx_mstate_global->__pyx_n_s_ruamel_yaml_error +#define __pyx_n_s_ruamel_yaml_events __pyx_mstate_global->__pyx_n_s_ruamel_yaml_events +#define __pyx_n_s_ruamel_yaml_nodes __pyx_mstate_global->__pyx_n_s_ruamel_yaml_nodes +#define __pyx_n_s_ruamel_yaml_parser __pyx_mstate_global->__pyx_n_s_ruamel_yaml_parser +#define __pyx_kp_s_ruamel_yaml_pyx __pyx_mstate_global->__pyx_kp_s_ruamel_yaml_pyx +#define __pyx_n_s_ruamel_yaml_reader __pyx_mstate_global->__pyx_n_s_ruamel_yaml_reader +#define __pyx_n_s_ruamel_yaml_representer __pyx_mstate_global->__pyx_n_s_ruamel_yaml_representer +#define __pyx_n_s_ruamel_yaml_scanner __pyx_mstate_global->__pyx_n_s_ruamel_yaml_scanner +#define __pyx_n_s_ruamel_yaml_serializer __pyx_mstate_global->__pyx_n_s_ruamel_yaml_serializer +#define __pyx_n_s_ruamel_yaml_tokens __pyx_mstate_global->__pyx_n_s_ruamel_yaml_tokens +#define __pyx_kp_s_second_occurrence __pyx_mstate_global->__pyx_kp_s_second_occurrence +#define __pyx_kp_u_second_occurrence __pyx_mstate_global->__pyx_kp_u_second_occurrence +#define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self +#define __pyx_kp_s_self_parsed_event_cannot_be_conv __pyx_mstate_global->__pyx_kp_s_self_parsed_event_cannot_be_conv +#define __pyx_n_s_serialize __pyx_mstate_global->__pyx_n_s_serialize +#define __pyx_kp_s_serializer_is_already_opened __pyx_mstate_global->__pyx_kp_s_serializer_is_already_opened +#define __pyx_kp_u_serializer_is_already_opened __pyx_mstate_global->__pyx_kp_u_serializer_is_already_opened +#define __pyx_kp_s_serializer_is_closed __pyx_mstate_global->__pyx_kp_s_serializer_is_closed +#define __pyx_kp_u_serializer_is_closed __pyx_mstate_global->__pyx_kp_u_serializer_is_closed +#define __pyx_kp_s_serializer_is_not_opened __pyx_mstate_global->__pyx_kp_s_serializer_is_not_opened +#define __pyx_kp_u_serializer_is_not_opened __pyx_mstate_global->__pyx_kp_u_serializer_is_not_opened +#define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate +#define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython +#define __pyx_n_s_start_mark __pyx_mstate_global->__pyx_n_s_start_mark +#define __pyx_n_s_state __pyx_mstate_global->__pyx_n_s_state +#define __pyx_n_s_stream __pyx_mstate_global->__pyx_n_s_stream +#define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource +#define __pyx_n_s_style __pyx_mstate_global->__pyx_n_s_style +#define __pyx_n_s_tag __pyx_mstate_global->__pyx_n_s_tag +#define __pyx_n_s_tag_directives_end __pyx_mstate_global->__pyx_n_s_tag_directives_end +#define __pyx_n_s_tag_directives_start __pyx_mstate_global->__pyx_n_s_tag_directives_start +#define __pyx_n_s_tag_directives_value __pyx_mstate_global->__pyx_n_s_tag_directives_value +#define __pyx_kp_s_tag_handle_must_be_a_string __pyx_mstate_global->__pyx_kp_s_tag_handle_must_be_a_string +#define __pyx_kp_u_tag_handle_must_be_a_string __pyx_mstate_global->__pyx_kp_u_tag_handle_must_be_a_string +#define __pyx_kp_s_tag_must_be_a_string __pyx_mstate_global->__pyx_kp_s_tag_must_be_a_string +#define __pyx_kp_u_tag_must_be_a_string __pyx_mstate_global->__pyx_kp_u_tag_must_be_a_string +#define __pyx_kp_s_tag_prefix_must_be_a_string __pyx_mstate_global->__pyx_kp_s_tag_prefix_must_be_a_string +#define __pyx_kp_u_tag_prefix_must_be_a_string __pyx_mstate_global->__pyx_kp_u_tag_prefix_must_be_a_string +#define __pyx_n_s_tags __pyx_mstate_global->__pyx_n_s_tags +#define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test +#define __pyx_n_s_token __pyx_mstate_global->__pyx_n_s_token +#define __pyx_n_s_token_class __pyx_mstate_global->__pyx_n_s_token_class +#define __pyx_kp_s_too_many_tags __pyx_mstate_global->__pyx_kp_s_too_many_tags +#define __pyx_kp_u_too_many_tags __pyx_mstate_global->__pyx_kp_u_too_many_tags +#define __pyx_kp_s_unicode_string __pyx_mstate_global->__pyx_kp_s_unicode_string +#define __pyx_kp_u_unicode_string __pyx_mstate_global->__pyx_kp_u_unicode_string +#define __pyx_kp_s_unknown_event_type __pyx_mstate_global->__pyx_kp_s_unknown_event_type +#define __pyx_kp_u_unknown_event_type __pyx_mstate_global->__pyx_kp_u_unknown_event_type +#define __pyx_kp_s_unknown_token_type __pyx_mstate_global->__pyx_kp_s_unknown_token_type +#define __pyx_kp_u_unknown_token_type __pyx_mstate_global->__pyx_kp_u_unknown_token_type +#define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update +#define __pyx_n_s_use_setstate __pyx_mstate_global->__pyx_n_s_use_setstate +#define __pyx_kp_s_utf_16_be __pyx_mstate_global->__pyx_kp_s_utf_16_be +#define __pyx_kp_u_utf_16_be __pyx_mstate_global->__pyx_kp_u_utf_16_be +#define __pyx_kp_s_utf_16_le __pyx_mstate_global->__pyx_kp_s_utf_16_le +#define __pyx_kp_u_utf_16_le __pyx_mstate_global->__pyx_kp_u_utf_16_le +#define __pyx_kp_u_utf_8 __pyx_mstate_global->__pyx_kp_u_utf_8 +#define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value +#define __pyx_kp_s_value_must_be_a_string __pyx_mstate_global->__pyx_kp_s_value_must_be_a_string +#define __pyx_kp_u_value_must_be_a_string __pyx_mstate_global->__pyx_kp_u_value_must_be_a_string +#define __pyx_n_s_version __pyx_mstate_global->__pyx_n_s_version +#define __pyx_n_s_version_directive __pyx_mstate_global->__pyx_n_s_version_directive +#define __pyx_n_s_version_directive_value __pyx_mstate_global->__pyx_n_s_version_directive_value +#define __pyx_n_s_width __pyx_mstate_global->__pyx_n_s_width +#define __pyx_n_s_write __pyx_mstate_global->__pyx_n_s_write +#define __pyx_int_0 __pyx_mstate_global->__pyx_int_0 +#define __pyx_int_1 __pyx_mstate_global->__pyx_int_1 +#define __pyx_int_41581148 __pyx_mstate_global->__pyx_int_41581148 +#define __pyx_int_66733494 __pyx_mstate_global->__pyx_int_66733494 +#define __pyx_int_96533895 __pyx_mstate_global->__pyx_int_96533895 +#define __pyx_tuple_ __pyx_mstate_global->__pyx_tuple_ +#define __pyx_tuple__2 __pyx_mstate_global->__pyx_tuple__2 +#define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4 +#define __pyx_tuple__5 __pyx_mstate_global->__pyx_tuple__5 +#define __pyx_tuple__11 __pyx_mstate_global->__pyx_tuple__11 +#define __pyx_tuple__12 __pyx_mstate_global->__pyx_tuple__12 +#define __pyx_tuple__13 __pyx_mstate_global->__pyx_tuple__13 +#define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14 +#define __pyx_tuple__15 __pyx_mstate_global->__pyx_tuple__15 +#define __pyx_tuple__16 __pyx_mstate_global->__pyx_tuple__16 +#define __pyx_tuple__20 __pyx_mstate_global->__pyx_tuple__20 +#define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21 +#define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22 +#define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23 +#define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24 +#define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25 +#define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26 +#define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27 +#define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28 +#define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29 +#define __pyx_tuple__30 __pyx_mstate_global->__pyx_tuple__30 +#define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31 +#define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32 +#define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33 +#define __pyx_tuple__34 __pyx_mstate_global->__pyx_tuple__34 +#define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35 +#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36 +#define __pyx_tuple__38 __pyx_mstate_global->__pyx_tuple__38 +#define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40 +#define __pyx_tuple__42 __pyx_mstate_global->__pyx_tuple__42 +#define __pyx_tuple__44 __pyx_mstate_global->__pyx_tuple__44 +#define __pyx_tuple__46 __pyx_mstate_global->__pyx_tuple__46 +#define __pyx_tuple__49 __pyx_mstate_global->__pyx_tuple__49 +#define __pyx_tuple__51 __pyx_mstate_global->__pyx_tuple__51 +#define __pyx_tuple__54 __pyx_mstate_global->__pyx_tuple__54 +#define __pyx_tuple__56 __pyx_mstate_global->__pyx_tuple__56 +#define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60 +#define __pyx_tuple__64 __pyx_mstate_global->__pyx_tuple__64 +#define __pyx_tuple__69 __pyx_mstate_global->__pyx_tuple__69 +#define __pyx_tuple__71 __pyx_mstate_global->__pyx_tuple__71 +#define __pyx_tuple__73 __pyx_mstate_global->__pyx_tuple__73 +#define __pyx_tuple__75 __pyx_mstate_global->__pyx_tuple__75 +#define __pyx_tuple__79 __pyx_mstate_global->__pyx_tuple__79 +#define __pyx_codeobj__39 __pyx_mstate_global->__pyx_codeobj__39 +#define __pyx_codeobj__41 __pyx_mstate_global->__pyx_codeobj__41 +#define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43 +#define __pyx_codeobj__45 __pyx_mstate_global->__pyx_codeobj__45 +#define __pyx_codeobj__47 __pyx_mstate_global->__pyx_codeobj__47 +#define __pyx_codeobj__48 __pyx_mstate_global->__pyx_codeobj__48 +#define __pyx_codeobj__50 __pyx_mstate_global->__pyx_codeobj__50 +#define __pyx_codeobj__52 __pyx_mstate_global->__pyx_codeobj__52 +#define __pyx_codeobj__53 __pyx_mstate_global->__pyx_codeobj__53 +#define __pyx_codeobj__55 __pyx_mstate_global->__pyx_codeobj__55 +#define __pyx_codeobj__57 __pyx_mstate_global->__pyx_codeobj__57 +#define __pyx_codeobj__58 __pyx_mstate_global->__pyx_codeobj__58 +#define __pyx_codeobj__59 __pyx_mstate_global->__pyx_codeobj__59 +#define __pyx_codeobj__61 __pyx_mstate_global->__pyx_codeobj__61 +#define __pyx_codeobj__62 __pyx_mstate_global->__pyx_codeobj__62 +#define __pyx_codeobj__63 __pyx_mstate_global->__pyx_codeobj__63 +#define __pyx_codeobj__65 __pyx_mstate_global->__pyx_codeobj__65 +#define __pyx_codeobj__66 __pyx_mstate_global->__pyx_codeobj__66 +#define __pyx_codeobj__67 __pyx_mstate_global->__pyx_codeobj__67 +#define __pyx_codeobj__68 __pyx_mstate_global->__pyx_codeobj__68 +#define __pyx_codeobj__70 __pyx_mstate_global->__pyx_codeobj__70 +#define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72 +#define __pyx_codeobj__74 __pyx_mstate_global->__pyx_codeobj__74 +#define __pyx_codeobj__76 __pyx_mstate_global->__pyx_codeobj__76 +#define __pyx_codeobj__77 __pyx_mstate_global->__pyx_codeobj__77 +#define __pyx_codeobj__78 __pyx_mstate_global->__pyx_codeobj__78 +#define __pyx_codeobj__80 __pyx_mstate_global->__pyx_codeobj__80 +/* #### Code section: module_code ### */ + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":3 + * + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_1get_version_string = {"get_version_string", (PyCFunction)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_1get_version_string, METH_NOARGS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_version_string (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_get_version_string(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_version_string", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":5 + * 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(); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":6 + * cdef char *value + * value = yaml_get_version_string() + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * return value + * else: + */ + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":7 + * 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, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":6 + * cdef char *value + * value = yaml_get_version_string() + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * return value + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":9 + * 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, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":3 + * + * + * 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("ruamel.yaml.clib._ruamel_yaml.get_version_string", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":11 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_3get_version = {"get_version", (PyCFunction)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_3get_version, METH_NOARGS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_version (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_2get_version(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_version", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":13 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":14 + * 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, 14, __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, 14, __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, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":11 + * 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("ruamel.yaml.clib._ruamel_yaml.get_version", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":71 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_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; + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 71, __pyx_L3_error) + #endif + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + { + 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}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); __PYX_ERR(0, 71, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_line)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); __PYX_ERR(0, 71, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_column)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); __PYX_ERR(0, 71, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_buffer)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[4]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); __PYX_ERR(0, 71, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pointer)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[5]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); __PYX_ERR(0, 71, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 71, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 6)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); + values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); + values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); + values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3); + values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4); + values[5] = __Pyx_Arg_VARARGS(__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, 71, __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, 71, __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, 71, __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, __pyx_nargs); __PYX_ERR(0, 71, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.Mark.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark___init__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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 */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark___init__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":73 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":74 + * object buffer, object pointer): + * self.name = name + * self.index = index # <<<<<<<<<<<<<< + * self.line = line + * self.column = column + */ + __pyx_v_self->index = __pyx_v_index; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":75 + * self.name = name + * self.index = index + * self.line = line # <<<<<<<<<<<<<< + * self.column = column + * self.buffer = buffer + */ + __pyx_v_self->line = __pyx_v_line; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":76 + * self.index = index + * self.line = line + * self.column = column # <<<<<<<<<<<<<< + * self.buffer = buffer + * self.pointer = pointer + */ + __pyx_v_self->column = __pyx_v_column; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":77 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":78 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":71 + * 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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":80 + * self.pointer = pointer + * + * def get_snippet(self): # <<<<<<<<<<<<<< + * return None + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_3get_snippet(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_3get_snippet = {"get_snippet", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_3get_snippet, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_3get_snippet(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_snippet (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 80, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("get_snippet", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_snippet", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.Mark.get_snippet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_2get_snippet(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_snippet", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":81 + * + * def get_snippet(self): + * return None # <<<<<<<<<<<<<< + * + * def __str__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":80 + * self.pointer = pointer + * + * def get_snippet(self): # <<<<<<<<<<<<<< + * return None + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":83 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5__str__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4__str__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4__str__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__str__", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":85 + * 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, 85, __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, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->name)) __PYX_ERR(0, 85, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error); + __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, 85, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":86 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":83 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":64 + * + * cdef class Mark: + * cdef readonly object name # <<<<<<<<<<<<<< + * cdef readonly size_t index + * cdef readonly size_t line + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4name_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4name___get__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4name___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":65 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5index_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5index_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5index___get__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5index___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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, 65, __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("ruamel.yaml.clib._ruamel_yaml.Mark.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":66 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4line_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4line_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4line___get__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4line___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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, 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("ruamel.yaml.clib._ruamel_yaml.Mark.line.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":67 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6column_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6column_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6column___get__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6column___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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, 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("ruamel.yaml.clib._ruamel_yaml.Mark.column.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":68 + * cdef readonly size_t line + * cdef readonly size_t column + * cdef readonly buffer # <<<<<<<<<<<<<< + * cdef readonly pointer + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6buffer_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6buffer_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6buffer___get__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6buffer___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":69 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7pointer_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7pointer_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7pointer___get__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7pointer___get__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7__reduce_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7__reduce_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 1, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.Mark.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6__reduce_cython__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6__reduce_cython__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->buffer)) __PYX_ERR(1, 5, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->name)) __PYX_ERR(1, 5, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_self->pointer); + __Pyx_GIVEREF(__pyx_v_self->pointer); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->pointer)) __PYX_ERR(1, 5, __pyx_L1_error); + __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); + if (__pyx_t_5) { + + /* "(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); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error); + __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), 0x27a7a5c, None), state + */ + /*else*/ { + __pyx_t_6 = (__pyx_v_self->buffer != Py_None); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_6 = (__pyx_v_self->name != Py_None); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_6 = (__pyx_v_self->pointer != Py_None); + __pyx_t_5 = __pyx_t_6; + __pyx_L4_bool_binop_done:; + __pyx_v_use_setstate = __pyx_t_5; + } + __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), 0x27a7a5c, None), state + * else: + */ + if (__pyx_v_use_setstate) { + + /* "(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), 0x27a7a5c, None), state # <<<<<<<<<<<<<< + * else: + * return __pyx_unpickle_Mark, (type(self), 0x27a7a5c, 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)))); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error); + __Pyx_INCREF(__pyx_int_41581148); + __Pyx_GIVEREF(__pyx_int_41581148); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_41581148)) __PYX_ERR(1, 13, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error); + __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); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error); + __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), 0x27a7a5c, None), state + * else: + */ + } + + /* "(tree fragment)":15 + * return __pyx_unpickle_Mark, (type(self), 0x27a7a5c, None), state + * else: + * return __pyx_unpickle_Mark, (type(self), 0x27a7a5c, 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)))); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error); + __Pyx_INCREF(__pyx_int_41581148); + __Pyx_GIVEREF(__pyx_int_41581148); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_41581148)) __PYX_ERR(1, 15, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error); + __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); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error); + __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("ruamel.yaml.clib._ruamel_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), 0x27a7a5c, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(self, __pyx_state) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_9__setstate_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_9__setstate_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v___pyx_state = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 16, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v___pyx_state = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.Mark.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_8__setstate_cython__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v_self), __pyx_v___pyx_state); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_8__setstate_cython__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":17 + * return __pyx_unpickle_Mark, (type(self), 0x27a7a5c, 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) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error) + __pyx_t_1 = __pyx_f_6ruamel_4yaml_4clib_12_ruamel_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), 0x27a7a5c, 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("ruamel.yaml.clib._ruamel_yaml.Mark.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":261 + * cdef int unicode_source + * + * def __init__(self, stream): # <<<<<<<<<<<<<< + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: + */ + +/* Python wrapper */ +static int __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stream = 0; + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 261, __pyx_L3_error) + #endif + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_stream)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 261, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 261, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); + } + __pyx_v_stream = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 261, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser___init__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self), __pyx_v_stream); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser___init__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + __Pyx_INCREF(__pyx_v_stream); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":263 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":264 + * 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, 264, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":263 + * def __init__(self, stream): + * cdef is_readable + * if yaml_parser_initialize(&self.parser) == 0: # <<<<<<<<<<<<<< + * raise MemoryError + * self.parsed_event.type = YAML_NO_EVENT + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":265 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":266 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":267 + * 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:*/ { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":268 + * 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, 268, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":267 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":269 + * 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("ruamel.yaml.clib._ruamel_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, 269, __pyx_L6_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":270 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":267 + * self.parsed_event.type = YAML_NO_EVENT + * is_readable = 1 + * try: # <<<<<<<<<<<<<< + * stream.read + * except AttributeError: + */ + __pyx_L6_except_error:; + __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:; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":271 + * except AttributeError: + * is_readable = 0 + * self.unicode_source = 0 # <<<<<<<<<<<<<< + * if is_readable: + * self.stream = stream + */ + __pyx_v_self->unicode_source = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":272 + * 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, 272, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":273 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":274 + * 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:*/ { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":275 + * 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, 275, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":274 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":276 + * 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("ruamel.yaml.clib._ruamel_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, 276, __pyx_L15_except_error) + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":277 + * self.stream_name = stream.name + * except AttributeError: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<file>' + * else: + */ + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":278 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":277 + * self.stream_name = stream.name + * except AttributeError: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<file>' + * else: + */ + goto __pyx_L21; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":280 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":274 + * if is_readable: + * self.stream = stream + * try: # <<<<<<<<<<<<<< + * self.stream_name = stream.name + * except AttributeError: + */ + __pyx_L15_except_error:; + __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:; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":281 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":282 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":283 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":284 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_input_handler, ((void *)__pyx_v_self)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":272 + * is_readable = 0 + * self.unicode_source = 0 + * if is_readable: # <<<<<<<<<<<<<< + * self.stream = stream + * try: + */ + goto __pyx_L12; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":286 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":287 + * 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, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_stream, __pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":288 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":289 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":288 + * if PyUnicode_CheckExact(stream) != 0: + * stream = PyUnicode_AsUTF8String(stream) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<unicode string>' + * else: + */ + goto __pyx_L23; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":291 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":292 + * else: + * self.stream_name = u'<unicode string>' + * self.unicode_source = 1 # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_v_self->unicode_source = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":286 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":294 + * self.unicode_source = 1 + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<byte string>' + * else: + */ + /*else*/ { + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":295 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":294 + * self.unicode_source = 1 + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * self.stream_name = '<byte string>' + * else: + */ + goto __pyx_L24; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":297 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":298 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":299 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":300 + * 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, 300, __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, 300, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":299 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":302 + * 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, 302, __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, 302, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":298 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":303 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":304 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":305 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":306 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":307 + * 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, 307, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":261 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":309 + * self.anchors = {} + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_parser_delete(&self.parser) + * yaml_event_delete(&self.parsed_event) + */ + +/* Python wrapper */ +static void __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_3__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_2__dealloc__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_2__dealloc__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":310 + * + * def __dealloc__(self): + * yaml_parser_delete(&self.parser) # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * + */ + yaml_parser_delete((&__pyx_v_self->parser)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":311 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":309 + * self.anchors = {} + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_parser_delete(&self.parser) + * yaml_event_delete(&self.parsed_event) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":313 + * yaml_event_delete(&self.parsed_event) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_5dispose(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_5dispose = {"dispose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_5dispose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_5dispose(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dispose (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 313, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("dispose", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "dispose", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.dispose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_4dispose(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_4dispose(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":316 + * pass + * + * cdef object _parser_error(self): # <<<<<<<<<<<<<< + * if self.parser.error == YAML_MEMORY_ERROR: + * return MemoryError + */ + +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parser_error(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_context_mark = NULL; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_parser_error", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":317 + * + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":318 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":317 + * + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":320 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":321 + * 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, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->parser.problem_offset); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":322 + * 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, 322, __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, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[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_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 5+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __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; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 321, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":320 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":324 + * 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, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->parser.problem_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":325 + * 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_5 = __Pyx_PyInt_From_int(__pyx_v_self->parser.problem_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyUnicode_FromString(__pyx_v_self->parser.problem); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[6] = {__pyx_t_7, __pyx_v_self->stream_name, __pyx_t_6, __pyx_t_5, __pyx_kp_u__3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 5+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":319 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":326 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":328 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)Py_None); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":329 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)Py_None); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":330 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":332 + * 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_From_int(__pyx_v_self->parser.context_mark.index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":333 + * 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_From_int(__pyx_v_self->parser.context_mark.line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":334 + * 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_4 = __Pyx_PyInt_From_int(__pyx_v_self->parser.context_mark.column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":331 + * 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, 331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 331, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(0, 331, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(0, 331, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 4, Py_None)) __PYX_ERR(0, 331, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 5, Py_None)) __PYX_ERR(0, 331, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_context_mark, ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":330 + * context_mark = None + * problem_mark = None + * if self.parser.context != NULL: # <<<<<<<<<<<<<< + * context_mark = Mark(self.stream_name, + * self.parser.context_mark.index, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":335 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":337 + * 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_4 = __Pyx_PyInt_From_int(__pyx_v_self->parser.problem_mark.index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":338 + * 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_From_int(__pyx_v_self->parser.problem_mark.line); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":339 + * 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_From_int(__pyx_v_self->parser.problem_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":336 + * 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, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 336, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(0, 336, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5)) __PYX_ERR(0, 336, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3)) __PYX_ERR(0, 336, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, Py_None)) __PYX_ERR(0, 336, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, Py_None)) __PYX_ERR(0, 336, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 336, __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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":335 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":340 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":341 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":342 + * context = None + * if self.parser.context != NULL: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * context = self.parser.context + * else: + */ + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":343 + * 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, 343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":342 + * context = None + * if self.parser.context != NULL: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * context = self.parser.context + * else: + */ + goto __pyx_L7; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":345 + * 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, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_3); + __pyx_t_3 = 0; + } + __pyx_L7:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":341 + * self.parser.problem_mark.column, None, None) + * context = None + * if self.parser.context != NULL: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * context = self.parser.context + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":346 + * else: + * context = PyUnicode_FromString(self.parser.context) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.parser.problem + * else: + */ + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":347 + * 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, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_problem = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":346 + * else: + * context = PyUnicode_FromString(self.parser.context) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.parser.problem + * else: + */ + goto __pyx_L8; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":349 + * 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, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_problem = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L8:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":350 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":351 + * 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, 351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_v_context, ((PyObject *)__pyx_v_context_mark), __pyx_v_problem, ((PyObject *)__pyx_v_problem_mark)}; + __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":350 + * else: + * problem = PyUnicode_FromString(self.parser.problem) + * if self.parser.error == YAML_SCANNER_ERROR: # <<<<<<<<<<<<<< + * return ScannerError(context, context_mark, problem, problem_mark) + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":353 + * 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, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_v_context, ((PyObject *)__pyx_v_context_mark), __pyx_v_problem, ((PyObject *)__pyx_v_problem_mark)}; + __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":326 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":354 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":355 + * 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, 355, __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, 355, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":354 + * else: + * return ParserError(context, context_mark, problem, problem_mark) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("no parser error") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":357 + * 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, 357, __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, 357, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":316 + * 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_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":359 + * raise ValueError(u"no parser error") + * + * def raw_scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * cdef int done + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_7raw_scan(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_7raw_scan = {"raw_scan", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_7raw_scan, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_7raw_scan(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("raw_scan (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 359, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("raw_scan", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "raw_scan", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.raw_scan", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_6raw_scan(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_6raw_scan(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("raw_scan", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":363 + * cdef int done + * cdef int count + * count = 0 # <<<<<<<<<<<<<< + * done = 0 + * while done == 0: + */ + __pyx_v_count = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":364 + * cdef int count + * count = 0 + * done = 0 # <<<<<<<<<<<<<< + * while done == 0: + * if yaml_parser_scan(&self.parser, &token) == 0: + */ + __pyx_v_done = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":365 + * 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); + if (!__pyx_t_1) break; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":366 + * 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, 366, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_2 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":367 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":368 + * 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, 368, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":366 + * done = 0 + * while done == 0: + * if yaml_parser_scan(&self.parser, &token) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":369 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":370 + * raise error + * if token.type == YAML_NO_TOKEN: + * done = 1 # <<<<<<<<<<<<<< + * else: + * count = count+1 + */ + __pyx_v_done = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":369 + * error = self._parser_error() + * raise error + * if token.type == YAML_NO_TOKEN: # <<<<<<<<<<<<<< + * done = 1 + * else: + */ + goto __pyx_L6; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":372 + * done = 1 + * else: + * count = count+1 # <<<<<<<<<<<<<< + * yaml_token_delete(&token) + * return count + */ + /*else*/ { + __pyx_v_count = (__pyx_v_count + 1); + } + __pyx_L6:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":373 + * else: + * count = count+1 + * yaml_token_delete(&token) # <<<<<<<<<<<<<< + * return count + * + */ + yaml_token_delete((&__pyx_v_token)); + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":374 + * 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, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":359 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":376 + * return count + * + * cdef object _scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: + */ + +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__scan(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_scan", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":378 + * 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, 378, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":379 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":380 + * 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, 380, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":378 + * cdef object _scan(self): + * cdef yaml_token_t token + * if yaml_parser_scan(&self.parser, &token) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":381 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_token_to_object(__pyx_v_self, (&__pyx_v_token)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_token_object = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":382 + * raise error + * token_object = self._token_to_object(&token) + * yaml_token_delete(&token) # <<<<<<<<<<<<<< + * return token_object + * + */ + yaml_token_delete((&__pyx_v_token)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":383 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":376 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":385 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__token_to_object(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, yaml_token_t *__pyx_v_token) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_start_mark = NULL; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_token_to_object", 0); + + /* "ruamel/yaml/clib/_ruamel_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, + * token.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_token->start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":388 + * 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_From_int(__pyx_v_token->start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":389 + * 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_From_int(__pyx_v_token->start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":386 + * + * 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, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 386, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None)) __PYX_ERR(0, 386, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None)) __PYX_ERR(0, 386, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":392 + * 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_From_int(__pyx_v_token->end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":393 + * 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_From_int(__pyx_v_token->end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":394 + * 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_From_int(__pyx_v_token->end_mark.column); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":391 + * 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, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 391, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(0, 391, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None)) __PYX_ERR(0, 391, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 5, Py_None)) __PYX_ERR(0, 391, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_end_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":396 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":397 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":396 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":399 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":400 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":401 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":402 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":401 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":400 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":404 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":403 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":406 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":405 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":407 + * 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, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_encoding}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":398 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":409 + * 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, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":408 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":411 + * 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, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":412 + * 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, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":413 + * 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, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":412 + * 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, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4)) __PYX_ERR(0, 412, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3)) __PYX_ERR(0, 412, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":414 + * (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 + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[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_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 4+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":410 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":416 + * 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, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_handle = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":417 + * 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, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_prefix = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":418 + * 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, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_handle); + __Pyx_GIVEREF(__pyx_v_handle); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_handle)) __PYX_ERR(0, 418, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_prefix); + __Pyx_GIVEREF(__pyx_v_prefix); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_prefix)) __PYX_ERR(0, 418, __pyx_L1_error); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":419 + * 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_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_n_u_TAG, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 4+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":415 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":421 + * 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, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":420 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":423 + * 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, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":422 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":425 + * 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, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":424 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":427 + * 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, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":426 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":429 + * 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, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":428 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":431 + * 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, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":430 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":433 + * 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, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":432 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":435 + * 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, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":434 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":437 + * 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, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":436 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":439 + * 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, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":438 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":441 + * 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, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":440 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":443 + * 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, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":442 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":445 + * 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, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":444 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":447 + * 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, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":448 + * 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, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":446 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":450 + * 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, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":451 + * 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, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":449 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":453 + * 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, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_handle = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":454 + * 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, 454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_suffix = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":455 + * 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, 455, __pyx_L1_error) + __pyx_t_8 = (!__pyx_t_5); + if (__pyx_t_8) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":456 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":455 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":457 + * 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, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_handle); + __Pyx_GIVEREF(__pyx_v_handle); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_handle)) __PYX_ERR(0, 457, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_suffix); + __Pyx_GIVEREF(__pyx_v_suffix); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_suffix)) __PYX_ERR(0, 457, __pyx_L1_error); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":452 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":459 + * 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, 459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":461 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":462 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":463 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":464 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":465 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":463 + * plain = False + * style = None + * if token.data.scalar.style == YAML_PLAIN_SCALAR_STYLE: # <<<<<<<<<<<<<< + * plain = True + * style = u'' + */ + break; + case YAML_SINGLE_QUOTED_SCALAR_STYLE: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":467 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":466 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":469 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":468 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":471 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":470 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":473 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":472 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":474 + * 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, 474, __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, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":475 + * style = u'>' + * return ScalarToken(value, plain, + * start_mark, end_mark, style) # <<<<<<<<<<<<<< + * else: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[6] = {__pyx_t_3, __pyx_v_value, __pyx_t_7, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 5+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":458 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":477 + * start_mark, end_mark, style) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown token type") + * else: + */ + __pyx_t_8 = (PY_MAJOR_VERSION < 3); + if (unlikely(__pyx_t_8)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":478 + * 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, 478, __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, 478, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":477 + * start_mark, end_mark, style) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown token type") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":480 + * 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, 480, __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, 480, __pyx_L1_error) + } + break; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":385 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":482 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_9get_token(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_9get_token = {"get_token", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_9get_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_9get_token(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_token (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 482, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("get_token", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_token", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.get_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_8get_token(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_8get_token(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_token", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":483 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":484 + * def get_token(self): + * if self.current_token is not None: + * value = self.current_token # <<<<<<<<<<<<<< + * self.current_token = None + * else: + */ + __pyx_t_2 = __pyx_v_self->current_token; + __Pyx_INCREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":485 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":483 + * + * def get_token(self): + * if self.current_token is not None: # <<<<<<<<<<<<<< + * value = self.current_token + * self.current_token = None + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":487 + * self.current_token = None + * else: + * value = self._scan() # <<<<<<<<<<<<<< + * return value + * + */ + /*else*/ { + __pyx_t_2 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_scan(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_L3:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":488 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":482 + * 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_2); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":490 + * return value + * + * def peek_token(self): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_11peek_token(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_11peek_token = {"peek_token", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_11peek_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_11peek_token(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek_token (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 490, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("peek_token", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peek_token", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.peek_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_10peek_token(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_10peek_token(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek_token", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":491 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":492 + * def peek_token(self): + * if self.current_token is None: + * self.current_token = self._scan() # <<<<<<<<<<<<<< + * return self.current_token + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_scan(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->current_token); + __Pyx_DECREF(__pyx_v_self->current_token); + __pyx_v_self->current_token = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":491 + * + * def peek_token(self): + * if self.current_token is None: # <<<<<<<<<<<<<< + * self.current_token = self._scan() + * return self.current_token + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":493 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":490 + * 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_2); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.peek_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":495 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_13check_token(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_13check_token = {"check_token", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_13check_token, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_13check_token(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_choices = 0; + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("check_token (wrapper)", 0); + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 495, __pyx_L3_error) + #endif + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "check_token", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_choices = __pyx_args; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_v_choices); __pyx_v_choices = 0; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.check_token", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_12check_token(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self), __pyx_v_choices); + + /* function exit code */ + __Pyx_DECREF(__pyx_v_choices); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_12check_token(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_token", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":496 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_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: + * return False + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_scan(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->current_token); + __Pyx_DECREF(__pyx_v_self->current_token); + __pyx_v_self->current_token = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":496 + * + * def check_token(self, *choices): + * if self.current_token is None: # <<<<<<<<<<<<<< + * self.current_token = self._scan() + * if self.current_token is None: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":498 + * if self.current_token is None: + * self.current_token = self._scan() + * if self.current_token is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + __pyx_t_1 = (__pyx_v_self->current_token == Py_None); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":499 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":498 + * if self.current_token is None: + * self.current_token = self._scan() + * if self.current_token is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":500 + * 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_3 = (!__pyx_t_1); + if (__pyx_t_3) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":501 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":500 + * if self.current_token is None: + * return False + * if not choices: # <<<<<<<<<<<<<< + * return True + * token_class = self.current_token.__class__ + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":502 + * if not choices: + * return True + * token_class = self.current_token.__class__ # <<<<<<<<<<<<<< + * for choice in choices: + * if token_class is choice: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->current_token, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_token_class = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":503 + * return True + * token_class = self.current_token.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if token_class is choice: + * return True + */ + __pyx_t_2 = __pyx_v_choices; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 503, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_XDECREF_SET(__pyx_v_choice, __pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":504 + * token_class = self.current_token.__class__ + * for choice in choices: + * if token_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + __pyx_t_3 = (__pyx_v_token_class == __pyx_v_choice); + if (__pyx_t_3) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":505 + * 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_2); __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":504 + * token_class = self.current_token.__class__ + * for choice in choices: + * if token_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":503 + * return True + * token_class = self.current_token.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if token_class is choice: + * return True + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":506 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":495 + * 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_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":508 + * return False + * + * def raw_parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int done + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_15raw_parse(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_15raw_parse = {"raw_parse", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_15raw_parse, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_15raw_parse(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("raw_parse (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 508, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("raw_parse", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "raw_parse", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.raw_parse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_14raw_parse(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_14raw_parse(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("raw_parse", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":512 + * cdef int done + * cdef int count + * count = 0 # <<<<<<<<<<<<<< + * done = 0 + * while done == 0: + */ + __pyx_v_count = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":513 + * cdef int count + * count = 0 + * done = 0 # <<<<<<<<<<<<<< + * while done == 0: + * if yaml_parser_parse(&self.parser, &event) == 0: + */ + __pyx_v_done = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":514 + * 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); + if (!__pyx_t_1) break; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":515 + * 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, 515, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_2 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":516 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":517 + * 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, 517, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":515 + * done = 0 + * while done == 0: + * if yaml_parser_parse(&self.parser, &event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":518 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":519 + * raise error + * if event.type == YAML_NO_EVENT: + * done = 1 # <<<<<<<<<<<<<< + * else: + * count = count+1 + */ + __pyx_v_done = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":518 + * error = self._parser_error() + * raise error + * if event.type == YAML_NO_EVENT: # <<<<<<<<<<<<<< + * done = 1 + * else: + */ + goto __pyx_L6; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":521 + * done = 1 + * else: + * count = count+1 # <<<<<<<<<<<<<< + * yaml_event_delete(&event) + * return count + */ + /*else*/ { + __pyx_v_count = (__pyx_v_count + 1); + } + __pyx_L6:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":522 + * else: + * count = count+1 + * yaml_event_delete(&event) # <<<<<<<<<<<<<< + * return count + * + */ + yaml_event_delete((&__pyx_v_event)); + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":523 + * 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, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":508 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":525 + * return count + * + * cdef object _parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: + */ + +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parse(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_parse", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":527 + * 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, 527, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":528 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":529 + * 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, 529, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":527 + * cdef object _parse(self): + * cdef yaml_event_t event + * if yaml_parser_parse(&self.parser, &event) == 0: # <<<<<<<<<<<<<< + * error = self._parser_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":530 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_event_to_object(__pyx_v_self, (&__pyx_v_event)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_event_object = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":531 + * raise error + * event_object = self._event_to_object(&event) + * yaml_event_delete(&event) # <<<<<<<<<<<<<< + * return event_object + * + */ + yaml_event_delete((&__pyx_v_event)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":532 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":525 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":534 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__event_to_object(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, yaml_event_t *__pyx_v_event) { + yaml_tag_directive_t *__pyx_v_tag_directive; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_start_mark = NULL; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_event_to_object", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":537 + * 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_From_int(__pyx_v_event->start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":538 + * 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_From_int(__pyx_v_event->start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":539 + * 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_From_int(__pyx_v_event->start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":536 + * 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, 536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 536, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(0, 536, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None)) __PYX_ERR(0, 536, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None)) __PYX_ERR(0, 536, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":542 + * 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_From_int(__pyx_v_event->end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":543 + * 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_From_int(__pyx_v_event->end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":544 + * 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_From_int(__pyx_v_event->end_mark.column); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":541 + * 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, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 541, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(0, 541, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4)) __PYX_ERR(0, 541, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None)) __PYX_ERR(0, 541, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 5, Py_None)) __PYX_ERR(0, 541, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_end_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":546 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":547 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":546 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":549 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":550 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":551 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":552 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":551 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":550 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":554 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":553 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":556 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":555 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":557 + * 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, 557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_encoding}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":548 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":559 + * 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, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":558 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":561 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":562 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":563 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":562 + * elif event.type == YAML_DOCUMENT_START_EVENT: + * explicit = False + * if event.data.document_start.implicit == 0: # <<<<<<<<<<<<<< + * explicit = True + * version = None + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":564 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":565 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":566 + * 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, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":567 + * 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, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":566 + * 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, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(0, 566, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_version, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":565 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":568 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":569 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":570 + * 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, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":571 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":572 + * 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); + if (!__pyx_t_5) break; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":573 + * 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, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_handle, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":574 + * 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, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":575 + * 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, 575, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":576 + * 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); + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":569 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":577 + * 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, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":578 + * 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, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[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_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 5+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":560 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":580 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":581 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":582 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":581 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":583 + * 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, 583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_explicit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":579 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":585 + * 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, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":586 + * 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, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_anchor, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":584 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":588 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":589 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":590 + * 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, 590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":589 + * elif event.type == YAML_SCALAR_EVENT: + * anchor = None + * if event.data.scalar.anchor != NULL: # <<<<<<<<<<<<<< + * anchor = PyUnicode_FromString(event.data.scalar.anchor) + * tag = None + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":591 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":592 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":593 + * 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, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":592 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":594 + * 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, 594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_value = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":596 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":597 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":598 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":597 + * event.data.scalar.length, 'strict') + * plain_implicit = False + * if event.data.scalar.plain_implicit == 1: # <<<<<<<<<<<<<< + * plain_implicit = True + * quoted_implicit = False + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":599 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":600 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":601 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":600 + * plain_implicit = True + * quoted_implicit = False + * if event.data.scalar.quoted_implicit == 1: # <<<<<<<<<<<<<< + * quoted_implicit = True + * style = None + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":602 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":603 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":604 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":603 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":606 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":605 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":608 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":607 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":610 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":609 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":612 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":611 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":613 + * 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, 613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":614 + * 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_2 = __Pyx_PyBool_FromLong(__pyx_v_plain_implicit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_quoted_implicit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2)) __PYX_ERR(0, 614, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3)) __PYX_ERR(0, 614, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":615 + * 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 + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[8] = {__pyx_t_3, __pyx_v_anchor, __pyx_v_tag, __pyx_t_8, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 7+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":587 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":617 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":618 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":619 + * 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, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":618 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":620 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":621 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":622 + * 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, 622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":621 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":623 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":624 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":625 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":624 + * tag = PyUnicode_FromString(event.data.sequence_start.tag) + * implicit = False + * if event.data.sequence_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * flow_style = None + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":626 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":627 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":628 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":627 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":630 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":629 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":631 + * 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, 631, __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, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":632 + * 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_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[7] = {__pyx_t_3, __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_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 6+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":616 + * (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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":634 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":635 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":636 + * 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, 636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":635 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":637 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":638 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":639 + * 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, 639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":638 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":640 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":641 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":642 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":641 + * tag = PyUnicode_FromString(event.data.mapping_start.tag) + * implicit = False + * if event.data.mapping_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * flow_style = None + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":643 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":644 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":645 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":644 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":647 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":646 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":648 + * 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, 648, __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, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":649 + * 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_3 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[7] = {__pyx_t_3, __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_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 6+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":633 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":651 + * 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, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":650 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":653 + * 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, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark)}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":652 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":655 + * 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); + if (unlikely(__pyx_t_5)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":656 + * 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, 656, __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, 656, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":655 + * return MappingEndEvent(start_mark, end_mark) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("unknown event type") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":658 + * 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, 658, __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, 658, __pyx_L1_error) + } + break; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":534 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":660 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_17get_event(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_17get_event = {"get_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_17get_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_17get_event(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_event (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 660, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("get_event", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_event", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.get_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_16get_event(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_16get_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_event", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":661 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":662 + * def get_event(self): + * if self.current_event is not None: + * value = self.current_event # <<<<<<<<<<<<<< + * self.current_event = None + * else: + */ + __pyx_t_2 = __pyx_v_self->current_event; + __Pyx_INCREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":663 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":661 + * + * def get_event(self): + * if self.current_event is not None: # <<<<<<<<<<<<<< + * value = self.current_event + * self.current_event = None + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":665 + * self.current_event = None + * else: + * value = self._parse() # <<<<<<<<<<<<<< + * return value + * + */ + /*else*/ { + __pyx_t_2 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_L3:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":666 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":660 + * 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_2); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":668 + * return value + * + * def peek_event(self): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_19peek_event(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_19peek_event = {"peek_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_19peek_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_19peek_event(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek_event (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 668, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("peek_event", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peek_event", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.peek_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_18peek_event(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_18peek_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek_event", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":669 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":670 + * def peek_event(self): + * if self.current_event is None: + * self.current_event = self._parse() # <<<<<<<<<<<<<< + * return self.current_event + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->current_event); + __Pyx_DECREF(__pyx_v_self->current_event); + __pyx_v_self->current_event = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":669 + * + * def peek_event(self): + * if self.current_event is None: # <<<<<<<<<<<<<< + * self.current_event = self._parse() + * return self.current_event + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":671 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":668 + * 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_2); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.peek_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":673 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_21check_event(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_21check_event = {"check_event", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_21check_event, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_21check_event(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_choices = 0; + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("check_event (wrapper)", 0); + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 673, __pyx_L3_error) + #endif + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "check_event", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_choices = __pyx_args; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_v_choices); __pyx_v_choices = 0; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.check_event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_20check_event(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self), __pyx_v_choices); + + /* function exit code */ + __Pyx_DECREF(__pyx_v_choices); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_20check_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_event", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":674 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_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: + * return False + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->current_event); + __Pyx_DECREF(__pyx_v_self->current_event); + __pyx_v_self->current_event = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":674 + * + * def check_event(self, *choices): + * if self.current_event is None: # <<<<<<<<<<<<<< + * self.current_event = self._parse() + * if self.current_event is None: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":676 + * if self.current_event is None: + * self.current_event = self._parse() + * if self.current_event is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + __pyx_t_1 = (__pyx_v_self->current_event == Py_None); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":677 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":676 + * if self.current_event is None: + * self.current_event = self._parse() + * if self.current_event is None: # <<<<<<<<<<<<<< + * return False + * if not choices: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":678 + * 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_3 = (!__pyx_t_1); + if (__pyx_t_3) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":679 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":678 + * if self.current_event is None: + * return False + * if not choices: # <<<<<<<<<<<<<< + * return True + * event_class = self.current_event.__class__ + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":680 + * if not choices: + * return True + * event_class = self.current_event.__class__ # <<<<<<<<<<<<<< + * for choice in choices: + * if event_class is choice: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->current_event, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_event_class = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":681 + * return True + * event_class = self.current_event.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if event_class is choice: + * return True + */ + __pyx_t_2 = __pyx_v_choices; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 681, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_XDECREF_SET(__pyx_v_choice, __pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":682 + * event_class = self.current_event.__class__ + * for choice in choices: + * if event_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + __pyx_t_3 = (__pyx_v_event_class == __pyx_v_choice); + if (__pyx_t_3) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":683 + * 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_2); __pyx_t_2 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":682 + * event_class = self.current_event.__class__ + * for choice in choices: + * if event_class is choice: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":681 + * return True + * event_class = self.current_event.__class__ + * for choice in choices: # <<<<<<<<<<<<<< + * if event_class is choice: + * return True + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":684 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":673 + * 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_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":686 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_23check_node(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_23check_node = {"check_node", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_23check_node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_23check_node(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("check_node (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 686, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("check_node", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "check_node", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.check_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_22check_node(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_22check_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":687 + * + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 687, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_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) + * self._parse_next_event() + */ + __pyx_t_2 = (__pyx_v_self->parsed_event.type == YAML_STREAM_START_EVENT); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":689 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":690 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 690, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_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) + * self._parse_next_event() + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":691 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":692 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":691 + * yaml_event_delete(&self.parsed_event) + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":693 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":686 + * 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("ruamel.yaml.clib._ruamel_yaml.CParser.check_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":695 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_25get_node(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_25get_node = {"get_node", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_25get_node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_25get_node(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_node (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 695, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("get_node", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_node", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.get_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_24get_node(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_24get_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":696 + * + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 696, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_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_2 = (__pyx_v_self->parsed_event.type != YAML_STREAM_END_EVENT); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":698 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_document(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":697 + * def get_node(self): + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * return self._compose_document() + * + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":695 + * 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("ruamel.yaml.clib._ruamel_yaml.CParser.get_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":700 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_27get_single_node(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_27get_single_node = {"get_single_node", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_27get_single_node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_27get_single_node(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_single_node (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 700, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("get_single_node", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_single_node", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.get_single_node", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_26get_single_node(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_26get_single_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_v_document = NULL; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_single_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":701 + * + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 701, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":702 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":703 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 703, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":704 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":705 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":706 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_document(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_document, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":705 + * self._parse_next_event() + * document = None + * if self.parsed_event.type != YAML_STREAM_END_EVENT: # <<<<<<<<<<<<<< + * document = self._compose_document() + * self._parse_next_event() + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":707 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 707, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":708 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":710 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":711 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":712 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":709 + * 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, 709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5)) __PYX_ERR(0, 709, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, Py_None)) __PYX_ERR(0, 709, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 5, Py_None)) __PYX_ERR(0, 709, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":714 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":715 + * 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, 715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":716 + * 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, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[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_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 4+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __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, 715, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":714 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":718 + * 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, 718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":719 + * else: + * raise ComposerError(u"expected a single document in the stream", + * document.start_mark, u"but found another document", mark) # <<<<<<<<<<<<<< + * return document + * + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_document, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_kp_u_expected_a_single_document_in_th, __pyx_t_4, __pyx_kp_u_but_found_another_document, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 4+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __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, 718, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":708 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":720 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":700 + * 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_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":722 + * return document + * + * cdef object _compose_document(self): # <<<<<<<<<<<<<< + * yaml_event_delete(&self.parsed_event) + * node = self._compose_node(None, None) + */ + +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_document(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_compose_document", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":723 + * + * 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)); + + /* "ruamel/yaml/clib/_ruamel_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(&self.parsed_event) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_node(__pyx_v_self, Py_None, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_node = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":725 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(0, 725, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":726 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":727 + * 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, 727, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":728 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":722 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":730 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_index) { + PyObject *__pyx_v_anchor = NULL; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_compose_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":731 + * + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 731, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_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) + * if anchor not in self.anchors: + */ + __pyx_t_2 = (__pyx_v_self->parsed_event.type == YAML_ALIAS_EVENT); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":733 + * 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, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_anchor = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":734 + * 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, 734, __pyx_L1_error) + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":736 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":737 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":738 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":735 + * 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_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 735, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3)) __PYX_ERR(0, 735, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4)) __PYX_ERR(0, 735, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5)) __PYX_ERR(0, 735, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, Py_None)) __PYX_ERR(0, 735, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 5, Py_None)) __PYX_ERR(0, 735, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":740 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError(None, None, "found undefined alias", mark) + * else: + */ + __pyx_t_2 = (PY_MAJOR_VERSION < 3); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":741 + * 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_6, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_4, Py_None, Py_None, __pyx_kp_s_found_undefined_alias, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 4+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __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, 741, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":740 + * self.parsed_event.start_mark.column, + * None, None) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ComposerError(None, None, "found undefined alias", mark) + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":743 + * 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_6, __pyx_n_s_ComposerError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_4, Py_None, Py_None, __pyx_kp_u_found_undefined_alias, ((PyObject *)__pyx_v_mark)}; + __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 4+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __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, 743, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":734 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":744 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":745 + * 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_5 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_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) + * if anchor not in self.anchors: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":746 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":747 + * 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_7 = (__pyx_v_self->parsed_event.type == YAML_SCALAR_EVENT); + if (__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L7_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":748 + * 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_7 = (__pyx_v_self->parsed_event.data.scalar.anchor != NULL); + __pyx_t_2 = __pyx_t_7; + __pyx_L7_bool_binop_done:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":747 + * 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_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":749 + * 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_5 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.scalar.anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":747 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":750 + * 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_7 = (__pyx_v_self->parsed_event.type == YAML_SEQUENCE_START_EVENT); + if (__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L9_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":751 + * 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_7 = (__pyx_v_self->parsed_event.data.sequence_start.anchor != NULL); + __pyx_t_2 = __pyx_t_7; + __pyx_L9_bool_binop_done:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":750 + * 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_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":752 + * 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_5 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.sequence_start.anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":750 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":753 + * 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_7 = (__pyx_v_self->parsed_event.type == YAML_MAPPING_START_EVENT); + if (__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L11_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":754 + * 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_7 = (__pyx_v_self->parsed_event.data.mapping_start.anchor != NULL); + __pyx_t_2 = __pyx_t_7; + __pyx_L11_bool_binop_done:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":753 + * 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_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":755 + * 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_5 = PyUnicode_FromString(__pyx_v_self->parsed_event.data.mapping_start.anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_anchor, __pyx_t_5); + __pyx_t_5 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":753 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":756 + * 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_2 = (__pyx_v_anchor != Py_None); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":757 + * 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, 757, __pyx_L1_error) + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":759 + * 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_5 = __Pyx_PyInt_From_int(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":760 + * 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_6 = __Pyx_PyInt_From_int(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":761 + * 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_4 = __Pyx_PyInt_From_int(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":758 + * 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, 758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 758, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(0, 758, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6)) __PYX_ERR(0, 758, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, Py_None)) __PYX_ERR(0, 758, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, Py_None)) __PYX_ERR(0, 758, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":763 + * 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_2 = (PY_MAJOR_VERSION < 3); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":764 + * 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, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":765 + * 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_6 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_anchor); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (unlikely(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_1 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_6, __pyx_kp_s_found_duplicate_anchor_first_occ, __pyx_t_5, __pyx_kp_s_second_occurrence, ((PyObject *)__pyx_v_mark)}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_1, 4+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 764, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":763 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":767 + * 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, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":768 + * 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_5 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_anchor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_start_mark); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_1 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_kp_u_found_duplicate_anchor_first_occ, __pyx_t_6, __pyx_kp_u_second_occurrence, ((PyObject *)__pyx_v_mark)}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_1, 4+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 767, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":757 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":756 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":769 + * 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, 769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (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_1 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_parent, __pyx_v_index}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_1, 2+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":770 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":771 + * 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_4 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_scalar_node(__pyx_v_self, __pyx_v_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_node = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":770 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":773 + * 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_4 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_sequence_node(__pyx_v_self, __pyx_v_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_node = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":772 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":775 + * 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_4 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_compose_mapping_node(__pyx_v_self, __pyx_v_anchor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_node = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":774 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":776 + * 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, 776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = NULL; + __pyx_t_1 = 0; + #if CYTHON_UNPACK_METHODS + if (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_1 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[1] = {__pyx_t_6, }; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_1, 0+__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":777 + * 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, 777, __pyx_L1_error) } + __Pyx_INCREF(__pyx_v_node); + __pyx_r = __pyx_v_node; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":730 + * 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_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":779 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_scalar_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *__pyx_v_start_mark = NULL; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_compose_scalar_node", 0); + + /* "ruamel/yaml/clib/_ruamel_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, + * self.parsed_event.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":782 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":783 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":780 + * + * 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, 780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 780, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(0, 780, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None)) __PYX_ERR(0, 780, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None)) __PYX_ERR(0, 780, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":786 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":787 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":788 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.column); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":785 + * 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, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 785, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(0, 785, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4)) __PYX_ERR(0, 785, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2)) __PYX_ERR(0, 785, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None)) __PYX_ERR(0, 785, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 5, Py_None)) __PYX_ERR(0, 785, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_end_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":790 + * 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, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_value = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":792 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":793 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":794 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":793 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":795 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":796 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":797 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":796 + * 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 \ + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":798 + * 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); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L6_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":799 + * 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]) == '!'); + if (__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L6_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":800 + * 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'); + __pyx_t_5 = __pyx_t_6; + __pyx_L6_bool_binop_done:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":798 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":801 + * 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, 801, __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, 801, __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, 801, __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, 801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3)) __PYX_ERR(0, 801, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7)) __PYX_ERR(0, 801, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = NULL; + __pyx_t_9 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_4, __pyx_v_value, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_9, 3+__pyx_t_9); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_v_tag = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":798 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":803 + * 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, 803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_tag = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_L5:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":804 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":805 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":806 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":805 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":808 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":807 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":810 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":809 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":812 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":811 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":814 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":813 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":815 + * 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, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; + #if CYTHON_UNPACK_METHODS + if (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_9 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[6] = {__pyx_t_8, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), ((PyObject *)__pyx_v_end_mark), __pyx_v_style}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_9, 5+__pyx_t_9); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_v_node = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":816 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":817 + * 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, 817, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":816 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":818 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":819 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":779 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":821 + * return node + * + * cdef _compose_sequence_node(self, object anchor): # <<<<<<<<<<<<<< + * cdef int index + * start_mark = Mark(self.stream_name, + */ + +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_sequence_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor) { + int __pyx_v_index; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_compose_sequence_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":824 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":825 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":826 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":823 + * 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, 823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 823, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(0, 823, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None)) __PYX_ERR(0, 823, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None)) __PYX_ERR(0, 823, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":828 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":829 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":830 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":829 + * None, None) + * implicit = False + * if self.parsed_event.data.sequence_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * if self.parsed_event.data.sequence_start.tag == NULL \ + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":831 + * 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); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":832 + * 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]) == '!'); + if (__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":833 + * 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'); + __pyx_t_5 = __pyx_t_6; + __pyx_L5_bool_binop_done:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":831 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":834 + * 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, 834, __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, 834, __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, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_2, Py_None, __pyx_t_1}; + __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":831 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":836 + * 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, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L4:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":837 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":838 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":839 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":838 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":841 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":840 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":842 + * 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, 842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_value = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":843 + * 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, 843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[6] = {__pyx_t_1, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), Py_None, __pyx_v_flow_style}; + __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 5+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_v_node = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":844 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":845 + * 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, 845, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":844 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":846 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":847 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":848 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 848, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":849 + * 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_5 = (__pyx_v_self->parsed_event.type != YAML_SEQUENCE_END_EVENT); + if (!__pyx_t_5) break; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":850 + * 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, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_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, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_value, __pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 850, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":851 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":852 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 852, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":854 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":855 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":856 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.column); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":853 + * 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_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 853, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(0, 853, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_3)) __PYX_ERR(0, 853, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1)) __PYX_ERR(0, 853, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, Py_None)) __PYX_ERR(0, 853, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, Py_None)) __PYX_ERR(0, 853, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_3 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_end_mark, __pyx_t_1) < 0) __PYX_ERR(0, 853, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":858 + * self.parsed_event.end_mark.column, + * None, None) + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * return node + * + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":859 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":821 + * 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_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":861 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_mapping_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_anchor) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_compose_mapping_node", 0); + + /* "ruamel/yaml/clib/_ruamel_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, + * self.parsed_event.start_mark.column, + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->parsed_event.start_mark.index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":864 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":865 + * 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_From_int(__pyx_v_self->parsed_event.start_mark.column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":862 + * + * 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, 862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 862, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(0, 862, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(0, 862, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(0, 862, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None)) __PYX_ERR(0, 862, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, Py_None)) __PYX_ERR(0, 862, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_start_mark = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":867 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":868 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":869 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":868 + * None, None) + * implicit = False + * if self.parsed_event.data.mapping_start.implicit == 1: # <<<<<<<<<<<<<< + * implicit = True + * if self.parsed_event.data.mapping_start.tag == NULL \ + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":870 + * 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); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":871 + * 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]) == '!'); + if (__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L5_bool_binop_done; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":872 + * 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'); + __pyx_t_5 = __pyx_t_6; + __pyx_L5_bool_binop_done:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":870 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":873 + * 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, 873, __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, 873, __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, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (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; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_2, Py_None, __pyx_t_1}; + __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":870 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":875 + * 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, 875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tag = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L4:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":876 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":877 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":878 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":877 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":880 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":879 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":881 + * 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, 881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_value = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":882 + * 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, 882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = NULL; + __pyx_t_8 = 0; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[6] = {__pyx_t_1, __pyx_v_tag, __pyx_v_value, ((PyObject *)__pyx_v_start_mark), Py_None, __pyx_v_flow_style}; + __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 5+__pyx_t_8); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_v_node = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":883 + * 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); + if (__pyx_t_5) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":884 + * 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, 884, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":883 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":885 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":886 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 886, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":887 + * 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_5 = (__pyx_v_self->parsed_event.type != YAML_MAPPING_END_EVENT); + if (!__pyx_t_5) break; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":888 + * 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_6ruamel_4yaml_4clib_12_ruamel_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, 888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_item_key, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":889 + * 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_6ruamel_4yaml_4clib_12_ruamel_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, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_item_value, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":890 + * 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, 890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_item_key); + __Pyx_GIVEREF(__pyx_v_item_key); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_item_key)) __PYX_ERR(0, 890, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_item_value); + __Pyx_GIVEREF(__pyx_v_item_value); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_item_value)) __PYX_ERR(0, 890, __pyx_L1_error); + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_value, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":891 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parse_next_event(__pyx_v_self); if (unlikely(__pyx_t_8 == ((int)0))) __PYX_ERR(0, 891, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":893 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":894 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.line); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":895 + * 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_From_int(__pyx_v_self->parsed_event.end_mark.column); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":892 + * 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_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_self->stream_name); + __Pyx_GIVEREF(__pyx_v_self->stream_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->stream_name)) __PYX_ERR(0, 892, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(0, 892, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4)) __PYX_ERR(0, 892, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1)) __PYX_ERR(0, 892, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, Py_None)) __PYX_ERR(0, 892, __pyx_L1_error); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, Py_None)) __PYX_ERR(0, 892, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_end_mark, __pyx_t_1) < 0) __PYX_ERR(0, 892, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":897 + * self.parsed_event.end_mark.column, + * None, None) + * yaml_event_delete(&self.parsed_event) # <<<<<<<<<<<<<< + * return node + * + */ + yaml_event_delete((&__pyx_v_self->parsed_event)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":898 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":861 + * 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_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":900 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parse_next_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_parse_next_event", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":901 + * + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_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() + * raise error + */ + __pyx_t_2 = yaml_parser_parse((&__pyx_v_self->parser), (&__pyx_v_self->parsed_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 902, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_2 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":903 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self->__pyx_vtab)->_parser_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":904 + * 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, 904, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_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() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":901 + * + * 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() + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":905 + * error = self._parser_error() + * raise error + * return 1 # <<<<<<<<<<<<<< + * + * cdef int input_handler(void *data, char *buffer, int size, int *read) except 0: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":900 + * 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("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_29__reduce_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_29__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_29__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_29__reduce_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 1, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_28__reduce_cython__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_parsed_event_cannot_be_conv, 0, 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_AddTraceback("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_31__setstate_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_31__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_31__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_31__setstate_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 3, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v___pyx_state = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_30__setstate_cython__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_v_self), __pyx_v___pyx_state); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_parsed_event_cannot_be_conv, 0, 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_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CParser.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":907 + * return 1 + * + * cdef int input_handler(void *data, char *buffer, int size, int *read) except 0: # <<<<<<<<<<<<<< + * cdef CParser parser + * parser = <CParser>data + */ + +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_input_handler(void *__pyx_v_data, char *__pyx_v_buffer, int __pyx_v_size, int *__pyx_v_read) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("input_handler", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":909 + * cdef int input_handler(void *data, char *buffer, int size, int *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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":910 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":911 + * 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_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser->stream, __pyx_n_s_read); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_size); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_6 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":912 + * 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_2 = (PyUnicode_CheckExact(__pyx_v_value) != 0); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":913 + * 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, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":914 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":912 + * if parser.stream_cache is None: + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: # <<<<<<<<<<<<<< + * value = PyUnicode_AsUTF8String(value) + * parser.unicode_source = 1 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":915 + * 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_2 = (PyString_CheckExact(__pyx_v_value) == 0); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":916 + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("a string value is expected") + * else: + */ + __pyx_t_2 = (PY_MAJOR_VERSION < 3); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":917 + * 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__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 917, __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, 917, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":916 + * parser.unicode_source = 1 + * if PyString_CheckExact(value) == 0: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("a string value is expected") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":919 + * 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__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 919, __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, 919, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":915 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":920 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":921 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":922 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":910 + * cdef CParser parser + * parser = <CParser>data + * if parser.stream_cache is None: # <<<<<<<<<<<<<< + * value = parser.stream.read(size) + * if PyUnicode_CheckExact(value) != 0: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":923 + * 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_2 = ((__pyx_v_parser->stream_cache_len - __pyx_v_parser->stream_cache_pos) < __pyx_v_size); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":924 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":923 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":925 + * 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_2 = (__pyx_v_size > 0); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":926 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":927 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":925 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":928 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":929 + * + 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":930 + * 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_2 = (__pyx_v_parser->stream_cache_pos == __pyx_v_parser->stream_cache_len); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":931 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":930 + * read[0] = size + * parser.stream_cache_pos += size + * if parser.stream_cache_pos == parser.stream_cache_len: # <<<<<<<<<<<<<< + * parser.stream_cache = None + * return 1 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":932 + * if parser.stream_cache_pos == parser.stream_cache_len: + * parser.stream_cache = None + * return 1 # <<<<<<<<<<<<<< + * + * cdef class CEmitter: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":907 + * return 1 + * + * cdef int input_handler(void *data, char *buffer, int size, int *read) except 0: # <<<<<<<<<<<<<< + * cdef CParser parser + * parser = <CParser>data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":952 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_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; + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 952, __pyx_L3_error) + #endif + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + { + 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}; + values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":953 + * + * 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] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[5] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[6] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + + /* "ruamel/yaml/clib/_ruamel_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: + * raise MemoryError + */ + values[7] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[8] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[9] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + values[10] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None)); + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 11: values[10] = __Pyx_Arg_VARARGS(__pyx_args, 10); + CYTHON_FALLTHROUGH; + case 10: values[9] = __Pyx_Arg_VARARGS(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = __Pyx_Arg_VARARGS(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = __Pyx_Arg_VARARGS(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_stream)) != 0)) { + (void)__Pyx_Arg_NewRef_VARARGS(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_canonical); + if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indent); + if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width); + if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_unicode); + if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_line_break); + if (value) { values[5] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_encoding); + if (value) { values[6] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_explicit_start); + if (value) { values[7] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 8: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_explicit_end); + if (value) { values[8] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 9: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_version); + if (value) { values[9] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 10: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tags); + if (value) { values[10] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 952, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 11: values[10] = __Pyx_Arg_VARARGS(__pyx_args, 10); + CYTHON_FALLTHROUGH; + case 10: values[9] = __Pyx_Arg_VARARGS(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = __Pyx_Arg_VARARGS(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = __Pyx_Arg_VARARGS(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_VARARGS(__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, __pyx_nargs); __PYX_ERR(0, 952, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter___init__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":952 + * 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 */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter___init__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":955 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":956 + * 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, 956, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":955 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":957 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":958 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":959 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":960 + * 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, 960, __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, 960, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":961 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":960 + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: + * if getattr3(stream, 'encoding', None): # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":959 + * self.stream = stream + * self.dump_unicode = 0 + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * if getattr3(stream, 'encoding', None): + * self.dump_unicode = 1 + */ + goto __pyx_L4; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":963 + * 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, 963, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":964 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":963 + * self.dump_unicode = 1 + * else: + * if hasattr(stream, u'encoding'): # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * self.use_encoding = encoding + */ + } + } + __pyx_L4:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":965 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":966 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_output_handler, ((void *)__pyx_v_self)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":967 + * 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_1 = __Pyx_PyObject_IsTrue(__pyx_v_canonical); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 967, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":968 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":967 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":969 + * 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_1 = (__pyx_v_indent != Py_None); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":970 + * 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_3 = __Pyx_PyInt_As_int(__pyx_v_indent); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 970, __pyx_L1_error) + yaml_emitter_set_indent((&__pyx_v_self->emitter), __pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":969 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":971 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":972 + * 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_3 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L1_error) + yaml_emitter_set_width((&__pyx_v_self->emitter), __pyx_t_3); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":971 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":973 + * 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_1 = __Pyx_PyObject_IsTrue(__pyx_v_allow_unicode); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 973, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":974 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":973 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":975 + * 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_1 = (__pyx_v_line_break != Py_None); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":976 + * 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__17, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 976, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":977 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":976 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":978 + * 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__18, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 978, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":979 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":978 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":980 + * 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__19, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 980, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":981 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":980 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":975 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":982 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":983 + * 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, 983, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":984 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":983 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":985 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":986 + * 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, 986, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":987 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":986 + * self.document_start_implicit = 0 + * self.document_end_implicit = 1 + * if explicit_end: # <<<<<<<<<<<<<< + * self.document_end_implicit = 0 + * self.use_version = version + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":988 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":989 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":990 + * 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, 990, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":991 + * 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, 991, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":992 + * self.serialized_nodes = {} + * self.anchors = {} + * self.last_alias_id = 0 # <<<<<<<<<<<<<< + * self.closed = -1 + * + */ + __pyx_v_self->last_alias_id = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":993 + * self.anchors = {} + * self.last_alias_id = 0 + * self.closed = -1 # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->closed = -1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":952 + * 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("ruamel.yaml.clib._ruamel_yaml.CEmitter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":995 + * self.closed = -1 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_emitter_delete(&self.emitter) + * + */ + +/* Python wrapper */ +static void __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_3__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_2__dealloc__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_2__dealloc__(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":996 + * + * def __dealloc__(self): + * yaml_emitter_delete(&self.emitter) # <<<<<<<<<<<<<< + * + * def dispose(self): + */ + yaml_emitter_delete((&__pyx_v_self->emitter)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":995 + * self.closed = -1 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * yaml_emitter_delete(&self.emitter) + * + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":998 + * yaml_emitter_delete(&self.emitter) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_5dispose(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_5dispose = {"dispose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_5dispose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_5dispose(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dispose (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 998, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("dispose", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "dispose", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.dispose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_4dispose(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_4dispose(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1001 + * pass + * + * cdef object _emitter_error(self): # <<<<<<<<<<<<<< + * if self.emitter.error == YAML_MEMORY_ERROR: + * return MemoryError + */ + +static PyObject *__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__emitter_error(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_emitter_error", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1002 + * + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1003 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1002 + * + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1005 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1006 + * 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, 1006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_problem = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1005 + * return MemoryError + * elif self.emitter.error == YAML_EMITTER_ERROR: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * problem = self.emitter.problem + * else: + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1008 + * 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, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_problem = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_L3:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1009 + * 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, 1009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_problem}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1004 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1010 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1011 + * 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__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1011, __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, 1011, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1010 + * problem = PyUnicode_FromString(self.emitter.problem) + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("no emitter error") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1013 + * 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__21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1013, __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, 1013, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1001 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1015 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__object_to_event(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_object_to_event", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1032 + * 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, 1032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_event_class = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1033 + * 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, 1033, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1034 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1035 + * 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, 1035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u_utf_16_le, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + 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, 1035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s_utf_16_le, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1036 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1035 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1037 + * 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, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u_utf_16_be, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1037, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + 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, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s_utf_16_be, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1037, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_t_3; + __pyx_L7_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1038 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1037 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1039 + * 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, 1039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__pyx_t_1 == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1040 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1039 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1041 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1042 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1041 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1043 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1033 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1044 + * 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, 1044, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1045 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1044 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1046 + * 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, 1046, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1047 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1048 + * 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, 1048, __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, 1048, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1049 + * 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, 1049, __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, 1049, __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, 1049, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_version_directive_value.major = __pyx_t_5; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1050 + * 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, 1050, __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, 1050, __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, 1050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_version_directive_value.minor = __pyx_t_5; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1051 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1048 + * 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] + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1052 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1053 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1054 + * 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, 1054, __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, 1054, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1055 + * 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, 1055, __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, 1055, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_6 > 0x80); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1056 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1057 + * 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__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __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, 1057, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1056 + * if event_object.tags: + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("too many tags") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1059 + * 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__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __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, 1059, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1055 + * tag_directives_end = NULL + * if event_object.tags: + * if len(event_object.tags) > 128: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1060 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1061 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1062 + * 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, 1062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cache = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1063 + * 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, 1063, __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, 1063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1063, __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, 1063, __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, 1063, __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, 1063, __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, 1063, __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, 1063, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_handle, __pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1064 + * 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, 1064, __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, 1064, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1065 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1066 + * 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, 1066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF_SET(__pyx_v_handle, __pyx_t_8); + __pyx_t_8 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1067 + * 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, 1067, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1065 + * for handle in event_object.tags: + * prefix = event_object.tags[handle] + * if PyUnicode_CheckExact(handle): # <<<<<<<<<<<<<< + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1068 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1069 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1070 + * 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__24, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1070, __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, 1070, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1069 + * cache.append(handle) + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag handle must be a string") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1072 + * 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__25, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1072, __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, 1072, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1068 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1073 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1074 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1075 + * 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, 1075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_8); + __pyx_t_8 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1076 + * 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, 1076, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1074 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1077 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1078 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1079 + * 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__26, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1079, __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, 1079, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1078 + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag prefix must be a string") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1081 + * 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__27, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1081, __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, 1081, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1077 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1082 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1083 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1063 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1054 + * tag_directives_start = NULL + * tag_directives_end = NULL + * if event_object.tags: # <<<<<<<<<<<<<< + * if len(event_object.tags) > 128: + * if PY_MAJOR_VERSION < 3: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1084 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1085 + * 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, 1085, __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, 1085, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1086 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1085 + * tag_directives_end = tag_directives_end+1 + * implicit = 1 + * if event_object.explicit: # <<<<<<<<<<<<<< + * implicit = 0 + * if yaml_document_start_event_initialize(event, version_directive, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1088 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1087 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1089 + * 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, 1089, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1087 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1046 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1090 + * 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, 1090, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1091 + * raise MemoryError + * elif event_class is DocumentEndEvent: + * implicit = 1 # <<<<<<<<<<<<<< + * if event_object.explicit: + * implicit = 0 + */ + __pyx_v_implicit = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1092 + * 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, 1092, __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, 1092, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1093 + * implicit = 1 + * if event_object.explicit: + * implicit = 0 # <<<<<<<<<<<<<< + * yaml_document_end_event_initialize(event, implicit) + * elif event_class is AliasEvent: + */ + __pyx_v_implicit = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1092 + * elif event_class is DocumentEndEvent: + * implicit = 1 + * if event_object.explicit: # <<<<<<<<<<<<<< + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1094 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1090 + * tag_directives_start, tag_directives_end, implicit) == 0: + * raise MemoryError + * elif event_class is DocumentEndEvent: # <<<<<<<<<<<<<< + * implicit = 1 + * if event_object.explicit: + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1095 + * 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, 1095, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1096 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1097 + * 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, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1098 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1099 + * 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, 1099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1098 + * anchor = NULL + * anchor_object = event_object.anchor + * if PyUnicode_CheckExact(anchor_object): # <<<<<<<<<<<<<< + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + * if not PyString_CheckExact(anchor_object): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1100 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1101 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1102 + * 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__28, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1102, __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, 1102, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1101 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1104 + * 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__29, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1104, __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, 1104, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1100 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1105 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1106 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1107 + * 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, 1107, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1106 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1095 + * implicit = 0 + * yaml_document_end_event_initialize(event, implicit) + * elif event_class is AliasEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1108 + * 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, 1108, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1109 + * raise MemoryError + * elif event_class is ScalarEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if anchor_object is not None: + */ + __pyx_v_anchor = NULL; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1110 + * 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, 1110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1111 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1112 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1113 + * 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, 1113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1112 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1114 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1115 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1116 + * 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__28, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1116, __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, 1116, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1115 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1118 + * 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__29, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1118, __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, 1118, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1114 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1119 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1111 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1120 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1121 + * 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, 1121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tag_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1122 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1123 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1124 + * 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, 1124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1123 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1125 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1126 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1127 + * 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__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1127, __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, 1127, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1126 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1129 + * 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__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1129, __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, 1129, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1125 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1130 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1122 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1131 + * 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, 1131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_value_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1132 + * 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_2 = (PyUnicode_CheckExact(__pyx_v_value_object) != 0); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1133 + * 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, 1133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_value_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1132 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1134 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1135 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1136 + * 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__32, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1136, __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, 1136, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1135 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1138 + * 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__33, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1138, __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, 1138, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1134 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1139 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1140 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1141 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1142 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1143 + * 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, 1143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1144 + * 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, 1144, __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, 1144, __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, 1144, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_plain_implicit = __pyx_t_5; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1145 + * 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, 1145, __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, 1145, __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, 1145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_quoted_implicit = __pyx_t_5; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1143 + * 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] + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1146 + * 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, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_style_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1147 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1148 + * 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, 1148, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L44_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, 1148, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L44_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1149 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1148 + * 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_L43; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1150 + * 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, 1150, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L46_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, 1150, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L46_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1151 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1150 + * 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_L43; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1152 + * 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, 1152, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L48_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, 1152, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L48_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1153 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1152 + * 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_L43; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1154 + * 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, 1154, __pyx_L1_error) + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L50_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, 1154, __pyx_L1_error) + __pyx_t_2 = __pyx_t_3; + __pyx_L50_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1155 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1154 + * 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_L43:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1157 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1156 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1158 + * 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, 1158, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1156 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1108 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1159 + * 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, 1159, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1160 + * raise MemoryError + * elif event_class is SequenceStartEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if anchor_object is not None: + */ + __pyx_v_anchor = NULL; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1161 + * 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, 1161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1162 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1163 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1164 + * 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, 1164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1163 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1165 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1166 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1167 + * 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__28, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1167, __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, 1167, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1166 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1169 + * 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__29, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1169, __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, 1169, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1165 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1170 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1162 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1171 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1172 + * 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, 1172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tag_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1173 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1174 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1175 + * 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, 1175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1174 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1176 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1177 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1178 + * 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__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1178, __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, 1178, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1177 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1180 + * 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__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1180, __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, 1180, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1176 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1181 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1173 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1182 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1183 + * 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, 1183, __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, 1183, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1184 + * implicit = 0 + * if event_object.implicit: + * implicit = 1 # <<<<<<<<<<<<<< + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + * if event_object.flow_style: + */ + __pyx_v_implicit = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1183 + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + * if event_object.implicit: # <<<<<<<<<<<<<< + * implicit = 1 + * sequence_style = YAML_BLOCK_SEQUENCE_STYLE + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1185 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1186 + * 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, 1186, __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, 1186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1187 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1186 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1189 + * 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_2 = (yaml_sequence_start_event_initialize(__pyx_v_event, __pyx_v_anchor, __pyx_v_tag, __pyx_v_implicit, __pyx_v_sequence_style) == 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1188 + * 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_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1190 + * 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, 1190, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1188 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1159 + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + * elif event_class is SequenceStartEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1191 + * 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, 1191, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1192 + * raise MemoryError + * elif event_class is MappingStartEvent: + * anchor = NULL # <<<<<<<<<<<<<< + * anchor_object = event_object.anchor + * if anchor_object is not None: + */ + __pyx_v_anchor = NULL; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1193 + * 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, 1193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_anchor_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1194 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1195 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1196 + * 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, 1196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1195 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1197 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1198 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1199 + * 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__28, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1199, __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, 1199, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1198 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1201 + * 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__29, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1201, __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, 1201, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1197 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1202 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1194 + * anchor = NULL + * anchor_object = event_object.anchor + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1203 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1204 + * 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, 1204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tag_object = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1205 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1206 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1207 + * 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, 1207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1206 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1208 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1209 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1210 + * 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__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1210, __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, 1210, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1209 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1212 + * 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__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1212, __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, 1212, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1208 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1213 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1205 + * tag = NULL + * tag_object = event_object.tag + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1214 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1215 + * 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, 1215, __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, 1215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1216 + * implicit = 0 + * if event_object.implicit: + * implicit = 1 # <<<<<<<<<<<<<< + * mapping_style = YAML_BLOCK_MAPPING_STYLE + * if event_object.flow_style: + */ + __pyx_v_implicit = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1215 + * tag = PyString_AS_STRING(tag_object) + * implicit = 0 + * if event_object.implicit: # <<<<<<<<<<<<<< + * implicit = 1 + * mapping_style = YAML_BLOCK_MAPPING_STYLE + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1217 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1218 + * 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, 1218, __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, 1218, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1219 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1218 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1221 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1220 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1222 + * 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, 1222, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1220 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1191 + * implicit, sequence_style) == 0: + * raise MemoryError + * elif event_class is MappingStartEvent: # <<<<<<<<<<<<<< + * anchor = NULL + * anchor_object = event_object.anchor + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1223 + * 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, 1223, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1224 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1223 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1225 + * 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, 1225, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1226 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1225 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1228 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1229 + * 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, 1229, __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, 1229, __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, 1229, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1228 + * yaml_mapping_end_event_initialize(event) + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("invalid event %s" % event_object) + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1231 + * 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, 1231, __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, 1231, __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, 1231, __pyx_L1_error) + } + } + __pyx_L3:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1232 + * else: + * raise TypeError(u"invalid event %s" % event_object) + * return 1 # <<<<<<<<<<<<<< + * + * def emit(self, event_object): + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1015 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1234 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_7emit(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_7emit = {"emit", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_7emit, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_7emit(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_event_object = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("emit (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 1234, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_event_object,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_event_object)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1234, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "emit") < 0)) __PYX_ERR(0, 1234, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_event_object = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("emit", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1234, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.emit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_6emit(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self), __pyx_v_event_object); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_6emit(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("emit", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1236 + * 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_6ruamel_4yaml_4clib_12_ruamel_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, 1236, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1237 + * 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, 1237, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1238 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_error = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1239 + * 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, 1239, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1237 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1234 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1241 + * raise error + * + * def open(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_9open(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_9open = {"open", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_9open, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_9open(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 1241, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("open", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "open", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.open", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_8open(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_8open(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1244 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1245 + * 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, 1245, __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, 1245, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1246 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1245 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1247 + * 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, 1247, __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, 1247, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L6_bool_binop_done:; + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1248 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1247 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1250 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1251 + * 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); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1252 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1251 + * else: + * encoding = YAML_UTF8_ENCODING + * if self.use_encoding is None: # <<<<<<<<<<<<<< + * self.dump_unicode = 1 + * if self.dump_unicode == 1: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1253 + * 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_1 = (__pyx_v_self->dump_unicode == 1); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1254 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1253 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1255 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1256 + * 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, 1256, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1257 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_error = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1258 + * 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, 1258, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1256 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1259 + * error = self._emitter_error() + * raise error + * self.closed = 0 # <<<<<<<<<<<<<< + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: + */ + __pyx_v_self->closed = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1244 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1261 + * self.closed = 0 + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1262 + * 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, 1262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s_serializer_is_closed}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1262, __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, 1262, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1261 + * self.closed = 0 + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1264 + * 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, 1264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_u_serializer_is_closed}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1264, __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, 1264, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1260 + * raise error + * self.closed = 0 + * elif self.closed == 1: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise SerializerError("serializer is closed") + */ + break; + default: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1266 + * raise SerializerError(u"serializer is closed") + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is already opened") + * else: + */ + __pyx_t_1 = (PY_MAJOR_VERSION < 3); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1267 + * 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, 1267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s_serializer_is_already_opened}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1267, __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, 1267, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1266 + * raise SerializerError(u"serializer is closed") + * else: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is already opened") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1269 + * 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, 1269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_u_serializer_is_already_opened}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1269, __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, 1269, __pyx_L1_error) + } + break; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1241 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1271 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_11close(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_11close = {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_11close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_11close(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("close (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 1271, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("close", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "close", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.close", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_10close(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_10close(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("close", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1273 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1274 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1275 + * 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, 1275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_serializer_is_not_opened}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1275, __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, 1275, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1274 + * cdef yaml_event_t event + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is not opened") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1277 + * 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, 1277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_serializer_is_not_opened}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1277, __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, 1277, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1273 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1279 + * 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))); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1280 + * 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, 1280, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_5 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1281 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_error = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1282 + * 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, 1282, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1280 + * elif self.closed == 0: + * yaml_stream_end_event_initialize(&event) + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1283 + * error = self._emitter_error() + * raise error + * self.closed = 1 # <<<<<<<<<<<<<< + * + * def serialize(self, node): + */ + __pyx_v_self->closed = 1; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1278 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1271 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1285 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_13serialize(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_13serialize = {"serialize", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_13serialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_13serialize(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_node = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("serialize (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 1285, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_node)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1285, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "serialize") < 0)) __PYX_ERR(0, 1285, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_node = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("serialize", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1285, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.serialize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_12serialize(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self), __pyx_v_node); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_12serialize(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("serialize", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1292 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1293 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1294 + * 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, 1294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_serializer_is_not_opened}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __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, 1294, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1293 + * cdef yaml_tag_directive_t *tag_directives_end + * if self.closed == -1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is not opened") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1296 + * 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, 1296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_serializer_is_not_opened}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1296, __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, 1296, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1292 + * 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: + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1298 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1299 + * 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, 1299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_serializer_is_closed}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1299, __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, 1299, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1298 + * raise SerializerError(u"serializer is not opened") + * elif self.closed == 1: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise SerializerError("serializer is closed") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1301 + * 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, 1301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_serializer_is_closed}; + __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1301, __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, 1301, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1297 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1302 + * 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, 1302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_cache = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1303 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1304 + * 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, 1304, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1305 + * 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, 1305, __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, 1305, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_version_directive_value.major = __pyx_t_5; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1306 + * 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, 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.minor = __pyx_t_5; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1307 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1304 + * cache = [] + * version_directive = NULL + * if self.use_version: # <<<<<<<<<<<<<< + * version_directive_value.major = self.use_version[0] + * version_directive_value.minor = self.use_version[1] + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1308 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1309 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1310 + * 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, 1310, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1311 + * 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, 1311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = (__pyx_t_6 > 0x80); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1312 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1313 + * 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__22, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1313, __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, 1313, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1312 + * if self.use_tags: + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise ValueError("too many tags") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1315 + * 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__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __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, 1315, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1311 + * tag_directives_end = NULL + * if self.use_tags: + * if len(self.use_tags) > 128: # <<<<<<<<<<<<<< + * if PY_MAJOR_VERSION < 3: + * raise ValueError("too many tags") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1316 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1317 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1318 + * 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, 1318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1318, __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, 1318, __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, 1318, __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, 1318, __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, 1318, __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, 1318, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_handle, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1319 + * 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, 1319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1320 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1321 + * 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, 1321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_handle, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1322 + * 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, 1322, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1320 + * for handle in self.use_tags: + * prefix = self.use_tags[handle] + * if PyUnicode_CheckExact(handle): # <<<<<<<<<<<<<< + * handle = PyUnicode_AsUTF8String(handle) + * cache.append(handle) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1323 + * 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)); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1324 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1325 + * 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__24, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1325, __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, 1325, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1324 + * cache.append(handle) + * if not PyString_CheckExact(handle): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag handle must be a string") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1327 + * 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__25, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1327, __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, 1327, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1323 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1328 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1329 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1330 + * 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, 1330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1331 + * 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, 1331, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1329 + * 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) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1332 + * 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)); + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1333 + * 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); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1334 + * 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__26, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1334, __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, 1334, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1333 + * cache.append(prefix) + * if not PyString_CheckExact(prefix): + * if PY_MAJOR_VERSION < 3: # <<<<<<<<<<<<<< + * raise TypeError("tag prefix must be a string") + * else: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1336 + * 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__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1336, __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, 1336, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1332 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1337 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1338 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1318 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1310 + * tag_directives_start = NULL + * tag_directives_end = NULL + * if self.use_tags: # <<<<<<<<<<<<<< + * if len(self.use_tags) > 128: + * if PY_MAJOR_VERSION < 3: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1341 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1339 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1342 + * 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, 1342, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1339 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1343 + * 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, 1343, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_5 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1344 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_error = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1345 + * 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, 1345, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1343 + * self.document_start_implicit) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1346 + * 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_6ruamel_4yaml_4clib_12_ruamel_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, 1346, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1347 + * 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_6ruamel_4yaml_4clib_12_ruamel_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, 1347, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1348 + * 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)); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1349 + * 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, 1349, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_5 == 0); + if (unlikely(__pyx_t_1)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1350 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_error = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1351 + * 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, 1351, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1349 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1352 + * 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, 1352, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1353 + * 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->anchors); + __Pyx_DECREF(__pyx_v_self->anchors); + __pyx_v_self->anchors = __pyx_t_2; + __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1354 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1285 + * 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("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1356 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__anchor_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_anchor_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1357 + * + * 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, 1357, __pyx_L1_error) + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_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 + * self.anchors[node] = u"id%03d" % self.last_alias_id + */ + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->anchors, __pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = (__pyx_t_2 == Py_None); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1359 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1360 + * 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_2 = __Pyx_PyInt_From_int(__pyx_v_self->last_alias_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_id_03d, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_self->anchors, __pyx_v_node, __pyx_t_3) < 0))) __PYX_ERR(0, 1360, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_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 + * self.anchors[node] = u"id%03d" % self.last_alias_id + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1357 + * + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1362 + * 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, 1362, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1363 + * else: + * self.anchors[node] = None + * node_class = node.__class__ # <<<<<<<<<<<<<< + * if node_class is SequenceNode: + * for item in node.value: + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_node_class = __pyx_t_3; + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1364 + * 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_3, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = (__pyx_v_node_class == __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1365 + * 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_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1365, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_4 >= 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_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1365, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_4 >= 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_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1365, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_5(__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, 1365, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3); + __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1366 + * 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_6 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_item); if (unlikely(__pyx_t_6 == ((int)0))) __PYX_ERR(0, 1366, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1365 + * 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_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1364 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1367 + * 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_2, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = (__pyx_v_node_class == __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1368 + * 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_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1368, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1368, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1368, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_3); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(0, 1368, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_2); + } + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + 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, 1368, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L11_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L11_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(0, 1368, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L12_unpacking_done; + __pyx_L11_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 1368, __pyx_L1_error) + __pyx_L12_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); + __pyx_t_8 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1369 + * elif node_class is MappingNode: + * for key, value in node.value: + * self._anchor_node(key) # <<<<<<<<<<<<<< + * self._anchor_node(value) + * return 1 + */ + __pyx_t_6 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_key); if (unlikely(__pyx_t_6 == ((int)0))) __PYX_ERR(0, 1369, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1370 + * for key, value in node.value: + * self._anchor_node(key) + * self._anchor_node(value) # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_6 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_anchor_node(__pyx_v_self, __pyx_v_value); if (unlikely(__pyx_t_6 == ((int)0))) __PYX_ERR(0, 1370, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1368 + * 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_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1367 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1371 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1356 + * 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_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1373 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__serialize_node(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + Py_ssize_t __pyx_t_9; + PyObject *(*__pyx_t_10)(PyObject *); + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_serialize_node", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1386 + * 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, 1386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_anchor_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1387 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1388 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1389 + * 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_2 = (PyUnicode_CheckExact(__pyx_v_anchor_object) != 0); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1390 + * 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, 1390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_anchor_object, __pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1389 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1391 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1392 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1393 + * 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__28, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1393, __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, 1393, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1392 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1395 + * 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__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1395, __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, 1395, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1391 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1396 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1388 + * anchor_object = self.anchors[node] + * anchor = NULL + * if anchor_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(anchor_object): + * anchor_object = PyUnicode_AsUTF8String(anchor_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1397 + * 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_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_node, __pyx_v_self->serialized_nodes, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1397, __pyx_L1_error) + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1398 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1399 + * 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, 1399, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1398 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1400 + * 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_3 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1400, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1401 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * else: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1402 + * 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, 1402, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1400 + * if yaml_alias_event_initialize(&event, anchor) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1397 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1404 + * 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, 1404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_node_class = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1405 + * 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, 1405, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1406 + * node_class = node.__class__ + * self.serialized_nodes[node] = True + * self.descend_resolver(parent, index) # <<<<<<<<<<<<<< + * if node_class is ScalarNode: + * plain_implicit = 0 + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_descend_resolver); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_parent, __pyx_v_index}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 2+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1407 + * 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, 1407, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1408 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1409 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1410 + * 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, 1410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tag_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1411 + * 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_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_5, __pyx_t_6, __pyx_tuple__34}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 3+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1412 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1411 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1413 + * 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, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_t_5, __pyx_tuple__35}; + __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_3, 3+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1413, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1413, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1414 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1413 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1415 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1416 + * quoted_implicit = 1 + * tag = NULL + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1417 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1418 + * 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, 1418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1417 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1419 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1420 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1421 + * 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__30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1421, __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, 1421, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1420 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1423 + * 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__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1423, __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, 1423, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1419 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1424 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1416 + * quoted_implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1425 + * 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, 1425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_value_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1426 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1427 + * 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, 1427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value_object, __pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1426 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1428 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1429 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1430 + * 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__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1430, __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, 1430, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1429 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1432 + * 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__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1432, __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, 1432, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1428 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1433 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1434 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1435 + * 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, 1435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_style_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1436 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1437 + * 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_8 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__7, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1437, __pyx_L1_error) + if (!__pyx_t_8) { + } else { + __pyx_t_2 = __pyx_t_8; + goto __pyx_L21_bool_binop_done; + } + __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__7, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1437, __pyx_L1_error) + __pyx_t_2 = __pyx_t_8; + __pyx_L21_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1438 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1437 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1439 + * 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_8 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__8, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1439, __pyx_L1_error) + if (!__pyx_t_8) { + } else { + __pyx_t_2 = __pyx_t_8; + goto __pyx_L23_bool_binop_done; + } + __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__8, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1439, __pyx_L1_error) + __pyx_t_2 = __pyx_t_8; + __pyx_L23_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1440 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1439 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1441 + * 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_8 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__9, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1441, __pyx_L1_error) + if (!__pyx_t_8) { + } else { + __pyx_t_2 = __pyx_t_8; + goto __pyx_L25_bool_binop_done; + } + __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__9, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1441, __pyx_L1_error) + __pyx_t_2 = __pyx_t_8; + __pyx_L25_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1442 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1441 + * 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; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1443 + * 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_8 = (__Pyx_PyString_Equals(__pyx_v_style_object, __pyx_kp_s__10, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1443, __pyx_L1_error) + if (!__pyx_t_8) { + } else { + __pyx_t_2 = __pyx_t_8; + goto __pyx_L27_bool_binop_done; + } + __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_style_object, __pyx_kp_u__10, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1443, __pyx_L1_error) + __pyx_t_2 = __pyx_t_8; + __pyx_L27_bool_binop_done:; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1444 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1443 + * 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:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1446 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1445 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1447 + * 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, 1447, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1445 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1448 + * 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_3 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1448, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1449 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1450 + * 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, 1450, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1448 + * plain_implicit, quoted_implicit, scalar_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1407 + * self.serialized_nodes[node] = True + * self.descend_resolver(parent, index) + * if node_class is ScalarNode: # <<<<<<<<<<<<<< + * plain_implicit = 0 + * quoted_implicit = 0 + */ + goto __pyx_L10; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1451 + * 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, 1451, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1452 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1453 + * 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, 1453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tag_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1454 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(SequenceNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SequenceNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_5, __pyx_t_6, Py_True}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 3+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1454, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1455 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1454 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(SequenceNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1456 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1457 + * implicit = 1 + * tag = NULL + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1458 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1459 + * 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, 1459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1458 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1460 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1461 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1462 + * 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__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1462, __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, 1462, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1461 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1464 + * 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_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1464, __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, 1464, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1460 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1465 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1457 + * implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1466 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1467 + * 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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_flow_style); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1467, __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, 1467, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1468 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1467 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1470 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1469 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1471 + * 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, 1471, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1469 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1472 + * implicit, sequence_style) == 0: + * raise MemoryError + * 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, 1472, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1473 + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: + * error = self._emitter_error() # <<<<<<<<<<<<<< + * raise error + * item_index = 0 + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_error = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1474 + * 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, 1474, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1472 + * implicit, sequence_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1475 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1476 + * raise error + * item_index = 0 + * for item in node.value: # <<<<<<<<<<<<<< + * self._serialize_node(item, node, item_index) + * item_index = item_index+1 + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + } else { + __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1476, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 1476, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 1476, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_10(__pyx_t_1); + 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, 1476, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1477 + * 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_4 = __Pyx_PyInt_From_int(__pyx_v_item_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_serialize_node(__pyx_v_self, __pyx_v_item, __pyx_v_node, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)0))) __PYX_ERR(0, 1477, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1478 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1476 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1479 + * 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))); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1480 + * 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_3 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1480, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1481 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1482 + * 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, 1482, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1480 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1451 + * error = self._emitter_error() + * raise error + * elif node_class is SequenceNode: # <<<<<<<<<<<<<< + * implicit = 0 + * tag_object = node.tag + */ + goto __pyx_L10; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1483 + * 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, 1483, __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; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1484 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1485 + * 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, 1485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tag_object = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1486 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(MappingNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_resolve); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_t_5, Py_True}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 3+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1487 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1486 + * implicit = 0 + * tag_object = node.tag + * if self.resolve(MappingNode, node.value, True) == tag_object: # <<<<<<<<<<<<<< + * implicit = 1 + * tag = NULL + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1488 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1489 + * implicit = 1 + * tag = NULL + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1490 + * 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) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1491 + * 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, 1491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_tag_object, __pyx_t_4); + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1490 + * 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): + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1492 + * 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)); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1493 + * 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); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1494 + * 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__30, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1494, __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, 1494, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1493 + * 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: + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1496 + * 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_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1496, __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, 1496, __pyx_L1_error) + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1492 + * 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") + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1497 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1489 + * implicit = 1 + * tag = NULL + * if tag_object is not None: # <<<<<<<<<<<<<< + * if PyUnicode_CheckExact(tag_object): + * tag_object = PyUnicode_AsUTF8String(tag_object) + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1498 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1499 + * 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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_flow_style); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1499, __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, 1499, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1500 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1499 + * 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, + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1502 + * 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); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1501 + * 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)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1503 + * 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, 1503, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1501 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1504 + * implicit, mapping_style) == 0: + * raise MemoryError + * 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, 1504, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1505 + * 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_4 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_error = __pyx_t_4; + __pyx_t_4 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1506 + * 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, 1506, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1504 + * implicit, mapping_style) == 0: + * raise MemoryError + * if yaml_emitter_emit(&self.emitter, &event) == 0: # <<<<<<<<<<<<<< + * error = self._emitter_error() + * raise error + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1507 + * 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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + } else { + __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1507, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 1507, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 1507, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { + __pyx_t_4 = __pyx_t_10(__pyx_t_1); + 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, 1507, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_4); + } + if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { + PyObject* sequence = __pyx_t_4; + 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, 1507, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); + index = 0; __pyx_t_5 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L53_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 1; __pyx_t_6 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L53_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1507, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L54_unpacking_done; + __pyx_L53_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 1507, __pyx_L1_error) + __pyx_L54_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_item_key, __pyx_t_5); + __pyx_t_5 = 0; + __Pyx_XDECREF_SET(__pyx_v_item_value, __pyx_t_6); + __pyx_t_6 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1508 + * 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_3 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_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_3 == ((int)0))) __PYX_ERR(0, 1508, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1509 + * 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_3 = ((struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_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_3 == ((int)0))) __PYX_ERR(0, 1509, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1507 + * 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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1510 + * 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))); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1511 + * 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_3 = yaml_emitter_emit((&__pyx_v_self->emitter), (&__pyx_v_event)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1511, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 == 0); + if (unlikely(__pyx_t_2)) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1512 + * 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self->__pyx_vtab)->_emitter_error(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1513 + * 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, 1513, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1511 + * 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 + */ + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1483 + * error = self._emitter_error() + * raise error + * elif node_class is MappingNode: # <<<<<<<<<<<<<< + * implicit = 0 + * tag_object = node.tag + */ + } + __pyx_L10:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1514 + * error = self._emitter_error() + * raise error + * self.ascend_resolver() # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ascend_resolver); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + __pyx_t_3 = 0; + #if CYTHON_UNPACK_METHODS + if (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_3 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[1] = {__pyx_t_6, }; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 0+__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_L7:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1515 + * raise error + * self.ascend_resolver() + * return 1 # <<<<<<<<<<<<<< + * + * cdef int output_handler(void *data, char *buffer, int size) except 0: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1373 + * 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_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_15__reduce_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_15__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_15__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_15__reduce_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 1, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { + __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} + if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; + goto __pyx_L4_argument_unpacking_done; + goto __pyx_L3_error; + __pyx_L3_error:; + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_14__reduce_cython__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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_Raise(__pyx_builtin_TypeError, __pyx_kp_s_Pickling_of_struct_members_such, 0, 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_AddTraceback("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_17__setstate_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_17__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_17__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_17__setstate_cython__(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 3, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v___pyx_state = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_16__setstate_cython__(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_v_self), __pyx_v___pyx_state); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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_Raise(__pyx_builtin_TypeError, __pyx_kp_s_Pickling_of_struct_members_such, 0, 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_AddTraceback("ruamel.yaml.clib._ruamel_yaml.CEmitter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "ruamel/yaml/clib/_ruamel_yaml.pyx":1517 + * return 1 + * + * cdef int output_handler(void *data, char *buffer, int size) except 0: # <<<<<<<<<<<<<< + * cdef CEmitter emitter + * emitter = <CEmitter>data + */ + +static int __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_output_handler(void *__pyx_v_data, char *__pyx_v_buffer, int __pyx_v_size) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("output_handler", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1519 + * cdef int output_handler(void *data, char *buffer, int 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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1520 + * 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); + if (__pyx_t_2) { + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1521 + * 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, 1521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1520 + * cdef CEmitter emitter + * emitter = <CEmitter>data + * if emitter.dump_unicode == 0: # <<<<<<<<<<<<<< + * value = PyString_FromStringAndSize(buffer, size) + * else: + */ + goto __pyx_L3; + } + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1523 + * 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, 1523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + } + __pyx_L3:; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1524 + * 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, 1524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_value}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1524, __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; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1525 + * value = PyUnicode_DecodeUTF8(buffer, size, 'strict') + * emitter.stream.write(value) + * return 1 # <<<<<<<<<<<<<< + * + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1517 + * return 1 + * + * cdef int output_handler(void *data, char *buffer, int 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("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_5__pyx_unpickle_Mark(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyMethodDef __pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_5__pyx_unpickle_Mark = {"__pyx_unpickle_Mark", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_5__pyx_unpickle_Mark, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_5__pyx_unpickle_Mark(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v___pyx_type = 0; + long __pyx_v___pyx_checksum; + PyObject *__pyx_v___pyx_state = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pyx_unpickle_Mark (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); + if (unlikely((__pyx_nargs < 0))) __PYX_ERR(1, 1, __pyx_L3_error) + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) + 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_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Mark", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Mark") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__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, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error) + goto __pyx_L3_error; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_yaml.__pyx_unpickle_Mark", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_6ruamel_4yaml_4clib_12_ruamel_yaml_4__pyx_unpickle_Mark(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + + /* function exit code */ + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_6ruamel_4yaml_4clib_12_ruamel_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 + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_Mark", 0); + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum not in (0x27a7a5c, 0x5c0fd87, 0x3fa45b6): # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 0x3fa45b6) = (buffer, column, index, line, name, pointer))" % __pyx_checksum + */ + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__36, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + /* "(tree fragment)":5 + * cdef object __pyx_result + * if __pyx_checksum not in (0x27a7a5c, 0x5c0fd87, 0x3fa45b6): + * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 0x3fa45b6) = (buffer, column, index, line, name, pointer))" % __pyx_checksum + * __pyx_result = Mark.__new__(__pyx_type) + */ + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_PickleError); + __Pyx_GIVEREF(__pyx_n_s_PickleError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v___pyx_PickleError = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "(tree fragment)":6 + * if __pyx_checksum not in (0x27a7a5c, 0x5c0fd87, 0x3fa45b6): + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 0x3fa45b6) = (buffer, column, index, line, name, pointer))" % __pyx_checksum # <<<<<<<<<<<<<< + * __pyx_result = Mark.__new__(__pyx_type) + * if __pyx_state is not None: + */ + __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 6, __pyx_L1_error) + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum not in (0x27a7a5c, 0x5c0fd87, 0x3fa45b6): # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 0x3fa45b6) = (buffer, column, index, line, name, pointer))" % __pyx_checksum + */ + } + + /* "(tree fragment)":7 + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 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_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + #if CYTHON_UNPACK_METHODS + if (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_5 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_v___pyx_result = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 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_2 = (__pyx_v___pyx_state != Py_None); + if (__pyx_t_2) { + + /* "(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) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error) + __pyx_t_1 = __pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml___pyx_unpickle_Mark__set_state(((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 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_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml___pyx_unpickle_Mark__set_state(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __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 = __Pyx_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); + 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_3 = __pyx_t_5; + __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_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6}; + __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("ruamel.yaml.clib._ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *p; + PyObject *o; + #if CYTHON_COMPILING_IN_LIMITED_API + allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); + o = alloc_func(t, 0); + #else + if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + #endif + p = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark(PyObject *o) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->name); + Py_CLEAR(p->buffer); + Py_CLEAR(p->pointer); + #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY + (*Py_TYPE(o)->tp_free)(o); + #else + { + freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); + if (tp_free) tp_free(o); + } + #endif +} + +static int __pyx_tp_traverse_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4name_1__get__(o); +} + +static PyObject *__pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_index(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5index_1__get__(o); +} + +static PyObject *__pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_line(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_4line_1__get__(o); +} + +static PyObject *__pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_column(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6column_1__get__(o); +} + +static PyObject *__pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_buffer(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_6buffer_1__get__(o); +} + +static PyObject *__pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_pointer(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7pointer_1__get__(o); +} + +static PyMethodDef __pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark[] = { + {"get_snippet", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_3get_snippet, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark[] = { + {(char *)"name", __pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_name, 0, (char *)0, 0}, + {(char *)"index", __pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_index, 0, (char *)0, 0}, + {(char *)"line", __pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_line, 0, (char *)0, 0}, + {(char *)"column", __pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_column, 0, (char *)0, 0}, + {(char *)"buffer", __pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_buffer, 0, (char *)0, 0}, + {(char *)"pointer", __pyx_getprop_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_pointer, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark}, + {Py_tp_str, (void *)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_5__str__}, + {Py_tp_traverse, (void *)__pyx_tp_traverse_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark}, + {Py_tp_clear, (void *)__pyx_tp_clear_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark}, + {Py_tp_methods, (void *)__pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark}, + {Py_tp_getset, (void *)__pyx_getsets_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark}, + {Py_tp_init, (void *)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_1__init__}, + {Py_tp_new, (void *)__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark}, + {0, 0}, +}; +static PyType_Spec __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark_spec = { + "ruamel.yaml.clib._ruamel_yaml.Mark", + sizeof(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, + __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark_slots, +}; +#else + +static PyTypeObject __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark = { + PyVarObject_HEAD_INIT(0, 0) + "ruamel.yaml.clib._ruamel_yaml.""Mark", /*tp_name*/ + sizeof(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, /*tp_traverse*/ + __pyx_tp_clear_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_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 + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; + +static PyObject *__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *p; + PyObject *o; + #if CYTHON_COMPILING_IN_LIMITED_API + allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); + o = alloc_func(t, 0); + #else + if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + #endif + p = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)o); + p->__pyx_vtab = __pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser(PyObject *o) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + 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); + #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY + (*Py_TYPE(o)->tp_free)(o); + #else + { + freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); + if (tp_free) tp_free(o); + } + #endif +} + +static int __pyx_tp_traverse_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser[] = { + {"dispose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_5dispose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"raw_scan", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_7raw_scan, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"get_token", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_9get_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"peek_token", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_11peek_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"check_token", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_13check_token, METH_VARARGS|METH_KEYWORDS, 0}, + {"raw_parse", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_15raw_parse, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"get_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_17get_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"peek_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_19peek_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"check_event", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_21check_event, METH_VARARGS|METH_KEYWORDS, 0}, + {"check_node", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_23check_node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"get_node", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_25get_node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"get_single_node", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_27get_single_node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_29__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_31__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser}, + {Py_tp_traverse, (void *)__pyx_tp_traverse_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser}, + {Py_tp_clear, (void *)__pyx_tp_clear_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser}, + {Py_tp_methods, (void *)__pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser}, + {Py_tp_init, (void *)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_1__init__}, + {Py_tp_new, (void *)__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser}, + {0, 0}, +}; +static PyType_Spec __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser_spec = { + "ruamel.yaml.clib._ruamel_yaml.CParser", + sizeof(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, + __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser_slots, +}; +#else + +static PyTypeObject __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser = { + PyVarObject_HEAD_INIT(0, 0) + "ruamel.yaml.clib._ruamel_yaml.""CParser", /*tp_name*/ + sizeof(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, /*tp_traverse*/ + __pyx_tp_clear_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_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 + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; + +static PyObject *__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *p; + PyObject *o; + #if CYTHON_COMPILING_IN_LIMITED_API + allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); + o = alloc_func(t, 0); + #else + if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + #endif + p = ((struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)o); + p->__pyx_vtab = __pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter(PyObject *o) { + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + 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); + #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY + (*Py_TYPE(o)->tp_free)(o); + #else + { + freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); + if (tp_free) tp_free(o); + } + #endif +} + +static int __pyx_tp_traverse_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *p = (struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter[] = { + {"dispose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_5dispose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"emit", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_7emit, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"open", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_9open, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_11close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"serialize", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_13serialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_15__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_17__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, + {0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter}, + {Py_tp_traverse, (void *)__pyx_tp_traverse_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter}, + {Py_tp_clear, (void *)__pyx_tp_clear_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter}, + {Py_tp_methods, (void *)__pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter}, + {Py_tp_init, (void *)__pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_1__init__}, + {Py_tp_new, (void *)__pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter}, + {0, 0}, +}; +static PyType_Spec __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter_spec = { + "ruamel.yaml.clib._ruamel_yaml.CEmitter", + sizeof(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, + __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter_slots, +}; +#else + +static PyTypeObject __pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter = { + PyVarObject_HEAD_INIT(0, 0) + "ruamel.yaml.clib._ruamel_yaml.""CEmitter", /*tp_name*/ + sizeof(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_6ruamel_4yaml_4clib_12_ruamel_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_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, /*tp_traverse*/ + __pyx_tp_clear_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_pw_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_6ruamel_4yaml_4clib_12_ruamel_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 + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; +#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 +/* #### Code section: pystring_table ### */ + +static int __Pyx_CreateStringTabAndInitStrings(void) { + __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_CEmitter___reduce_cython, __pyx_k_CEmitter___reduce_cython, sizeof(__pyx_k_CEmitter___reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter___setstate_cython, __pyx_k_CEmitter___setstate_cython, sizeof(__pyx_k_CEmitter___setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter_close, __pyx_k_CEmitter_close, sizeof(__pyx_k_CEmitter_close), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter_dispose, __pyx_k_CEmitter_dispose, sizeof(__pyx_k_CEmitter_dispose), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter_emit, __pyx_k_CEmitter_emit, sizeof(__pyx_k_CEmitter_emit), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter_open, __pyx_k_CEmitter_open, sizeof(__pyx_k_CEmitter_open), 0, 0, 1, 1}, + {&__pyx_n_s_CEmitter_serialize, __pyx_k_CEmitter_serialize, sizeof(__pyx_k_CEmitter_serialize), 0, 0, 1, 1}, + {&__pyx_n_s_CParser, __pyx_k_CParser, sizeof(__pyx_k_CParser), 0, 0, 1, 1}, + {&__pyx_n_s_CParser___reduce_cython, __pyx_k_CParser___reduce_cython, sizeof(__pyx_k_CParser___reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_CParser___setstate_cython, __pyx_k_CParser___setstate_cython, sizeof(__pyx_k_CParser___setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_check_event, __pyx_k_CParser_check_event, sizeof(__pyx_k_CParser_check_event), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_check_node, __pyx_k_CParser_check_node, sizeof(__pyx_k_CParser_check_node), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_check_token, __pyx_k_CParser_check_token, sizeof(__pyx_k_CParser_check_token), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_dispose, __pyx_k_CParser_dispose, sizeof(__pyx_k_CParser_dispose), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_get_event, __pyx_k_CParser_get_event, sizeof(__pyx_k_CParser_get_event), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_get_node, __pyx_k_CParser_get_node, sizeof(__pyx_k_CParser_get_node), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_get_single_node, __pyx_k_CParser_get_single_node, sizeof(__pyx_k_CParser_get_single_node), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_get_token, __pyx_k_CParser_get_token, sizeof(__pyx_k_CParser_get_token), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_peek_event, __pyx_k_CParser_peek_event, sizeof(__pyx_k_CParser_peek_event), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_peek_token, __pyx_k_CParser_peek_token, sizeof(__pyx_k_CParser_peek_token), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_raw_parse, __pyx_k_CParser_raw_parse, sizeof(__pyx_k_CParser_raw_parse), 0, 0, 1, 1}, + {&__pyx_n_s_CParser_raw_scan, __pyx_k_CParser_raw_scan, sizeof(__pyx_k_CParser_raw_scan), 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_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 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_Mark___reduce_cython, __pyx_k_Mark___reduce_cython, sizeof(__pyx_k_Mark___reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_Mark___setstate_cython, __pyx_k_Mark___setstate_cython, sizeof(__pyx_k_Mark___setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_Mark_get_snippet, __pyx_k_Mark_get_snippet, sizeof(__pyx_k_Mark_get_snippet), 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__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 0, 1, 0}, + {&__pyx_kp_s__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 0, 1, 0}, + {&__pyx_kp_s__19, __pyx_k__19, sizeof(__pyx_k__19), 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__37, __pyx_k__37, sizeof(__pyx_k__37), 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_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 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_cache, __pyx_k_cache, sizeof(__pyx_k_cache), 0, 0, 1, 1}, + {&__pyx_n_s_canonical, __pyx_k_canonical, sizeof(__pyx_k_canonical), 0, 0, 1, 1}, + {&__pyx_n_s_check_event, __pyx_k_check_event, sizeof(__pyx_k_check_event), 0, 0, 1, 1}, + {&__pyx_n_s_check_node, __pyx_k_check_node, sizeof(__pyx_k_check_node), 0, 0, 1, 1}, + {&__pyx_n_s_check_token, __pyx_k_check_token, sizeof(__pyx_k_check_token), 0, 0, 1, 1}, + {&__pyx_n_s_choice, __pyx_k_choice, sizeof(__pyx_k_choice), 0, 0, 1, 1}, + {&__pyx_n_s_choices, __pyx_k_choices, sizeof(__pyx_k_choices), 0, 0, 1, 1}, + {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, + {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 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_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, + {&__pyx_n_s_column, __pyx_k_column, sizeof(__pyx_k_column), 0, 0, 1, 1}, + {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 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_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1}, + {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0}, + {&__pyx_n_s_dispose, __pyx_k_dispose, sizeof(__pyx_k_dispose), 0, 0, 1, 1}, + {&__pyx_n_s_document, __pyx_k_document, sizeof(__pyx_k_document), 0, 0, 1, 1}, + {&__pyx_n_s_done, __pyx_k_done, sizeof(__pyx_k_done), 0, 0, 1, 1}, + {&__pyx_n_s_emit, __pyx_k_emit, sizeof(__pyx_k_emit), 0, 0, 1, 1}, + {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0}, + {&__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_event, __pyx_k_event, sizeof(__pyx_k_event), 0, 0, 1, 1}, + {&__pyx_n_s_event_class, __pyx_k_event_class, sizeof(__pyx_k_event_class), 0, 0, 1, 1}, + {&__pyx_n_s_event_object, __pyx_k_event_object, sizeof(__pyx_k_event_object), 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_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_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0}, + {&__pyx_n_s_get_event, __pyx_k_get_event, sizeof(__pyx_k_get_event), 0, 0, 1, 1}, + {&__pyx_n_s_get_node, __pyx_k_get_node, sizeof(__pyx_k_get_node), 0, 0, 1, 1}, + {&__pyx_n_s_get_single_node, __pyx_k_get_single_node, sizeof(__pyx_k_get_single_node), 0, 0, 1, 1}, + {&__pyx_n_s_get_snippet, __pyx_k_get_snippet, sizeof(__pyx_k_get_snippet), 0, 0, 1, 1}, + {&__pyx_n_s_get_token, __pyx_k_get_token, sizeof(__pyx_k_get_token), 0, 0, 1, 1}, + {&__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_n_s_handle, __pyx_k_handle, sizeof(__pyx_k_handle), 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_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, + {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 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_mark, __pyx_k_mark, sizeof(__pyx_k_mark), 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_node, __pyx_k_node, sizeof(__pyx_k_node), 0, 0, 1, 1}, + {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, + {&__pyx_n_s_patch, __pyx_k_patch, sizeof(__pyx_k_patch), 0, 0, 1, 1}, + {&__pyx_n_s_peek_event, __pyx_k_peek_event, sizeof(__pyx_k_peek_event), 0, 0, 1, 1}, + {&__pyx_n_s_peek_token, __pyx_k_peek_token, sizeof(__pyx_k_peek_token), 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_prefix, __pyx_k_prefix, sizeof(__pyx_k_prefix), 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_raw_parse, __pyx_k_raw_parse, sizeof(__pyx_k_raw_parse), 0, 0, 1, 1}, + {&__pyx_n_s_raw_scan, __pyx_k_raw_scan, sizeof(__pyx_k_raw_scan), 0, 0, 1, 1}, + {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 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_resolve, __pyx_k_resolve, sizeof(__pyx_k_resolve), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_k_ruamel_yaml_clib__ruamel_yaml, sizeof(__pyx_k_ruamel_yaml_clib__ruamel_yaml), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_composer, __pyx_k_ruamel_yaml_composer, sizeof(__pyx_k_ruamel_yaml_composer), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_constructor, __pyx_k_ruamel_yaml_constructor, sizeof(__pyx_k_ruamel_yaml_constructor), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_emitter, __pyx_k_ruamel_yaml_emitter, sizeof(__pyx_k_ruamel_yaml_emitter), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_error, __pyx_k_ruamel_yaml_error, sizeof(__pyx_k_ruamel_yaml_error), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_events, __pyx_k_ruamel_yaml_events, sizeof(__pyx_k_ruamel_yaml_events), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_nodes, __pyx_k_ruamel_yaml_nodes, sizeof(__pyx_k_ruamel_yaml_nodes), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_parser, __pyx_k_ruamel_yaml_parser, sizeof(__pyx_k_ruamel_yaml_parser), 0, 0, 1, 1}, + {&__pyx_kp_s_ruamel_yaml_pyx, __pyx_k_ruamel_yaml_pyx, sizeof(__pyx_k_ruamel_yaml_pyx), 0, 0, 1, 0}, + {&__pyx_n_s_ruamel_yaml_reader, __pyx_k_ruamel_yaml_reader, sizeof(__pyx_k_ruamel_yaml_reader), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_representer, __pyx_k_ruamel_yaml_representer, sizeof(__pyx_k_ruamel_yaml_representer), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_scanner, __pyx_k_ruamel_yaml_scanner, sizeof(__pyx_k_ruamel_yaml_scanner), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_serializer, __pyx_k_ruamel_yaml_serializer, sizeof(__pyx_k_ruamel_yaml_serializer), 0, 0, 1, 1}, + {&__pyx_n_s_ruamel_yaml_tokens, __pyx_k_ruamel_yaml_tokens, sizeof(__pyx_k_ruamel_yaml_tokens), 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_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, + {&__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_serialize, __pyx_k_serialize, sizeof(__pyx_k_serialize), 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_state, __pyx_k_state, sizeof(__pyx_k_state), 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_n_s_tag_directives_end, __pyx_k_tag_directives_end, sizeof(__pyx_k_tag_directives_end), 0, 0, 1, 1}, + {&__pyx_n_s_tag_directives_start, __pyx_k_tag_directives_start, sizeof(__pyx_k_tag_directives_start), 0, 0, 1, 1}, + {&__pyx_n_s_tag_directives_value, __pyx_k_tag_directives_value, sizeof(__pyx_k_tag_directives_value), 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_token, __pyx_k_token, sizeof(__pyx_k_token), 0, 0, 1, 1}, + {&__pyx_n_s_token_class, __pyx_k_token_class, sizeof(__pyx_k_token_class), 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_n_s_use_setstate, __pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 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_version_directive, __pyx_k_version_directive, sizeof(__pyx_k_version_directive), 0, 0, 1, 1}, + {&__pyx_n_s_version_directive_value, __pyx_k_version_directive_value, sizeof(__pyx_k_version_directive_value), 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}, + {0, 0, 0, 0, 0, 0, 0} + }; + return __Pyx_InitStrings(__pyx_string_tab); +} +/* #### Code section: cached_builtins ### */ +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 264, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 269, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 300, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 355, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} +/* #### Code section: cached_constants ### */ + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":300 + * 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, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":302 + * 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, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":355 + * 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, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":357 + * 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, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":478 + * 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, 478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":480 + * 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, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":656 + * 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, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":658 + * 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, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":917 + * 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__15 = PyTuple_Pack(1, __pyx_kp_s_a_string_value_is_expected); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":919 + * 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__16 = PyTuple_Pack(1, __pyx_kp_u_a_string_value_is_expected); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1011 + * return EmitterError(problem) + * if PY_MAJOR_VERSION < 3: + * raise ValueError("no emitter error") # <<<<<<<<<<<<<< + * else: + * raise ValueError(u"no emitter error") + */ + __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_no_emitter_error); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 1011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__20); + __Pyx_GIVEREF(__pyx_tuple__20); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1013 + * 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__21 = PyTuple_Pack(1, __pyx_kp_u_no_emitter_error); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1057 + * 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__22 = PyTuple_Pack(1, __pyx_kp_s_too_many_tags); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 1057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1059 + * 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__23 = PyTuple_Pack(1, __pyx_kp_u_too_many_tags); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 1059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1070 + * 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__24 = PyTuple_Pack(1, __pyx_kp_s_tag_handle_must_be_a_string); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 1070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__24); + __Pyx_GIVEREF(__pyx_tuple__24); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1072 + * 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__25 = PyTuple_Pack(1, __pyx_kp_u_tag_handle_must_be_a_string); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1079 + * 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__26 = PyTuple_Pack(1, __pyx_kp_s_tag_prefix_must_be_a_string); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__26); + __Pyx_GIVEREF(__pyx_tuple__26); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1081 + * 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__27 = PyTuple_Pack(1, __pyx_kp_u_tag_prefix_must_be_a_string); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 1081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1102 + * 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__28 = PyTuple_Pack(1, __pyx_kp_s_anchor_must_be_a_string); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 1102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__28); + __Pyx_GIVEREF(__pyx_tuple__28); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1104 + * 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__29 = PyTuple_Pack(1, __pyx_kp_u_anchor_must_be_a_string); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 1104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1127 + * 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__30 = PyTuple_Pack(1, __pyx_kp_s_tag_must_be_a_string); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 1127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__30); + __Pyx_GIVEREF(__pyx_tuple__30); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1129 + * 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__31 = PyTuple_Pack(1, __pyx_kp_u_tag_must_be_a_string); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 1129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1136 + * 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__32 = PyTuple_Pack(1, __pyx_kp_s_value_must_be_a_string); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 1136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__32); + __Pyx_GIVEREF(__pyx_tuple__32); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1138 + * 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__33 = PyTuple_Pack(1, __pyx_kp_u_value_must_be_a_string); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 1138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1411 + * 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__34 = PyTuple_Pack(2, Py_True, Py_False); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__34); + __Pyx_GIVEREF(__pyx_tuple__34); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1413 + * 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__35 = PyTuple_Pack(2, Py_False, Py_True); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum not in (0x27a7a5c, 0x5c0fd87, 0x3fa45b6): # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x27a7a5c, 0x5c0fd87, 0x3fa45b6) = (buffer, column, index, line, name, pointer))" % __pyx_checksum + */ + __pyx_tuple__36 = PyTuple_Pack(3, __pyx_int_41581148, __pyx_int_96533895, __pyx_int_66733494); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":3 + * + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + __pyx_tuple__38 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); + __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_get_version_string, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 3, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":11 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + __pyx_tuple__40 = PyTuple_Pack(3, __pyx_n_s_major, __pyx_n_s_minor, __pyx_n_s_patch); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__40); + __Pyx_GIVEREF(__pyx_tuple__40); + __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 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_ruamel_yaml_pyx, __pyx_n_s_get_version, 11, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 11, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":80 + * self.pointer = pointer + * + * def get_snippet(self): # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_tuple__42 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__42); + __Pyx_GIVEREF(__pyx_tuple__42); + __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_get_snippet, 80, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 80, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + __pyx_tuple__44 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); 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(1, 0, 0, 4, 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_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(1, 1, __pyx_L1_error) + + /* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Mark, (type(self), 0x27a7a5c, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(self, __pyx_state) + */ + __pyx_tuple__46 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(1, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__46); + __Pyx_GIVEREF(__pyx_tuple__46); + __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(1, 16, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":313 + * yaml_event_delete(&self.parsed_event) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_dispose, 313, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 313, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":359 + * raise ValueError(u"no parser error") + * + * def raw_scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * cdef int done + */ + __pyx_tuple__49 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_token, __pyx_n_s_done, __pyx_n_s_count, __pyx_n_s_error); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__49); + __Pyx_GIVEREF(__pyx_tuple__49); + __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_raw_scan, 359, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 359, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":482 + * raise ValueError(u"unknown token type") + * + * def get_token(self): # <<<<<<<<<<<<<< + * if self.current_token is not None: + * value = self.current_token + */ + __pyx_tuple__51 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_value); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__51); + __Pyx_GIVEREF(__pyx_tuple__51); + __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_get_token, 482, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 482, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":490 + * return value + * + * def peek_token(self): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_peek_token, 490, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 490, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":495 + * return self.current_token + * + * def check_token(self, *choices): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + __pyx_tuple__54 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_choices, __pyx_n_s_token_class, __pyx_n_s_choice); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__54); + __Pyx_GIVEREF(__pyx_tuple__54); + __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_check_token, 495, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 495, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":508 + * return False + * + * def raw_parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int done + */ + __pyx_tuple__56 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_event, __pyx_n_s_done, __pyx_n_s_count, __pyx_n_s_error); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__56); + __Pyx_GIVEREF(__pyx_tuple__56); + __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_raw_parse, 508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 508, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":660 + * raise ValueError(u"unknown event type") + * + * def get_event(self): # <<<<<<<<<<<<<< + * if self.current_event is not None: + * value = self.current_event + */ + __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_get_event, 660, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 660, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":668 + * return value + * + * def peek_event(self): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_peek_event, 668, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 668, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":673 + * return self.current_event + * + * def check_event(self, *choices): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + __pyx_tuple__60 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_choices, __pyx_n_s_event_class, __pyx_n_s_choice); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__60); + __Pyx_GIVEREF(__pyx_tuple__60); + __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_check_event, 673, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 673, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":686 + * return False + * + * def check_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + */ + __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_check_node, 686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 686, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":695 + * return False + * + * def get_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_get_node, 695, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 695, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":700 + * return self._compose_document() + * + * def get_single_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + */ + __pyx_tuple__64 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_document, __pyx_n_s_mark); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__64); + __Pyx_GIVEREF(__pyx_tuple__64); + __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_get_single_node, 700, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 700, __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): + */ + __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(1, 1, __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" + */ + __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(1, 3, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":998 + * yaml_emitter_delete(&self.emitter) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_ruamel_yaml_pyx, __pyx_n_s_dispose, 998, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 998, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1234 + * return 1 + * + * def emit(self, event_object): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) + */ + __pyx_tuple__69 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_event_object, __pyx_n_s_event, __pyx_n_s_error); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 1234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__69); + __Pyx_GIVEREF(__pyx_tuple__69); + __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_emit, 1234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 1234, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1241 + * raise error + * + * def open(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + */ + __pyx_tuple__71 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_event, __pyx_n_s_encoding, __pyx_n_s_error); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 1241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__71); + __Pyx_GIVEREF(__pyx_tuple__71); + __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_open, 1241, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 1241, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1271 + * raise SerializerError(u"serializer is already opened") + * + * def close(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if self.closed == -1: + */ + __pyx_tuple__73 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_event, __pyx_n_s_error); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 1271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__73); + __Pyx_GIVEREF(__pyx_tuple__73); + __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_close, 1271, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 1271, __pyx_L1_error) + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1285 + * self.closed = 1 + * + * def serialize(self, node): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_version_directive_t version_directive_value + */ + __pyx_tuple__75 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_event, __pyx_n_s_version_directive_value, __pyx_n_s_version_directive, __pyx_n_s_tag_directives_value, __pyx_n_s_tag_directives_start, __pyx_n_s_tag_directives_end, __pyx_n_s_cache, __pyx_n_s_handle, __pyx_n_s_prefix, __pyx_n_s_error); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 1285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__75); + __Pyx_GIVEREF(__pyx_tuple__75); + __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ruamel_yaml_pyx, __pyx_n_s_serialize, 1285, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 1285, __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): + */ + __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(1, 1, __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)" + */ + __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(1, 3, __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__79 = 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__79)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__79); + __Pyx_GIVEREF(__pyx_tuple__79); + __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Mark, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} +/* #### Code section: init_constants ### */ + +static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { + if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 3, __pyx_L1_error); + __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_int_41581148 = PyInt_FromLong(41581148L); if (unlikely(!__pyx_int_41581148)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_int_66733494 = PyInt_FromLong(66733494L); if (unlikely(!__pyx_int_66733494)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_int_96533895 = PyInt_FromLong(96533895L); if (unlikely(!__pyx_int_96533895)) __PYX_ERR(0, 3, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} +/* #### Code section: init_globals ### */ + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + return 0; +} +/* #### Code section: init_module ### */ + +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 + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + #if CYTHON_USE_TYPE_SPECS + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark_spec, NULL); if (unlikely(!__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark)) __PYX_ERR(0, 63, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark_spec, __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + #else + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark = &__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + #endif + #if PY_MAJOR_VERSION < 3 + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark->tp_print = 0; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark->tp_dictoffset && __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark->tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + #endif + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Mark, (PyObject *) __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + #if !CYTHON_COMPILING_IN_LIMITED_API + if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + #endif + __pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser = &__pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._parser_error = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parser_error; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._scan = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__scan; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._token_to_object = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, yaml_token_t *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__token_to_object; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._parse = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parse; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._event_to_object = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, yaml_event_t *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__event_to_object; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._compose_document = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_document; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._compose_node = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *, PyObject *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_node; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._compose_scalar_node = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_scalar_node; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._compose_sequence_node = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_sequence_node; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._compose_mapping_node = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *, PyObject *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__compose_mapping_node; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser._parse_next_event = (int (*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser__parse_next_event; + #if CYTHON_USE_TYPE_SPECS + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser_spec, NULL); if (unlikely(!__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser)) __PYX_ERR(0, 246, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser_spec, __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) < 0) __PYX_ERR(0, 246, __pyx_L1_error) + #else + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser = &__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) < 0) __PYX_ERR(0, 246, __pyx_L1_error) + #endif + #if PY_MAJOR_VERSION < 3 + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser->tp_print = 0; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser->tp_dictoffset && __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser->tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) < 0) __PYX_ERR(0, 246, __pyx_L1_error) + #if !CYTHON_COMPILING_IN_LIMITED_API + if (__Pyx_MergeVtables(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) < 0) __PYX_ERR(0, 246, __pyx_L1_error) + #endif + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CParser, (PyObject *) __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) < 0) __PYX_ERR(0, 246, __pyx_L1_error) + #if !CYTHON_COMPILING_IN_LIMITED_API + if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser) < 0) __PYX_ERR(0, 246, __pyx_L1_error) + #endif + __pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter = &__pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter._emitter_error = (PyObject *(*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__emitter_error; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter._object_to_event = (int (*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *, PyObject *, yaml_event_t *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__object_to_event; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter._anchor_node = (int (*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *, PyObject *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__anchor_node; + __pyx_vtable_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter._serialize_node = (int (*)(struct __pyx_obj_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter *, PyObject *, PyObject *, PyObject *))__pyx_f_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter__serialize_node; + #if CYTHON_USE_TYPE_SPECS + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter_spec, NULL); if (unlikely(!__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter)) __PYX_ERR(0, 934, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter_spec, __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) < 0) __PYX_ERR(0, 934, __pyx_L1_error) + #else + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter = &__pyx_type_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) < 0) __PYX_ERR(0, 934, __pyx_L1_error) + #endif + #if PY_MAJOR_VERSION < 3 + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter->tp_print = 0; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter->tp_dictoffset && __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter->tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, __pyx_vtabptr_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) < 0) __PYX_ERR(0, 934, __pyx_L1_error) + #if !CYTHON_COMPILING_IN_LIMITED_API + if (__Pyx_MergeVtables(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) < 0) __PYX_ERR(0, 934, __pyx_L1_error) + #endif + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CEmitter, (PyObject *) __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) < 0) __PYX_ERR(0, 934, __pyx_L1_error) + #if !CYTHON_COMPILING_IN_LIMITED_API + if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter) < 0) __PYX_ERR(0, 934, __pyx_L1_error) + #endif + __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 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec__ruamel_yaml(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec__ruamel_yaml}, + {0, NULL} +}; +#endif + +#ifdef __cplusplus +namespace { + struct PyModuleDef __pyx_moduledef = + #else + static struct PyModuleDef __pyx_moduledef = + #endif + { + PyModuleDef_HEAD_INIT, + "_ruamel_yaml", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #elif CYTHON_USE_MODULE_STATE + sizeof(__pyx_mstate), /* 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 + #if CYTHON_USE_MODULE_STATE + __pyx_m_traverse, /* m_traverse */ + __pyx_m_clear, /* m_clear */ + NULL /* m_free */ + #else + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ + #endif + }; + #ifdef __cplusplus +} /* anonymous namespace */ +#endif +#endif + +#ifndef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#elif PY_MAJOR_VERSION < 3 +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" void +#else +#define __Pyx_PyMODINIT_FUNC void +#endif +#else +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyObject * +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC init_ruamel_yaml(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC init_ruamel_yaml(void) +#else +__Pyx_PyMODINIT_FUNC PyInit__ruamel_yaml(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit__ruamel_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; +} +#if CYTHON_COMPILING_IN_LIMITED_API +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) +#else +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) +#endif +{ + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { +#if CYTHON_COMPILING_IN_LIMITED_API + result = PyModule_AddObject(module, to_name, value); +#else + result = PyDict_SetItemString(moddict, to_name, value); +#endif + } + 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, PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + CYTHON_UNUSED_VAR(def); + 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; +#if CYTHON_COMPILING_IN_LIMITED_API + moddict = module; +#else + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; +#endif + 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__ruamel_yaml(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + int stringtab_initialized = 0; + #if CYTHON_USE_MODULE_STATE + int pystate_addmodule_run = 0; + #endif + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module '_ruamel_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 + /*--- 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("_ruamel_yaml", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + if (unlikely(!__pyx_m)) __PYX_ERR(0, 3, __pyx_L1_error) + #elif CYTHON_USE_MODULE_STATE + __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error) + { + int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); + __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to _ruamel_yaml pseudovariable */ + if (unlikely((add_module_result < 0))) __PYX_ERR(0, 3, __pyx_L1_error) + pystate_addmodule_run = 1; + } + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + if (unlikely(!__pyx_m)) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + #endif + CYTHON_UNUSED_VAR(__pyx_t_1); + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 3, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 3, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 3, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #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__ruamel_yaml(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 3, __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, 3, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 3, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + PyEval_InitThreads(); + #endif + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 3, __pyx_L1_error) + stringtab_initialized = 1; + if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 3, __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, 3, __pyx_L1_error) + #endif + if (__pyx_module_is_main_ruamel__yaml__clib___ruamel_yaml) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 3, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "ruamel.yaml.clib._ruamel_yaml")) { + if (unlikely((PyDict_SetItemString(modules, "ruamel.yaml.clib._ruamel_yaml", __pyx_m) < 0))) __PYX_ERR(0, 3, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 3, __pyx_L1_error) + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 3, __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))) __PYX_ERR(0, 3, __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, 3, __pyx_L1_error) + #endif + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":3 + * + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_1get_version_string, 0, __pyx_n_s_get_version_string, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_version_string, __pyx_t_2) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":11 + * return PyUnicode_FromString(value) + * + * def get_version(): # <<<<<<<<<<<<<< + * cdef int major, minor, patch + * yaml_get_version(&major, &minor, &patch) + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_3get_version, 0, __pyx_n_s_get_version, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_version, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":17 + * + * #Mark = yaml.error.Mark + * from ruamel.yaml.error import YAMLError # <<<<<<<<<<<<<< + * from ruamel.yaml.reader import ReaderError + * from ruamel.yaml.scanner import ScannerError + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_YAMLError); + __Pyx_GIVEREF(__pyx_n_s_YAMLError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_YAMLError)) __PYX_ERR(0, 17, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_error, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17, __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_YAMLError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_YAMLError, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":18 + * #Mark = yaml.error.Mark + * from ruamel.yaml.error import YAMLError + * from ruamel.yaml.reader import ReaderError # <<<<<<<<<<<<<< + * from ruamel.yaml.scanner import ScannerError + * from ruamel.yaml.parser import ParserError + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_ReaderError); + __Pyx_GIVEREF(__pyx_n_s_ReaderError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ReaderError)) __PYX_ERR(0, 18, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_reader, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ReaderError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ReaderError, __pyx_t_3) < 0) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":19 + * from ruamel.yaml.error import YAMLError + * from ruamel.yaml.reader import ReaderError + * from ruamel.yaml.scanner import ScannerError # <<<<<<<<<<<<<< + * from ruamel.yaml.parser import ParserError + * from ruamel.yaml.composer import ComposerError + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ScannerError); + __Pyx_GIVEREF(__pyx_n_s_ScannerError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ScannerError)) __PYX_ERR(0, 19, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_scanner, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19, __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_ScannerError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScannerError, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":20 + * from ruamel.yaml.reader import ReaderError + * from ruamel.yaml.scanner import ScannerError + * from ruamel.yaml.parser import ParserError # <<<<<<<<<<<<<< + * from ruamel.yaml.composer import ComposerError + * from ruamel.yaml.constructor import ConstructorError + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_ParserError); + __Pyx_GIVEREF(__pyx_n_s_ParserError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ParserError)) __PYX_ERR(0, 20, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_parser, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ParserError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ParserError, __pyx_t_3) < 0) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":21 + * from ruamel.yaml.scanner import ScannerError + * from ruamel.yaml.parser import ParserError + * from ruamel.yaml.composer import ComposerError # <<<<<<<<<<<<<< + * from ruamel.yaml.constructor import ConstructorError + * from ruamel.yaml.emitter import EmitterError + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ComposerError); + __Pyx_GIVEREF(__pyx_n_s_ComposerError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ComposerError)) __PYX_ERR(0, 21, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_composer, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __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_ComposerError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ComposerError, __pyx_t_2) < 0) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":22 + * from ruamel.yaml.parser import ParserError + * from ruamel.yaml.composer import ComposerError + * from ruamel.yaml.constructor import ConstructorError # <<<<<<<<<<<<<< + * from ruamel.yaml.emitter import EmitterError + * from ruamel.yaml.serializer import SerializerError + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_ConstructorError); + __Pyx_GIVEREF(__pyx_n_s_ConstructorError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ConstructorError)) __PYX_ERR(0, 22, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_constructor, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ConstructorError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ConstructorError, __pyx_t_3) < 0) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":23 + * from ruamel.yaml.composer import ComposerError + * from ruamel.yaml.constructor import ConstructorError + * from ruamel.yaml.emitter import EmitterError # <<<<<<<<<<<<<< + * from ruamel.yaml.serializer import SerializerError + * from ruamel.yaml.representer import RepresenterError + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_EmitterError); + __Pyx_GIVEREF(__pyx_n_s_EmitterError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_EmitterError)) __PYX_ERR(0, 23, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_emitter, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __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_EmitterError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EmitterError, __pyx_t_2) < 0) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":24 + * from ruamel.yaml.constructor import ConstructorError + * from ruamel.yaml.emitter import EmitterError + * from ruamel.yaml.serializer import SerializerError # <<<<<<<<<<<<<< + * from ruamel.yaml.representer import RepresenterError + * + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_SerializerError); + __Pyx_GIVEREF(__pyx_n_s_SerializerError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_SerializerError)) __PYX_ERR(0, 24, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_serializer, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_SerializerError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SerializerError, __pyx_t_3) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":25 + * from ruamel.yaml.emitter import EmitterError + * from ruamel.yaml.serializer import SerializerError + * from ruamel.yaml.representer import RepresenterError # <<<<<<<<<<<<<< + * + * from ruamel.yaml.tokens import StreamStartToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_RepresenterError); + __Pyx_GIVEREF(__pyx_n_s_RepresenterError); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_RepresenterError)) __PYX_ERR(0, 25, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_representer, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25, __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_RepresenterError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RepresenterError, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":27 + * from ruamel.yaml.representer import RepresenterError + * + * from ruamel.yaml.tokens import StreamStartToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import StreamEndToken + * from ruamel.yaml.tokens import DirectiveToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_StreamStartToken); + __Pyx_GIVEREF(__pyx_n_s_StreamStartToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_StreamStartToken)) __PYX_ERR(0, 27, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_StreamStartToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamStartToken, __pyx_t_3) < 0) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":28 + * + * from ruamel.yaml.tokens import StreamStartToken + * from ruamel.yaml.tokens import StreamEndToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import DirectiveToken + * from ruamel.yaml.tokens import DocumentStartToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_StreamEndToken); + __Pyx_GIVEREF(__pyx_n_s_StreamEndToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_StreamEndToken)) __PYX_ERR(0, 28, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __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_StreamEndToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamEndToken, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":29 + * from ruamel.yaml.tokens import StreamStartToken + * from ruamel.yaml.tokens import StreamEndToken + * from ruamel.yaml.tokens import DirectiveToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import DocumentStartToken + * from ruamel.yaml.tokens import DocumentEndToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_DirectiveToken); + __Pyx_GIVEREF(__pyx_n_s_DirectiveToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_DirectiveToken)) __PYX_ERR(0, 29, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DirectiveToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DirectiveToken, __pyx_t_3) < 0) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":30 + * from ruamel.yaml.tokens import StreamEndToken + * from ruamel.yaml.tokens import DirectiveToken + * from ruamel.yaml.tokens import DocumentStartToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import DocumentEndToken + * from ruamel.yaml.tokens import BlockSequenceStartToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_DocumentStartToken); + __Pyx_GIVEREF(__pyx_n_s_DocumentStartToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_DocumentStartToken)) __PYX_ERR(0, 30, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __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_DocumentStartToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentStartToken, __pyx_t_2) < 0) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":31 + * from ruamel.yaml.tokens import DirectiveToken + * from ruamel.yaml.tokens import DocumentStartToken + * from ruamel.yaml.tokens import DocumentEndToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import BlockSequenceStartToken + * from ruamel.yaml.tokens import BlockMappingStartToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_DocumentEndToken); + __Pyx_GIVEREF(__pyx_n_s_DocumentEndToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_DocumentEndToken)) __PYX_ERR(0, 31, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DocumentEndToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentEndToken, __pyx_t_3) < 0) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":32 + * from ruamel.yaml.tokens import DocumentStartToken + * from ruamel.yaml.tokens import DocumentEndToken + * from ruamel.yaml.tokens import BlockSequenceStartToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import BlockMappingStartToken + * from ruamel.yaml.tokens import BlockEndToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_BlockSequenceStartToken); + __Pyx_GIVEREF(__pyx_n_s_BlockSequenceStartToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_BlockSequenceStartToken)) __PYX_ERR(0, 32, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 32, __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_BlockSequenceStartToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockSequenceStartToken, __pyx_t_2) < 0) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":33 + * from ruamel.yaml.tokens import DocumentEndToken + * from ruamel.yaml.tokens import BlockSequenceStartToken + * from ruamel.yaml.tokens import BlockMappingStartToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import BlockEndToken + * from ruamel.yaml.tokens import FlowSequenceStartToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_BlockMappingStartToken); + __Pyx_GIVEREF(__pyx_n_s_BlockMappingStartToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_BlockMappingStartToken)) __PYX_ERR(0, 33, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_BlockMappingStartToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockMappingStartToken, __pyx_t_3) < 0) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":34 + * from ruamel.yaml.tokens import BlockSequenceStartToken + * from ruamel.yaml.tokens import BlockMappingStartToken + * from ruamel.yaml.tokens import BlockEndToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import FlowSequenceStartToken + * from ruamel.yaml.tokens import FlowMappingStartToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_BlockEndToken); + __Pyx_GIVEREF(__pyx_n_s_BlockEndToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_BlockEndToken)) __PYX_ERR(0, 34, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 34, __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_BlockEndToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockEndToken, __pyx_t_2) < 0) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":35 + * from ruamel.yaml.tokens import BlockMappingStartToken + * from ruamel.yaml.tokens import BlockEndToken + * from ruamel.yaml.tokens import FlowSequenceStartToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import FlowMappingStartToken + * from ruamel.yaml.tokens import FlowSequenceEndToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_FlowSequenceStartToken); + __Pyx_GIVEREF(__pyx_n_s_FlowSequenceStartToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_FlowSequenceStartToken)) __PYX_ERR(0, 35, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_FlowSequenceStartToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowSequenceStartToken, __pyx_t_3) < 0) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":36 + * from ruamel.yaml.tokens import BlockEndToken + * from ruamel.yaml.tokens import FlowSequenceStartToken + * from ruamel.yaml.tokens import FlowMappingStartToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import FlowSequenceEndToken + * from ruamel.yaml.tokens import FlowMappingEndToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_FlowMappingStartToken); + __Pyx_GIVEREF(__pyx_n_s_FlowMappingStartToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_FlowMappingStartToken)) __PYX_ERR(0, 36, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 36, __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_FlowMappingStartToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowMappingStartToken, __pyx_t_2) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":37 + * from ruamel.yaml.tokens import FlowSequenceStartToken + * from ruamel.yaml.tokens import FlowMappingStartToken + * from ruamel.yaml.tokens import FlowSequenceEndToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import FlowMappingEndToken + * from ruamel.yaml.tokens import KeyToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_FlowSequenceEndToken); + __Pyx_GIVEREF(__pyx_n_s_FlowSequenceEndToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_FlowSequenceEndToken)) __PYX_ERR(0, 37, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_FlowSequenceEndToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowSequenceEndToken, __pyx_t_3) < 0) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":38 + * from ruamel.yaml.tokens import FlowMappingStartToken + * from ruamel.yaml.tokens import FlowSequenceEndToken + * from ruamel.yaml.tokens import FlowMappingEndToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import KeyToken + * from ruamel.yaml.tokens import ValueToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_FlowMappingEndToken); + __Pyx_GIVEREF(__pyx_n_s_FlowMappingEndToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_FlowMappingEndToken)) __PYX_ERR(0, 38, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __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_FlowMappingEndToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowMappingEndToken, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":39 + * from ruamel.yaml.tokens import FlowSequenceEndToken + * from ruamel.yaml.tokens import FlowMappingEndToken + * from ruamel.yaml.tokens import KeyToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import ValueToken + * from ruamel.yaml.tokens import BlockEntryToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_KeyToken); + __Pyx_GIVEREF(__pyx_n_s_KeyToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_KeyToken)) __PYX_ERR(0, 39, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_KeyToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KeyToken, __pyx_t_3) < 0) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":40 + * from ruamel.yaml.tokens import FlowMappingEndToken + * from ruamel.yaml.tokens import KeyToken + * from ruamel.yaml.tokens import ValueToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import BlockEntryToken + * from ruamel.yaml.tokens import FlowEntryToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ValueToken); + __Pyx_GIVEREF(__pyx_n_s_ValueToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ValueToken)) __PYX_ERR(0, 40, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __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_ValueToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ValueToken, __pyx_t_2) < 0) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":41 + * from ruamel.yaml.tokens import KeyToken + * from ruamel.yaml.tokens import ValueToken + * from ruamel.yaml.tokens import BlockEntryToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import FlowEntryToken + * from ruamel.yaml.tokens import AliasToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_BlockEntryToken); + __Pyx_GIVEREF(__pyx_n_s_BlockEntryToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_BlockEntryToken)) __PYX_ERR(0, 41, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_BlockEntryToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BlockEntryToken, __pyx_t_3) < 0) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":42 + * from ruamel.yaml.tokens import ValueToken + * from ruamel.yaml.tokens import BlockEntryToken + * from ruamel.yaml.tokens import FlowEntryToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import AliasToken + * from ruamel.yaml.tokens import AnchorToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_FlowEntryToken); + __Pyx_GIVEREF(__pyx_n_s_FlowEntryToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_FlowEntryToken)) __PYX_ERR(0, 42, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 42, __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_FlowEntryToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlowEntryToken, __pyx_t_2) < 0) __PYX_ERR(0, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":43 + * from ruamel.yaml.tokens import BlockEntryToken + * from ruamel.yaml.tokens import FlowEntryToken + * from ruamel.yaml.tokens import AliasToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import AnchorToken + * from ruamel.yaml.tokens import TagToken + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_AliasToken); + __Pyx_GIVEREF(__pyx_n_s_AliasToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_AliasToken)) __PYX_ERR(0, 43, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_AliasToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AliasToken, __pyx_t_3) < 0) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":44 + * from ruamel.yaml.tokens import FlowEntryToken + * from ruamel.yaml.tokens import AliasToken + * from ruamel.yaml.tokens import AnchorToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import TagToken + * from ruamel.yaml.tokens import ScalarToken + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_AnchorToken); + __Pyx_GIVEREF(__pyx_n_s_AnchorToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_AnchorToken)) __PYX_ERR(0, 44, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __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_AnchorToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AnchorToken, __pyx_t_2) < 0) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":45 + * from ruamel.yaml.tokens import AliasToken + * from ruamel.yaml.tokens import AnchorToken + * from ruamel.yaml.tokens import TagToken # <<<<<<<<<<<<<< + * from ruamel.yaml.tokens import ScalarToken + * + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_TagToken); + __Pyx_GIVEREF(__pyx_n_s_TagToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_TagToken)) __PYX_ERR(0, 45, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TagToken); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TagToken, __pyx_t_3) < 0) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":46 + * from ruamel.yaml.tokens import AnchorToken + * from ruamel.yaml.tokens import TagToken + * from ruamel.yaml.tokens import ScalarToken # <<<<<<<<<<<<<< + * + * from ruamel.yaml.events import StreamStartEvent + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ScalarToken); + __Pyx_GIVEREF(__pyx_n_s_ScalarToken); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ScalarToken)) __PYX_ERR(0, 46, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_tokens, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __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_ScalarToken); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarToken, __pyx_t_2) < 0) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":48 + * from ruamel.yaml.tokens import ScalarToken + * + * from ruamel.yaml.events import StreamStartEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import StreamEndEvent + * from ruamel.yaml.events import DocumentStartEvent + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_StreamStartEvent); + __Pyx_GIVEREF(__pyx_n_s_StreamStartEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_StreamStartEvent)) __PYX_ERR(0, 48, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_StreamStartEvent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamStartEvent, __pyx_t_3) < 0) __PYX_ERR(0, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":49 + * + * from ruamel.yaml.events import StreamStartEvent + * from ruamel.yaml.events import StreamEndEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import DocumentStartEvent + * from ruamel.yaml.events import DocumentEndEvent + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_StreamEndEvent); + __Pyx_GIVEREF(__pyx_n_s_StreamEndEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_StreamEndEvent)) __PYX_ERR(0, 49, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __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_StreamEndEvent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamEndEvent, __pyx_t_2) < 0) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":50 + * from ruamel.yaml.events import StreamStartEvent + * from ruamel.yaml.events import StreamEndEvent + * from ruamel.yaml.events import DocumentStartEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import DocumentEndEvent + * from ruamel.yaml.events import AliasEvent + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_DocumentStartEvent); + __Pyx_GIVEREF(__pyx_n_s_DocumentStartEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_DocumentStartEvent)) __PYX_ERR(0, 50, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DocumentStartEvent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentStartEvent, __pyx_t_3) < 0) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":51 + * from ruamel.yaml.events import StreamEndEvent + * from ruamel.yaml.events import DocumentStartEvent + * from ruamel.yaml.events import DocumentEndEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import AliasEvent + * from ruamel.yaml.events import ScalarEvent + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_DocumentEndEvent); + __Pyx_GIVEREF(__pyx_n_s_DocumentEndEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_DocumentEndEvent)) __PYX_ERR(0, 51, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __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_DocumentEndEvent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DocumentEndEvent, __pyx_t_2) < 0) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":52 + * from ruamel.yaml.events import DocumentStartEvent + * from ruamel.yaml.events import DocumentEndEvent + * from ruamel.yaml.events import AliasEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import ScalarEvent + * from ruamel.yaml.events import SequenceStartEvent + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_AliasEvent); + __Pyx_GIVEREF(__pyx_n_s_AliasEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_AliasEvent)) __PYX_ERR(0, 52, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_AliasEvent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AliasEvent, __pyx_t_3) < 0) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":53 + * from ruamel.yaml.events import DocumentEndEvent + * from ruamel.yaml.events import AliasEvent + * from ruamel.yaml.events import ScalarEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import SequenceStartEvent + * from ruamel.yaml.events import SequenceEndEvent + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ScalarEvent); + __Pyx_GIVEREF(__pyx_n_s_ScalarEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ScalarEvent)) __PYX_ERR(0, 53, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 53, __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_ScalarEvent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarEvent, __pyx_t_2) < 0) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":54 + * from ruamel.yaml.events import AliasEvent + * from ruamel.yaml.events import ScalarEvent + * from ruamel.yaml.events import SequenceStartEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import SequenceEndEvent + * from ruamel.yaml.events import MappingStartEvent + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_SequenceStartEvent); + __Pyx_GIVEREF(__pyx_n_s_SequenceStartEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_SequenceStartEvent)) __PYX_ERR(0, 54, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_SequenceStartEvent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SequenceStartEvent, __pyx_t_3) < 0) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":55 + * from ruamel.yaml.events import ScalarEvent + * from ruamel.yaml.events import SequenceStartEvent + * from ruamel.yaml.events import SequenceEndEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import MappingStartEvent + * from ruamel.yaml.events import MappingEndEvent + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_SequenceEndEvent); + __Pyx_GIVEREF(__pyx_n_s_SequenceEndEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_SequenceEndEvent)) __PYX_ERR(0, 55, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __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_SequenceEndEvent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SequenceEndEvent, __pyx_t_2) < 0) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":56 + * from ruamel.yaml.events import SequenceStartEvent + * from ruamel.yaml.events import SequenceEndEvent + * from ruamel.yaml.events import MappingStartEvent # <<<<<<<<<<<<<< + * from ruamel.yaml.events import MappingEndEvent + * + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_MappingStartEvent); + __Pyx_GIVEREF(__pyx_n_s_MappingStartEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_MappingStartEvent)) __PYX_ERR(0, 56, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MappingStartEvent); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MappingStartEvent, __pyx_t_3) < 0) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":57 + * from ruamel.yaml.events import SequenceEndEvent + * from ruamel.yaml.events import MappingStartEvent + * from ruamel.yaml.events import MappingEndEvent # <<<<<<<<<<<<<< + * + * from ruamel.yaml.nodes import ScalarNode + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_MappingEndEvent); + __Pyx_GIVEREF(__pyx_n_s_MappingEndEvent); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_MappingEndEvent)) __PYX_ERR(0, 57, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_events, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __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_MappingEndEvent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MappingEndEvent, __pyx_t_2) < 0) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":59 + * from ruamel.yaml.events import MappingEndEvent + * + * from ruamel.yaml.nodes import ScalarNode # <<<<<<<<<<<<<< + * from ruamel.yaml.nodes import SequenceNode + * from ruamel.yaml.nodes import MappingNode + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_ScalarNode); + __Pyx_GIVEREF(__pyx_n_s_ScalarNode); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_ScalarNode)) __PYX_ERR(0, 59, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_nodes, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ScalarNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarNode, __pyx_t_3) < 0) __PYX_ERR(0, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":60 + * + * from ruamel.yaml.nodes import ScalarNode + * from ruamel.yaml.nodes import SequenceNode # <<<<<<<<<<<<<< + * from ruamel.yaml.nodes import MappingNode + * + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_SequenceNode); + __Pyx_GIVEREF(__pyx_n_s_SequenceNode); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_SequenceNode)) __PYX_ERR(0, 60, __pyx_L1_error); + __pyx_t_3 = __Pyx_Import(__pyx_n_s_ruamel_yaml_nodes, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __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_SequenceNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SequenceNode, __pyx_t_2) < 0) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":61 + * from ruamel.yaml.nodes import ScalarNode + * from ruamel.yaml.nodes import SequenceNode + * from ruamel.yaml.nodes import MappingNode # <<<<<<<<<<<<<< + * + * cdef class Mark: + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_MappingNode); + __Pyx_GIVEREF(__pyx_n_s_MappingNode); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_MappingNode)) __PYX_ERR(0, 61, __pyx_L1_error); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_ruamel_yaml_nodes, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MappingNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MappingNode, __pyx_t_3) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":80 + * self.pointer = pointer + * + * def get_snippet(self): # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_3get_snippet, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Mark_get_snippet, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, __pyx_n_s_get_snippet, __pyx_t_2) < 0) __PYX_ERR(0, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Mark___reduce_cython, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + + /* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Mark, (type(self), 0x27a7a5c, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Mark__set_state(self, __pyx_state) + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_4Mark_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Mark___setstate_cython, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_Mark); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":313 + * yaml_event_delete(&self.parsed_event) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_5dispose, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_dispose, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_dispose, __pyx_t_2) < 0) __PYX_ERR(0, 313, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":359 + * raise ValueError(u"no parser error") + * + * def raw_scan(self): # <<<<<<<<<<<<<< + * cdef yaml_token_t token + * cdef int done + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_7raw_scan, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_raw_scan, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_raw_scan, __pyx_t_2) < 0) __PYX_ERR(0, 359, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":482 + * raise ValueError(u"unknown token type") + * + * def get_token(self): # <<<<<<<<<<<<<< + * if self.current_token is not None: + * value = self.current_token + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_9get_token, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_get_token, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_get_token, __pyx_t_2) < 0) __PYX_ERR(0, 482, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":490 + * return value + * + * def peek_token(self): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_11peek_token, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_peek_token, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_peek_token, __pyx_t_2) < 0) __PYX_ERR(0, 490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":495 + * return self.current_token + * + * def check_token(self, *choices): # <<<<<<<<<<<<<< + * if self.current_token is None: + * self.current_token = self._scan() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_13check_token, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_check_token, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_check_token, __pyx_t_2) < 0) __PYX_ERR(0, 495, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":508 + * return False + * + * def raw_parse(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef int done + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_15raw_parse, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_raw_parse, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_raw_parse, __pyx_t_2) < 0) __PYX_ERR(0, 508, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":660 + * raise ValueError(u"unknown event type") + * + * def get_event(self): # <<<<<<<<<<<<<< + * if self.current_event is not None: + * value = self.current_event + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_17get_event, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_get_event, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_get_event, __pyx_t_2) < 0) __PYX_ERR(0, 660, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":668 + * return value + * + * def peek_event(self): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_19peek_event, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_peek_event, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_peek_event, __pyx_t_2) < 0) __PYX_ERR(0, 668, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":673 + * return self.current_event + * + * def check_event(self, *choices): # <<<<<<<<<<<<<< + * if self.current_event is None: + * self.current_event = self._parse() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_21check_event, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_check_event, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_check_event, __pyx_t_2) < 0) __PYX_ERR(0, 673, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":686 + * return False + * + * def check_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type == YAML_STREAM_START_EVENT: + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_23check_node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_check_node, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_check_node, __pyx_t_2) < 0) __PYX_ERR(0, 686, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":695 + * return False + * + * def get_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * if self.parsed_event.type != YAML_STREAM_END_EVENT: + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_25get_node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_get_node, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_get_node, __pyx_t_2) < 0) __PYX_ERR(0, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":700 + * return self._compose_document() + * + * def get_single_node(self): # <<<<<<<<<<<<<< + * self._parse_next_event() + * yaml_event_delete(&self.parsed_event) + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_27get_single_node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser_get_single_node, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser, __pyx_n_s_get_single_node, __pyx_t_2) < 0) __PYX_ERR(0, 700, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CParser); + + /* "(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): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_29__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser___reduce_cython, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "(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" + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_7CParser_31__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CParser___setstate_cython, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":998 + * yaml_emitter_delete(&self.emitter) + * + * def dispose(self): # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_5dispose, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter_dispose, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, __pyx_n_s_dispose, __pyx_t_2) < 0) __PYX_ERR(0, 998, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1234 + * return 1 + * + * def emit(self, event_object): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * self._object_to_event(event_object, &event) + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_7emit, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter_emit, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, __pyx_n_s_emit, __pyx_t_2) < 0) __PYX_ERR(0, 1234, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1241 + * raise error + * + * def open(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_encoding_t encoding + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_9open, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter_open, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, __pyx_n_s_open, __pyx_t_2) < 0) __PYX_ERR(0, 1241, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1271 + * raise SerializerError(u"serializer is already opened") + * + * def close(self): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * if self.closed == -1: + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_11close, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter_close, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, __pyx_n_s_close, __pyx_t_2) < 0) __PYX_ERR(0, 1271, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":1285 + * self.closed = 1 + * + * def serialize(self, node): # <<<<<<<<<<<<<< + * cdef yaml_event_t event + * cdef yaml_version_directive_t version_directive_value + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_13serialize, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter_serialize, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter, __pyx_n_s_serialize, __pyx_t_2) < 0) __PYX_ERR(0, 1285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + PyType_Modified(__pyx_ptype_6ruamel_4yaml_4clib_12_ruamel_yaml_CEmitter); + + /* "(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): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_15__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter___reduce_cython, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "(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)" + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_8CEmitter_17__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CEmitter___setstate_cython, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 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_2 = __Pyx_CyFunction_New(&__pyx_mdef_6ruamel_4yaml_4clib_12_ruamel_yaml_5__pyx_unpickle_Mark, 0, __pyx_n_s_pyx_unpickle_Mark, NULL, __pyx_n_s_ruamel_yaml_clib__ruamel_yaml, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Mark, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "ruamel/yaml/clib/_ruamel_yaml.pyx":3 + * + * + * def get_version_string(): # <<<<<<<<<<<<<< + * cdef char *value + * value = yaml_get_version_string() + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /*--- Wrapped vars code ---*/ + + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + if (__pyx_m) { + if (__pyx_d && stringtab_initialized) { + __Pyx_AddTraceback("init ruamel.yaml.clib._ruamel_yaml", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + #if !CYTHON_USE_MODULE_STATE + Py_CLEAR(__pyx_m); + #else + Py_DECREF(__pyx_m); + if (pystate_addmodule_run) { + PyObject *tp, *value, *tb; + PyErr_Fetch(&tp, &value, &tb); + PyState_RemoveModule(&__pyx_moduledef); + PyErr_Restore(tp, value, tb); + } + #endif + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init ruamel.yaml.clib._ruamel_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 +} +/* #### Code section: cleanup_globals ### */ +/* #### Code section: cleanup_module ### */ +/* #### Code section: main_method ### */ +/* #### Code section: utility_code_pragmas ### */ +#ifdef _MSC_VER +#pragma warning( push ) +/* Warning 4127: conditional expression is constant + * Cython uses constant conditional expressions to allow in inline functions to be optimized at + * compile-time, so this warning is not useful + */ +#pragma warning( disable : 4127 ) +#endif + + + +/* #### Code section: utility_code_def ### */ + +/* --- 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 + +/* 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) { + int result; + PyObject *exc_type; +#if PY_VERSION_HEX >= 0x030C00A6 + PyObject *current_exception = tstate->current_exception; + if (unlikely(!current_exception)) return 0; + exc_type = (PyObject*) Py_TYPE(current_exception); + if (exc_type == err) return 1; +#else + exc_type = tstate->curexc_type; + if (exc_type == err) return 1; + if (unlikely(!exc_type)) return 0; +#endif + #if CYTHON_AVOID_BORROWED_REFS + Py_INCREF(exc_type); + #endif + if (unlikely(PyTuple_Check(err))) { + result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); + } else { + result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err); + } + #if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(exc_type); + #endif + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { +#if PY_VERSION_HEX >= 0x030C00A6 + PyObject *tmp_value; + assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value))); + if (value) { + #if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb)) + #endif + PyException_SetTraceback(value, tb); + } + tmp_value = tstate->current_exception; + tstate->current_exception = value; + Py_XDECREF(tmp_value); +#else + 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); +#endif +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { +#if PY_VERSION_HEX >= 0x030C00A6 + PyObject* exc_value; + exc_value = tstate->current_exception; + tstate->current_exception = 0; + *value = exc_value; + *type = NULL; + *tb = NULL; + if (exc_value) { + *type = (PyObject*) Py_TYPE(exc_value); + Py_INCREF(*type); + #if CYTHON_COMPILING_IN_CPYTHON + *tb = ((PyBaseExceptionObject*) exc_value)->traceback; + Py_XINCREF(*tb); + #else + *tb = PyException_GetTraceback(exc_value); + #endif + } +#else + *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 +} +#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 + +/* PyObjectGetAttrStrNoError */ +static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + __Pyx_PyErr_Clear(); +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { + PyObject *result; +#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { + return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); + } +#endif + result = __Pyx_PyObject_GetAttrStr(obj, attr_name); + if (unlikely(!result)) { + __Pyx_PyObject_GetAttrStr_ClearAttributeError(); + } + return result; +} + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name); + if (unlikely(!result) && !PyErr_Occurred()) { + 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; +} + +/* TupleAndListFromArray */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) { + PyObject *v; + Py_ssize_t i; + for (i = 0; i < length; i++) { + v = dest[i] = src[i]; + Py_INCREF(v); + } +} +static CYTHON_INLINE PyObject * +__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) +{ + PyObject *res; + if (n <= 0) { + Py_INCREF(__pyx_empty_tuple); + return __pyx_empty_tuple; + } + res = PyTuple_New(n); + if (unlikely(res == NULL)) return NULL; + __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n); + return res; +} +static CYTHON_INLINE PyObject * +__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) +{ + PyObject *res; + if (n <= 0) { + return PyList_New(0); + } + res = PyList_New(n); + if (unlikely(res == NULL)) return NULL; + __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n); + return res; +} +#endif + +/* BytesEquals */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API + 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_VERSION_HEX < 0x030B0000) + 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 || CYTHON_COMPILING_IN_LIMITED_API + 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 +} + +/* fastcall */ +#if CYTHON_METH_FASTCALL +static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s) +{ + Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames); + for (i = 0; i < n; i++) + { + if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i]; + } + for (i = 0; i < n; i++) + { + int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ); + if (unlikely(eq != 0)) { + if (unlikely(eq < 0)) return NULL; // error + return kwvalues[i]; + } + } + return NULL; // not found (no exception set) +} +#endif + +/* 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 *const *kwvalues, + 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; + int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)); + while (1) { + Py_XDECREF(key); key = NULL; + Py_XDECREF(value); value = NULL; + if (kwds_is_tuple) { + Py_ssize_t size; +#if CYTHON_ASSUME_SAFE_MACROS + size = PyTuple_GET_SIZE(kwds); +#else + size = PyTuple_Size(kwds); + if (size < 0) goto bad; +#endif + if (pos >= size) break; +#if CYTHON_AVOID_BORROWED_REFS + key = __Pyx_PySequence_ITEM(kwds, pos); + if (!key) goto bad; +#elif CYTHON_ASSUME_SAFE_MACROS + key = PyTuple_GET_ITEM(kwds, pos); +#else + key = PyTuple_GetItem(kwds, pos); + if (!key) goto bad; +#endif + value = kwvalues[pos]; + pos++; + } + else + { + if (!PyDict_Next(kwds, &pos, &key, &value)) break; +#if CYTHON_AVOID_BORROWED_REFS + Py_INCREF(key); +#endif + } + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; +#if CYTHON_AVOID_BORROWED_REFS + Py_INCREF(value); // transfer ownership of value to values + Py_DECREF(key); +#endif + key = NULL; + value = NULL; + continue; + } +#if !CYTHON_AVOID_BORROWED_REFS + Py_INCREF(key); +#endif + Py_INCREF(value); + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (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; +#if CYTHON_AVOID_BORROWED_REFS + value = NULL; // ownership transferred to values +#endif + 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 = ( + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key) + ); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; +#if CYTHON_AVOID_BORROWED_REFS + value = NULL; // ownership transferred to values +#endif + 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 + (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(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; + } + } + Py_XDECREF(key); + Py_XDECREF(value); + 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: + #if PY_MAJOR_VERSION < 3 + PyErr_Format(PyExc_TypeError, + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + PyErr_Format(PyExc_TypeError, + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + Py_XDECREF(key); + Py_XDECREF(value); + return -1; +} + +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kw, + 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(kw, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) { + Py_ssize_t kwsize; +#if CYTHON_ASSUME_SAFE_MACROS + kwsize = PyTuple_GET_SIZE(kw); +#else + kwsize = PyTuple_Size(kw); + if (kwsize < 0) return 0; +#endif + if (unlikely(kwsize == 0)) + return 1; + if (!kw_allowed) { +#if CYTHON_ASSUME_SAFE_MACROS + key = PyTuple_GET_ITEM(kw, 0); +#else + key = PyTuple_GetItem(kw, pos); + if (!key) return 0; +#endif + goto invalid_keyword; + } +#if PY_VERSION_HEX < 0x03090000 + for (pos = 0; pos < kwsize; pos++) { +#if CYTHON_ASSUME_SAFE_MACROS + key = PyTuple_GET_ITEM(kw, pos); +#else + key = PyTuple_GetItem(kw, pos); + if (!key) return 0; +#endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } +#endif + return 1; + } + while (PyDict_Next(kw, &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: + #if PY_MAJOR_VERSION < 3 + PyErr_Format(PyExc_TypeError, + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + PyErr_Format(PyExc_TypeError, + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* 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; +#if CYTHON_USE_TYPE_SLOTS + if (likely(PyString_Check(n))) { + r = __Pyx_PyObject_GetAttrStrNoError(o, n); + if (unlikely(!r) && likely(!PyErr_Occurred())) { + r = __Pyx_NewRef(d); + } + return r; + } +#endif + r = PyObject_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; + } +#elif CYTHON_COMPILING_IN_LIMITED_API + if (unlikely(!__pyx_m)) { + return NULL; + } + result = PyObject_GetAttr(__pyx_m, name); + if (likely(result)) { + return result; + } +#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); +} + +/* RaiseUnexpectedTypeError */ +static int +__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj) +{ + __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); + PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME, + expected, obj_type_name); + __Pyx_DECREF_TypeName(obj_type_name); + return 0; +} + +/* GetTopmostException */ +#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE +static _PyErr_StackItem * +__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) +{ + _PyErr_StackItem *exc_info = tstate->exc_info; + while ((exc_info->exc_value == NULL || exc_info->exc_value == 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 && PY_VERSION_HEX >= 0x030B00a4 + _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); + PyObject *exc_value = exc_info->exc_value; + if (exc_value == NULL || exc_value == Py_None) { + *value = NULL; + *type = NULL; + *tb = NULL; + } else { + *value = exc_value; + Py_INCREF(*value); + *type = (PyObject*) Py_TYPE(exc_value); + Py_INCREF(*type); + *tb = PyException_GetTraceback(exc_value); + } + #elif 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; + Py_XINCREF(*type); + Py_XINCREF(*value); + Py_XINCREF(*tb); + #else + *type = tstate->exc_type; + *value = tstate->exc_value; + *tb = tstate->exc_traceback; + Py_XINCREF(*type); + Py_XINCREF(*value); + Py_XINCREF(*tb); + #endif +} +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 + _PyErr_StackItem *exc_info = tstate->exc_info; + PyObject *tmp_value = exc_info->exc_value; + exc_info->exc_value = value; + Py_XDECREF(tmp_value); + Py_XDECREF(type); + Py_XDECREF(tb); + #else + 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 +} +#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 = NULL, *local_value, *local_tb = NULL; +#if CYTHON_FAST_THREAD_STATE + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if PY_VERSION_HEX >= 0x030C00A6 + local_value = tstate->current_exception; + tstate->current_exception = 0; + if (likely(local_value)) { + local_type = (PyObject*) Py_TYPE(local_value); + Py_INCREF(local_type); + local_tb = PyException_GetTraceback(local_value); + } + #else + 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; + #endif +#else + PyErr_Fetch(&local_type, &local_value, &local_tb); +#endif + PyErr_NormalizeException(&local_type, &local_value, &local_tb); +#if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6 + if (unlikely(tstate->current_exception)) +#elif 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; + #if PY_VERSION_HEX >= 0x030B00a4 + tmp_value = exc_info->exc_value; + exc_info->exc_value = local_value; + tmp_type = NULL; + tmp_tb = NULL; + Py_XDECREF(local_type); + Py_XDECREF(local_tb); + #else + 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; + #endif + } + #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 = Py_TYPE(func)->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, PyObject *cause) { + __Pyx_PyThreadState_declare + CYTHON_UNUSED_VAR(cause); + 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 PY_VERSION_HEX >= 0x030C00A6 + PyException_SetTraceback(value, tb); + #elif CYTHON_FAST_THREAD_STATE + 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); + } +#else + 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); +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL +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; +} +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 (unlikely(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 + +/* 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 + +/* PyObjectFastCall */ +static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) { + PyObject *argstuple; + PyObject *result = 0; + size_t i; + argstuple = PyTuple_New((Py_ssize_t)nargs); + if (unlikely(!argstuple)) return NULL; + for (i = 0; i < nargs; i++) { + Py_INCREF(args[i]); + if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad; + } + result = __Pyx_PyObject_Call(func, argstuple, kwargs); + bad: + Py_DECREF(argstuple); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) { + Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs); +#if CYTHON_COMPILING_IN_CPYTHON + if (nargs == 0 && kwargs == NULL) { +#if defined(__Pyx_CyFunction_USED) && defined(NDEBUG) + if (__Pyx_IsCyOrPyCFunction(func)) +#else + if (PyCFunction_Check(func)) +#endif + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { + return __Pyx_PyObject_CallMethO(func, NULL); + } + } + } + else if (nargs == 1 && kwargs == NULL) { + if (PyCFunction_Check(func)) + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, args[0]); + } + } + } +#endif + #if PY_VERSION_HEX < 0x030800B1 + #if CYTHON_FAST_PYCCALL + if (PyCFunction_Check(func)) { + if (kwargs) { + return _PyCFunction_FastCallDict(func, args, nargs, kwargs); + } else { + return _PyCFunction_FastCallKeywords(func, args, nargs, NULL); + } + } + #if PY_VERSION_HEX >= 0x030700A1 + if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) { + return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL); + } + #endif + #endif + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs); + } + #endif + #endif + #if CYTHON_VECTORCALL + #if Py_VERSION_HEX < 0x03090000 + vectorcallfunc f = _PyVectorcall_Function(func); + #else + vectorcallfunc f = PyVectorcall_Function(func); + #endif + if (f) { + return f(func, args, (size_t)nargs, kwargs); + } + #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL + if (__Pyx_CyFunction_CheckExact(func)) { + __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func); + if (f) return f(func, args, (size_t)nargs, kwargs); + } + #endif + if (nargs == 0) { + return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs); + } + return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs); +} + +/* GetItemInt */ +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + PyObject *r; + if (unlikely(!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 { + PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; + PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; + if (mm && mm->mp_subscript) { + PyObject *r, *key = PyInt_FromSsize_t(i); + if (unlikely(!key)) return NULL; + r = mm->mp_subscript(o, key); + Py_DECREF(key); + return r; + } + if (likely(sm && sm->sq_item)) { + if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { + Py_ssize_t l = sm->sq_length(o); + if (likely(l >= 0)) { + i += l; + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + return NULL; + PyErr_Clear(); + } + } + return sm->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)); +} + +/* PyObjectCallOneArg */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *args[2] = {NULL, arg}; + return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); +} + +/* ObjectGetItem */ +#if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) { + PyObject *runerr = NULL; + Py_ssize_t key_value; + 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)) { + __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index)); + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, + "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name); + __Pyx_DECREF_TypeName(index_type_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) { + __Pyx_TypeName obj_type_name; + if (likely(PyType_Check(obj))) { + PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem); + if (meth) { + PyObject *result = __Pyx_PyObject_CallOneArg(meth, key); + Py_DECREF(meth); + return result; + } + } + obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); + PyErr_Format(PyExc_TypeError, + "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name); + __Pyx_DECREF_TypeName(obj_type_name); + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) { + PyTypeObject *tp = Py_TYPE(obj); + PyMappingMethods *mm = tp->tp_as_mapping; + PySequenceMethods *sm = tp->tp_as_sequence; + if (likely(mm && mm->mp_subscript)) { + return mm->mp_subscript(obj, key); + } + if (likely(sm && sm->sq_item)) { + return __Pyx_PyObject_GetIndex(obj, key); + } + return __Pyx_PyObject_GetItem_Slow(obj, key); +} +#endif + +/* RaiseUnboundLocalError */ +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 + +/* 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); +} + +/* 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 (!r) { + PyErr_Clear(); + return 0; + } else { + Py_DECREF(r); + return 1; + } +} + +/* 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) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); + if (unlikely(exc_type)) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) + return -1; + __Pyx_PyErr_Clear(); + return 0; + } + return 0; +} + +/* UnpackItemEndCheck */ +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { + if (unlikely(retval)) { + Py_DECREF(retval); + __Pyx_RaiseTooManyValuesError(expected); + return -1; + } + return __Pyx_IterFinish(); +} + +/* Import */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + PyObject *module = 0; + PyObject *empty_dict = 0; + PyObject *empty_list = 0; + #if PY_MAJOR_VERSION < 3 + PyObject *py_import; + py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); + if (unlikely(!py_import)) + goto bad; + if (!from_list) { + empty_list = PyList_New(0); + if (unlikely(!empty_list)) + goto bad; + from_list = empty_list; + } + #endif + empty_dict = PyDict_New(); + if (unlikely(!empty_dict)) + goto bad; + { + #if PY_MAJOR_VERSION >= 3 + if (level == -1) { + if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { + module = PyImport_ImportModuleLevelObject( + name, __pyx_d, empty_dict, from_list, 1); + if (unlikely(!module)) { + if (unlikely(!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 (unlikely(!py_level)) + goto bad; + module = PyObject_CallFunctionObjArgs(py_import, + name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL); + Py_DECREF(py_level); + #else + module = PyImport_ImportModuleLevelObject( + name, __pyx_d, empty_dict, from_list, level); + #endif + } + } +bad: + Py_XDECREF(empty_dict); + Py_XDECREF(empty_list); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_import); + #endif + 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)) { + const char* module_name_str = 0; + PyObject* module_name = 0; + PyObject* module_dot = 0; + PyObject* full_name = 0; + PyErr_Clear(); + module_name_str = PyModule_GetName(module); + if (unlikely(!module_name_str)) { goto modbad; } + module_name = PyUnicode_FromString(module_name_str); + if (unlikely(!module_name)) { goto modbad; } + module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__37); + if (unlikely(!module_dot)) { goto modbad; } + full_name = PyUnicode_Concat(module_dot, name); + if (unlikely(!full_name)) { goto modbad; } + #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) + { + PyObject *modules = PyImport_GetModuleDict(); + if (unlikely(!modules)) + goto modbad; + value = PyObject_GetItem(modules, full_name); + } + #else + value = PyImport_GetModule(full_name); + #endif + modbad: + Py_XDECREF(full_name); + Py_XDECREF(module_dot); + Py_XDECREF(module_name); + } + if (unlikely(!value)) { + 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; +} + +/* FixUpExtensionType */ +#if CYTHON_USE_TYPE_SPECS +static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) { +#if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API + CYTHON_UNUSED_VAR(spec); + CYTHON_UNUSED_VAR(type); +#else + const PyType_Slot *slot = spec->slots; + while (slot && slot->slot && slot->slot != Py_tp_members) + slot++; + if (slot && slot->slot == Py_tp_members) { + int changed = 0; +#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON) + const +#endif + PyMemberDef *memb = (PyMemberDef*) slot->pfunc; + while (memb && memb->name) { + if (memb->name[0] == '_' && memb->name[1] == '_') { +#if PY_VERSION_HEX < 0x030900b1 + if (strcmp(memb->name, "__weaklistoffset__") == 0) { + assert(memb->type == T_PYSSIZET); + assert(memb->flags == READONLY); + type->tp_weaklistoffset = memb->offset; + changed = 1; + } + else if (strcmp(memb->name, "__dictoffset__") == 0) { + assert(memb->type == T_PYSSIZET); + assert(memb->flags == READONLY); + type->tp_dictoffset = memb->offset; + changed = 1; + } +#if CYTHON_METH_FASTCALL + else if (strcmp(memb->name, "__vectorcalloffset__") == 0) { + assert(memb->type == T_PYSSIZET); + assert(memb->flags == READONLY); +#if PY_VERSION_HEX >= 0x030800b4 + type->tp_vectorcall_offset = memb->offset; +#else + type->tp_print = (printfunc) memb->offset; +#endif + changed = 1; + } +#endif +#else + if ((0)); +#endif +#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON + else if (strcmp(memb->name, "__module__") == 0) { + PyObject *descr; + assert(memb->type == T_OBJECT); + assert(memb->flags == 0 || memb->flags == READONLY); + descr = PyDescr_NewMember(type, memb); + if (unlikely(!descr)) + return -1; + if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) { + Py_DECREF(descr); + return -1; + } + Py_DECREF(descr); + changed = 1; + } +#endif + } + memb++; + } + if (changed) + PyType_Modified(type); + } +#endif + return 0; +} +#endif + +/* PyObjectCallNoArg */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { + PyObject *arg = NULL; + return __Pyx_PyObject_FastCall(func, (&arg)+1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); +} + +/* PyObjectGetMethod */ +static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { + PyObject *attr; +#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP + __Pyx_TypeName type_name; + PyTypeObject *tp = Py_TYPE(obj); + PyObject *descr; + descrgetfunc f = NULL; + PyObject **dictptr, *dict; + int meth_found = 0; + assert (*method == NULL); + if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { + attr = __Pyx_PyObject_GetAttrStr(obj, name); + goto try_unpack; + } + if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { + return 0; + } + descr = _PyType_Lookup(tp, name); + if (likely(descr != NULL)) { + Py_INCREF(descr); +#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR + if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) +#elif PY_MAJOR_VERSION >= 3 + #ifdef __Pyx_CyFunction_USED + if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) + #else + if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type))) + #endif +#else + #ifdef __Pyx_CyFunction_USED + if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) + #else + if (likely(PyFunction_Check(descr))) + #endif +#endif + { + meth_found = 1; + } else { + f = Py_TYPE(descr)->tp_descr_get; + if (f != NULL && PyDescr_IsData(descr)) { + attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); + Py_DECREF(descr); + goto try_unpack; + } + } + } + dictptr = _PyObject_GetDictPtr(obj); + if (dictptr != NULL && (dict = *dictptr) != NULL) { + Py_INCREF(dict); + attr = __Pyx_PyDict_GetItemStr(dict, name); + if (attr != NULL) { + Py_INCREF(attr); + Py_DECREF(dict); + Py_XDECREF(descr); + goto try_unpack; + } + Py_DECREF(dict); + } + if (meth_found) { + *method = descr; + return 1; + } + if (f != NULL) { + attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); + Py_DECREF(descr); + goto try_unpack; + } + if (likely(descr != NULL)) { + *method = descr; + return 0; + } + type_name = __Pyx_PyType_GetName(tp); + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", + type_name, name); +#else + "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", + type_name, PyString_AS_STRING(name)); +#endif + __Pyx_DECREF_TypeName(type_name); + return 0; +#else + attr = __Pyx_PyObject_GetAttrStr(obj, name); + goto try_unpack; +#endif +try_unpack: +#if CYTHON_UNPACK_METHODS + if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { + PyObject *function = PyMethod_GET_FUNCTION(attr); + Py_INCREF(function); + Py_DECREF(attr); + *method = function; + return 1; + } +#endif + *method = attr; + return 0; +} + +/* PyObjectCallMethod0 */ +static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { + PyObject *method = NULL, *result = NULL; + int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); + if (likely(is_method)) { + result = __Pyx_PyObject_CallOneArg(method, obj); + Py_DECREF(method); + return result; + } + if (unlikely(!method)) goto bad; + result = __Pyx_PyObject_CallNoArg(method); + Py_DECREF(method); +bad: + return result; +} + +/* ValidateBasesTuple */ +#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS +static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) { + Py_ssize_t i, n; +#if CYTHON_ASSUME_SAFE_MACROS + n = PyTuple_GET_SIZE(bases); +#else + n = PyTuple_Size(bases); + if (n < 0) return -1; +#endif + for (i = 1; i < n; i++) + { +#if CYTHON_AVOID_BORROWED_REFS + PyObject *b0 = PySequence_GetItem(bases, i); + if (!b0) return -1; +#elif CYTHON_ASSUME_SAFE_MACROS + PyObject *b0 = PyTuple_GET_ITEM(bases, i); +#else + PyObject *b0 = PyTuple_GetItem(bases, i); + if (!b0) return -1; +#endif + PyTypeObject *b; +#if PY_MAJOR_VERSION < 3 + if (PyClass_Check(b0)) + { + PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class", + PyString_AS_STRING(((PyClassObject*)b0)->cl_name)); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + return -1; + } +#endif + b = (PyTypeObject*) b0; + if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE)) + { + __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); + PyErr_Format(PyExc_TypeError, + "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name); + __Pyx_DECREF_TypeName(b_name); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + return -1; + } +#if !CYTHON_USE_TYPE_SLOTS + if (dictoffset == 0) { + PyErr_Format(PyExc_TypeError, + "extension type '%s.200s': " + "unable to validate whether bases have a __dict__ " + "when CYTHON_USE_TYPE_SLOTS is off " + "(likely because you are building in the limited API). " + "Therefore, all extension types with multiple bases " + "must add 'cdef dict __dict__' in this compilation mode", + type_name); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + return -1; + } +#else + if (dictoffset == 0 && b->tp_dictoffset) + { + __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); + PyErr_Format(PyExc_TypeError, + "extension type '%.200s' has no __dict__ slot, " + "but base type '" __Pyx_FMT_TYPENAME "' has: " + "either add 'cdef dict __dict__' to the extension type " + "or add '__slots__ = [...]' to the base type", + type_name, b_name); + __Pyx_DECREF_TypeName(b_name); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + return -1; + } +#endif +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + } + return 0; +} +#endif + +/* PyType_Ready */ +static int __Pyx_PyType_Ready(PyTypeObject *t) { +#if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION) + (void)__Pyx_PyObject_CallMethod0; +#if CYTHON_USE_TYPE_SPECS + (void)__Pyx_validate_bases_tuple; +#endif + return PyType_Ready(t); +#else + int r; + PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); + if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1)) + return -1; +#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) + { + int gc_was_enabled; + #if PY_VERSION_HEX >= 0x030A00b1 + gc_was_enabled = PyGC_Disable(); + (void)__Pyx_PyObject_CallMethod0; + #else + PyObject *ret, *py_status; + PyObject *gc = NULL; + #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) + gc = PyImport_GetModule(__pyx_kp_u_gc); + #endif + if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc); + if (unlikely(!gc)) return -1; + py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled); + if (unlikely(!py_status)) { + Py_DECREF(gc); + return -1; + } + gc_was_enabled = __Pyx_PyObject_IsTrue(py_status); + Py_DECREF(py_status); + if (gc_was_enabled > 0) { + ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable); + if (unlikely(!ret)) { + Py_DECREF(gc); + return -1; + } + Py_DECREF(ret); + } else if (unlikely(gc_was_enabled == -1)) { + Py_DECREF(gc); + return -1; + } + #endif + t->tp_flags |= Py_TPFLAGS_HEAPTYPE; +#if PY_VERSION_HEX >= 0x030A0000 + t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE; +#endif +#else + (void)__Pyx_PyObject_CallMethod0; +#endif + r = PyType_Ready(t); +#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) + t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; + #if PY_VERSION_HEX >= 0x030A00b1 + if (gc_was_enabled) + PyGC_Enable(); + #else + if (gc_was_enabled) { + PyObject *tp, *v, *tb; + PyErr_Fetch(&tp, &v, &tb); + ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable); + if (likely(ret || r == -1)) { + Py_XDECREF(ret); + PyErr_Restore(tp, v, tb); + } else { + Py_XDECREF(tp); + Py_XDECREF(v); + Py_XDECREF(tb); + r = -1; + } + } + Py_DECREF(gc); + #endif + } +#endif + return r; +#endif +} + +/* PyObject_GenericGetAttrNoDict */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp); + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", + type_name, attr_name); +#else + "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", + type_name, PyString_AS_STRING(attr_name)); +#endif + __Pyx_DECREF_TypeName(type_name); + 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 */ +#if !CYTHON_COMPILING_IN_LIMITED_API +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStrNoError(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_getstate = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; + PyObject *getstate = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); +#else + getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); + if (!getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (getstate) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); +#else + object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); + if (!object_getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (object_getstate != getstate) { + goto __PYX_GOOD; + } + } +#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_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); + if (likely(reduce_cython)) { + 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; + } else if (reduce == object_reduce || PyErr_Occurred()) { + goto __PYX_BAD; + } + setstate = __Pyx_PyObject_GetAttrStrNoError(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_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); + if (likely(setstate_cython)) { + 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; + } else if (!setstate || PyErr_Occurred()) { + goto __PYX_BAD; + } + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto __PYX_GOOD; +__PYX_BAD: + if (!PyErr_Occurred()) { + __Pyx_TypeName type_obj_name = + __Pyx_PyType_GetName((PyTypeObject*)type_obj); + PyErr_Format(PyExc_RuntimeError, + "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name); + __Pyx_DECREF_TypeName(type_obj_name); + } + ret = -1; +__PYX_GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); + Py_XDECREF(object_getstate); + Py_XDECREF(getstate); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} +#endif + +/* SetVTable */ +static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) { + PyObject *ob = PyCapsule_New(vtable, 0, 0); + if (unlikely(!ob)) + goto bad; +#if CYTHON_COMPILING_IN_LIMITED_API + if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0)) +#else + if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0)) +#endif + goto bad; + Py_DECREF(ob); + return 0; +bad: + Py_XDECREF(ob); + return -1; +} + +/* GetVTable */ +static void* __Pyx_GetVtable(PyTypeObject *type) { + void* ptr; +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable); +#else + PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable); +#endif + if (!ob) + goto bad; + ptr = PyCapsule_GetPointer(ob, 0); + if (!ptr && !PyErr_Occurred()) + PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type"); + Py_DECREF(ob); + return ptr; +bad: + Py_XDECREF(ob); + return NULL; +} + +/* MergeVTables */ +#if !CYTHON_COMPILING_IN_LIMITED_API +static int __Pyx_MergeVtables(PyTypeObject *type) { + int i; + void** base_vtables; + __Pyx_TypeName tp_base_name; + __Pyx_TypeName base_name; + void* unknown = (void*)-1; + PyObject* bases = type->tp_bases; + int base_depth = 0; + { + PyTypeObject* base = type->tp_base; + while (base) { + base_depth += 1; + base = base->tp_base; + } + } + base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1)); + base_vtables[0] = unknown; + for (i = 1; i < PyTuple_GET_SIZE(bases); i++) { + void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i))); + if (base_vtable != NULL) { + int j; + PyTypeObject* base = type->tp_base; + for (j = 0; j < base_depth; j++) { + if (base_vtables[j] == unknown) { + base_vtables[j] = __Pyx_GetVtable(base); + base_vtables[j + 1] = unknown; + } + if (base_vtables[j] == base_vtable) { + break; + } else if (base_vtables[j] == NULL) { + goto bad; + } + base = base->tp_base; + } + } + } + PyErr_Clear(); + free(base_vtables); + return 0; +bad: + tp_base_name = __Pyx_PyType_GetName(type->tp_base); + base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i)); + PyErr_Format(PyExc_TypeError, + "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name); + __Pyx_DECREF_TypeName(tp_base_name); + __Pyx_DECREF_TypeName(base_name); + free(base_vtables); + return -1; +} +#endif + +/* FetchSharedCythonModule */ +static PyObject *__Pyx_FetchSharedCythonABIModule(void) { + PyObject *abi_module = PyImport_AddModule((char*) __PYX_ABI_MODULE_NAME); + if (unlikely(!abi_module)) return NULL; + Py_INCREF(abi_module); + return abi_module; +} + +/* FetchCommonType */ +static int __Pyx_VerifyCachedType(PyObject *cached_type, + const char *name, + Py_ssize_t basicsize, + Py_ssize_t expected_basicsize) { + if (!PyType_Check(cached_type)) { + PyErr_Format(PyExc_TypeError, + "Shared Cython type %.200s is not a type object", name); + return -1; + } + if (basicsize != expected_basicsize) { + PyErr_Format(PyExc_TypeError, + "Shared Cython type %.200s has the wrong size, try recompiling", + name); + return -1; + } + return 0; +} +#if !CYTHON_USE_TYPE_SPECS +static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { + PyObject* abi_module; + const char* object_name; + PyTypeObject *cached_type = NULL; + abi_module = __Pyx_FetchSharedCythonABIModule(); + if (!abi_module) return NULL; + object_name = strrchr(type->tp_name, '.'); + object_name = object_name ? object_name+1 : type->tp_name; + cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name); + if (cached_type) { + if (__Pyx_VerifyCachedType( + (PyObject *)cached_type, + object_name, + cached_type->tp_basicsize, + type->tp_basicsize) < 0) { + goto bad; + } + goto done; + } + if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; + PyErr_Clear(); + if (PyType_Ready(type) < 0) goto bad; + if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0) + goto bad; + Py_INCREF(type); + cached_type = type; +done: + Py_DECREF(abi_module); + return cached_type; +bad: + Py_XDECREF(cached_type); + cached_type = NULL; + goto done; +} +#else +static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) { + PyObject *abi_module, *cached_type = NULL; + const char* object_name = strrchr(spec->name, '.'); + object_name = object_name ? object_name+1 : spec->name; + abi_module = __Pyx_FetchSharedCythonABIModule(); + if (!abi_module) return NULL; + cached_type = PyObject_GetAttrString(abi_module, object_name); + if (cached_type) { + Py_ssize_t basicsize; +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject *py_basicsize; + py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__"); + if (unlikely(!py_basicsize)) goto bad; + basicsize = PyLong_AsSsize_t(py_basicsize); + Py_DECREF(py_basicsize); + py_basicsize = 0; + if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; +#else + basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1; +#endif + if (__Pyx_VerifyCachedType( + cached_type, + object_name, + basicsize, + spec->basicsize) < 0) { + goto bad; + } + goto done; + } + if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; + PyErr_Clear(); + CYTHON_UNUSED_VAR(module); + cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases); + if (unlikely(!cached_type)) goto bad; + if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad; + if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad; +done: + Py_DECREF(abi_module); + assert(cached_type == NULL || PyType_Check(cached_type)); + return (PyTypeObject *) cached_type; +bad: + Py_XDECREF(cached_type); + cached_type = NULL; + goto done; +} +#endif + +/* PyVectorcallFastCallDict */ +#if CYTHON_METH_FASTCALL +static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) +{ + PyObject *res = NULL; + PyObject *kwnames; + PyObject **newargs; + PyObject **kwvalues; + Py_ssize_t i, pos; + size_t j; + PyObject *key, *value; + unsigned long keys_are_strings; + Py_ssize_t nkw = PyDict_GET_SIZE(kw); + newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0])); + if (unlikely(newargs == NULL)) { + PyErr_NoMemory(); + return NULL; + } + for (j = 0; j < nargs; j++) newargs[j] = args[j]; + kwnames = PyTuple_New(nkw); + if (unlikely(kwnames == NULL)) { + PyMem_Free(newargs); + return NULL; + } + kwvalues = newargs + nargs; + pos = i = 0; + keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS; + while (PyDict_Next(kw, &pos, &key, &value)) { + keys_are_strings &= Py_TYPE(key)->tp_flags; + Py_INCREF(key); + Py_INCREF(value); + PyTuple_SET_ITEM(kwnames, i, key); + kwvalues[i] = value; + i++; + } + if (unlikely(!keys_are_strings)) { + PyErr_SetString(PyExc_TypeError, "keywords must be strings"); + goto cleanup; + } + res = vc(func, newargs, nargs, kwnames); +cleanup: + Py_DECREF(kwnames); + for (i = 0; i < nkw; i++) + Py_DECREF(kwvalues[i]); + PyMem_Free(newargs); + return res; +} +static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) +{ + if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) { + return vc(func, args, nargs, NULL); + } + return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw); +} +#endif + +/* CythonFunctionShared */ +static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) { +#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API + __Pyx_Py_XDECREF_SET( + __Pyx_CyFunction_GetClassObj(f), + ((classobj) ? __Pyx_NewRef(classobj) : NULL)); +#else + __Pyx_Py_XDECREF_SET( + ((PyCMethodObject *) (f))->mm_class, + (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL)); +#endif +} +static PyObject * +__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) +{ + CYTHON_UNUSED_VAR(closure); + if (unlikely(op->func_doc == NULL)) { +#if CYTHON_COMPILING_IN_LIMITED_API + op->func_doc = PyObject_GetAttrString(op->func, "__doc__"); + if (unlikely(!op->func_doc)) return NULL; +#else + if (((PyCFunctionObject*)op)->m_ml->ml_doc) { +#if PY_MAJOR_VERSION >= 3 + op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); +#else + op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); +#endif + if (unlikely(op->func_doc == NULL)) + return NULL; + } else { + Py_INCREF(Py_None); + return Py_None; + } +#endif + } + Py_INCREF(op->func_doc); + return op->func_doc; +} +static int +__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context) +{ + CYTHON_UNUSED_VAR(context); + if (value == NULL) { + value = Py_None; + } + Py_INCREF(value); + __Pyx_Py_XDECREF_SET(op->func_doc, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context) +{ + CYTHON_UNUSED_VAR(context); + if (unlikely(op->func_name == NULL)) { +#if CYTHON_COMPILING_IN_LIMITED_API + op->func_name = PyObject_GetAttrString(op->func, "__name__"); +#elif PY_MAJOR_VERSION >= 3 + op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); +#else + op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); +#endif + if (unlikely(op->func_name == NULL)) + return NULL; + } + Py_INCREF(op->func_name); + return op->func_name; +} +static int +__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context) +{ + CYTHON_UNUSED_VAR(context); +#if PY_MAJOR_VERSION >= 3 + if (unlikely(value == NULL || !PyUnicode_Check(value))) +#else + if (unlikely(value == NULL || !PyString_Check(value))) +#endif + { + PyErr_SetString(PyExc_TypeError, + "__name__ must be set to a string object"); + return -1; + } + Py_INCREF(value); + __Pyx_Py_XDECREF_SET(op->func_name, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context) +{ + CYTHON_UNUSED_VAR(context); + Py_INCREF(op->func_qualname); + return op->func_qualname; +} +static int +__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context) +{ + CYTHON_UNUSED_VAR(context); +#if PY_MAJOR_VERSION >= 3 + if (unlikely(value == NULL || !PyUnicode_Check(value))) +#else + if (unlikely(value == NULL || !PyString_Check(value))) +#endif + { + PyErr_SetString(PyExc_TypeError, + "__qualname__ must be set to a string object"); + return -1; + } + Py_INCREF(value); + __Pyx_Py_XDECREF_SET(op->func_qualname, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context) +{ + CYTHON_UNUSED_VAR(context); + if (unlikely(op->func_dict == NULL)) { + op->func_dict = PyDict_New(); + if (unlikely(op->func_dict == NULL)) + return NULL; + } + Py_INCREF(op->func_dict); + return op->func_dict; +} +static int +__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context) +{ + CYTHON_UNUSED_VAR(context); + if (unlikely(value == NULL)) { + PyErr_SetString(PyExc_TypeError, + "function's dictionary may not be deleted"); + return -1; + } + if (unlikely(!PyDict_Check(value))) { + PyErr_SetString(PyExc_TypeError, + "setting function's dictionary to a non-dict"); + return -1; + } + Py_INCREF(value); + __Pyx_Py_XDECREF_SET(op->func_dict, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context) +{ + CYTHON_UNUSED_VAR(context); + Py_INCREF(op->func_globals); + return op->func_globals; +} +static PyObject * +__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context) +{ + CYTHON_UNUSED_VAR(op); + CYTHON_UNUSED_VAR(context); + Py_INCREF(Py_None); + return Py_None; +} +static PyObject * +__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context) +{ + PyObject* result = (op->func_code) ? op->func_code : Py_None; + CYTHON_UNUSED_VAR(context); + Py_INCREF(result); + return result; +} +static int +__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { + int result = 0; + PyObject *res = op->defaults_getter((PyObject *) op); + if (unlikely(!res)) + return -1; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + op->defaults_tuple = PyTuple_GET_ITEM(res, 0); + Py_INCREF(op->defaults_tuple); + op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); + Py_INCREF(op->defaults_kwdict); + #else + op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0); + if (unlikely(!op->defaults_tuple)) result = -1; + else { + op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1); + if (unlikely(!op->defaults_kwdict)) result = -1; + } + #endif + Py_DECREF(res); + return result; +} +static int +__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { + CYTHON_UNUSED_VAR(context); + if (!value) { + value = Py_None; + } else if (unlikely(value != Py_None && !PyTuple_Check(value))) { + PyErr_SetString(PyExc_TypeError, + "__defaults__ must be set to a tuple object"); + return -1; + } + PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not " + "currently affect the values used in function calls", 1); + Py_INCREF(value); + __Pyx_Py_XDECREF_SET(op->defaults_tuple, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) { + PyObject* result = op->defaults_tuple; + CYTHON_UNUSED_VAR(context); + if (unlikely(!result)) { + if (op->defaults_getter) { + if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; + result = op->defaults_tuple; + } else { + result = Py_None; + } + } + Py_INCREF(result); + return result; +} +static int +__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { + CYTHON_UNUSED_VAR(context); + if (!value) { + value = Py_None; + } else if (unlikely(value != Py_None && !PyDict_Check(value))) { + PyErr_SetString(PyExc_TypeError, + "__kwdefaults__ must be set to a dict object"); + return -1; + } + PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not " + "currently affect the values used in function calls", 1); + Py_INCREF(value); + __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) { + PyObject* result = op->defaults_kwdict; + CYTHON_UNUSED_VAR(context); + if (unlikely(!result)) { + if (op->defaults_getter) { + if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; + result = op->defaults_kwdict; + } else { + result = Py_None; + } + } + Py_INCREF(result); + return result; +} +static int +__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) { + CYTHON_UNUSED_VAR(context); + if (!value || value == Py_None) { + value = NULL; + } else if (unlikely(!PyDict_Check(value))) { + PyErr_SetString(PyExc_TypeError, + "__annotations__ must be set to a dict object"); + return -1; + } + Py_XINCREF(value); + __Pyx_Py_XDECREF_SET(op->func_annotations, value); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) { + PyObject* result = op->func_annotations; + CYTHON_UNUSED_VAR(context); + if (unlikely(!result)) { + result = PyDict_New(); + if (unlikely(!result)) return NULL; + op->func_annotations = result; + } + Py_INCREF(result); + return result; +} +static PyObject * +__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) { + int is_coroutine; + CYTHON_UNUSED_VAR(context); + if (op->func_is_coroutine) { + return __Pyx_NewRef(op->func_is_coroutine); + } + is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE; +#if PY_VERSION_HEX >= 0x03050000 + if (is_coroutine) { + PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine; + fromlist = PyList_New(1); + if (unlikely(!fromlist)) return NULL; + Py_INCREF(marker); +#if CYTHON_ASSUME_SAFE_MACROS + PyList_SET_ITEM(fromlist, 0, marker); +#else + if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) { + Py_DECREF(marker); + Py_DECREF(fromlist); + return NULL; + } +#endif + module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0); + Py_DECREF(fromlist); + if (unlikely(!module)) goto ignore; + op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker); + Py_DECREF(module); + if (likely(op->func_is_coroutine)) { + return __Pyx_NewRef(op->func_is_coroutine); + } +ignore: + PyErr_Clear(); + } +#endif + op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine); + return __Pyx_NewRef(op->func_is_coroutine); +} +#if CYTHON_COMPILING_IN_LIMITED_API +static PyObject * +__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) { + CYTHON_UNUSED_VAR(context); + return PyObject_GetAttrString(op->func, "__module__"); +} +static int +__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) { + CYTHON_UNUSED_VAR(context); + return PyObject_SetAttrString(op->func, "__module__", value); +} +#endif +static PyGetSetDef __pyx_CyFunction_getsets[] = { + {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, + {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, + {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, + {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, + {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, + {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, + {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, + {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, + {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, + {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, + {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, + {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, + {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, + {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, + {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, + {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, + {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, + {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0}, +#if CYTHON_COMPILING_IN_LIMITED_API + {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0}, +#endif + {0, 0, 0, 0, 0} +}; +static PyMemberDef __pyx_CyFunction_members[] = { +#if !CYTHON_COMPILING_IN_LIMITED_API + {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0}, +#endif +#if CYTHON_USE_TYPE_SPECS + {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0}, +#if CYTHON_METH_FASTCALL +#if CYTHON_BACKPORT_VECTORCALL + {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0}, +#else +#if !CYTHON_COMPILING_IN_LIMITED_API + {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0}, +#endif +#endif +#endif +#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API + {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0}, +#else + {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0}, +#endif +#endif + {0, 0, 0, 0, 0} +}; +static PyObject * +__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args) +{ + CYTHON_UNUSED_VAR(args); +#if PY_MAJOR_VERSION >= 3 + Py_INCREF(m->func_qualname); + return m->func_qualname; +#else + return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name); +#endif +} +static PyMethodDef __pyx_CyFunction_methods[] = { + {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, + {0, 0, 0, 0} +}; +#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API +#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) +#else +#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist) +#endif +static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname, + PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { +#if !CYTHON_COMPILING_IN_LIMITED_API + PyCFunctionObject *cf = (PyCFunctionObject*) op; +#endif + if (unlikely(op == NULL)) + return NULL; +#if CYTHON_COMPILING_IN_LIMITED_API + op->func = PyCFunction_NewEx(ml, (PyObject*)op, module); + if (unlikely(!op->func)) return NULL; +#endif + op->flags = flags; + __Pyx_CyFunction_weakreflist(op) = NULL; +#if !CYTHON_COMPILING_IN_LIMITED_API + cf->m_ml = ml; + cf->m_self = (PyObject *) op; +#endif + Py_XINCREF(closure); + op->func_closure = closure; +#if !CYTHON_COMPILING_IN_LIMITED_API + Py_XINCREF(module); + cf->m_module = module; +#endif + op->func_dict = NULL; + op->func_name = NULL; + Py_INCREF(qualname); + op->func_qualname = qualname; + op->func_doc = NULL; +#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API + op->func_classobj = NULL; +#else + ((PyCMethodObject*)op)->mm_class = NULL; +#endif + op->func_globals = globals; + Py_INCREF(op->func_globals); + Py_XINCREF(code); + op->func_code = code; + op->defaults_pyobjects = 0; + op->defaults_size = 0; + op->defaults = NULL; + op->defaults_tuple = NULL; + op->defaults_kwdict = NULL; + op->defaults_getter = NULL; + op->func_annotations = NULL; + op->func_is_coroutine = NULL; +#if CYTHON_METH_FASTCALL + switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { + case METH_NOARGS: + __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS; + break; + case METH_O: + __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O; + break; + case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: + __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD; + break; + case METH_FASTCALL | METH_KEYWORDS: + __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS; + break; + case METH_VARARGS | METH_KEYWORDS: + __Pyx_CyFunction_func_vectorcall(op) = NULL; + break; + default: + PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); + Py_DECREF(op); + return NULL; + } +#endif + return (PyObject *) op; +} +static int +__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) +{ + Py_CLEAR(m->func_closure); +#if CYTHON_COMPILING_IN_LIMITED_API + Py_CLEAR(m->func); +#else + Py_CLEAR(((PyCFunctionObject*)m)->m_module); +#endif + Py_CLEAR(m->func_dict); + Py_CLEAR(m->func_name); + Py_CLEAR(m->func_qualname); + Py_CLEAR(m->func_doc); + Py_CLEAR(m->func_globals); + Py_CLEAR(m->func_code); +#if !CYTHON_COMPILING_IN_LIMITED_API +#if PY_VERSION_HEX < 0x030900B1 + Py_CLEAR(__Pyx_CyFunction_GetClassObj(m)); +#else + { + PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class; + ((PyCMethodObject *) (m))->mm_class = NULL; + Py_XDECREF(cls); + } +#endif +#endif + Py_CLEAR(m->defaults_tuple); + Py_CLEAR(m->defaults_kwdict); + Py_CLEAR(m->func_annotations); + Py_CLEAR(m->func_is_coroutine); + if (m->defaults) { + PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); + int i; + for (i = 0; i < m->defaults_pyobjects; i++) + Py_XDECREF(pydefaults[i]); + PyObject_Free(m->defaults); + m->defaults = NULL; + } + return 0; +} +static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) +{ + if (__Pyx_CyFunction_weakreflist(m) != NULL) + PyObject_ClearWeakRefs((PyObject *) m); + __Pyx_CyFunction_clear(m); + __Pyx_PyHeapTypeObject_GC_Del(m); +} +static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) +{ + PyObject_GC_UnTrack(m); + __Pyx__CyFunction_dealloc(m); +} +static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) +{ + Py_VISIT(m->func_closure); +#if CYTHON_COMPILING_IN_LIMITED_API + Py_VISIT(m->func); +#else + Py_VISIT(((PyCFunctionObject*)m)->m_module); +#endif + Py_VISIT(m->func_dict); + Py_VISIT(m->func_name); + Py_VISIT(m->func_qualname); + Py_VISIT(m->func_doc); + Py_VISIT(m->func_globals); + Py_VISIT(m->func_code); +#if !CYTHON_COMPILING_IN_LIMITED_API + Py_VISIT(__Pyx_CyFunction_GetClassObj(m)); +#endif + Py_VISIT(m->defaults_tuple); + Py_VISIT(m->defaults_kwdict); + Py_VISIT(m->func_is_coroutine); + if (m->defaults) { + PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); + int i; + for (i = 0; i < m->defaults_pyobjects; i++) + Py_VISIT(pydefaults[i]); + } + return 0; +} +static PyObject* +__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) +{ +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromFormat("<cyfunction %U at %p>", + op->func_qualname, (void *)op); +#else + return PyString_FromFormat("<cyfunction %s at %p>", + PyString_AsString(op->func_qualname), (void *)op); +#endif +} +static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject *f = ((__pyx_CyFunctionObject*)func)->func; + PyObject *py_name = NULL; + PyCFunction meth; + int flags; + meth = PyCFunction_GetFunction(f); + if (unlikely(!meth)) return NULL; + flags = PyCFunction_GetFlags(f); + if (unlikely(flags < 0)) return NULL; +#else + PyCFunctionObject* f = (PyCFunctionObject*)func; + PyCFunction meth = f->m_ml->ml_meth; + int flags = f->m_ml->ml_flags; +#endif + Py_ssize_t size; + switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { + case METH_VARARGS: + if (likely(kw == NULL || PyDict_Size(kw) == 0)) + return (*meth)(self, arg); + break; + case METH_VARARGS | METH_KEYWORDS: + return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); + case METH_NOARGS: + if (likely(kw == NULL || PyDict_Size(kw) == 0)) { +#if CYTHON_ASSUME_SAFE_MACROS + size = PyTuple_GET_SIZE(arg); +#else + size = PyTuple_Size(arg); + if (unlikely(size < 0)) return NULL; +#endif + if (likely(size == 0)) + return (*meth)(self, NULL); +#if CYTHON_COMPILING_IN_LIMITED_API + py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); + if (!py_name) return NULL; + PyErr_Format(PyExc_TypeError, + "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", + py_name, size); + Py_DECREF(py_name); +#else + PyErr_Format(PyExc_TypeError, + "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", + f->m_ml->ml_name, size); +#endif + return NULL; + } + break; + case METH_O: + if (likely(kw == NULL || PyDict_Size(kw) == 0)) { +#if CYTHON_ASSUME_SAFE_MACROS + size = PyTuple_GET_SIZE(arg); +#else + size = PyTuple_Size(arg); + if (unlikely(size < 0)) return NULL; +#endif + if (likely(size == 1)) { + PyObject *result, *arg0; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + arg0 = PyTuple_GET_ITEM(arg, 0); + #else + arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; + #endif + result = (*meth)(self, arg0); + #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) + Py_DECREF(arg0); + #endif + return result; + } +#if CYTHON_COMPILING_IN_LIMITED_API + py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); + if (!py_name) return NULL; + PyErr_Format(PyExc_TypeError, + "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", + py_name, size); + Py_DECREF(py_name); +#else + PyErr_Format(PyExc_TypeError, + "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", + f->m_ml->ml_name, size); +#endif + return NULL; + } + break; + default: + PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); + return NULL; + } +#if CYTHON_COMPILING_IN_LIMITED_API + py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); + if (!py_name) return NULL; + PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments", + py_name); + Py_DECREF(py_name); +#else + PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", + f->m_ml->ml_name); +#endif + return NULL; +} +static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *self, *result; +#if CYTHON_COMPILING_IN_LIMITED_API + self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func); + if (unlikely(!self) && PyErr_Occurred()) return NULL; +#else + self = ((PyCFunctionObject*)func)->m_self; +#endif + result = __Pyx_CyFunction_CallMethod(func, self, arg, kw); + return result; +} +static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { + PyObject *result; + __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; +#if CYTHON_METH_FASTCALL + __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc); + if (vc) { +#if CYTHON_ASSUME_SAFE_MACROS + return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw); +#else + (void) &__Pyx_PyVectorcall_FastCallDict; + return PyVectorcall_Call(func, args, kw); +#endif + } +#endif + if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { + Py_ssize_t argc; + PyObject *new_args; + PyObject *self; +#if CYTHON_ASSUME_SAFE_MACROS + argc = PyTuple_GET_SIZE(args); +#else + argc = PyTuple_Size(args); + if (unlikely(!argc) < 0) return NULL; +#endif + new_args = PyTuple_GetSlice(args, 1, argc); + if (unlikely(!new_args)) + return NULL; + self = PyTuple_GetItem(args, 0); + if (unlikely(!self)) { + Py_DECREF(new_args); +#if PY_MAJOR_VERSION > 2 + PyErr_Format(PyExc_TypeError, + "unbound method %.200S() needs an argument", + cyfunc->func_qualname); +#else + PyErr_SetString(PyExc_TypeError, + "unbound method needs an argument"); +#endif + return NULL; + } + result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); + Py_DECREF(new_args); + } else { + result = __Pyx_CyFunction_Call(func, args, kw); + } + return result; +} +#if CYTHON_METH_FASTCALL +static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames) +{ + int ret = 0; + if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { + if (unlikely(nargs < 1)) { + PyErr_Format(PyExc_TypeError, "%.200s() needs an argument", + ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); + return -1; + } + ret = 1; + } + if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) { + PyErr_Format(PyExc_TypeError, + "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); + return -1; + } + return ret; +} +static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) +{ + __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; + PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; +#if CYTHON_BACKPORT_VECTORCALL + Py_ssize_t nargs = (Py_ssize_t)nargsf; +#else + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); +#endif + PyObject *self; + switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { + case 1: + self = args[0]; + args += 1; + nargs -= 1; + break; + case 0: + self = ((PyCFunctionObject*)cyfunc)->m_self; + break; + default: + return NULL; + } + if (unlikely(nargs != 0)) { + PyErr_Format(PyExc_TypeError, + "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", + def->ml_name, nargs); + return NULL; + } + return def->ml_meth(self, NULL); +} +static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) +{ + __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; + PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; +#if CYTHON_BACKPORT_VECTORCALL + Py_ssize_t nargs = (Py_ssize_t)nargsf; +#else + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); +#endif + PyObject *self; + switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { + case 1: + self = args[0]; + args += 1; + nargs -= 1; + break; + case 0: + self = ((PyCFunctionObject*)cyfunc)->m_self; + break; + default: + return NULL; + } + if (unlikely(nargs != 1)) { + PyErr_Format(PyExc_TypeError, + "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", + def->ml_name, nargs); + return NULL; + } + return def->ml_meth(self, args[0]); +} +static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) +{ + __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; + PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; +#if CYTHON_BACKPORT_VECTORCALL + Py_ssize_t nargs = (Py_ssize_t)nargsf; +#else + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); +#endif + PyObject *self; + switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { + case 1: + self = args[0]; + args += 1; + nargs -= 1; + break; + case 0: + self = ((PyCFunctionObject*)cyfunc)->m_self; + break; + default: + return NULL; + } + return ((_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames); +} +static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) +{ + __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; + PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; + PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc); +#if CYTHON_BACKPORT_VECTORCALL + Py_ssize_t nargs = (Py_ssize_t)nargsf; +#else + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); +#endif + PyObject *self; + switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { + case 1: + self = args[0]; + args += 1; + nargs -= 1; + break; + case 0: + self = ((PyCFunctionObject*)cyfunc)->m_self; + break; + default: + return NULL; + } + return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames); +} +#endif +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_CyFunctionType_slots[] = { + {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc}, + {Py_tp_repr, (void *)__Pyx_CyFunction_repr}, + {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod}, + {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse}, + {Py_tp_clear, (void *)__Pyx_CyFunction_clear}, + {Py_tp_methods, (void *)__pyx_CyFunction_methods}, + {Py_tp_members, (void *)__pyx_CyFunction_members}, + {Py_tp_getset, (void *)__pyx_CyFunction_getsets}, + {Py_tp_descr_get, (void *)__Pyx_PyMethod_New}, + {0, 0}, +}; +static PyType_Spec __pyx_CyFunctionType_spec = { + __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", + sizeof(__pyx_CyFunctionObject), + 0, +#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR + Py_TPFLAGS_METHOD_DESCRIPTOR | +#endif +#if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL) + _Py_TPFLAGS_HAVE_VECTORCALL | +#endif + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, + __pyx_CyFunctionType_slots +}; +#else +static PyTypeObject __pyx_CyFunctionType_type = { + PyVarObject_HEAD_INIT(0, 0) + __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", + sizeof(__pyx_CyFunctionObject), + 0, + (destructor) __Pyx_CyFunction_dealloc, +#if !CYTHON_METH_FASTCALL + 0, +#elif CYTHON_BACKPORT_VECTORCALL + (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall), +#else + offsetof(PyCFunctionObject, vectorcall), +#endif + 0, + 0, +#if PY_MAJOR_VERSION < 3 + 0, +#else + 0, +#endif + (reprfunc) __Pyx_CyFunction_repr, + 0, + 0, + 0, + 0, + __Pyx_CyFunction_CallAsMethod, + 0, + 0, + 0, + 0, +#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR + Py_TPFLAGS_METHOD_DESCRIPTOR | +#endif +#if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL + _Py_TPFLAGS_HAVE_VECTORCALL | +#endif + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, + 0, + (traverseproc) __Pyx_CyFunction_traverse, + (inquiry) __Pyx_CyFunction_clear, + 0, +#if PY_VERSION_HEX < 0x030500A0 + offsetof(__pyx_CyFunctionObject, func_weakreflist), +#else + offsetof(PyCFunctionObject, m_weakreflist), +#endif + 0, + 0, + __pyx_CyFunction_methods, + __pyx_CyFunction_members, + __pyx_CyFunction_getsets, + 0, + 0, + __Pyx_PyMethod_New, + 0, + offsetof(__pyx_CyFunctionObject, func_dict), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +#if PY_VERSION_HEX >= 0x030400a1 + 0, +#endif +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, +#endif +#if __PYX_NEED_TP_PRINT_SLOT + 0, +#endif +#if PY_VERSION_HEX >= 0x030C0000 + 0, +#endif +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, +#endif +}; +#endif +static int __pyx_CyFunction_init(PyObject *module) { +#if CYTHON_USE_TYPE_SPECS + __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL); +#else + CYTHON_UNUSED_VAR(module); + __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); +#endif + if (unlikely(__pyx_CyFunctionType == NULL)) { + return -1; + } + return 0; +} +static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->defaults = PyObject_Malloc(size); + if (unlikely(!m->defaults)) + return PyErr_NoMemory(); + memset(m->defaults, 0, size); + m->defaults_pyobjects = pyobjects; + m->defaults_size = size; + return m->defaults; +} +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->defaults_tuple = tuple; + Py_INCREF(tuple); +} +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->defaults_kwdict = dict; + Py_INCREF(dict); +} +static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->func_annotations = dict; + Py_INCREF(dict); +} + +/* CythonFunction */ +static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, + PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { + PyObject *op = __Pyx_CyFunction_Init( + PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType), + ml, flags, qualname, closure, module, globals, code + ); + if (likely(op)) { + PyObject_GC_Track(op); + } + return op; +} + +/* 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 + CYTHON_MAYBE_UNUSED_VAR(tstate); + 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_GetAttrStrNoError(__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; + (void) 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 */ +#if !CYTHON_COMPILING_IN_LIMITED_API +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); +} +#endif + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif +#if CYTHON_COMPILING_IN_LIMITED_API +static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict, + PyObject *firstlineno, PyObject *name) { + PyObject *replace = NULL; + if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL; + if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL; + replace = PyObject_GetAttrString(code, "replace"); + if (likely(replace)) { + PyObject *result; + result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict); + Py_DECREF(replace); + return result; + } + #if __PYX_LIMITED_VERSION_HEX < 0x030780000 + PyErr_Clear(); + { + PyObject *compiled = NULL, *result = NULL; + if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL; + if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL; + compiled = Py_CompileString( + "out = type(code)(\n" + " code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n" + " code.co_flags, code.co_code, code.co_consts, code.co_names,\n" + " code.co_varnames, code.co_filename, co_name, co_firstlineno,\n" + " code.co_lnotab)\n", "<dummy>", Py_file_input); + if (!compiled) return NULL; + result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict); + Py_DECREF(compiled); + if (!result) PyErr_Print(); + Py_DECREF(result); + result = PyDict_GetItemString(scratch_dict, "out"); + if (result) Py_INCREF(result); + return result; + } + #endif +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL; + PyObject *replace = NULL, *getframe = NULL, *frame = NULL; + PyObject *exc_type, *exc_value, *exc_traceback; + int success = 0; + if (c_line) { + (void) __pyx_cfilenm; + (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line); + } + PyErr_Fetch(&exc_type, &exc_value, &exc_traceback); + code_object = Py_CompileString("_getframe()", filename, Py_eval_input); + if (unlikely(!code_object)) goto bad; + py_py_line = PyLong_FromLong(py_line); + if (unlikely(!py_py_line)) goto bad; + py_funcname = PyUnicode_FromString(funcname); + if (unlikely(!py_funcname)) goto bad; + dict = PyDict_New(); + if (unlikely(!dict)) goto bad; + { + PyObject *old_code_object = code_object; + code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname); + Py_DECREF(old_code_object); + } + if (unlikely(!code_object)) goto bad; + getframe = PySys_GetObject("_getframe"); + if (unlikely(!getframe)) goto bad; + if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad; + frame = PyEval_EvalCode(code_object, dict, dict); + if (unlikely(!frame) || frame == Py_None) goto bad; + success = 1; + bad: + PyErr_Restore(exc_type, exc_value, exc_traceback); + Py_XDECREF(code_object); + Py_XDECREF(py_py_line); + Py_XDECREF(py_funcname); + Py_XDECREF(dict); + Py_XDECREF(replace); + if (success) { + PyTraceBack_Here( + (struct _frame*)frame); + } + Py_XDECREF(frame); +} +#else +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; + #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; + py_srcfile = PyString_FromString(filename); + if (!py_srcfile) goto bad; + #endif + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + if (!py_funcname) goto bad; + #endif + } + #if PY_MAJOR_VERSION < 3 + py_code = __Pyx_PyCode_New( + 0, + 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); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline + return py_code; +bad: + Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif + 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; + PyObject *ptype, *pvalue, *ptraceback; + 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) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + __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); +} +#endif + +/* 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;\ + } + +/* CIntFromPy */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + 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 + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + 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 && PY_VERSION_HEX < 0x030C00A7 + 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 + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + 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 + } + } + { + 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 ret = -1; +#if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (size_t) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (size_t) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (size_t) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (size_t) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (size_t) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((size_t) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((size_t) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif + Py_DECREF(v); + if (likely(!ret)) + return val; + } + 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) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + 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 + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + 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 && PY_VERSION_HEX < 0x030C00A7 + 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 + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + 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 + } + } + { + 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 ret = -1; +#if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (long) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (long) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (long) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (long) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((long) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((long) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif + Py_DECREF(v); + if (likely(!ret)) + return val; + } + 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; +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + 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; +#if !CYTHON_COMPILING_IN_LIMITED_API + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); +#else + PyObject *from_bytes, *result = NULL; + PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; + from_bytes = PyObject_GetAttrString((PyObject*)&PyInt_Type, "from_bytes"); + if (!from_bytes) return NULL; + py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int)); + if (!py_bytes) goto limited_bad; + order_str = PyUnicode_FromString(little ? "little" : "big"); + if (!order_str) goto limited_bad; + arg_tuple = PyTuple_Pack(2, py_bytes, order_str); + if (!arg_tuple) goto limited_bad; + kwds = PyDict_New(); + if (!kwds) goto limited_bad; + if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(!is_unsigned ? Py_True : Py_False))) goto limited_bad; + result = PyObject_Call(from_bytes, arg_tuple, kwds); + limited_bad: + Py_XDECREF(from_bytes); + Py_XDECREF(py_bytes); + Py_XDECREF(order_str); + Py_XDECREF(arg_tuple); + Py_XDECREF(kwds); + return result; +#endif + } +} + +/* CIntFromPy */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + 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 + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + 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 && PY_VERSION_HEX < 0x030C00A7 + 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 + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + 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 + } + } + { + 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 ret = -1; +#if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + long idigit; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (unlikely(!PyLong_CheckExact(v))) { + PyObject *tmp = v; + v = PyNumber_Long(v); + assert(PyLong_CheckExact(v)); + Py_DECREF(tmp); + if (unlikely(!v)) return (int) -1; + } +#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(x) == 0) + return (int) 0; + is_negative = Py_SIZE(x) < 0; +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + is_negative = result == 1; + } +#endif + if (is_unsigned && unlikely(is_negative)) { + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + if (unlikely(!stepval)) + return (int) -1; + } else { + stepval = __Pyx_NewRef(v); + } + val = (int) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + val |= ((int) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + if (Py_SIZE(stepval) == 0) + goto unpacking_done; + #endif + } + idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((int) idigit) << bits; + #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 + unpacking_done: + #endif + if (!is_unsigned) { + if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif + Py_DECREF(v); + if (likely(!ret)) + return val; + } + 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; +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + 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; +#if !CYTHON_COMPILING_IN_LIMITED_API + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); +#else + PyObject *from_bytes, *result = NULL; + PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; + from_bytes = PyObject_GetAttrString((PyObject*)&PyInt_Type, "from_bytes"); + if (!from_bytes) return NULL; + py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long)); + if (!py_bytes) goto limited_bad; + order_str = PyUnicode_FromString(little ? "little" : "big"); + if (!order_str) goto limited_bad; + arg_tuple = PyTuple_Pack(2, py_bytes, order_str); + if (!arg_tuple) goto limited_bad; + kwds = PyDict_New(); + if (!kwds) goto limited_bad; + if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(!is_unsigned ? Py_True : Py_False))) goto limited_bad; + result = PyObject_Call(from_bytes, arg_tuple, kwds); + limited_bad: + Py_XDECREF(from_bytes); + Py_XDECREF(py_bytes); + Py_XDECREF(order_str); + Py_XDECREF(arg_tuple); + Py_XDECREF(kwds); + return result; +#endif + } +} + +/* FormatTypeName */ +#if CYTHON_COMPILING_IN_LIMITED_API +static __Pyx_TypeName +__Pyx_PyType_GetName(PyTypeObject* tp) +{ + PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp, + __pyx_n_s_name_2); + if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) { + PyErr_Clear(); + Py_XDECREF(name); + name = __Pyx_NewRef(__pyx_kp_s__3); + } + return name; +} +#endif + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*); + 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); +} +static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (cls == a || cls == b) return 1; + mro = cls->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + PyObject *base = PyTuple_GET_ITEM(mro, i); + if (base == (PyObject *)a || base == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, 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) { + if (exc_type1) { + return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2); + } else { + return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } +} +#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[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; + char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } + PyOS_snprintf(message, sizeof(message), + "compile time 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 */ +#if PY_MAJOR_VERSION >= 3 +static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) { + if (t.is_unicode | t.is_str) { + if (t.intern) { + *str = PyUnicode_InternFromString(t.s); + } else if (t.encoding) { + *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL); + } else { + *str = PyUnicode_FromStringAndSize(t.s, t.n - 1); + } + } else { + *str = PyBytes_FromStringAndSize(t.s, t.n - 1); + } + if (!*str) + return -1; + if (PyObject_Hash(*str) == -1) + return -1; + return 0; +} +#endif +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + #if PY_MAJOR_VERSION >= 3 + __Pyx_InitString(*t, t->p); + #else + 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); + } + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + #endif + ++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 && !CYTHON_COMPILING_IN_LIMITED_API) || (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) { + __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result)); +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). " + "The ability to return an instance of a strict subclass of int is deprecated, " + "and may be removed in a future version of Python.", + result_type_name)) { + __Pyx_DECREF_TypeName(result_type_name); + Py_DECREF(result); + return NULL; + } + __Pyx_DECREF_TypeName(result_type_name); + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")", + type_name, type_name, result_type_name); + __Pyx_DECREF_TypeName(result_type_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 + if (likely(__Pyx_PyLong_IsCompact(b))) { + return __Pyx_PyLong_CompactValue(b); + } else { + const digit* digits = __Pyx_PyLong_Digits(b); + const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b); + 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 Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(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); +} + + +/* #### Code section: utility_code_pragmas_end ### */ +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + + + +/* #### Code section: end ### */ +#endif /* Py_PYTHON_H */ diff --git a/_ruamel_yaml.h b/_ruamel_yaml.h new file mode 100644 index 0000000..568db50 --- /dev/null +++ b/_ruamel_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 @@ -0,0 +1,1398 @@ + +#include "yaml_private.h" + +/* + * Get the library version. + */ + +YAML_DECLARE(const char *) +yaml_get_version_string(void) +{ + return YAML_VERSION_STRING; +} + +/* + * Get the library version numbers. + */ + +YAML_DECLARE(void) +yaml_get_version(int *major, int *minor, int *patch) +{ + *major = YAML_VERSION_MAJOR; + *minor = YAML_VERSION_MINOR; + *patch = YAML_VERSION_PATCH; +} + +/* + * Allocate a dynamic memory block. + */ + +YAML_DECLARE(void *) +yaml_malloc(size_t size) +{ + return malloc(size ? size : 1); +} + +/* + * Reallocate a dynamic memory block. + */ + +YAML_DECLARE(void *) +yaml_realloc(void *ptr, size_t size) +{ + return ptr ? realloc(ptr, size ? size : 1) : malloc(size ? size : 1); +} + +/* + * Free a dynamic memory block. + */ + +YAML_DECLARE(void) +yaml_free(void *ptr) +{ + if (ptr) free(ptr); +} + +/* + * Duplicate a string. + */ + +YAML_DECLARE(yaml_char_t *) +yaml_strdup(const yaml_char_t *str) +{ + if (!str) + return NULL; + + return (yaml_char_t *)strdup((char *)str); +} + +/* + * Extend a string. + */ + +YAML_DECLARE(int) +yaml_string_extend(yaml_char_t **start, + yaml_char_t **pointer, yaml_char_t **end) +{ + yaml_char_t *new_start = (yaml_char_t *)yaml_realloc((void*)*start, (*end - *start)*2); + + if (!new_start) return 0; + + memset(new_start + (*end - *start), 0, *end - *start); + + *pointer = new_start + (*pointer - *start); + *end = new_start + (*end - *start)*2; + *start = new_start; + + return 1; +} + +/* + * Append a string B to a string A. + */ + +YAML_DECLARE(int) +yaml_string_join( + yaml_char_t **a_start, yaml_char_t **a_pointer, yaml_char_t **a_end, + yaml_char_t **b_start, yaml_char_t **b_pointer, SHIM(yaml_char_t **b_end)) +{ + UNUSED_PARAM(b_end) + if (*b_start == *b_pointer) + return 1; + + while (*a_end - *a_pointer <= *b_pointer - *b_start) { + if (!yaml_string_extend(a_start, a_pointer, a_end)) + return 0; + } + + memcpy(*a_pointer, *b_start, *b_pointer - *b_start); + *a_pointer += *b_pointer - *b_start; + + return 1; +} + +/* + * Extend a stack. + */ + +YAML_DECLARE(int) +yaml_stack_extend(void **start, void **top, void **end) +{ + void *new_start; + + if ((char *)*end - (char *)*start >= INT_MAX / 2) + return 0; + + new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2); + + if (!new_start) return 0; + + *top = (char *)new_start + ((char *)*top - (char *)*start); + *end = (char *)new_start + ((char *)*end - (char *)*start)*2; + *start = new_start; + + return 1; +} + +/* + * Extend or move a queue. + */ + +YAML_DECLARE(int) +yaml_queue_extend(void **start, void **head, void **tail, void **end) +{ + /* Check if we need to resize the queue. */ + + if (*start == *head && *tail == *end) { + void *new_start = yaml_realloc(*start, + ((char *)*end - (char *)*start)*2); + + if (!new_start) return 0; + + *head = (char *)new_start + ((char *)*head - (char *)*start); + *tail = (char *)new_start + ((char *)*tail - (char *)*start); + *end = (char *)new_start + ((char *)*end - (char *)*start)*2; + *start = new_start; + } + + /* Check if we need to move the queue at the beginning of the buffer. */ + + if (*tail == *end) { + if (*head != *tail) { + memmove(*start, *head, (char *)*tail - (char *)*head); + } + *tail = (char *)*tail - (char *)*head + (char *)*start; + *head = *start; + } + + return 1; +} + + +/* + * Create a new parser object. + */ + +YAML_DECLARE(int) +yaml_parser_initialize(yaml_parser_t *parser) +{ + assert(parser); /* Non-NULL parser object expected. */ + + memset(parser, 0, sizeof(yaml_parser_t)); + if (!BUFFER_INIT(parser, parser->raw_buffer, INPUT_RAW_BUFFER_SIZE)) + goto error; + if (!BUFFER_INIT(parser, parser->buffer, INPUT_BUFFER_SIZE)) + goto error; + if (!QUEUE_INIT(parser, parser->tokens, INITIAL_QUEUE_SIZE, yaml_token_t*)) + goto error; + if (!STACK_INIT(parser, parser->indents, int*)) + goto error; + if (!STACK_INIT(parser, parser->simple_keys, yaml_simple_key_t*)) + goto error; + if (!STACK_INIT(parser, parser->states, yaml_parser_state_t*)) + goto error; + if (!STACK_INIT(parser, parser->marks, yaml_mark_t*)) + goto error; + if (!STACK_INIT(parser, parser->tag_directives, yaml_tag_directive_t*)) + goto error; + + return 1; + +error: + + BUFFER_DEL(parser, parser->raw_buffer); + BUFFER_DEL(parser, parser->buffer); + QUEUE_DEL(parser, parser->tokens); + STACK_DEL(parser, parser->indents); + STACK_DEL(parser, parser->simple_keys); + STACK_DEL(parser, parser->states); + STACK_DEL(parser, parser->marks); + STACK_DEL(parser, parser->tag_directives); + + return 0; +} + +/* + * Destroy a parser object. + */ + +YAML_DECLARE(void) +yaml_parser_delete(yaml_parser_t *parser) +{ + assert(parser); /* Non-NULL parser object expected. */ + + BUFFER_DEL(parser, parser->raw_buffer); + BUFFER_DEL(parser, parser->buffer); + while (!QUEUE_EMPTY(parser, parser->tokens)) { + yaml_token_delete(&DEQUEUE(parser, parser->tokens)); + } + QUEUE_DEL(parser, parser->tokens); + STACK_DEL(parser, parser->indents); + STACK_DEL(parser, parser->simple_keys); + STACK_DEL(parser, parser->states); + STACK_DEL(parser, parser->marks); + while (!STACK_EMPTY(parser, parser->tag_directives)) { + yaml_tag_directive_t tag_directive = POP(parser, parser->tag_directives); + yaml_free(tag_directive.handle); + yaml_free(tag_directive.prefix); + } + STACK_DEL(parser, parser->tag_directives); + + memset(parser, 0, sizeof(yaml_parser_t)); +} + +/* + * String read handler. + */ + +static int +yaml_string_read_handler(void *data, unsigned char *buffer, size_t size, + size_t *size_read) +{ + yaml_parser_t *parser = (yaml_parser_t *)data; + + if (parser->input.string.current == parser->input.string.end) { + *size_read = 0; + return 1; + } + + if (size > (size_t)(parser->input.string.end + - parser->input.string.current)) { + size = parser->input.string.end - parser->input.string.current; + } + + memcpy(buffer, parser->input.string.current, size); + parser->input.string.current += size; + *size_read = size; + return 1; +} + +/* + * File read handler. + */ + +static int +yaml_file_read_handler(void *data, unsigned char *buffer, size_t size, + size_t *size_read) +{ + yaml_parser_t *parser = (yaml_parser_t *)data; + + *size_read = fread(buffer, 1, size, parser->input.file); + return !ferror(parser->input.file); +} + +/* + * Set a string input. + */ + +YAML_DECLARE(void) +yaml_parser_set_input_string(yaml_parser_t *parser, + const unsigned char *input, size_t size) +{ + assert(parser); /* Non-NULL parser object expected. */ + assert(!parser->read_handler); /* You can set the source only once. */ + assert(input); /* Non-NULL input string expected. */ + + parser->read_handler = yaml_string_read_handler; + parser->read_handler_data = parser; + + parser->input.string.start = input; + parser->input.string.current = input; + parser->input.string.end = input+size; +} + +/* + * Set a file input. + */ + +YAML_DECLARE(void) +yaml_parser_set_input_file(yaml_parser_t *parser, FILE *file) +{ + assert(parser); /* Non-NULL parser object expected. */ + assert(!parser->read_handler); /* You can set the source only once. */ + assert(file); /* Non-NULL file object expected. */ + + parser->read_handler = yaml_file_read_handler; + parser->read_handler_data = parser; + + parser->input.file = file; +} + +/* + * Set a generic input. + */ + +YAML_DECLARE(void) +yaml_parser_set_input(yaml_parser_t *parser, + yaml_read_handler_t *handler, void *data) +{ + assert(parser); /* Non-NULL parser object expected. */ + assert(!parser->read_handler); /* You can set the source only once. */ + assert(handler); /* Non-NULL read handler expected. */ + + parser->read_handler = handler; + parser->read_handler_data = data; +} + +/* + * Set the source encoding. + */ + +YAML_DECLARE(void) +yaml_parser_set_encoding(yaml_parser_t *parser, yaml_encoding_t encoding) +{ + assert(parser); /* Non-NULL parser object expected. */ + assert(!parser->encoding); /* Encoding is already set or detected. */ + + parser->encoding = encoding; +} + +/* + * Create a new emitter object. + */ + +YAML_DECLARE(int) +yaml_emitter_initialize(yaml_emitter_t *emitter) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + memset(emitter, 0, sizeof(yaml_emitter_t)); + if (!BUFFER_INIT(emitter, emitter->buffer, OUTPUT_BUFFER_SIZE)) + goto error; + if (!BUFFER_INIT(emitter, emitter->raw_buffer, OUTPUT_RAW_BUFFER_SIZE)) + goto error; + if (!STACK_INIT(emitter, emitter->states, yaml_emitter_state_t*)) + goto error; + if (!QUEUE_INIT(emitter, emitter->events, INITIAL_QUEUE_SIZE, yaml_event_t*)) + goto error; + if (!STACK_INIT(emitter, emitter->indents, int*)) + goto error; + if (!STACK_INIT(emitter, emitter->tag_directives, yaml_tag_directive_t*)) + goto error; + + return 1; + +error: + + BUFFER_DEL(emitter, emitter->buffer); + BUFFER_DEL(emitter, emitter->raw_buffer); + STACK_DEL(emitter, emitter->states); + QUEUE_DEL(emitter, emitter->events); + STACK_DEL(emitter, emitter->indents); + STACK_DEL(emitter, emitter->tag_directives); + + return 0; +} + +/* + * Destroy an emitter object. + */ + +YAML_DECLARE(void) +yaml_emitter_delete(yaml_emitter_t *emitter) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + BUFFER_DEL(emitter, emitter->buffer); + BUFFER_DEL(emitter, emitter->raw_buffer); + STACK_DEL(emitter, emitter->states); + while (!QUEUE_EMPTY(emitter, emitter->events)) { + yaml_event_delete(&DEQUEUE(emitter, emitter->events)); + } + QUEUE_DEL(emitter, emitter->events); + STACK_DEL(emitter, emitter->indents); + while (!STACK_EMPTY(empty, emitter->tag_directives)) { + yaml_tag_directive_t tag_directive = POP(emitter, emitter->tag_directives); + yaml_free(tag_directive.handle); + yaml_free(tag_directive.prefix); + } + STACK_DEL(emitter, emitter->tag_directives); + yaml_free(emitter->anchors); + + memset(emitter, 0, sizeof(yaml_emitter_t)); +} + +/* + * String write handler. + */ + +static int +yaml_string_write_handler(void *data, unsigned char *buffer, size_t size) +{ + yaml_emitter_t *emitter = (yaml_emitter_t *)data; + + if (emitter->output.string.size - *emitter->output.string.size_written + < size) { + memcpy(emitter->output.string.buffer + + *emitter->output.string.size_written, + buffer, + emitter->output.string.size + - *emitter->output.string.size_written); + *emitter->output.string.size_written = emitter->output.string.size; + return 0; + } + + memcpy(emitter->output.string.buffer + + *emitter->output.string.size_written, buffer, size); + *emitter->output.string.size_written += size; + return 1; +} + +/* + * File write handler. + */ + +static int +yaml_file_write_handler(void *data, unsigned char *buffer, size_t size) +{ + yaml_emitter_t *emitter = (yaml_emitter_t *)data; + + return (fwrite(buffer, 1, size, emitter->output.file) == size); +} +/* + * Set a string output. + */ + +YAML_DECLARE(void) +yaml_emitter_set_output_string(yaml_emitter_t *emitter, + unsigned char *output, size_t size, size_t *size_written) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + assert(!emitter->write_handler); /* You can set the output only once. */ + assert(output); /* Non-NULL output string expected. */ + + emitter->write_handler = yaml_string_write_handler; + emitter->write_handler_data = emitter; + + emitter->output.string.buffer = output; + emitter->output.string.size = size; + emitter->output.string.size_written = size_written; + *size_written = 0; +} + +/* + * Set a file output. + */ + +YAML_DECLARE(void) +yaml_emitter_set_output_file(yaml_emitter_t *emitter, FILE *file) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + assert(!emitter->write_handler); /* You can set the output only once. */ + assert(file); /* Non-NULL file object expected. */ + + emitter->write_handler = yaml_file_write_handler; + emitter->write_handler_data = emitter; + + emitter->output.file = file; +} + +/* + * Set a generic output handler. + */ + +YAML_DECLARE(void) +yaml_emitter_set_output(yaml_emitter_t *emitter, + yaml_write_handler_t *handler, void *data) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + assert(!emitter->write_handler); /* You can set the output only once. */ + assert(handler); /* Non-NULL handler object expected. */ + + emitter->write_handler = handler; + emitter->write_handler_data = data; +} + +/* + * Set the output encoding. + */ + +YAML_DECLARE(void) +yaml_emitter_set_encoding(yaml_emitter_t *emitter, yaml_encoding_t encoding) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + assert(!emitter->encoding); /* You can set encoding only once. */ + + emitter->encoding = encoding; +} + +/* + * Set the canonical output style. + */ + +YAML_DECLARE(void) +yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + emitter->canonical = (canonical != 0); +} + +/* + * Set the indentation increment. + */ + +YAML_DECLARE(void) +yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + emitter->best_indent = (1 < indent && indent < 10) ? indent : 2; +} + +/* + * Set the preferred line width. + */ + +YAML_DECLARE(void) +yaml_emitter_set_width(yaml_emitter_t *emitter, int width) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + emitter->best_width = (width >= 0) ? width : -1; +} + +/* + * Set if unescaped non-ASCII characters are allowed. + */ + +YAML_DECLARE(void) +yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + emitter->unicode = (unicode != 0); +} + +/* + * Set the preferred line break character. + */ + +YAML_DECLARE(void) +yaml_emitter_set_break(yaml_emitter_t *emitter, yaml_break_t line_break) +{ + assert(emitter); /* Non-NULL emitter object expected. */ + + emitter->line_break = line_break; +} + +/* + * Destroy a token object. + */ + +YAML_DECLARE(void) +yaml_token_delete(yaml_token_t *token) +{ + assert(token); /* Non-NULL token object expected. */ + + switch (token->type) + { + case YAML_TAG_DIRECTIVE_TOKEN: + yaml_free(token->data.tag_directive.handle); + yaml_free(token->data.tag_directive.prefix); + break; + + case YAML_ALIAS_TOKEN: + yaml_free(token->data.alias.value); + break; + + case YAML_ANCHOR_TOKEN: + yaml_free(token->data.anchor.value); + break; + + case YAML_TAG_TOKEN: + yaml_free(token->data.tag.handle); + yaml_free(token->data.tag.suffix); + break; + + case YAML_SCALAR_TOKEN: + yaml_free(token->data.scalar.value); + break; + + default: + break; + } + + memset(token, 0, sizeof(yaml_token_t)); +} + +/* + * Check if a string is a valid UTF-8 sequence. + * + * Check 'reader.c' for more details on UTF-8 encoding. + */ + +static int +yaml_check_utf8(yaml_char_t *start, size_t length) +{ + yaml_char_t *end = start+length; + yaml_char_t *pointer = start; + + while (pointer < end) { + unsigned char octet; + unsigned int width; + unsigned int value; + size_t k; + + octet = pointer[0]; + width = (octet & 0x80) == 0x00 ? 1 : + (octet & 0xE0) == 0xC0 ? 2 : + (octet & 0xF0) == 0xE0 ? 3 : + (octet & 0xF8) == 0xF0 ? 4 : 0; + value = (octet & 0x80) == 0x00 ? octet & 0x7F : + (octet & 0xE0) == 0xC0 ? octet & 0x1F : + (octet & 0xF0) == 0xE0 ? octet & 0x0F : + (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; + if (!width) return 0; + if (pointer+width > end) return 0; + for (k = 1; k < width; k ++) { + octet = pointer[k]; + if ((octet & 0xC0) != 0x80) return 0; + value = (value << 6) + (octet & 0x3F); + } + if (!((width == 1) || + (width == 2 && value >= 0x80) || + (width == 3 && value >= 0x800) || + (width == 4 && value >= 0x10000))) return 0; + + pointer += width; + } + + return 1; +} + +/* + * Create STREAM-START. + */ + +YAML_DECLARE(int) +yaml_stream_start_event_initialize(yaml_event_t *event, + yaml_encoding_t encoding) +{ + yaml_mark_t mark = { 0, 0, 0 }; + + assert(event); /* Non-NULL event object is expected. */ + + STREAM_START_EVENT_INIT(*event, encoding, mark, mark); + + return 1; +} + +/* + * Create STREAM-END. + */ + +YAML_DECLARE(int) +yaml_stream_end_event_initialize(yaml_event_t *event) +{ + yaml_mark_t mark = { 0, 0, 0 }; + + assert(event); /* Non-NULL event object is expected. */ + + STREAM_END_EVENT_INIT(*event, mark, mark); + + return 1; +} + +/* + * Create DOCUMENT-START. + */ + +YAML_DECLARE(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) +{ + struct { + yaml_error_type_t error; + } context; + yaml_mark_t mark = { 0, 0, 0 }; + yaml_version_directive_t *version_directive_copy = NULL; + struct { + yaml_tag_directive_t *start; + yaml_tag_directive_t *end; + yaml_tag_directive_t *top; + } tag_directives_copy = { NULL, NULL, NULL }; + yaml_tag_directive_t value = { NULL, NULL }; + + assert(event); /* Non-NULL event object is expected. */ + assert((tag_directives_start && tag_directives_end) || + (tag_directives_start == tag_directives_end)); + /* Valid tag directives are expected. */ + + if (version_directive) { + version_directive_copy = YAML_MALLOC_STATIC(yaml_version_directive_t); + if (!version_directive_copy) goto error; + version_directive_copy->major = version_directive->major; + version_directive_copy->minor = version_directive->minor; + } + + if (tag_directives_start != tag_directives_end) { + yaml_tag_directive_t *tag_directive; + if (!STACK_INIT(&context, tag_directives_copy, yaml_tag_directive_t*)) + goto error; + for (tag_directive = tag_directives_start; + tag_directive != tag_directives_end; tag_directive ++) { + assert(tag_directive->handle); + assert(tag_directive->prefix); + if (!yaml_check_utf8(tag_directive->handle, + strlen((char *)tag_directive->handle))) + goto error; + if (!yaml_check_utf8(tag_directive->prefix, + strlen((char *)tag_directive->prefix))) + goto error; + value.handle = yaml_strdup(tag_directive->handle); + value.prefix = yaml_strdup(tag_directive->prefix); + if (!value.handle || !value.prefix) goto error; + if (!PUSH(&context, tag_directives_copy, value)) + goto error; + value.handle = NULL; + value.prefix = NULL; + } + } + + DOCUMENT_START_EVENT_INIT(*event, version_directive_copy, + tag_directives_copy.start, tag_directives_copy.top, + implicit, mark, mark); + + return 1; + +error: + yaml_free(version_directive_copy); + while (!STACK_EMPTY(context, tag_directives_copy)) { + yaml_tag_directive_t value = POP(context, tag_directives_copy); + yaml_free(value.handle); + yaml_free(value.prefix); + } + STACK_DEL(context, tag_directives_copy); + yaml_free(value.handle); + yaml_free(value.prefix); + + return 0; +} + +/* + * Create DOCUMENT-END. + */ + +YAML_DECLARE(int) +yaml_document_end_event_initialize(yaml_event_t *event, int implicit) +{ + yaml_mark_t mark = { 0, 0, 0 }; + + assert(event); /* Non-NULL emitter object is expected. */ + + DOCUMENT_END_EVENT_INIT(*event, implicit, mark, mark); + + return 1; +} + +/* + * Create ALIAS. + */ + +YAML_DECLARE(int) +yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor) +{ + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *anchor_copy = NULL; + + assert(event); /* Non-NULL event object is expected. */ + assert(anchor); /* Non-NULL anchor is expected. */ + + if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0; + + anchor_copy = yaml_strdup(anchor); + if (!anchor_copy) + return 0; + + ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark); + + return 1; +} + +/* + * Create SCALAR. + */ + +YAML_DECLARE(int) +yaml_scalar_event_initialize(yaml_event_t *event, + yaml_char_t *anchor, yaml_char_t *tag, + yaml_char_t *value, int length, + int plain_implicit, int quoted_implicit, + yaml_scalar_style_t style) +{ + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *anchor_copy = NULL; + yaml_char_t *tag_copy = NULL; + yaml_char_t *value_copy = NULL; + + assert(event); /* Non-NULL event object is expected. */ + assert(value); /* Non-NULL anchor is expected. */ + + if (anchor) { + if (!yaml_check_utf8(anchor, strlen((char *)anchor))) goto error; + anchor_copy = yaml_strdup(anchor); + if (!anchor_copy) goto error; + } + + if (tag) { + if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error; + tag_copy = yaml_strdup(tag); + if (!tag_copy) goto error; + } + + if (length < 0) { + length = strlen((char *)value); + } + + if (!yaml_check_utf8(value, length)) goto error; + value_copy = YAML_MALLOC(length+1); + if (!value_copy) goto error; + memcpy(value_copy, value, length); + value_copy[length] = '\0'; + + SCALAR_EVENT_INIT(*event, anchor_copy, tag_copy, value_copy, length, + plain_implicit, quoted_implicit, style, mark, mark); + + return 1; + +error: + yaml_free(anchor_copy); + yaml_free(tag_copy); + yaml_free(value_copy); + + return 0; +} + +/* + * Create SEQUENCE-START. + */ + +YAML_DECLARE(int) +yaml_sequence_start_event_initialize(yaml_event_t *event, + yaml_char_t *anchor, yaml_char_t *tag, int implicit, + yaml_sequence_style_t style) +{ + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *anchor_copy = NULL; + yaml_char_t *tag_copy = NULL; + + assert(event); /* Non-NULL event object is expected. */ + + if (anchor) { + if (!yaml_check_utf8(anchor, strlen((char *)anchor))) goto error; + anchor_copy = yaml_strdup(anchor); + if (!anchor_copy) goto error; + } + + if (tag) { + if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error; + tag_copy = yaml_strdup(tag); + if (!tag_copy) goto error; + } + + SEQUENCE_START_EVENT_INIT(*event, anchor_copy, tag_copy, + implicit, style, mark, mark); + + return 1; + +error: + yaml_free(anchor_copy); + yaml_free(tag_copy); + + return 0; +} + +/* + * Create SEQUENCE-END. + */ + +YAML_DECLARE(int) +yaml_sequence_end_event_initialize(yaml_event_t *event) +{ + yaml_mark_t mark = { 0, 0, 0 }; + + assert(event); /* Non-NULL event object is expected. */ + + SEQUENCE_END_EVENT_INIT(*event, mark, mark); + + return 1; +} + +/* + * Create MAPPING-START. + */ + +YAML_DECLARE(int) +yaml_mapping_start_event_initialize(yaml_event_t *event, + yaml_char_t *anchor, yaml_char_t *tag, int implicit, + yaml_mapping_style_t style) +{ + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *anchor_copy = NULL; + yaml_char_t *tag_copy = NULL; + + assert(event); /* Non-NULL event object is expected. */ + + if (anchor) { + if (!yaml_check_utf8(anchor, strlen((char *)anchor))) goto error; + anchor_copy = yaml_strdup(anchor); + if (!anchor_copy) goto error; + } + + if (tag) { + if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error; + tag_copy = yaml_strdup(tag); + if (!tag_copy) goto error; + } + + MAPPING_START_EVENT_INIT(*event, anchor_copy, tag_copy, + implicit, style, mark, mark); + + return 1; + +error: + yaml_free(anchor_copy); + yaml_free(tag_copy); + + return 0; +} + +/* + * Create MAPPING-END. + */ + +YAML_DECLARE(int) +yaml_mapping_end_event_initialize(yaml_event_t *event) +{ + yaml_mark_t mark = { 0, 0, 0 }; + + assert(event); /* Non-NULL event object is expected. */ + + MAPPING_END_EVENT_INIT(*event, mark, mark); + + return 1; +} + +/* + * Destroy an event object. + */ + +YAML_DECLARE(void) +yaml_event_delete(yaml_event_t *event) +{ + yaml_tag_directive_t *tag_directive; + + assert(event); /* Non-NULL event object expected. */ + + switch (event->type) + { + case YAML_DOCUMENT_START_EVENT: + yaml_free(event->data.document_start.version_directive); + for (tag_directive = event->data.document_start.tag_directives.start; + tag_directive != event->data.document_start.tag_directives.end; + tag_directive++) { + yaml_free(tag_directive->handle); + yaml_free(tag_directive->prefix); + } + yaml_free(event->data.document_start.tag_directives.start); + break; + + case YAML_ALIAS_EVENT: + yaml_free(event->data.alias.anchor); + break; + + case YAML_SCALAR_EVENT: + yaml_free(event->data.scalar.anchor); + yaml_free(event->data.scalar.tag); + yaml_free(event->data.scalar.value); + break; + + case YAML_SEQUENCE_START_EVENT: + yaml_free(event->data.sequence_start.anchor); + yaml_free(event->data.sequence_start.tag); + break; + + case YAML_MAPPING_START_EVENT: + yaml_free(event->data.mapping_start.anchor); + yaml_free(event->data.mapping_start.tag); + break; + + default: + break; + } + + memset(event, 0, sizeof(yaml_event_t)); +} + +/* + * Create a document object. + */ + +YAML_DECLARE(int) +yaml_document_initialize(yaml_document_t *document, + yaml_version_directive_t *version_directive, + yaml_tag_directive_t *tag_directives_start, + yaml_tag_directive_t *tag_directives_end, + int start_implicit, int end_implicit) +{ + struct { + yaml_error_type_t error; + } context; + struct { + yaml_node_t *start; + yaml_node_t *end; + yaml_node_t *top; + } nodes = { NULL, NULL, NULL }; + yaml_version_directive_t *version_directive_copy = NULL; + struct { + yaml_tag_directive_t *start; + yaml_tag_directive_t *end; + yaml_tag_directive_t *top; + } tag_directives_copy = { NULL, NULL, NULL }; + yaml_tag_directive_t value = { NULL, NULL }; + yaml_mark_t mark = { 0, 0, 0 }; + + assert(document); /* Non-NULL document object is expected. */ + assert((tag_directives_start && tag_directives_end) || + (tag_directives_start == tag_directives_end)); + /* Valid tag directives are expected. */ + + if (!STACK_INIT(&context, nodes, yaml_node_t*)) goto error; + + if (version_directive) { + version_directive_copy = YAML_MALLOC_STATIC(yaml_version_directive_t); + if (!version_directive_copy) goto error; + version_directive_copy->major = version_directive->major; + version_directive_copy->minor = version_directive->minor; + } + + if (tag_directives_start != tag_directives_end) { + yaml_tag_directive_t *tag_directive; + if (!STACK_INIT(&context, tag_directives_copy, yaml_tag_directive_t*)) + goto error; + for (tag_directive = tag_directives_start; + tag_directive != tag_directives_end; tag_directive ++) { + assert(tag_directive->handle); + assert(tag_directive->prefix); + if (!yaml_check_utf8(tag_directive->handle, + strlen((char *)tag_directive->handle))) + goto error; + if (!yaml_check_utf8(tag_directive->prefix, + strlen((char *)tag_directive->prefix))) + goto error; + value.handle = yaml_strdup(tag_directive->handle); + value.prefix = yaml_strdup(tag_directive->prefix); + if (!value.handle || !value.prefix) goto error; + if (!PUSH(&context, tag_directives_copy, value)) + goto error; + value.handle = NULL; + value.prefix = NULL; + } + } + + DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, + tag_directives_copy.start, tag_directives_copy.top, + start_implicit, end_implicit, mark, mark); + + return 1; + +error: + STACK_DEL(&context, nodes); + yaml_free(version_directive_copy); + while (!STACK_EMPTY(&context, tag_directives_copy)) { + yaml_tag_directive_t value = POP(&context, tag_directives_copy); + yaml_free(value.handle); + yaml_free(value.prefix); + } + STACK_DEL(&context, tag_directives_copy); + yaml_free(value.handle); + yaml_free(value.prefix); + + return 0; +} + +/* + * Destroy a document object. + */ + +YAML_DECLARE(void) +yaml_document_delete(yaml_document_t *document) +{ + struct { + yaml_error_type_t error; + } context; + yaml_tag_directive_t *tag_directive; + + context.error = YAML_NO_ERROR; /* Eliminate a compliler warning. */ + + assert(document); /* Non-NULL document object is expected. */ + + while (!STACK_EMPTY(&context, document->nodes)) { + yaml_node_t node = POP(&context, document->nodes); + yaml_free(node.tag); + switch (node.type) { + case YAML_SCALAR_NODE: + yaml_free(node.data.scalar.value); + break; + case YAML_SEQUENCE_NODE: + STACK_DEL(&context, node.data.sequence.items); + break; + case YAML_MAPPING_NODE: + STACK_DEL(&context, node.data.mapping.pairs); + break; + default: + assert(0); /* Should not happen. */ + } + } + STACK_DEL(&context, document->nodes); + + yaml_free(document->version_directive); + for (tag_directive = document->tag_directives.start; + tag_directive != document->tag_directives.end; + tag_directive++) { + yaml_free(tag_directive->handle); + yaml_free(tag_directive->prefix); + } + yaml_free(document->tag_directives.start); + + memset(document, 0, sizeof(yaml_document_t)); +} + +/** + * Get a document node. + */ + +YAML_DECLARE(yaml_node_t *) +yaml_document_get_node(yaml_document_t *document, int index) +{ + assert(document); /* Non-NULL document object is expected. */ + + if (index > 0 && document->nodes.start + index <= document->nodes.top) { + return document->nodes.start + index - 1; + } + return NULL; +} + +/** + * Get the root object. + */ + +YAML_DECLARE(yaml_node_t *) +yaml_document_get_root_node(yaml_document_t *document) +{ + assert(document); /* Non-NULL document object is expected. */ + + if (document->nodes.top != document->nodes.start) { + return document->nodes.start; + } + return NULL; +} + +/* + * Add a scalar node to a document. + */ + +YAML_DECLARE(int) +yaml_document_add_scalar(yaml_document_t *document, + yaml_char_t *tag, yaml_char_t *value, int length, + yaml_scalar_style_t style) +{ + struct { + yaml_error_type_t error; + } context; + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *tag_copy = NULL; + yaml_char_t *value_copy = NULL; + yaml_node_t node; + + assert(document); /* Non-NULL document object is expected. */ + assert(value); /* Non-NULL value is expected. */ + + if (!tag) { + tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG; + } + + if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error; + tag_copy = yaml_strdup(tag); + if (!tag_copy) goto error; + + if (length < 0) { + length = strlen((char *)value); + } + + if (!yaml_check_utf8(value, length)) goto error; + value_copy = YAML_MALLOC(length+1); + if (!value_copy) goto error; + memcpy(value_copy, value, length); + value_copy[length] = '\0'; + + SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark); + if (!PUSH(&context, document->nodes, node)) goto error; + + return document->nodes.top - document->nodes.start; + +error: + yaml_free(tag_copy); + yaml_free(value_copy); + + return 0; +} + +/* + * Add a sequence node to a document. + */ + +YAML_DECLARE(int) +yaml_document_add_sequence(yaml_document_t *document, + yaml_char_t *tag, yaml_sequence_style_t style) +{ + struct { + yaml_error_type_t error; + } context; + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *tag_copy = NULL; + struct { + yaml_node_item_t *start; + yaml_node_item_t *end; + yaml_node_item_t *top; + } items = { NULL, NULL, NULL }; + yaml_node_t node; + + assert(document); /* Non-NULL document object is expected. */ + + if (!tag) { + tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG; + } + + if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error; + tag_copy = yaml_strdup(tag); + if (!tag_copy) goto error; + + if (!STACK_INIT(&context, items, yaml_node_item_t*)) goto error; + + SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, + style, mark, mark); + if (!PUSH(&context, document->nodes, node)) goto error; + + return document->nodes.top - document->nodes.start; + +error: + STACK_DEL(&context, items); + yaml_free(tag_copy); + + return 0; +} + +/* + * Add a mapping node to a document. + */ + +YAML_DECLARE(int) +yaml_document_add_mapping(yaml_document_t *document, + yaml_char_t *tag, yaml_mapping_style_t style) +{ + struct { + yaml_error_type_t error; + } context; + yaml_mark_t mark = { 0, 0, 0 }; + yaml_char_t *tag_copy = NULL; + struct { + yaml_node_pair_t *start; + yaml_node_pair_t *end; + yaml_node_pair_t *top; + } pairs = { NULL, NULL, NULL }; + yaml_node_t node; + + assert(document); /* Non-NULL document object is expected. */ + + if (!tag) { + tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG; + } + + if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error; + tag_copy = yaml_strdup(tag); + if (!tag_copy) goto error; + + if (!STACK_INIT(&context, pairs, yaml_node_pair_t*)) goto error; + + MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, + style, mark, mark); + if (!PUSH(&context, document->nodes, node)) goto error; + + return document->nodes.top - document->nodes.start; + +error: + STACK_DEL(&context, pairs); + yaml_free(tag_copy); + + return 0; +} + +/* + * Append an item to a sequence node. + */ + +YAML_DECLARE(int) +yaml_document_append_sequence_item(yaml_document_t *document, + int sequence, int item) +{ + struct { + yaml_error_type_t error; + } context; + + assert(document); /* Non-NULL document is required. */ + assert(sequence > 0 + && document->nodes.start + sequence <= document->nodes.top); + /* Valid sequence id is required. */ + assert(document->nodes.start[sequence-1].type == YAML_SEQUENCE_NODE); + /* A sequence node is required. */ + assert(item > 0 && document->nodes.start + item <= document->nodes.top); + /* Valid item id is required. */ + + if (!PUSH(&context, + document->nodes.start[sequence-1].data.sequence.items, item)) + return 0; + + return 1; +} + +/* + * Append a pair of a key and a value to a mapping node. + */ + +YAML_DECLARE(int) +yaml_document_append_mapping_pair(yaml_document_t *document, + int mapping, int key, int value) +{ + struct { + yaml_error_type_t error; + } context; + + yaml_node_pair_t pair; + + assert(document); /* Non-NULL document is required. */ + assert(mapping > 0 + && document->nodes.start + mapping <= document->nodes.top); + /* Valid mapping id is required. */ + assert(document->nodes.start[mapping-1].type == YAML_MAPPING_NODE); + /* A mapping node is required. */ + assert(key > 0 && document->nodes.start + key <= document->nodes.top); + /* Valid key id is required. */ + assert(value > 0 && document->nodes.start + value <= document->nodes.top); + /* Valid value id is required. */ + + pair.key = key; + pair.value = value; + + if (!PUSH(&context, + document->nodes.start[mapping-1].data.mapping.pairs, pair)) + return 0; + + return 1; +} + + diff --git a/config.h b/config.h new file mode 100644 index 0000000..20f1431 --- /dev/null +++ b/config.h @@ -0,0 +1,81 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "yaml" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "http://pyyaml.org/newticket?component=libyaml" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "yaml" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "yaml 0.1.7" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "yaml" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "0.1.7" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "0.1.7" + +/* Define the major version number. */ +#define YAML_VERSION_MAJOR 0 + +/* Define the minor version number. */ +#define YAML_VERSION_MINOR 1 + +/* Define the patch version number. */ +#define YAML_VERSION_PATCH 7 + +/* Define the version string. */ +#define YAML_VERSION_STRING "0.1.7" + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +/* #undef size_t */ diff --git a/dumper.c b/dumper.c new file mode 100644 index 0000000..1fe940b --- /dev/null +++ b/dumper.c @@ -0,0 +1,394 @@ + +#include "yaml_private.h" + +/* + * API functions. + */ + +YAML_DECLARE(int) +yaml_emitter_open(yaml_emitter_t *emitter); + +YAML_DECLARE(int) +yaml_emitter_close(yaml_emitter_t *emitter); + +YAML_DECLARE(int) +yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document); + +/* + * Clean up functions. + */ + +static void +yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter); + +/* + * Anchor functions. + */ + +static void +yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index); + +static yaml_char_t * +yaml_emitter_generate_anchor(yaml_emitter_t *emitter, int anchor_id); + + +/* + * Serialize functions. + */ + +static int +yaml_emitter_dump_node(yaml_emitter_t *emitter, int index); + +static int +yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor); + +static int +yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t *node, + yaml_char_t *anchor); + +static int +yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t *node, + yaml_char_t *anchor); + +static int +yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t *node, + yaml_char_t *anchor); + +/* + * Issue a STREAM-START event. + */ + +YAML_DECLARE(int) +yaml_emitter_open(yaml_emitter_t *emitter) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + assert(emitter); /* Non-NULL emitter object is required. */ + assert(!emitter->opened); /* Emitter should not be opened yet. */ + + STREAM_START_EVENT_INIT(event, YAML_ANY_ENCODING, mark, mark); + + if (!yaml_emitter_emit(emitter, &event)) { + return 0; + } + + emitter->opened = 1; + + return 1; +} + +/* + * Issue a STREAM-END event. + */ + +YAML_DECLARE(int) +yaml_emitter_close(yaml_emitter_t *emitter) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + assert(emitter); /* Non-NULL emitter object is required. */ + assert(emitter->opened); /* Emitter should be opened. */ + + if (emitter->closed) return 1; + + STREAM_END_EVENT_INIT(event, mark, mark); + + if (!yaml_emitter_emit(emitter, &event)) { + return 0; + } + + emitter->closed = 1; + + return 1; +} + +/* + * Dump a YAML document. + */ + +YAML_DECLARE(int) +yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + assert(emitter); /* Non-NULL emitter object is required. */ + assert(document); /* Non-NULL emitter object is expected. */ + + emitter->document = document; + + if (!emitter->opened) { + if (!yaml_emitter_open(emitter)) goto error; + } + + if (STACK_EMPTY(emitter, document->nodes)) { + if (!yaml_emitter_close(emitter)) goto error; + yaml_emitter_delete_document_and_anchors(emitter); + return 1; + } + + assert(emitter->opened); /* Emitter should be opened. */ + + emitter->anchors = (yaml_anchors_t*)yaml_malloc(sizeof(*(emitter->anchors)) + * (document->nodes.top - document->nodes.start)); + if (!emitter->anchors) goto error; + memset(emitter->anchors, 0, sizeof(*(emitter->anchors)) + * (document->nodes.top - document->nodes.start)); + + DOCUMENT_START_EVENT_INIT(event, document->version_directive, + document->tag_directives.start, document->tag_directives.end, + document->start_implicit, mark, mark); + if (!yaml_emitter_emit(emitter, &event)) goto error; + + yaml_emitter_anchor_node(emitter, 1); + if (!yaml_emitter_dump_node(emitter, 1)) goto error; + + DOCUMENT_END_EVENT_INIT(event, document->end_implicit, mark, mark); + if (!yaml_emitter_emit(emitter, &event)) goto error; + + yaml_emitter_delete_document_and_anchors(emitter); + + return 1; + +error: + + yaml_emitter_delete_document_and_anchors(emitter); + + return 0; +} + +/* + * Clean up the emitter object after a document is dumped. + */ + +static void +yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter) +{ + int index; + + if (!emitter->anchors) { + yaml_document_delete(emitter->document); + emitter->document = NULL; + return; + } + + for (index = 0; emitter->document->nodes.start + index + < emitter->document->nodes.top; index ++) { + yaml_node_t node = emitter->document->nodes.start[index]; + if (!emitter->anchors[index].serialized) { + yaml_free(node.tag); + if (node.type == YAML_SCALAR_NODE) { + yaml_free(node.data.scalar.value); + } + } + if (node.type == YAML_SEQUENCE_NODE) { + STACK_DEL(emitter, node.data.sequence.items); + } + if (node.type == YAML_MAPPING_NODE) { + STACK_DEL(emitter, node.data.mapping.pairs); + } + } + + STACK_DEL(emitter, emitter->document->nodes); + yaml_free(emitter->anchors); + + emitter->anchors = NULL; + emitter->last_anchor_id = 0; + emitter->document = NULL; +} + +/* + * Check the references of a node and assign the anchor id if needed. + */ + +static void +yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index) +{ + yaml_node_t *node = emitter->document->nodes.start + index - 1; + yaml_node_item_t *item; + yaml_node_pair_t *pair; + + emitter->anchors[index-1].references ++; + + if (emitter->anchors[index-1].references == 1) { + switch (node->type) { + case YAML_SEQUENCE_NODE: + for (item = node->data.sequence.items.start; + item < node->data.sequence.items.top; item ++) { + yaml_emitter_anchor_node(emitter, *item); + } + break; + case YAML_MAPPING_NODE: + for (pair = node->data.mapping.pairs.start; + pair < node->data.mapping.pairs.top; pair ++) { + yaml_emitter_anchor_node(emitter, pair->key); + yaml_emitter_anchor_node(emitter, pair->value); + } + break; + default: + break; + } + } + + else if (emitter->anchors[index-1].references == 2) { + emitter->anchors[index-1].anchor = (++ emitter->last_anchor_id); + } +} + +/* + * Generate a textual representation for an anchor. + */ + +#define ANCHOR_TEMPLATE "id%03d" +#define ANCHOR_TEMPLATE_LENGTH 16 + +static yaml_char_t * +yaml_emitter_generate_anchor(SHIM(yaml_emitter_t *emitter), int anchor_id) +{ + yaml_char_t *anchor = YAML_MALLOC(ANCHOR_TEMPLATE_LENGTH); + + if (!anchor) return NULL; + + sprintf((char *)anchor, ANCHOR_TEMPLATE, anchor_id); + + return anchor; +} + +/* + * Serialize a node. + */ + +static int +yaml_emitter_dump_node(yaml_emitter_t *emitter, int index) +{ + yaml_node_t *node = emitter->document->nodes.start + index - 1; + int anchor_id = emitter->anchors[index-1].anchor; + yaml_char_t *anchor = NULL; + + if (anchor_id) { + anchor = yaml_emitter_generate_anchor(emitter, anchor_id); + if (!anchor) return 0; + } + + if (emitter->anchors[index-1].serialized) { + return yaml_emitter_dump_alias(emitter, anchor); + } + + emitter->anchors[index-1].serialized = 1; + + switch (node->type) { + case YAML_SCALAR_NODE: + return yaml_emitter_dump_scalar(emitter, node, anchor); + case YAML_SEQUENCE_NODE: + return yaml_emitter_dump_sequence(emitter, node, anchor); + case YAML_MAPPING_NODE: + return yaml_emitter_dump_mapping(emitter, node, anchor); + default: + assert(0); /* Could not happen. */ + break; + } + + return 0; /* Could not happen. */ +} + +/* + * Serialize an alias. + */ + +static int +yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + ALIAS_EVENT_INIT(event, anchor, mark, mark); + + return yaml_emitter_emit(emitter, &event); +} + +/* + * Serialize a scalar. + */ + +static int +yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t *node, + yaml_char_t *anchor) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + int plain_implicit = (strcmp((char *)node->tag, + YAML_DEFAULT_SCALAR_TAG) == 0); + int quoted_implicit = (strcmp((char *)node->tag, + YAML_DEFAULT_SCALAR_TAG) == 0); + + SCALAR_EVENT_INIT(event, anchor, node->tag, node->data.scalar.value, + node->data.scalar.length, plain_implicit, quoted_implicit, + node->data.scalar.style, mark, mark); + + return yaml_emitter_emit(emitter, &event); +} + +/* + * Serialize a sequence. + */ + +static int +yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t *node, + yaml_char_t *anchor) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + int implicit = (strcmp((char *)node->tag, YAML_DEFAULT_SEQUENCE_TAG) == 0); + + yaml_node_item_t *item; + + SEQUENCE_START_EVENT_INIT(event, anchor, node->tag, implicit, + node->data.sequence.style, mark, mark); + if (!yaml_emitter_emit(emitter, &event)) return 0; + + for (item = node->data.sequence.items.start; + item < node->data.sequence.items.top; item ++) { + if (!yaml_emitter_dump_node(emitter, *item)) return 0; + } + + SEQUENCE_END_EVENT_INIT(event, mark, mark); + if (!yaml_emitter_emit(emitter, &event)) return 0; + + return 1; +} + +/* + * Serialize a mapping. + */ + +static int +yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t *node, + yaml_char_t *anchor) +{ + yaml_event_t event; + yaml_mark_t mark = { 0, 0, 0 }; + + int implicit = (strcmp((char *)node->tag, YAML_DEFAULT_MAPPING_TAG) == 0); + + yaml_node_pair_t *pair; + + MAPPING_START_EVENT_INIT(event, anchor, node->tag, implicit, + node->data.mapping.style, mark, mark); + if (!yaml_emitter_emit(emitter, &event)) return 0; + + for (pair = node->data.mapping.pairs.start; + pair < node->data.mapping.pairs.top; pair ++) { + if (!yaml_emitter_dump_node(emitter, pair->key)) return 0; + if (!yaml_emitter_dump_node(emitter, pair->value)) return 0; + } + + MAPPING_END_EVENT_INIT(event, mark, mark); + if (!yaml_emitter_emit(emitter, &event)) return 0; + + return 1; +} + diff --git a/emitter.c b/emitter.c new file mode 100644 index 0000000..31145b0 --- /dev/null +++ b/emitter.c @@ -0,0 +1,2341 @@ + +#include "yaml_private.h" + +/* + * Flush the buffer if needed. + */ + +#define FLUSH(emitter) \ + ((emitter->buffer.pointer+5 < emitter->buffer.end) \ + || yaml_emitter_flush(emitter)) + +/* + * Put a character to the output buffer. + */ + +#define PUT(emitter,value) \ + (FLUSH(emitter) \ + && (*(emitter->buffer.pointer++) = (yaml_char_t)(value), \ + emitter->column++, \ + 1)) + +/* + * Put a line break to the output buffer. + */ + +#define PUT_BREAK(emitter) \ + (FLUSH(emitter) \ + && ((emitter->line_break == YAML_CR_BREAK ? \ + (*(emitter->buffer.pointer++) = (yaml_char_t) '\r') : \ + emitter->line_break == YAML_LN_BREAK ? \ + (*(emitter->buffer.pointer++) = (yaml_char_t) '\n') : \ + emitter->line_break == YAML_CRLN_BREAK ? \ + (*(emitter->buffer.pointer++) = (yaml_char_t) '\r', \ + *(emitter->buffer.pointer++) = (yaml_char_t) '\n') : 0), \ + emitter->column = 0, \ + emitter->line ++, \ + 1)) + +/* + * Copy a character from a string into buffer. + */ + +#define WRITE(emitter,string) \ + (FLUSH(emitter) \ + && (COPY(emitter->buffer,string), \ + emitter->column ++, \ + 1)) + +/* + * Copy a line break character from a string into buffer. + */ + +#define WRITE_BREAK(emitter,string) \ + (FLUSH(emitter) \ + && (CHECK(string,'\n') ? \ + (PUT_BREAK(emitter), \ + string.pointer ++, \ + 1) : \ + (COPY(emitter->buffer,string), \ + emitter->column = 0, \ + emitter->line ++, \ + 1))) + +/* + * API functions. + */ + +YAML_DECLARE(int) +yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event); + +/* + * Utility functions. + */ + +static int +yaml_emitter_set_emitter_error(yaml_emitter_t *emitter, const char *problem); + +static int +yaml_emitter_need_more_events(yaml_emitter_t *emitter); + +static int +yaml_emitter_append_tag_directive(yaml_emitter_t *emitter, + yaml_tag_directive_t value, int allow_duplicates); + +static int +yaml_emitter_increase_indent(yaml_emitter_t *emitter, + int flow, int indentless); + +/* + * State functions. + */ + +static int +yaml_emitter_state_machine(yaml_emitter_t *emitter, yaml_event_t *event); + +static int +yaml_emitter_emit_stream_start(yaml_emitter_t *emitter, + yaml_event_t *event); + +static int +yaml_emitter_emit_document_start(yaml_emitter_t *emitter, + yaml_event_t *event, int first); + +static int +yaml_emitter_emit_document_content(yaml_emitter_t *emitter, + yaml_event_t *event); + +static int +yaml_emitter_emit_document_end(yaml_emitter_t *emitter, + yaml_event_t *event); + +static int +yaml_emitter_emit_flow_sequence_item(yaml_emitter_t *emitter, + yaml_event_t *event, int first); + +static int +yaml_emitter_emit_flow_mapping_key(yaml_emitter_t *emitter, + yaml_event_t *event, int first); + +static int +yaml_emitter_emit_flow_mapping_value(yaml_emitter_t *emitter, + yaml_event_t *event, int simple); + +static int +yaml_emitter_emit_block_sequence_item(yaml_emitter_t *emitter, + yaml_event_t *event, int first); + +static int +yaml_emitter_emit_block_mapping_key(yaml_emitter_t *emitter, + yaml_event_t *event, int first); + +static int +yaml_emitter_emit_block_mapping_value(yaml_emitter_t *emitter, + yaml_event_t *event, int simple); + +static int +yaml_emitter_emit_node(yaml_emitter_t *emitter, yaml_event_t *event, + int root, int sequence, int mapping, int simple_key); + +static int +yaml_emitter_emit_alias(yaml_emitter_t *emitter, yaml_event_t *event); + +static int +yaml_emitter_emit_scalar(yaml_emitter_t *emitter, yaml_event_t *event); + +static int +yaml_emitter_emit_sequence_start(yaml_emitter_t *emitter, yaml_event_t *event); + +static int +yaml_emitter_emit_mapping_start(yaml_emitter_t *emitter, yaml_event_t *event); + +/* + * Checkers. + */ + +static int +yaml_emitter_check_empty_document(yaml_emitter_t *emitter); + +static int +yaml_emitter_check_empty_sequence(yaml_emitter_t *emitter); + +static int +yaml_emitter_check_empty_mapping(yaml_emitter_t *emitter); + +static int +yaml_emitter_check_simple_key(yaml_emitter_t *emitter); + +static int +yaml_emitter_select_scalar_style(yaml_emitter_t *emitter, yaml_event_t *event); + +/* + * Processors. + */ + +static int +yaml_emitter_process_anchor(yaml_emitter_t *emitter); + +static int +yaml_emitter_process_tag(yaml_emitter_t *emitter); + +static int +yaml_emitter_process_scalar(yaml_emitter_t *emitter); + +/* + * Analyzers. + */ + +static int +yaml_emitter_analyze_version_directive(yaml_emitter_t *emitter, + yaml_version_directive_t version_directive); + +static int +yaml_emitter_analyze_tag_directive(yaml_emitter_t *emitter, + yaml_tag_directive_t tag_directive); + +static int +yaml_emitter_analyze_anchor(yaml_emitter_t *emitter, + yaml_char_t *anchor, int alias); + +static int +yaml_emitter_analyze_tag(yaml_emitter_t *emitter, + yaml_char_t *tag); + +static int +yaml_emitter_analyze_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length); + +static int +yaml_emitter_analyze_event(yaml_emitter_t *emitter, + yaml_event_t *event); + +/* + * Writers. + */ + +static int +yaml_emitter_write_bom(yaml_emitter_t *emitter); + +static int +yaml_emitter_write_indent(yaml_emitter_t *emitter); + +static int +yaml_emitter_write_indicator(yaml_emitter_t *emitter, + const char *indicator, int need_whitespace, + int is_whitespace, int is_indention); + +static int +yaml_emitter_write_anchor(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length); + +static int +yaml_emitter_write_tag_handle(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length); + +static int +yaml_emitter_write_tag_content(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int need_whitespace); + +static int +yaml_emitter_write_plain_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int allow_breaks); + +static int +yaml_emitter_write_single_quoted_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int allow_breaks); + +static int +yaml_emitter_write_double_quoted_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int allow_breaks); + +static int +yaml_emitter_write_block_scalar_hints(yaml_emitter_t *emitter, + yaml_string_t string); + +static int +yaml_emitter_write_literal_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length); + +static int +yaml_emitter_write_folded_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length); + +/* + * Set an emitter error and return 0. + */ + +static int +yaml_emitter_set_emitter_error(yaml_emitter_t *emitter, const char *problem) +{ + emitter->error = YAML_EMITTER_ERROR; + emitter->problem = problem; + + return 0; +} + +/* + * Emit an event. + */ + +YAML_DECLARE(int) +yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event) +{ + if (!ENQUEUE(emitter, emitter->events, *event)) { + yaml_event_delete(event); + return 0; + } + + while (!yaml_emitter_need_more_events(emitter)) { + if (!yaml_emitter_analyze_event(emitter, emitter->events.head)) + return 0; + if (!yaml_emitter_state_machine(emitter, emitter->events.head)) + return 0; + yaml_event_delete(&DEQUEUE(emitter, emitter->events)); + } + + return 1; +} + +/* + * Check if we need to accumulate more events before emitting. + * + * We accumulate extra + * - 1 event for DOCUMENT-START + * - 2 events for SEQUENCE-START + * - 3 events for MAPPING-START + */ + +static int +yaml_emitter_need_more_events(yaml_emitter_t *emitter) +{ + int level = 0; + int accumulate = 0; + yaml_event_t *event; + + if (QUEUE_EMPTY(emitter, emitter->events)) + return 1; + + switch (emitter->events.head->type) { + case YAML_DOCUMENT_START_EVENT: + accumulate = 1; + break; + case YAML_SEQUENCE_START_EVENT: + accumulate = 2; + break; + case YAML_MAPPING_START_EVENT: + accumulate = 3; + break; + default: + return 0; + } + + if (emitter->events.tail - emitter->events.head > accumulate) + return 0; + + for (event = emitter->events.head; event != emitter->events.tail; event ++) { + switch (event->type) { + case YAML_STREAM_START_EVENT: + case YAML_DOCUMENT_START_EVENT: + case YAML_SEQUENCE_START_EVENT: + case YAML_MAPPING_START_EVENT: + level += 1; + break; + case YAML_STREAM_END_EVENT: + case YAML_DOCUMENT_END_EVENT: + case YAML_SEQUENCE_END_EVENT: + case YAML_MAPPING_END_EVENT: + level -= 1; + break; + default: + break; + } + if (!level) + return 0; + } + + return 1; +} + +/* + * Append a directive to the directives stack. + */ + +static int +yaml_emitter_append_tag_directive(yaml_emitter_t *emitter, + yaml_tag_directive_t value, int allow_duplicates) +{ + yaml_tag_directive_t *tag_directive; + yaml_tag_directive_t copy = { NULL, NULL }; + + for (tag_directive = emitter->tag_directives.start; + tag_directive != emitter->tag_directives.top; tag_directive ++) { + if (strcmp((char *)value.handle, (char *)tag_directive->handle) == 0) { + if (allow_duplicates) + return 1; + return yaml_emitter_set_emitter_error(emitter, + "duplicate %TAG directive"); + } + } + + copy.handle = yaml_strdup(value.handle); + copy.prefix = yaml_strdup(value.prefix); + if (!copy.handle || !copy.prefix) { + emitter->error = YAML_MEMORY_ERROR; + goto error; + } + + if (!PUSH(emitter, emitter->tag_directives, copy)) + goto error; + + return 1; + +error: + yaml_free(copy.handle); + yaml_free(copy.prefix); + return 0; +} + +/* + * Increase the indentation level. + */ + +static int +yaml_emitter_increase_indent(yaml_emitter_t *emitter, + int flow, int indentless) +{ + if (!PUSH(emitter, emitter->indents, emitter->indent)) + return 0; + + if (emitter->indent < 0) { + emitter->indent = flow ? emitter->best_indent : 0; + } + else if (!indentless) { + emitter->indent += emitter->best_indent; + } + + return 1; +} + +/* + * State dispatcher. + */ + +static int +yaml_emitter_state_machine(yaml_emitter_t *emitter, yaml_event_t *event) +{ + switch (emitter->state) + { + case YAML_EMIT_STREAM_START_STATE: + return yaml_emitter_emit_stream_start(emitter, event); + + case YAML_EMIT_FIRST_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, 1); + + case YAML_EMIT_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, 0); + + case YAML_EMIT_DOCUMENT_CONTENT_STATE: + return yaml_emitter_emit_document_content(emitter, event); + + case YAML_EMIT_DOCUMENT_END_STATE: + return yaml_emitter_emit_document_end(emitter, event); + + case YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, 1); + + case YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, 0); + + case YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, 1); + + case YAML_EMIT_FLOW_MAPPING_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, 0); + + case YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, 1); + + case YAML_EMIT_FLOW_MAPPING_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, 0); + + case YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, 1); + + case YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, 0); + + case YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, 1); + + case YAML_EMIT_BLOCK_MAPPING_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, 0); + + case YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, 1); + + case YAML_EMIT_BLOCK_MAPPING_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, 0); + + case YAML_EMIT_END_STATE: + return yaml_emitter_set_emitter_error(emitter, + "expected nothing after STREAM-END"); + + default: + assert(1); /* Invalid state. */ + } + + return 0; +} + +/* + * Expect STREAM-START. + */ + +static int +yaml_emitter_emit_stream_start(yaml_emitter_t *emitter, + yaml_event_t *event) +{ + if (event->type == YAML_STREAM_START_EVENT) + { + if (!emitter->encoding) { + emitter->encoding = event->data.stream_start.encoding; + } + + if (!emitter->encoding) { + emitter->encoding = YAML_UTF8_ENCODING; + } + + if (emitter->best_indent < 2 || emitter->best_indent > 9) { + emitter->best_indent = 2; + } + + if (emitter->best_width >= 0 + && emitter->best_width <= emitter->best_indent*2) { + emitter->best_width = 80; + } + + if (emitter->best_width < 0) { + emitter->best_width = INT_MAX; + } + + if (!emitter->line_break) { + emitter->line_break = YAML_LN_BREAK; + } + + emitter->indent = -1; + + emitter->line = 0; + emitter->column = 0; + emitter->whitespace = 1; + emitter->indention = 1; + + if (emitter->encoding != YAML_UTF8_ENCODING) { + if (!yaml_emitter_write_bom(emitter)) + return 0; + } + + emitter->state = YAML_EMIT_FIRST_DOCUMENT_START_STATE; + + return 1; + } + + return yaml_emitter_set_emitter_error(emitter, + "expected STREAM-START"); +} + +/* + * Expect DOCUMENT-START or STREAM-END. + */ + +/* assume 2 digits + . + 2 digits max and NUL*/ +#define VERSION_BUF_LEN 50 + +static int +yaml_emitter_emit_document_start(yaml_emitter_t *emitter, + yaml_event_t *event, int first) +{ + char version_buf[VERSION_BUF_LEN]; + yaml_version_directive_t vdp; + + if (event->type == YAML_DOCUMENT_START_EVENT) + { + yaml_tag_directive_t default_tag_directives[] = { + {(yaml_char_t *)"!", (yaml_char_t *)"!"}, + {(yaml_char_t *)"!!", (yaml_char_t *)"tag:yaml.org,2002:"}, + {NULL, NULL} + }; + yaml_tag_directive_t *tag_directive; + int implicit; + + if (event->data.document_start.version_directive) { + if (!yaml_emitter_analyze_version_directive(emitter, + *event->data.document_start.version_directive)) + return 0; + } + + for (tag_directive = event->data.document_start.tag_directives.start; + tag_directive != event->data.document_start.tag_directives.end; + tag_directive ++) { + if (!yaml_emitter_analyze_tag_directive(emitter, *tag_directive)) + return 0; + if (!yaml_emitter_append_tag_directive(emitter, *tag_directive, 0)) + return 0; + } + + for (tag_directive = default_tag_directives; + tag_directive->handle; tag_directive ++) { + if (!yaml_emitter_append_tag_directive(emitter, *tag_directive, 1)) + return 0; + } + + implicit = event->data.document_start.implicit; + if (!first || emitter->canonical) { + implicit = 0; + } + + if ((event->data.document_start.version_directive || + (event->data.document_start.tag_directives.start + != event->data.document_start.tag_directives.end)) && + emitter->open_ended) + { + if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + + if (event->data.document_start.version_directive) { + implicit = 0; + if (!yaml_emitter_write_indicator(emitter, "%YAML", 1, 0, 0)) + return 0; + /* if (!yaml_emitter_write_indicator(emitter, "1.1", 1, 0, 0)) */ + vdp = *event->data.document_start.version_directive; + sprintf(version_buf, "%d.%d", vdp.major, vdp.minor); + if (!yaml_emitter_write_indicator(emitter, version_buf, 1, 0, 0)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + + if (event->data.document_start.tag_directives.start + != event->data.document_start.tag_directives.end) { + implicit = 0; + for (tag_directive = event->data.document_start.tag_directives.start; + tag_directive != event->data.document_start.tag_directives.end; + tag_directive ++) { + if (!yaml_emitter_write_indicator(emitter, "%TAG", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_tag_handle(emitter, tag_directive->handle, + strlen((char *)tag_directive->handle))) + return 0; + if (!yaml_emitter_write_tag_content(emitter, tag_directive->prefix, + strlen((char *)tag_directive->prefix), 1)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + } + + if (yaml_emitter_check_empty_document(emitter)) { + implicit = 0; + } + + if (!implicit) { + if (!yaml_emitter_write_indent(emitter)) + return 0; + if (!yaml_emitter_write_indicator(emitter, "---", 1, 0, 0)) + return 0; + if (emitter->canonical) { + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + } + + emitter->state = YAML_EMIT_DOCUMENT_CONTENT_STATE; + + return 1; + } + + else if (event->type == YAML_STREAM_END_EVENT) + { + if (emitter->open_ended) + { + if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + + if (!yaml_emitter_flush(emitter)) + return 0; + + emitter->state = YAML_EMIT_END_STATE; + + return 1; + } + + return yaml_emitter_set_emitter_error(emitter, + "expected DOCUMENT-START or STREAM-END"); +} + +/* + * Expect the root node. + */ + +static int +yaml_emitter_emit_document_content(yaml_emitter_t *emitter, + yaml_event_t *event) +{ + if (!PUSH(emitter, emitter->states, YAML_EMIT_DOCUMENT_END_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 1, 0, 0, 0); +} + +/* + * Expect DOCUMENT-END. + */ + +static int +yaml_emitter_emit_document_end(yaml_emitter_t *emitter, + yaml_event_t *event) +{ + if (event->type == YAML_DOCUMENT_END_EVENT) + { + if (!yaml_emitter_write_indent(emitter)) + return 0; + if (!event->data.document_end.implicit) { + if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + if (!yaml_emitter_flush(emitter)) + return 0; + + emitter->state = YAML_EMIT_DOCUMENT_START_STATE; + + while (!STACK_EMPTY(emitter, emitter->tag_directives)) { + yaml_tag_directive_t tag_directive = POP(emitter, + emitter->tag_directives); + yaml_free(tag_directive.handle); + yaml_free(tag_directive.prefix); + } + + return 1; + } + + return yaml_emitter_set_emitter_error(emitter, + "expected DOCUMENT-END"); +} + +/* + * + * Expect a flow item node. + */ + +static int +yaml_emitter_emit_flow_sequence_item(yaml_emitter_t *emitter, + yaml_event_t *event, int first) +{ + if (first) + { + if (!yaml_emitter_write_indicator(emitter, "[", 1, 1, 0)) + return 0; + if (!yaml_emitter_increase_indent(emitter, 1, 0)) + return 0; + emitter->flow_level ++; + } + + if (event->type == YAML_SEQUENCE_END_EVENT) + { + emitter->flow_level --; + emitter->indent = POP(emitter, emitter->indents); + if (emitter->canonical && !first) { + if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + if (!yaml_emitter_write_indicator(emitter, "]", 0, 0, 0)) + return 0; + emitter->state = POP(emitter, emitter->states); + + return 1; + } + + if (!first) { + if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0)) + return 0; + } + + if (emitter->canonical || emitter->column > emitter->best_width) { + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + if (!PUSH(emitter, emitter->states, YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 1, 0, 0); +} + +/* + * Expect a flow key node. + */ + +static int +yaml_emitter_emit_flow_mapping_key(yaml_emitter_t *emitter, + yaml_event_t *event, int first) +{ + if (first) + { + if (!yaml_emitter_write_indicator(emitter, "{", 1, 1, 0)) + return 0; + if (!yaml_emitter_increase_indent(emitter, 1, 0)) + return 0; + emitter->flow_level ++; + } + + if (event->type == YAML_MAPPING_END_EVENT) + { + emitter->flow_level --; + emitter->indent = POP(emitter, emitter->indents); + if (emitter->canonical && !first) { + if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0)) + return 0; + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + if (!yaml_emitter_write_indicator(emitter, "}", 0, 0, 0)) + return 0; + emitter->state = POP(emitter, emitter->states); + + return 1; + } + + if (!first) { + if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0)) + return 0; + } + if (emitter->canonical || emitter->column > emitter->best_width) { + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + + if (!emitter->canonical && yaml_emitter_check_simple_key(emitter)) + { + if (!PUSH(emitter, emitter->states, + YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 1); + } + else + { + if (!yaml_emitter_write_indicator(emitter, "?", 1, 0, 0)) + return 0; + if (!PUSH(emitter, emitter->states, + YAML_EMIT_FLOW_MAPPING_VALUE_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0); + } +} + +/* + * Expect a flow value node. + */ + +static int +yaml_emitter_emit_flow_mapping_value(yaml_emitter_t *emitter, + yaml_event_t *event, int simple) +{ + if (simple) { + if (!yaml_emitter_write_indicator(emitter, ":", 0, 0, 0)) + return 0; + } + else { + if (emitter->canonical || emitter->column > emitter->best_width) { + if (!yaml_emitter_write_indent(emitter)) + return 0; + } + if (!yaml_emitter_write_indicator(emitter, ":", 1, 0, 0)) + return 0; + } + if (!PUSH(emitter, emitter->states, YAML_EMIT_FLOW_MAPPING_KEY_STATE)) + return 0; + return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0); +} + +/* + * Expect a block item node. + */ + +static int +yaml_emitter_emit_block_sequence_item(yaml_emitter_t *emitter, + yaml_event_t *event, int first) +{ + if (first) + { + if (!yaml_emitter_increase_indent(emitter, 0, + (emitter->mapping_context && !emitter->indention))) + return 0; + } + + if (event->type == YAML_SEQUENCE_END_EVENT) + { + emitter->indent = POP(emitter, emitter->indents); + emitter->state = POP(emitter, emitter->states); + + return 1; + } + + if (!yaml_emitter_write_indent(emitter)) + return 0; + if (!yaml_emitter_write_indicator(emitter, "-", 1, 0, 1)) + return 0; + if (!PUSH(emitter, emitter->states, + YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 1, 0, 0); +} + +/* + * Expect a block key node. + */ + +static int +yaml_emitter_emit_block_mapping_key(yaml_emitter_t *emitter, + yaml_event_t *event, int first) +{ + if (first) + { + if (!yaml_emitter_increase_indent(emitter, 0, 0)) + return 0; + } + + if (event->type == YAML_MAPPING_END_EVENT) + { + emitter->indent = POP(emitter, emitter->indents); + emitter->state = POP(emitter, emitter->states); + + return 1; + } + + if (!yaml_emitter_write_indent(emitter)) + return 0; + + if (yaml_emitter_check_simple_key(emitter)) + { + if (!PUSH(emitter, emitter->states, + YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 1); + } + else + { + if (!yaml_emitter_write_indicator(emitter, "?", 1, 0, 1)) + return 0; + if (!PUSH(emitter, emitter->states, + YAML_EMIT_BLOCK_MAPPING_VALUE_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0); + } +} + +/* + * Expect a block value node. + */ + +static int +yaml_emitter_emit_block_mapping_value(yaml_emitter_t *emitter, + yaml_event_t *event, int simple) +{ + if (simple) { + if (!yaml_emitter_write_indicator(emitter, ":", 0, 0, 0)) + return 0; + } + else { + if (!yaml_emitter_write_indent(emitter)) + return 0; + if (!yaml_emitter_write_indicator(emitter, ":", 1, 0, 1)) + return 0; + } + if (!PUSH(emitter, emitter->states, + YAML_EMIT_BLOCK_MAPPING_KEY_STATE)) + return 0; + + return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0); +} + +/* + * Expect a node. + */ + +static int +yaml_emitter_emit_node(yaml_emitter_t *emitter, yaml_event_t *event, + int root, int sequence, int mapping, int simple_key) +{ + emitter->root_context = root; + emitter->sequence_context = sequence; + emitter->mapping_context = mapping; + emitter->simple_key_context = simple_key; + + switch (event->type) + { + case YAML_ALIAS_EVENT: + return yaml_emitter_emit_alias(emitter, event); + + case YAML_SCALAR_EVENT: + return yaml_emitter_emit_scalar(emitter, event); + + case YAML_SEQUENCE_START_EVENT: + return yaml_emitter_emit_sequence_start(emitter, event); + + case YAML_MAPPING_START_EVENT: + return yaml_emitter_emit_mapping_start(emitter, event); + + default: + return yaml_emitter_set_emitter_error(emitter, + "expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS"); + } + + return 0; +} + +/* + * Expect ALIAS. + */ + +static int +yaml_emitter_emit_alias(yaml_emitter_t *emitter, SHIM(yaml_event_t *event)) +{ + if (!yaml_emitter_process_anchor(emitter)) + return 0; + emitter->state = POP(emitter, emitter->states); + + return 1; +} + +/* + * Expect SCALAR. + */ + +static int +yaml_emitter_emit_scalar(yaml_emitter_t *emitter, yaml_event_t *event) +{ + if (!yaml_emitter_select_scalar_style(emitter, event)) + return 0; + if (!yaml_emitter_process_anchor(emitter)) + return 0; + if (!yaml_emitter_process_tag(emitter)) + return 0; + if (!yaml_emitter_increase_indent(emitter, 1, 0)) + return 0; + if (!yaml_emitter_process_scalar(emitter)) + return 0; + emitter->indent = POP(emitter, emitter->indents); + emitter->state = POP(emitter, emitter->states); + + return 1; +} + +/* + * Expect SEQUENCE-START. + */ + +static int +yaml_emitter_emit_sequence_start(yaml_emitter_t *emitter, yaml_event_t *event) +{ + if (!yaml_emitter_process_anchor(emitter)) + return 0; + if (!yaml_emitter_process_tag(emitter)) + return 0; + + if (emitter->flow_level || emitter->canonical + || event->data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE + || yaml_emitter_check_empty_sequence(emitter)) { + emitter->state = YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE; + } + else { + emitter->state = YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE; + } + + return 1; +} + +/* + * Expect MAPPING-START. + */ + +static int +yaml_emitter_emit_mapping_start(yaml_emitter_t *emitter, yaml_event_t *event) +{ + if (!yaml_emitter_process_anchor(emitter)) + return 0; + if (!yaml_emitter_process_tag(emitter)) + return 0; + + if (emitter->flow_level || emitter->canonical + || event->data.mapping_start.style == YAML_FLOW_MAPPING_STYLE + || yaml_emitter_check_empty_mapping(emitter)) { + emitter->state = YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE; + } + else { + emitter->state = YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE; + } + + return 1; +} + +/* + * Check if the document content is an empty scalar. + */ + +static int +yaml_emitter_check_empty_document(SHIM(yaml_emitter_t *emitter)) +{ + return 0; +} + +/* + * Check if the next events represent an empty sequence. + */ + +static int +yaml_emitter_check_empty_sequence(yaml_emitter_t *emitter) +{ + if (emitter->events.tail - emitter->events.head < 2) + return 0; + + return (emitter->events.head[0].type == YAML_SEQUENCE_START_EVENT + && emitter->events.head[1].type == YAML_SEQUENCE_END_EVENT); +} + +/* + * Check if the next events represent an empty mapping. + */ + +static int +yaml_emitter_check_empty_mapping(yaml_emitter_t *emitter) +{ + if (emitter->events.tail - emitter->events.head < 2) + return 0; + + return (emitter->events.head[0].type == YAML_MAPPING_START_EVENT + && emitter->events.head[1].type == YAML_MAPPING_END_EVENT); +} + +/* + * Check if the next node can be expressed as a simple key. + */ + +static int +yaml_emitter_check_simple_key(yaml_emitter_t *emitter) +{ + yaml_event_t *event = emitter->events.head; + size_t length = 0; + + switch (event->type) + { + case YAML_ALIAS_EVENT: + length += emitter->anchor_data.anchor_length; + break; + + case YAML_SCALAR_EVENT: + if (emitter->scalar_data.multiline) + return 0; + length += emitter->anchor_data.anchor_length + + emitter->tag_data.handle_length + + emitter->tag_data.suffix_length + + emitter->scalar_data.length; + break; + + case YAML_SEQUENCE_START_EVENT: + if (!yaml_emitter_check_empty_sequence(emitter)) + return 0; + length += emitter->anchor_data.anchor_length + + emitter->tag_data.handle_length + + emitter->tag_data.suffix_length; + break; + + case YAML_MAPPING_START_EVENT: + if (!yaml_emitter_check_empty_mapping(emitter)) + return 0; + length += emitter->anchor_data.anchor_length + + emitter->tag_data.handle_length + + emitter->tag_data.suffix_length; + break; + + default: + return 0; + } + + if (length > 128) + return 0; + + return 1; +} + +/* + * Determine an acceptable scalar style. + */ + +static int +yaml_emitter_select_scalar_style(yaml_emitter_t *emitter, yaml_event_t *event) +{ + yaml_scalar_style_t style = event->data.scalar.style; + int no_tag = (!emitter->tag_data.handle && !emitter->tag_data.suffix); + + if (no_tag && !event->data.scalar.plain_implicit + && !event->data.scalar.quoted_implicit) { + return yaml_emitter_set_emitter_error(emitter, + "neither tag nor implicit flags are specified"); + } + + if (style == YAML_ANY_SCALAR_STYLE) + style = YAML_PLAIN_SCALAR_STYLE; + + if (emitter->canonical) + style = YAML_DOUBLE_QUOTED_SCALAR_STYLE; + + if (emitter->simple_key_context && emitter->scalar_data.multiline) + style = YAML_DOUBLE_QUOTED_SCALAR_STYLE; + + if (style == YAML_PLAIN_SCALAR_STYLE) + { + if ((emitter->flow_level && !emitter->scalar_data.flow_plain_allowed) + || (!emitter->flow_level && !emitter->scalar_data.block_plain_allowed)) + style = YAML_SINGLE_QUOTED_SCALAR_STYLE; + if (!emitter->scalar_data.length + && (emitter->flow_level || emitter->simple_key_context)) + style = YAML_SINGLE_QUOTED_SCALAR_STYLE; + if (no_tag && !event->data.scalar.plain_implicit) + style = YAML_SINGLE_QUOTED_SCALAR_STYLE; + } + + if (style == YAML_SINGLE_QUOTED_SCALAR_STYLE) + { + if (!emitter->scalar_data.single_quoted_allowed) + style = YAML_DOUBLE_QUOTED_SCALAR_STYLE; + } + + if (style == YAML_LITERAL_SCALAR_STYLE || style == YAML_FOLDED_SCALAR_STYLE) + { + if (!emitter->scalar_data.block_allowed + || emitter->flow_level || emitter->simple_key_context) + style = YAML_DOUBLE_QUOTED_SCALAR_STYLE; + } + + if (no_tag && !event->data.scalar.quoted_implicit + && style != YAML_PLAIN_SCALAR_STYLE) + { + emitter->tag_data.handle = (yaml_char_t *)"!"; + emitter->tag_data.handle_length = 1; + } + + emitter->scalar_data.style = style; + + return 1; +} + +/* + * Write an achor. + */ + +static int +yaml_emitter_process_anchor(yaml_emitter_t *emitter) +{ + if (!emitter->anchor_data.anchor) + return 1; + + if (!yaml_emitter_write_indicator(emitter, + (emitter->anchor_data.alias ? "*" : "&"), 1, 0, 0)) + return 0; + + return yaml_emitter_write_anchor(emitter, + emitter->anchor_data.anchor, emitter->anchor_data.anchor_length); +} + +/* + * Write a tag. + */ + +static int +yaml_emitter_process_tag(yaml_emitter_t *emitter) +{ + if (!emitter->tag_data.handle && !emitter->tag_data.suffix) + return 1; + + if (emitter->tag_data.handle) + { + if (!yaml_emitter_write_tag_handle(emitter, emitter->tag_data.handle, + emitter->tag_data.handle_length)) + return 0; + if (emitter->tag_data.suffix) { + if (!yaml_emitter_write_tag_content(emitter, emitter->tag_data.suffix, + emitter->tag_data.suffix_length, 0)) + return 0; + } + } + else + { + if (!yaml_emitter_write_indicator(emitter, "!<", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_tag_content(emitter, emitter->tag_data.suffix, + emitter->tag_data.suffix_length, 0)) + return 0; + if (!yaml_emitter_write_indicator(emitter, ">", 0, 0, 0)) + return 0; + } + + return 1; +} + +/* + * Write a scalar. + */ + +static int +yaml_emitter_process_scalar(yaml_emitter_t *emitter) +{ + switch (emitter->scalar_data.style) + { + case YAML_PLAIN_SCALAR_STYLE: + return yaml_emitter_write_plain_scalar(emitter, + emitter->scalar_data.value, emitter->scalar_data.length, + !emitter->simple_key_context); + + case YAML_SINGLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_single_quoted_scalar(emitter, + emitter->scalar_data.value, emitter->scalar_data.length, + !emitter->simple_key_context); + + case YAML_DOUBLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_double_quoted_scalar(emitter, + emitter->scalar_data.value, emitter->scalar_data.length, + !emitter->simple_key_context); + + case YAML_LITERAL_SCALAR_STYLE: + return yaml_emitter_write_literal_scalar(emitter, + emitter->scalar_data.value, emitter->scalar_data.length); + + case YAML_FOLDED_SCALAR_STYLE: + return yaml_emitter_write_folded_scalar(emitter, + emitter->scalar_data.value, emitter->scalar_data.length); + + default: + assert(1); /* Impossible. */ + } + + return 0; +} + +/* + * Check if a %YAML directive is valid. + */ + +static int +yaml_emitter_analyze_version_directive(yaml_emitter_t *emitter, + yaml_version_directive_t version_directive) +{ + if (version_directive.major != 1 || ( + version_directive.minor != 1 && version_directive.minor != 2) ) { + return yaml_emitter_set_emitter_error(emitter, + "incompatible %YAML directive"); + } + + return 1; +} + +/* + * Check if a %TAG directive is valid. + */ + +static int +yaml_emitter_analyze_tag_directive(yaml_emitter_t *emitter, + yaml_tag_directive_t tag_directive) +{ + yaml_string_t handle; + yaml_string_t prefix; + size_t handle_length; + size_t prefix_length; + + handle_length = strlen((char *)tag_directive.handle); + prefix_length = strlen((char *)tag_directive.prefix); + STRING_ASSIGN(handle, tag_directive.handle, handle_length); + STRING_ASSIGN(prefix, tag_directive.prefix, prefix_length); + + if (handle.start == handle.end) { + return yaml_emitter_set_emitter_error(emitter, + "tag handle must not be empty"); + } + + if (handle.start[0] != '!') { + return yaml_emitter_set_emitter_error(emitter, + "tag handle must start with '!'"); + } + + if (handle.end[-1] != '!') { + return yaml_emitter_set_emitter_error(emitter, + "tag handle must end with '!'"); + } + + handle.pointer ++; + + while (handle.pointer < handle.end-1) { + if (!IS_ALPHA(handle)) { + return yaml_emitter_set_emitter_error(emitter, + "tag handle must contain alphanumerical characters only"); + } + MOVE(handle); + } + + if (prefix.start == prefix.end) { + return yaml_emitter_set_emitter_error(emitter, + "tag prefix must not be empty"); + } + + return 1; +} + +/* + * Check if an anchor is valid. + */ + +static int +yaml_emitter_analyze_anchor(yaml_emitter_t *emitter, + yaml_char_t *anchor, int alias) +{ + size_t anchor_length; + yaml_string_t string; + + anchor_length = strlen((char *)anchor); + STRING_ASSIGN(string, anchor, anchor_length); + + if (string.start == string.end) { + return yaml_emitter_set_emitter_error(emitter, alias ? + "alias value must not be empty" : + "anchor value must not be empty"); + } + + while (string.pointer != string.end) { + if (!IS_ALPHA(string)) { + return yaml_emitter_set_emitter_error(emitter, alias ? + "alias value must contain alphanumerical characters only" : + "anchor value must contain alphanumerical characters only"); + } + MOVE(string); + } + + emitter->anchor_data.anchor = string.start; + emitter->anchor_data.anchor_length = string.end - string.start; + emitter->anchor_data.alias = alias; + + return 1; +} + +/* + * Check if a tag is valid. + */ + +static int +yaml_emitter_analyze_tag(yaml_emitter_t *emitter, + yaml_char_t *tag) +{ + size_t tag_length; + yaml_string_t string; + yaml_tag_directive_t *tag_directive; + + tag_length = strlen((char *)tag); + STRING_ASSIGN(string, tag, tag_length); + + if (string.start == string.end) { + return yaml_emitter_set_emitter_error(emitter, + "tag value must not be empty"); + } + + for (tag_directive = emitter->tag_directives.start; + tag_directive != emitter->tag_directives.top; tag_directive ++) { + size_t prefix_length = strlen((char *)tag_directive->prefix); + if (prefix_length < (size_t)(string.end - string.start) + && strncmp((char *)tag_directive->prefix, (char *)string.start, + prefix_length) == 0) + { + emitter->tag_data.handle = tag_directive->handle; + emitter->tag_data.handle_length = + strlen((char *)tag_directive->handle); + emitter->tag_data.suffix = string.start + prefix_length; + emitter->tag_data.suffix_length = + (string.end - string.start) - prefix_length; + return 1; + } + } + + emitter->tag_data.suffix = string.start; + emitter->tag_data.suffix_length = string.end - string.start; + + return 1; +} + +/* + * Check if a scalar is valid. + */ + +static int +yaml_emitter_analyze_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length) +{ + yaml_string_t string; + + int block_indicators = 0; + int flow_indicators = 0; + int line_breaks = 0; + int special_characters = 0; + + int leading_space = 0; + int leading_break = 0; + int trailing_space = 0; + int trailing_break = 0; + int break_space = 0; + int space_break = 0; + + int preceded_by_whitespace = 0; + int followed_by_whitespace = 0; + int previous_space = 0; + int previous_break = 0; + + STRING_ASSIGN(string, value, length); + + emitter->scalar_data.value = value; + emitter->scalar_data.length = length; + + if (string.start == string.end) + { + emitter->scalar_data.multiline = 0; + emitter->scalar_data.flow_plain_allowed = 0; + emitter->scalar_data.block_plain_allowed = 1; + emitter->scalar_data.single_quoted_allowed = 1; + emitter->scalar_data.block_allowed = 0; + + return 1; + } + + if ((CHECK_AT(string, '-', 0) + && CHECK_AT(string, '-', 1) + && CHECK_AT(string, '-', 2)) + || (CHECK_AT(string, '.', 0) + && CHECK_AT(string, '.', 1) + && CHECK_AT(string, '.', 2))) { + block_indicators = 1; + flow_indicators = 1; + } + + preceded_by_whitespace = 1; + followed_by_whitespace = IS_BLANKZ_AT(string, WIDTH(string)); + + while (string.pointer != string.end) + { + if (string.start == string.pointer) + { + if (CHECK(string, '#') || CHECK(string, ',') + || CHECK(string, '[') || CHECK(string, ']') + || CHECK(string, '{') || CHECK(string, '}') + || CHECK(string, '&') || CHECK(string, '*') + || CHECK(string, '!') || CHECK(string, '|') + || CHECK(string, '>') || CHECK(string, '\'') + || CHECK(string, '"') || CHECK(string, '%') + || CHECK(string, '@') || CHECK(string, '`')) { + flow_indicators = 1; + block_indicators = 1; + } + + if (CHECK(string, '?') || CHECK(string, ':')) { + flow_indicators = 1; + if (followed_by_whitespace) { + block_indicators = 1; + } + } + + if (CHECK(string, '-') && followed_by_whitespace) { + flow_indicators = 1; + block_indicators = 1; + } + } + else + { + if (CHECK(string, ',') || CHECK(string, '?') + || CHECK(string, '[') || CHECK(string, ']') + || CHECK(string, '{') || CHECK(string, '}')) { + flow_indicators = 1; + } + + if (CHECK(string, ':')) { + flow_indicators = 1; + if (followed_by_whitespace) { + block_indicators = 1; + } + } + + if (CHECK(string, '#') && preceded_by_whitespace) { + flow_indicators = 1; + block_indicators = 1; + } + } + + if (!IS_PRINTABLE(string) + || (!IS_ASCII(string) && !emitter->unicode)) { + special_characters = 1; + } + + if (IS_BREAK(string)) { + line_breaks = 1; + } + + if (IS_SPACE(string)) + { + if (string.start == string.pointer) { + leading_space = 1; + } + if (string.pointer+WIDTH(string) == string.end) { + trailing_space = 1; + } + if (previous_break) { + break_space = 1; + } + previous_space = 1; + previous_break = 0; + } + else if (IS_BREAK(string)) + { + if (string.start == string.pointer) { + leading_break = 1; + } + if (string.pointer+WIDTH(string) == string.end) { + trailing_break = 1; + } + if (previous_space) { + space_break = 1; + } + previous_space = 0; + previous_break = 1; + } + else + { + previous_space = 0; + previous_break = 0; + } + + preceded_by_whitespace = IS_BLANKZ(string); + MOVE(string); + if (string.pointer != string.end) { + followed_by_whitespace = IS_BLANKZ_AT(string, WIDTH(string)); + } + } + + emitter->scalar_data.multiline = line_breaks; + + emitter->scalar_data.flow_plain_allowed = 1; + emitter->scalar_data.block_plain_allowed = 1; + emitter->scalar_data.single_quoted_allowed = 1; + emitter->scalar_data.block_allowed = 1; + + if (leading_space || leading_break || trailing_space || trailing_break) { + emitter->scalar_data.flow_plain_allowed = 0; + emitter->scalar_data.block_plain_allowed = 0; + } + + if (trailing_space) { + emitter->scalar_data.block_allowed = 0; + } + + if (break_space) { + emitter->scalar_data.flow_plain_allowed = 0; + emitter->scalar_data.block_plain_allowed = 0; + emitter->scalar_data.single_quoted_allowed = 0; + } + + if (space_break || special_characters) { + emitter->scalar_data.flow_plain_allowed = 0; + emitter->scalar_data.block_plain_allowed = 0; + emitter->scalar_data.single_quoted_allowed = 0; + emitter->scalar_data.block_allowed = 0; + } + + if (line_breaks) { + emitter->scalar_data.flow_plain_allowed = 0; + emitter->scalar_data.block_plain_allowed = 0; + } + + if (flow_indicators) { + emitter->scalar_data.flow_plain_allowed = 0; + } + + if (block_indicators) { + emitter->scalar_data.block_plain_allowed = 0; + } + + return 1; +} + +/* + * Check if the event data is valid. + */ + +static int +yaml_emitter_analyze_event(yaml_emitter_t *emitter, + yaml_event_t *event) +{ + emitter->anchor_data.anchor = NULL; + emitter->anchor_data.anchor_length = 0; + emitter->tag_data.handle = NULL; + emitter->tag_data.handle_length = 0; + emitter->tag_data.suffix = NULL; + emitter->tag_data.suffix_length = 0; + emitter->scalar_data.value = NULL; + emitter->scalar_data.length = 0; + + switch (event->type) + { + case YAML_ALIAS_EVENT: + if (!yaml_emitter_analyze_anchor(emitter, + event->data.alias.anchor, 1)) + return 0; + return 1; + + case YAML_SCALAR_EVENT: + if (event->data.scalar.anchor) { + if (!yaml_emitter_analyze_anchor(emitter, + event->data.scalar.anchor, 0)) + return 0; + } + if (event->data.scalar.tag && (emitter->canonical || + (!event->data.scalar.plain_implicit + && !event->data.scalar.quoted_implicit))) { + if (!yaml_emitter_analyze_tag(emitter, event->data.scalar.tag)) + return 0; + } + if (!yaml_emitter_analyze_scalar(emitter, + event->data.scalar.value, event->data.scalar.length)) + return 0; + return 1; + + case YAML_SEQUENCE_START_EVENT: + if (event->data.sequence_start.anchor) { + if (!yaml_emitter_analyze_anchor(emitter, + event->data.sequence_start.anchor, 0)) + return 0; + } + if (event->data.sequence_start.tag && (emitter->canonical || + !event->data.sequence_start.implicit)) { + if (!yaml_emitter_analyze_tag(emitter, + event->data.sequence_start.tag)) + return 0; + } + return 1; + + case YAML_MAPPING_START_EVENT: + if (event->data.mapping_start.anchor) { + if (!yaml_emitter_analyze_anchor(emitter, + event->data.mapping_start.anchor, 0)) + return 0; + } + if (event->data.mapping_start.tag && (emitter->canonical || + !event->data.mapping_start.implicit)) { + if (!yaml_emitter_analyze_tag(emitter, + event->data.mapping_start.tag)) + return 0; + } + return 1; + + default: + return 1; + } +} + +/* + * Write the BOM character. + */ + +static int +yaml_emitter_write_bom(yaml_emitter_t *emitter) +{ + if (!FLUSH(emitter)) return 0; + + *(emitter->buffer.pointer++) = (yaml_char_t) '\xEF'; + *(emitter->buffer.pointer++) = (yaml_char_t) '\xBB'; + *(emitter->buffer.pointer++) = (yaml_char_t) '\xBF'; + + return 1; +} + +static int +yaml_emitter_write_indent(yaml_emitter_t *emitter) +{ + int indent = (emitter->indent >= 0) ? emitter->indent : 0; + + if (!emitter->indention || emitter->column > indent + || (emitter->column == indent && !emitter->whitespace)) { + if (!PUT_BREAK(emitter)) return 0; + } + + while (emitter->column < indent) { + if (!PUT(emitter, ' ')) return 0; + } + + emitter->whitespace = 1; + emitter->indention = 1; + + return 1; +} + +static int +yaml_emitter_write_indicator(yaml_emitter_t *emitter, + const char *indicator, int need_whitespace, + int is_whitespace, int is_indention) +{ + size_t indicator_length; + yaml_string_t string; + + indicator_length = strlen(indicator); + STRING_ASSIGN(string, (yaml_char_t *)indicator, indicator_length); + + if (need_whitespace && !emitter->whitespace) { + if (!PUT(emitter, ' ')) return 0; + } + + while (string.pointer != string.end) { + if (!WRITE(emitter, string)) return 0; + } + + emitter->whitespace = is_whitespace; + emitter->indention = (emitter->indention && is_indention); + emitter->open_ended = 0; + + return 1; +} + +static int +yaml_emitter_write_anchor(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length) +{ + yaml_string_t string; + STRING_ASSIGN(string, value, length); + + while (string.pointer != string.end) { + if (!WRITE(emitter, string)) return 0; + } + + emitter->whitespace = 0; + emitter->indention = 0; + + return 1; +} + +static int +yaml_emitter_write_tag_handle(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length) +{ + yaml_string_t string; + STRING_ASSIGN(string, value, length); + + if (!emitter->whitespace) { + if (!PUT(emitter, ' ')) return 0; + } + + while (string.pointer != string.end) { + if (!WRITE(emitter, string)) return 0; + } + + emitter->whitespace = 0; + emitter->indention = 0; + + return 1; +} + +static int +yaml_emitter_write_tag_content(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, + int need_whitespace) +{ + yaml_string_t string; + STRING_ASSIGN(string, value, length); + + if (need_whitespace && !emitter->whitespace) { + if (!PUT(emitter, ' ')) return 0; + } + + while (string.pointer != string.end) { + if (IS_ALPHA(string) + || CHECK(string, ';') || CHECK(string, '/') + || CHECK(string, '?') || CHECK(string, ':') + || CHECK(string, '@') || CHECK(string, '&') + || CHECK(string, '=') || CHECK(string, '+') + || CHECK(string, '$') || CHECK(string, ',') + || CHECK(string, '_') || CHECK(string, '.') + || CHECK(string, '~') || CHECK(string, '*') + || CHECK(string, '\'') || CHECK(string, '(') + || CHECK(string, ')') || CHECK(string, '[') + || CHECK(string, ']')) { + if (!WRITE(emitter, string)) return 0; + } + else { + int width = WIDTH(string); + unsigned int value; + while (width --) { + value = *(string.pointer++); + if (!PUT(emitter, '%')) return 0; + if (!PUT(emitter, (value >> 4) + + ((value >> 4) < 10 ? '0' : 'A' - 10))) + return 0; + if (!PUT(emitter, (value & 0x0F) + + ((value & 0x0F) < 10 ? '0' : 'A' - 10))) + return 0; + } + } + } + + emitter->whitespace = 0; + emitter->indention = 0; + + return 1; +} + +static int +yaml_emitter_write_plain_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int allow_breaks) +{ + yaml_string_t string; + int spaces = 0; + int breaks = 0; + + STRING_ASSIGN(string, value, length); + + if (!emitter->whitespace) { + if (!PUT(emitter, ' ')) return 0; + } + + while (string.pointer != string.end) + { + if (IS_SPACE(string)) + { + if (allow_breaks && !spaces + && emitter->column > emitter->best_width + && !IS_SPACE_AT(string, 1)) { + if (!yaml_emitter_write_indent(emitter)) return 0; + MOVE(string); + } + else { + if (!WRITE(emitter, string)) return 0; + } + spaces = 1; + } + else if (IS_BREAK(string)) + { + if (!breaks && CHECK(string, '\n')) { + if (!PUT_BREAK(emitter)) return 0; + } + if (!WRITE_BREAK(emitter, string)) return 0; + emitter->indention = 1; + breaks = 1; + } + else + { + if (breaks) { + if (!yaml_emitter_write_indent(emitter)) return 0; + } + if (!WRITE(emitter, string)) return 0; + emitter->indention = 0; + spaces = 0; + breaks = 0; + } + } + + emitter->whitespace = 0; + emitter->indention = 0; + if (emitter->root_context) + { + emitter->open_ended = 1; + } + + return 1; +} + +static int +yaml_emitter_write_single_quoted_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int allow_breaks) +{ + yaml_string_t string; + int spaces = 0; + int breaks = 0; + + STRING_ASSIGN(string, value, length); + + if (!yaml_emitter_write_indicator(emitter, "'", 1, 0, 0)) + return 0; + + while (string.pointer != string.end) + { + if (IS_SPACE(string)) + { + if (allow_breaks && !spaces + && emitter->column > emitter->best_width + && string.pointer != string.start + && string.pointer != string.end - 1 + && !IS_SPACE_AT(string, 1)) { + if (!yaml_emitter_write_indent(emitter)) return 0; + MOVE(string); + } + else { + if (!WRITE(emitter, string)) return 0; + } + spaces = 1; + } + else if (IS_BREAK(string)) + { + if (!breaks && CHECK(string, '\n')) { + if (!PUT_BREAK(emitter)) return 0; + } + if (!WRITE_BREAK(emitter, string)) return 0; + emitter->indention = 1; + breaks = 1; + } + else + { + if (breaks) { + if (!yaml_emitter_write_indent(emitter)) return 0; + } + if (CHECK(string, '\'')) { + if (!PUT(emitter, '\'')) return 0; + } + if (!WRITE(emitter, string)) return 0; + emitter->indention = 0; + spaces = 0; + breaks = 0; + } + } + + if (breaks) + if (!yaml_emitter_write_indent(emitter)) return 0; + + if (!yaml_emitter_write_indicator(emitter, "'", 0, 0, 0)) + return 0; + + emitter->whitespace = 0; + emitter->indention = 0; + + return 1; +} + +static int +yaml_emitter_write_double_quoted_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length, int allow_breaks) +{ + yaml_string_t string; + int spaces = 0; + + STRING_ASSIGN(string, value, length); + + if (!yaml_emitter_write_indicator(emitter, "\"", 1, 0, 0)) + return 0; + + while (string.pointer != string.end) + { + if (!IS_PRINTABLE(string) || (!emitter->unicode && !IS_ASCII(string)) + || IS_BOM(string) || IS_BREAK(string) + || CHECK(string, '"') || CHECK(string, '\\')) + { + unsigned char octet; + unsigned int width; + unsigned int value; + int k; + + octet = string.pointer[0]; + width = (octet & 0x80) == 0x00 ? 1 : + (octet & 0xE0) == 0xC0 ? 2 : + (octet & 0xF0) == 0xE0 ? 3 : + (octet & 0xF8) == 0xF0 ? 4 : 0; + value = (octet & 0x80) == 0x00 ? octet & 0x7F : + (octet & 0xE0) == 0xC0 ? octet & 0x1F : + (octet & 0xF0) == 0xE0 ? octet & 0x0F : + (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; + for (k = 1; k < (int)width; k ++) { + octet = string.pointer[k]; + value = (value << 6) + (octet & 0x3F); + } + string.pointer += width; + + if (!PUT(emitter, '\\')) return 0; + + switch (value) + { + case 0x00: + if (!PUT(emitter, '0')) return 0; + break; + + case 0x07: + if (!PUT(emitter, 'a')) return 0; + break; + + case 0x08: + if (!PUT(emitter, 'b')) return 0; + break; + + case 0x09: + if (!PUT(emitter, 't')) return 0; + break; + + case 0x0A: + if (!PUT(emitter, 'n')) return 0; + break; + + case 0x0B: + if (!PUT(emitter, 'v')) return 0; + break; + + case 0x0C: + if (!PUT(emitter, 'f')) return 0; + break; + + case 0x0D: + if (!PUT(emitter, 'r')) return 0; + break; + + case 0x1B: + if (!PUT(emitter, 'e')) return 0; + break; + + case 0x22: + if (!PUT(emitter, '\"')) return 0; + break; + + case 0x5C: + if (!PUT(emitter, '\\')) return 0; + break; + + case 0x85: + if (!PUT(emitter, 'N')) return 0; + break; + + case 0xA0: + if (!PUT(emitter, '_')) return 0; + break; + + case 0x2028: + if (!PUT(emitter, 'L')) return 0; + break; + + case 0x2029: + if (!PUT(emitter, 'P')) return 0; + break; + + default: + if (value <= 0xFF) { + if (!PUT(emitter, 'x')) return 0; + width = 2; + } + else if (value <= 0xFFFF) { + if (!PUT(emitter, 'u')) return 0; + width = 4; + } + else { + if (!PUT(emitter, 'U')) return 0; + width = 8; + } + for (k = (width-1)*4; k >= 0; k -= 4) { + int digit = (value >> k) & 0x0F; + if (!PUT(emitter, digit + (digit < 10 ? '0' : 'A'-10))) + return 0; + } + } + spaces = 0; + } + else if (IS_SPACE(string)) + { + if (allow_breaks && !spaces + && emitter->column > emitter->best_width + && string.pointer != string.start + && string.pointer != string.end - 1) { + if (!yaml_emitter_write_indent(emitter)) return 0; + if (IS_SPACE_AT(string, 1)) { + if (!PUT(emitter, '\\')) return 0; + } + MOVE(string); + } + else { + if (!WRITE(emitter, string)) return 0; + } + spaces = 1; + } + else + { + if (!WRITE(emitter, string)) return 0; + spaces = 0; + } + } + + if (!yaml_emitter_write_indicator(emitter, "\"", 0, 0, 0)) + return 0; + + emitter->whitespace = 0; + emitter->indention = 0; + + return 1; +} + +static int +yaml_emitter_write_block_scalar_hints(yaml_emitter_t *emitter, + yaml_string_t string) +{ + char indent_hint[2]; + const char *chomp_hint = NULL; + + if (IS_SPACE(string) || IS_BREAK(string)) + { + indent_hint[0] = '0' + (char)emitter->best_indent; + indent_hint[1] = '\0'; + if (!yaml_emitter_write_indicator(emitter, indent_hint, 0, 0, 0)) + return 0; + } + + emitter->open_ended = 0; + + string.pointer = string.end; + if (string.start == string.pointer) + { + chomp_hint = "-"; + } + else + { + do { + string.pointer --; + } while ((*string.pointer & 0xC0) == 0x80); + if (!IS_BREAK(string)) + { + chomp_hint = "-"; + } + else if (string.start == string.pointer) + { + chomp_hint = "+"; + emitter->open_ended = 1; + } + else + { + do { + string.pointer --; + } while ((*string.pointer & 0xC0) == 0x80); + if (IS_BREAK(string)) + { + chomp_hint = "+"; + emitter->open_ended = 1; + } + } + } + + if (chomp_hint) + { + if (!yaml_emitter_write_indicator(emitter, chomp_hint, 0, 0, 0)) + return 0; + } + + return 1; +} + +static int +yaml_emitter_write_literal_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length) +{ + yaml_string_t string; + int breaks = 1; + + STRING_ASSIGN(string, value, length); + + if (!yaml_emitter_write_indicator(emitter, "|", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_block_scalar_hints(emitter, string)) + return 0; + if (!PUT_BREAK(emitter)) return 0; + emitter->indention = 1; + emitter->whitespace = 1; + + while (string.pointer != string.end) + { + if (IS_BREAK(string)) + { + if (!WRITE_BREAK(emitter, string)) return 0; + emitter->indention = 1; + breaks = 1; + } + else + { + if (breaks) { + if (!yaml_emitter_write_indent(emitter)) return 0; + } + if (!WRITE(emitter, string)) return 0; + emitter->indention = 0; + breaks = 0; + } + } + + return 1; +} + +static int +yaml_emitter_write_folded_scalar(yaml_emitter_t *emitter, + yaml_char_t *value, size_t length) +{ + yaml_string_t string; + int breaks = 1; + int leading_spaces = 1; + + STRING_ASSIGN(string, value, length); + + if (!yaml_emitter_write_indicator(emitter, ">", 1, 0, 0)) + return 0; + if (!yaml_emitter_write_block_scalar_hints(emitter, string)) + return 0; + if (!PUT_BREAK(emitter)) return 0; + emitter->indention = 1; + emitter->whitespace = 1; + + while (string.pointer != string.end) + { + if (IS_BREAK(string)) + { + if (!breaks && !leading_spaces && CHECK(string, '\n')) { + int k = 0; + while (IS_BREAK_AT(string, k)) { + k += WIDTH_AT(string, k); + } + if (!IS_BLANKZ_AT(string, k)) { + if (!PUT_BREAK(emitter)) return 0; + } + } + if (!WRITE_BREAK(emitter, string)) return 0; + emitter->indention = 1; + breaks = 1; + } + else + { + if (breaks) { + if (!yaml_emitter_write_indent(emitter)) return 0; + leading_spaces = IS_BLANK(string); + } + if (!breaks && IS_SPACE(string) && !IS_SPACE_AT(string, 1) + && emitter->column > emitter->best_width) { + if (!yaml_emitter_write_indent(emitter)) return 0; + MOVE(string); + } + else { + if (!WRITE(emitter, string)) return 0; + } + emitter->indention = 0; + breaks = 0; + } + } + + return 1; +} diff --git a/loader.c b/loader.c new file mode 100644 index 0000000..db8501a --- /dev/null +++ b/loader.c @@ -0,0 +1,444 @@ + +#include "yaml_private.h" + +/* + * API functions. + */ + +YAML_DECLARE(int) +yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document); + +/* + * Error handling. + */ + +static int +yaml_parser_set_composer_error(yaml_parser_t *parser, + const char *problem, yaml_mark_t problem_mark); + +static int +yaml_parser_set_composer_error_context(yaml_parser_t *parser, + const char *context, yaml_mark_t context_mark, + const char *problem, yaml_mark_t problem_mark); + + +/* + * Alias handling. + */ + +static int +yaml_parser_register_anchor(yaml_parser_t *parser, + int index, yaml_char_t *anchor); + +/* + * Clean up functions. + */ + +static void +yaml_parser_delete_aliases(yaml_parser_t *parser); + +/* + * Composer functions. + */ + +static int +yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *first_event); + +static int +yaml_parser_load_node(yaml_parser_t *parser, yaml_event_t *first_event); + +static int +yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *first_event); + +static int +yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event); + +static int +yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event); + +static int +yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event); + +/* + * Load the next document of the stream. + */ + +YAML_DECLARE(int) +yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document) +{ + yaml_event_t event; + + assert(parser); /* Non-NULL parser object is expected. */ + assert(document); /* Non-NULL document object is expected. */ + + memset(document, 0, sizeof(yaml_document_t)); + if (!STACK_INIT(parser, document->nodes, yaml_node_t*)) + goto error; + + if (!parser->stream_start_produced) { + if (!yaml_parser_parse(parser, &event)) goto error; + assert(event.type == YAML_STREAM_START_EVENT); + /* STREAM-START is expected. */ + } + + if (parser->stream_end_produced) { + return 1; + } + + if (!yaml_parser_parse(parser, &event)) goto error; + if (event.type == YAML_STREAM_END_EVENT) { + return 1; + } + + if (!STACK_INIT(parser, parser->aliases, yaml_alias_data_t*)) + goto error; + + parser->document = document; + + if (!yaml_parser_load_document(parser, &event)) goto error; + + yaml_parser_delete_aliases(parser); + parser->document = NULL; + + return 1; + +error: + + yaml_parser_delete_aliases(parser); + yaml_document_delete(document); + parser->document = NULL; + + return 0; +} + +/* + * Set composer error. + */ + +static int +yaml_parser_set_composer_error(yaml_parser_t *parser, + const char *problem, yaml_mark_t problem_mark) +{ + parser->error = YAML_COMPOSER_ERROR; + parser->problem = problem; + parser->problem_mark = problem_mark; + + return 0; +} + +/* + * Set composer error with context. + */ + +static int +yaml_parser_set_composer_error_context(yaml_parser_t *parser, + const char *context, yaml_mark_t context_mark, + const char *problem, yaml_mark_t problem_mark) +{ + parser->error = YAML_COMPOSER_ERROR; + parser->context = context; + parser->context_mark = context_mark; + parser->problem = problem; + parser->problem_mark = problem_mark; + + return 0; +} + +/* + * Delete the stack of aliases. + */ + +static void +yaml_parser_delete_aliases(yaml_parser_t *parser) +{ + while (!STACK_EMPTY(parser, parser->aliases)) { + yaml_free(POP(parser, parser->aliases).anchor); + } + STACK_DEL(parser, parser->aliases); +} + +/* + * Compose a document object. + */ + +static int +yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *first_event) +{ + yaml_event_t event; + + assert(first_event->type == YAML_DOCUMENT_START_EVENT); + /* DOCUMENT-START is expected. */ + + parser->document->version_directive + = first_event->data.document_start.version_directive; + parser->document->tag_directives.start + = first_event->data.document_start.tag_directives.start; + parser->document->tag_directives.end + = first_event->data.document_start.tag_directives.end; + parser->document->start_implicit + = first_event->data.document_start.implicit; + parser->document->start_mark = first_event->start_mark; + + if (!yaml_parser_parse(parser, &event)) return 0; + + if (!yaml_parser_load_node(parser, &event)) return 0; + + if (!yaml_parser_parse(parser, &event)) return 0; + assert(event.type == YAML_DOCUMENT_END_EVENT); + /* DOCUMENT-END is expected. */ + + parser->document->end_implicit = event.data.document_end.implicit; + parser->document->end_mark = event.end_mark; + + return 1; +} + +/* + * Compose a node. + */ + +static int +yaml_parser_load_node(yaml_parser_t *parser, yaml_event_t *first_event) +{ + switch (first_event->type) { + case YAML_ALIAS_EVENT: + return yaml_parser_load_alias(parser, first_event); + case YAML_SCALAR_EVENT: + return yaml_parser_load_scalar(parser, first_event); + case YAML_SEQUENCE_START_EVENT: + return yaml_parser_load_sequence(parser, first_event); + case YAML_MAPPING_START_EVENT: + return yaml_parser_load_mapping(parser, first_event); + default: + assert(0); /* Could not happen. */ + return 0; + } + + return 0; +} + +/* + * Add an anchor. + */ + +static int +yaml_parser_register_anchor(yaml_parser_t *parser, + int index, yaml_char_t *anchor) +{ + yaml_alias_data_t data; + yaml_alias_data_t *alias_data; + + if (!anchor) return 1; + + data.anchor = anchor; + data.index = index; + data.mark = parser->document->nodes.start[index-1].start_mark; + + for (alias_data = parser->aliases.start; + alias_data != parser->aliases.top; alias_data ++) { + if (strcmp((char *)alias_data->anchor, (char *)anchor) == 0) { + yaml_free(anchor); + return yaml_parser_set_composer_error_context(parser, + "found duplicate anchor; first occurrence", + alias_data->mark, "second occurrence", data.mark); + } + } + + if (!PUSH(parser, parser->aliases, data)) { + yaml_free(anchor); + return 0; + } + + return 1; +} + +/* + * Compose a node corresponding to an alias. + */ + +static int +yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *first_event) +{ + yaml_char_t *anchor = first_event->data.alias.anchor; + yaml_alias_data_t *alias_data; + + for (alias_data = parser->aliases.start; + alias_data != parser->aliases.top; alias_data ++) { + if (strcmp((char *)alias_data->anchor, (char *)anchor) == 0) { + yaml_free(anchor); + return alias_data->index; + } + } + + yaml_free(anchor); + return yaml_parser_set_composer_error(parser, "found undefined alias", + first_event->start_mark); +} + +/* + * Compose a scalar node. + */ + +static int +yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event) +{ + yaml_node_t node; + int index; + yaml_char_t *tag = first_event->data.scalar.tag; + + if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error; + + if (!tag || strcmp((char *)tag, "!") == 0) { + yaml_free(tag); + tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SCALAR_TAG); + if (!tag) goto error; + } + + SCALAR_NODE_INIT(node, tag, first_event->data.scalar.value, + first_event->data.scalar.length, first_event->data.scalar.style, + first_event->start_mark, first_event->end_mark); + + if (!PUSH(parser, parser->document->nodes, node)) goto error; + + index = parser->document->nodes.top - parser->document->nodes.start; + + if (!yaml_parser_register_anchor(parser, index, + first_event->data.scalar.anchor)) return 0; + + return index; + +error: + yaml_free(tag); + yaml_free(first_event->data.scalar.anchor); + yaml_free(first_event->data.scalar.value); + return 0; +} + +/* + * Compose a sequence node. + */ + +static int +yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event) +{ + yaml_event_t event; + yaml_node_t node; + struct { + yaml_node_item_t *start; + yaml_node_item_t *end; + yaml_node_item_t *top; + } items = { NULL, NULL, NULL }; + int index, item_index; + yaml_char_t *tag = first_event->data.sequence_start.tag; + + if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error; + + if (!tag || strcmp((char *)tag, "!") == 0) { + yaml_free(tag); + tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG); + if (!tag) goto error; + } + + if (!STACK_INIT(parser, items, yaml_node_item_t*)) goto error; + + SEQUENCE_NODE_INIT(node, tag, items.start, items.end, + first_event->data.sequence_start.style, + first_event->start_mark, first_event->end_mark); + + if (!PUSH(parser, parser->document->nodes, node)) goto error; + + index = parser->document->nodes.top - parser->document->nodes.start; + + if (!yaml_parser_register_anchor(parser, index, + first_event->data.sequence_start.anchor)) return 0; + + if (!yaml_parser_parse(parser, &event)) return 0; + + while (event.type != YAML_SEQUENCE_END_EVENT) { + if (!STACK_LIMIT(parser, + parser->document->nodes.start[index-1].data.sequence.items, + INT_MAX-1)) return 0; + item_index = yaml_parser_load_node(parser, &event); + if (!item_index) return 0; + if (!PUSH(parser, + parser->document->nodes.start[index-1].data.sequence.items, + item_index)) return 0; + if (!yaml_parser_parse(parser, &event)) return 0; + } + + parser->document->nodes.start[index-1].end_mark = event.end_mark; + + return index; + +error: + yaml_free(tag); + yaml_free(first_event->data.sequence_start.anchor); + return 0; +} + +/* + * Compose a mapping node. + */ + +static int +yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event) +{ + yaml_event_t event; + yaml_node_t node; + struct { + yaml_node_pair_t *start; + yaml_node_pair_t *end; + yaml_node_pair_t *top; + } pairs = { NULL, NULL, NULL }; + int index; + yaml_node_pair_t pair; + yaml_char_t *tag = first_event->data.mapping_start.tag; + + if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error; + + if (!tag || strcmp((char *)tag, "!") == 0) { + yaml_free(tag); + tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_MAPPING_TAG); + if (!tag) goto error; + } + + if (!STACK_INIT(parser, pairs, yaml_node_pair_t*)) goto error; + + MAPPING_NODE_INIT(node, tag, pairs.start, pairs.end, + first_event->data.mapping_start.style, + first_event->start_mark, first_event->end_mark); + + if (!PUSH(parser, parser->document->nodes, node)) goto error; + + index = parser->document->nodes.top - parser->document->nodes.start; + + if (!yaml_parser_register_anchor(parser, index, + first_event->data.mapping_start.anchor)) return 0; + + if (!yaml_parser_parse(parser, &event)) return 0; + + while (event.type != YAML_MAPPING_END_EVENT) { + if (!STACK_LIMIT(parser, + parser->document->nodes.start[index-1].data.mapping.pairs, + INT_MAX-1)) return 0; + pair.key = yaml_parser_load_node(parser, &event); + if (!pair.key) return 0; + if (!yaml_parser_parse(parser, &event)) return 0; + pair.value = yaml_parser_load_node(parser, &event); + if (!pair.value) return 0; + if (!PUSH(parser, + parser->document->nodes.start[index-1].data.mapping.pairs, + pair)) return 0; + if (!yaml_parser_parse(parser, &event)) return 0; + } + + parser->document->nodes.start[index-1].end_mark = event.end_mark; + + return index; + +error: + yaml_free(tag); + yaml_free(first_event->data.mapping_start.anchor); + return 0; +} + diff --git a/parser.c b/parser.c new file mode 100644 index 0000000..3aecb59 --- /dev/null +++ b/parser.c @@ -0,0 +1,1378 @@ + +/* + * The parser implements the following grammar: + * + * 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?)? + */ + +#include "yaml_private.h" + +/* + * Peek the next token in the token queue. + */ + +#define PEEK_TOKEN(parser) \ + ((parser->token_available || yaml_parser_fetch_more_tokens(parser)) ? \ + parser->tokens.head : NULL) + +/* + * Remove the next token from the queue (must be called after PEEK_TOKEN). + */ + +#define SKIP_TOKEN(parser) \ + (parser->token_available = 0, \ + parser->tokens_parsed ++, \ + parser->stream_end_produced = \ + (parser->tokens.head->type == YAML_STREAM_END_TOKEN), \ + parser->tokens.head ++) + +/* + * Public API declarations. + */ + +YAML_DECLARE(int) +yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event); + +/* + * Error handling. + */ + +static int +yaml_parser_set_parser_error(yaml_parser_t *parser, + const char *problem, yaml_mark_t problem_mark); + +static int +yaml_parser_set_parser_error_context(yaml_parser_t *parser, + const char *context, yaml_mark_t context_mark, + const char *problem, yaml_mark_t problem_mark); + +/* + * State functions. + */ + +static int +yaml_parser_state_machine(yaml_parser_t *parser, yaml_event_t *event); + +static int +yaml_parser_parse_stream_start(yaml_parser_t *parser, yaml_event_t *event); + +static int +yaml_parser_parse_document_start(yaml_parser_t *parser, yaml_event_t *event, + int implicit); + +static int +yaml_parser_parse_document_content(yaml_parser_t *parser, yaml_event_t *event); + +static int +yaml_parser_parse_document_end(yaml_parser_t *parser, yaml_event_t *event); + +static int +yaml_parser_parse_node(yaml_parser_t *parser, yaml_event_t *event, + int block, int indentless_sequence); + +static int +yaml_parser_parse_block_sequence_entry(yaml_parser_t *parser, + yaml_event_t *event, int first); + +static int +yaml_parser_parse_indentless_sequence_entry(yaml_parser_t *parser, + yaml_event_t *event); + +static int +yaml_parser_parse_block_mapping_key(yaml_parser_t *parser, + yaml_event_t *event, int first); + +static int +yaml_parser_parse_block_mapping_value(yaml_parser_t *parser, + yaml_event_t *event); + +static int +yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser, + yaml_event_t *event, int first); + +static int +yaml_parser_parse_flow_sequence_entry_mapping_key(yaml_parser_t *parser, + yaml_event_t *event); + +static int +yaml_parser_parse_flow_sequence_entry_mapping_value(yaml_parser_t *parser, + yaml_event_t *event); + +static int +yaml_parser_parse_flow_sequence_entry_mapping_end(yaml_parser_t *parser, + yaml_event_t *event); + +static int +yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser, + yaml_event_t *event, int first); + +static int +yaml_parser_parse_flow_mapping_value(yaml_parser_t *parser, + yaml_event_t *event, int empty); + +/* + * Utility functions. + */ + +static int +yaml_parser_process_empty_scalar(yaml_parser_t *parser, + yaml_event_t *event, yaml_mark_t mark); + +static int +yaml_parser_process_directives(yaml_parser_t *parser, + yaml_version_directive_t **version_directive_ref, + yaml_tag_directive_t **tag_directives_start_ref, + yaml_tag_directive_t **tag_directives_end_ref); + +static int +yaml_parser_append_tag_directive(yaml_parser_t *parser, + yaml_tag_directive_t value, int allow_duplicates, yaml_mark_t mark); + +/* + * Get the next event. + */ + +YAML_DECLARE(int) +yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event) +{ + assert(parser); /* Non-NULL parser object is expected. */ + assert(event); /* Non-NULL event object is expected. */ + + /* Erase the event object. */ + + memset(event, 0, sizeof(yaml_event_t)); + + /* No events after the end of the stream or error. */ + + if (parser->stream_end_produced || parser->error || + parser->state == YAML_PARSE_END_STATE) { + return 1; + } + + /* Generate the next event. */ + + return yaml_parser_state_machine(parser, event); +} + +/* + * Set parser error. + */ + +static int +yaml_parser_set_parser_error(yaml_parser_t *parser, + const char *problem, yaml_mark_t problem_mark) +{ + parser->error = YAML_PARSER_ERROR; + parser->problem = problem; + parser->problem_mark = problem_mark; + + return 0; +} + +static int +yaml_parser_set_parser_error_context(yaml_parser_t *parser, + const char *context, yaml_mark_t context_mark, + const char *problem, yaml_mark_t problem_mark) +{ + parser->error = YAML_PARSER_ERROR; + parser->context = context; + parser->context_mark = context_mark; + parser->problem = problem; + parser->problem_mark = problem_mark; + + return 0; +} + + +/* + * State dispatcher. + */ + +static int +yaml_parser_state_machine(yaml_parser_t *parser, yaml_event_t *event) +{ + switch (parser->state) + { + case YAML_PARSE_STREAM_START_STATE: + return yaml_parser_parse_stream_start(parser, event); + + case YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, 1); + + case YAML_PARSE_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, 0); + + case YAML_PARSE_DOCUMENT_CONTENT_STATE: + return yaml_parser_parse_document_content(parser, event); + + case YAML_PARSE_DOCUMENT_END_STATE: + return yaml_parser_parse_document_end(parser, event); + + case YAML_PARSE_BLOCK_NODE_STATE: + return yaml_parser_parse_node(parser, event, 1, 0); + + case YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return yaml_parser_parse_node(parser, event, 1, 1); + + case YAML_PARSE_FLOW_NODE_STATE: + return yaml_parser_parse_node(parser, event, 0, 0); + + case YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, 1); + + case YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, 0); + + case YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_indentless_sequence_entry(parser, event); + + case YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, 1); + + case YAML_PARSE_BLOCK_MAPPING_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, 0); + + case YAML_PARSE_BLOCK_MAPPING_VALUE_STATE: + return yaml_parser_parse_block_mapping_value(parser, event); + + case YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, 1); + + case YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, 0); + + case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event); + + case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event); + + case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event); + + case YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, 1); + + case YAML_PARSE_FLOW_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, 0); + + case YAML_PARSE_FLOW_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, 0); + + case YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, 1); + + default: + assert(1); /* Invalid state. */ + } + + return 0; +} + +/* + * Parse the production: + * stream ::= STREAM-START implicit_document? explicit_document* STREAM-END + * ************ + */ + +static int +yaml_parser_parse_stream_start(yaml_parser_t *parser, yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type != YAML_STREAM_START_TOKEN) { + return yaml_parser_set_parser_error(parser, + "did not find expected <stream-start>", token->start_mark); + } + + parser->state = YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE; + STREAM_START_EVENT_INIT(*event, token->data.stream_start.encoding, + token->start_mark, token->start_mark); + SKIP_TOKEN(parser); + + return 1; +} + +/* + * Parse the productions: + * implicit_document ::= block_node DOCUMENT-END* + * * + * explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* + * ************************* + */ + +static int +yaml_parser_parse_document_start(yaml_parser_t *parser, yaml_event_t *event, + int implicit) +{ + yaml_token_t *token; + yaml_version_directive_t *version_directive = NULL; + struct { + yaml_tag_directive_t *start; + yaml_tag_directive_t *end; + } tag_directives = { NULL, NULL }; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + /* Parse extra document end indicators. */ + + if (!implicit) + { + while (token->type == YAML_DOCUMENT_END_TOKEN) { + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + } + } + + /* Parse an implicit document. */ + + if (implicit && token->type != YAML_VERSION_DIRECTIVE_TOKEN && + token->type != YAML_TAG_DIRECTIVE_TOKEN && + token->type != YAML_DOCUMENT_START_TOKEN && + token->type != YAML_STREAM_END_TOKEN) + { + if (!yaml_parser_process_directives(parser, NULL, NULL, NULL)) + return 0; + if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) + return 0; + parser->state = YAML_PARSE_BLOCK_NODE_STATE; + DOCUMENT_START_EVENT_INIT(*event, NULL, NULL, NULL, 1, + token->start_mark, token->start_mark); + return 1; + } + + /* Parse an explicit document. */ + + else if (token->type != YAML_STREAM_END_TOKEN) + { + yaml_mark_t start_mark, end_mark; + start_mark = token->start_mark; + if (!yaml_parser_process_directives(parser, &version_directive, + &tag_directives.start, &tag_directives.end)) + return 0; + token = PEEK_TOKEN(parser); + if (!token) goto error; + if (token->type != YAML_DOCUMENT_START_TOKEN) { + yaml_parser_set_parser_error(parser, + "did not find expected <document start>", token->start_mark); + goto error; + } + if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) + goto error; + parser->state = YAML_PARSE_DOCUMENT_CONTENT_STATE; + end_mark = token->end_mark; + DOCUMENT_START_EVENT_INIT(*event, version_directive, + tag_directives.start, tag_directives.end, 0, + start_mark, end_mark); + SKIP_TOKEN(parser); + version_directive = NULL; + tag_directives.start = tag_directives.end = NULL; + return 1; + } + + /* Parse the stream end. */ + + else + { + parser->state = YAML_PARSE_END_STATE; + STREAM_END_EVENT_INIT(*event, token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; + } + +error: + yaml_free(version_directive); + while (tag_directives.start != tag_directives.end) { + yaml_free(tag_directives.end[-1].handle); + yaml_free(tag_directives.end[-1].prefix); + tag_directives.end --; + } + yaml_free(tag_directives.start); + return 0; +} + +/* + * Parse the productions: + * explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* + * *********** + */ + +static int +yaml_parser_parse_document_content(yaml_parser_t *parser, yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_VERSION_DIRECTIVE_TOKEN || + token->type == YAML_TAG_DIRECTIVE_TOKEN || + token->type == YAML_DOCUMENT_START_TOKEN || + token->type == YAML_DOCUMENT_END_TOKEN || + token->type == YAML_STREAM_END_TOKEN) { + parser->state = POP(parser, parser->states); + return yaml_parser_process_empty_scalar(parser, event, + token->start_mark); + } + else { + return yaml_parser_parse_node(parser, event, 1, 0); + } +} + +/* + * Parse the productions: + * implicit_document ::= block_node DOCUMENT-END* + * ************* + * explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* + * ************* + */ + +static int +yaml_parser_parse_document_end(yaml_parser_t *parser, yaml_event_t *event) +{ + yaml_token_t *token; + yaml_mark_t start_mark, end_mark; + int implicit = 1; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + start_mark = end_mark = token->start_mark; + + if (token->type == YAML_DOCUMENT_END_TOKEN) { + end_mark = token->end_mark; + SKIP_TOKEN(parser); + implicit = 0; + } + + while (!STACK_EMPTY(parser, parser->tag_directives)) { + yaml_tag_directive_t tag_directive = POP(parser, parser->tag_directives); + yaml_free(tag_directive.handle); + yaml_free(tag_directive.prefix); + } + + parser->state = YAML_PARSE_DOCUMENT_START_STATE; + DOCUMENT_END_EVENT_INIT(*event, implicit, start_mark, end_mark); + + return 1; +} + +/* + * Parse the productions: + * 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 + * ****** + */ + +static int +yaml_parser_parse_node(yaml_parser_t *parser, yaml_event_t *event, + int block, int indentless_sequence) +{ + yaml_token_t *token; + yaml_char_t *anchor = NULL; + yaml_char_t *tag_handle = NULL; + yaml_char_t *tag_suffix = NULL; + yaml_char_t *tag = NULL; + yaml_mark_t start_mark, end_mark, tag_mark; + int implicit; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_ALIAS_TOKEN) + { + parser->state = POP(parser, parser->states); + ALIAS_EVENT_INIT(*event, token->data.alias.value, + token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; + } + + else + { + start_mark = end_mark = token->start_mark; + + if (token->type == YAML_ANCHOR_TOKEN) + { + anchor = token->data.anchor.value; + start_mark = token->start_mark; + end_mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) goto error; + if (token->type == YAML_TAG_TOKEN) + { + tag_handle = token->data.tag.handle; + tag_suffix = token->data.tag.suffix; + tag_mark = token->start_mark; + end_mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) goto error; + } + } + else if (token->type == YAML_TAG_TOKEN) + { + tag_handle = token->data.tag.handle; + tag_suffix = token->data.tag.suffix; + start_mark = tag_mark = token->start_mark; + end_mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) goto error; + if (token->type == YAML_ANCHOR_TOKEN) + { + anchor = token->data.anchor.value; + end_mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) goto error; + } + } + + if (tag_handle) { + if (!*tag_handle) { + tag = tag_suffix; + yaml_free(tag_handle); + tag_handle = tag_suffix = NULL; + } + else { + yaml_tag_directive_t *tag_directive; + for (tag_directive = parser->tag_directives.start; + tag_directive != parser->tag_directives.top; + tag_directive ++) { + if (strcmp((char *)tag_directive->handle, (char *)tag_handle) == 0) { + size_t prefix_len = strlen((char *)tag_directive->prefix); + size_t suffix_len = strlen((char *)tag_suffix); + tag = YAML_MALLOC(prefix_len+suffix_len+1); + if (!tag) { + parser->error = YAML_MEMORY_ERROR; + goto error; + } + memcpy(tag, tag_directive->prefix, prefix_len); + memcpy(tag+prefix_len, tag_suffix, suffix_len); + tag[prefix_len+suffix_len] = '\0'; + yaml_free(tag_handle); + yaml_free(tag_suffix); + tag_handle = tag_suffix = NULL; + break; + } + } + if (!tag) { + yaml_parser_set_parser_error_context(parser, + "while parsing a node", start_mark, + "found undefined tag handle", tag_mark); + goto error; + } + } + } + + implicit = (!tag || !*tag); + if (indentless_sequence && token->type == YAML_BLOCK_ENTRY_TOKEN) { + end_mark = token->end_mark; + parser->state = YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE; + SEQUENCE_START_EVENT_INIT(*event, anchor, tag, implicit, + YAML_BLOCK_SEQUENCE_STYLE, start_mark, end_mark); + return 1; + } + else { + if (token->type == YAML_SCALAR_TOKEN) { + int plain_implicit = 0; + int quoted_implicit = 0; + end_mark = token->end_mark; + if ((token->data.scalar.style == YAML_PLAIN_SCALAR_STYLE && !tag) + || (tag && strcmp((char *)tag, "!") == 0)) { + plain_implicit = 1; + } + else if (!tag) { + quoted_implicit = 1; + } + parser->state = POP(parser, parser->states); + SCALAR_EVENT_INIT(*event, anchor, tag, + token->data.scalar.value, token->data.scalar.length, + plain_implicit, quoted_implicit, + token->data.scalar.style, start_mark, end_mark); + SKIP_TOKEN(parser); + return 1; + } + else if (token->type == YAML_FLOW_SEQUENCE_START_TOKEN) { + end_mark = token->end_mark; + parser->state = YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE; + SEQUENCE_START_EVENT_INIT(*event, anchor, tag, implicit, + YAML_FLOW_SEQUENCE_STYLE, start_mark, end_mark); + return 1; + } + else if (token->type == YAML_FLOW_MAPPING_START_TOKEN) { + end_mark = token->end_mark; + parser->state = YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE; + MAPPING_START_EVENT_INIT(*event, anchor, tag, implicit, + YAML_FLOW_MAPPING_STYLE, start_mark, end_mark); + return 1; + } + else if (block && token->type == YAML_BLOCK_SEQUENCE_START_TOKEN) { + end_mark = token->end_mark; + parser->state = YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE; + SEQUENCE_START_EVENT_INIT(*event, anchor, tag, implicit, + YAML_BLOCK_SEQUENCE_STYLE, start_mark, end_mark); + return 1; + } + else if (block && token->type == YAML_BLOCK_MAPPING_START_TOKEN) { + end_mark = token->end_mark; + parser->state = YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE; + MAPPING_START_EVENT_INIT(*event, anchor, tag, implicit, + YAML_BLOCK_MAPPING_STYLE, start_mark, end_mark); + return 1; + } + else if (anchor || tag) { + yaml_char_t *value = YAML_MALLOC(1); + if (!value) { + parser->error = YAML_MEMORY_ERROR; + goto error; + } + value[0] = '\0'; + parser->state = POP(parser, parser->states); + SCALAR_EVENT_INIT(*event, anchor, tag, value, 0, + implicit, 0, YAML_PLAIN_SCALAR_STYLE, + start_mark, end_mark); + return 1; + } + else { + yaml_parser_set_parser_error_context(parser, + (block ? "while parsing a block node" + : "while parsing a flow node"), start_mark, + "did not find expected node content", token->start_mark); + goto error; + } + } + } + +error: + yaml_free(anchor); + yaml_free(tag_handle); + yaml_free(tag_suffix); + yaml_free(tag); + + return 0; +} + +/* + * Parse the productions: + * block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END + * ******************** *********** * ********* + */ + +static int +yaml_parser_parse_block_sequence_entry(yaml_parser_t *parser, + yaml_event_t *event, int first) +{ + yaml_token_t *token; + + if (first) { + token = PEEK_TOKEN(parser); + if (!PUSH(parser, parser->marks, token->start_mark)) + return 0; + SKIP_TOKEN(parser); + } + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_BLOCK_ENTRY_TOKEN) + { + yaml_mark_t mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_BLOCK_ENTRY_TOKEN && + token->type != YAML_BLOCK_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 1, 0); + } + else { + parser->state = YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE; + return yaml_parser_process_empty_scalar(parser, event, mark); + } + } + + else if (token->type == YAML_BLOCK_END_TOKEN) + { + yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */ + parser->state = POP(parser, parser->states); + dummy_mark = POP(parser, parser->marks); + SEQUENCE_END_EVENT_INIT(*event, token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; + } + + else + { + return yaml_parser_set_parser_error_context(parser, + "while parsing a block collection", POP(parser, parser->marks), + "did not find expected '-' indicator", token->start_mark); + } +} + +/* + * Parse the productions: + * indentless_sequence ::= (BLOCK-ENTRY block_node?)+ + * *********** * + */ + +static int +yaml_parser_parse_indentless_sequence_entry(yaml_parser_t *parser, + yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_BLOCK_ENTRY_TOKEN) + { + yaml_mark_t mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_BLOCK_ENTRY_TOKEN && + token->type != YAML_KEY_TOKEN && + token->type != YAML_VALUE_TOKEN && + token->type != YAML_BLOCK_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 1, 0); + } + else { + parser->state = YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE; + return yaml_parser_process_empty_scalar(parser, event, mark); + } + } + + else + { + parser->state = POP(parser, parser->states); + SEQUENCE_END_EVENT_INIT(*event, token->start_mark, token->start_mark); + return 1; + } +} + +/* + * Parse the productions: + * block_mapping ::= BLOCK-MAPPING_START + * ******************* + * ((KEY block_node_or_indentless_sequence?)? + * *** * + * (VALUE block_node_or_indentless_sequence?)?)* + * + * BLOCK-END + * ********* + */ + +static int +yaml_parser_parse_block_mapping_key(yaml_parser_t *parser, + yaml_event_t *event, int first) +{ + yaml_token_t *token; + + if (first) { + token = PEEK_TOKEN(parser); + if (!PUSH(parser, parser->marks, token->start_mark)) + return 0; + SKIP_TOKEN(parser); + } + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_KEY_TOKEN) + { + yaml_mark_t mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_KEY_TOKEN && + token->type != YAML_VALUE_TOKEN && + token->type != YAML_BLOCK_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_BLOCK_MAPPING_VALUE_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 1, 1); + } + else { + parser->state = YAML_PARSE_BLOCK_MAPPING_VALUE_STATE; + return yaml_parser_process_empty_scalar(parser, event, mark); + } + } + + else if (token->type == YAML_BLOCK_END_TOKEN) + { + yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */ + parser->state = POP(parser, parser->states); + dummy_mark = POP(parser, parser->marks); + MAPPING_END_EVENT_INIT(*event, token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; + } + + else + { + return yaml_parser_set_parser_error_context(parser, + "while parsing a block mapping", POP(parser, parser->marks), + "did not find expected key", token->start_mark); + } +} + +/* + * Parse the productions: + * block_mapping ::= BLOCK-MAPPING_START + * + * ((KEY block_node_or_indentless_sequence?)? + * + * (VALUE block_node_or_indentless_sequence?)?)* + * ***** * + * BLOCK-END + * + */ + +static int +yaml_parser_parse_block_mapping_value(yaml_parser_t *parser, + yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_VALUE_TOKEN) + { + yaml_mark_t mark = token->end_mark; + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_KEY_TOKEN && + token->type != YAML_VALUE_TOKEN && + token->type != YAML_BLOCK_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_BLOCK_MAPPING_KEY_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 1, 1); + } + else { + parser->state = YAML_PARSE_BLOCK_MAPPING_KEY_STATE; + return yaml_parser_process_empty_scalar(parser, event, mark); + } + } + + else + { + parser->state = YAML_PARSE_BLOCK_MAPPING_KEY_STATE; + return yaml_parser_process_empty_scalar(parser, event, token->start_mark); + } +} + +/* + * Parse the productions: + * 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?)? + * * + */ + +static int +yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser, + yaml_event_t *event, int first) +{ + yaml_token_t *token; + yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */ + + if (first) { + token = PEEK_TOKEN(parser); + if (!PUSH(parser, parser->marks, token->start_mark)) + return 0; + SKIP_TOKEN(parser); + } + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type != YAML_FLOW_SEQUENCE_END_TOKEN) + { + if (!first) { + if (token->type == YAML_FLOW_ENTRY_TOKEN) { + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + } + else { + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow sequence", POP(parser, parser->marks), + "did not find expected ',' or ']'", token->start_mark); + } + } + + if (token->type == YAML_KEY_TOKEN) { + parser->state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE; + MAPPING_START_EVENT_INIT(*event, NULL, NULL, + 1, YAML_FLOW_MAPPING_STYLE, + token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; + } + + else if (token->type != YAML_FLOW_SEQUENCE_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 0, 0); + } + } + + parser->state = POP(parser, parser->states); + dummy_mark = POP(parser, parser->marks); + SEQUENCE_END_EVENT_INIT(*event, token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; +} + +/* + * Parse the productions: + * flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + * *** * + */ + +static int +yaml_parser_parse_flow_sequence_entry_mapping_key(yaml_parser_t *parser, + yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type != YAML_VALUE_TOKEN && token->type != YAML_FLOW_ENTRY_TOKEN + && token->type != YAML_FLOW_SEQUENCE_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 0, 0); + } + else { + yaml_mark_t mark = token->end_mark; + SKIP_TOKEN(parser); + parser->state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE; + return yaml_parser_process_empty_scalar(parser, event, mark); + } +} + +/* + * Parse the productions: + * flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + * ***** * + */ + +static int +yaml_parser_parse_flow_sequence_entry_mapping_value(yaml_parser_t *parser, + yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type == YAML_VALUE_TOKEN) { + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_FLOW_ENTRY_TOKEN + && token->type != YAML_FLOW_SEQUENCE_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 0, 0); + } + } + parser->state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE; + return yaml_parser_process_empty_scalar(parser, event, token->start_mark); +} + +/* + * Parse the productions: + * flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + * * + */ + +static int +yaml_parser_parse_flow_sequence_entry_mapping_end(yaml_parser_t *parser, + yaml_event_t *event) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + parser->state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE; + + MAPPING_END_EVENT_INIT(*event, token->start_mark, token->start_mark); + return 1; +} + +/* + * Parse the productions: + * 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?)? + * * *** * + */ + +static int +yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser, + yaml_event_t *event, int first) +{ + yaml_token_t *token; + yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */ + + if (first) { + token = PEEK_TOKEN(parser); + if (!PUSH(parser, parser->marks, token->start_mark)) + return 0; + SKIP_TOKEN(parser); + } + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (token->type != YAML_FLOW_MAPPING_END_TOKEN) + { + if (!first) { + if (token->type == YAML_FLOW_ENTRY_TOKEN) { + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + } + else { + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow mapping", POP(parser, parser->marks), + "did not find expected ',' or '}'", token->start_mark); + } + } + + if (token->type == YAML_KEY_TOKEN) { + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_VALUE_TOKEN + && token->type != YAML_FLOW_ENTRY_TOKEN + && token->type != YAML_FLOW_MAPPING_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_FLOW_MAPPING_VALUE_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 0, 0); + } + else { + parser->state = YAML_PARSE_FLOW_MAPPING_VALUE_STATE; + return yaml_parser_process_empty_scalar(parser, event, + token->start_mark); + } + } + else if (token->type != YAML_FLOW_MAPPING_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 0, 0); + } + } + + parser->state = POP(parser, parser->states); + dummy_mark = POP(parser, parser->marks); + MAPPING_END_EVENT_INIT(*event, token->start_mark, token->end_mark); + SKIP_TOKEN(parser); + return 1; +} + +/* + * Parse the productions: + * flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + * * ***** * + */ + +static int +yaml_parser_parse_flow_mapping_value(yaml_parser_t *parser, + yaml_event_t *event, int empty) +{ + yaml_token_t *token; + + token = PEEK_TOKEN(parser); + if (!token) return 0; + + if (empty) { + parser->state = YAML_PARSE_FLOW_MAPPING_KEY_STATE; + return yaml_parser_process_empty_scalar(parser, event, + token->start_mark); + } + + if (token->type == YAML_VALUE_TOKEN) { + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) return 0; + if (token->type != YAML_FLOW_ENTRY_TOKEN + && token->type != YAML_FLOW_MAPPING_END_TOKEN) { + if (!PUSH(parser, parser->states, + YAML_PARSE_FLOW_MAPPING_KEY_STATE)) + return 0; + return yaml_parser_parse_node(parser, event, 0, 0); + } + } + + parser->state = YAML_PARSE_FLOW_MAPPING_KEY_STATE; + return yaml_parser_process_empty_scalar(parser, event, token->start_mark); +} + +/* + * Generate an empty scalar event. + */ + +static int +yaml_parser_process_empty_scalar(yaml_parser_t *parser, yaml_event_t *event, + yaml_mark_t mark) +{ + yaml_char_t *value; + + value = YAML_MALLOC(1); + if (!value) { + parser->error = YAML_MEMORY_ERROR; + return 0; + } + value[0] = '\0'; + + SCALAR_EVENT_INIT(*event, NULL, NULL, value, 0, + 1, 0, YAML_PLAIN_SCALAR_STYLE, mark, mark); + + return 1; +} + +/* + * Parse directives. + */ + +static int +yaml_parser_process_directives(yaml_parser_t *parser, + yaml_version_directive_t **version_directive_ref, + yaml_tag_directive_t **tag_directives_start_ref, + yaml_tag_directive_t **tag_directives_end_ref) +{ + yaml_tag_directive_t default_tag_directives[] = { + {(yaml_char_t *)"!", (yaml_char_t *)"!"}, + {(yaml_char_t *)"!!", (yaml_char_t *)"tag:yaml.org,2002:"}, + {NULL, NULL} + }; + yaml_tag_directive_t *default_tag_directive; + yaml_version_directive_t *version_directive = NULL; + struct { + yaml_tag_directive_t *start; + yaml_tag_directive_t *end; + yaml_tag_directive_t *top; + } tag_directives = { NULL, NULL, NULL }; + yaml_token_t *token; + + if (!STACK_INIT(parser, tag_directives, yaml_tag_directive_t*)) + goto error; + + token = PEEK_TOKEN(parser); + if (!token) goto error; + + while (token->type == YAML_VERSION_DIRECTIVE_TOKEN || + token->type == YAML_TAG_DIRECTIVE_TOKEN) + { + if (token->type == YAML_VERSION_DIRECTIVE_TOKEN) { + if (version_directive) { + yaml_parser_set_parser_error(parser, + "found duplicate %YAML directive", token->start_mark); + goto error; + } + if (token->data.version_directive.major != 1 + || (token->data.version_directive.minor != 1 + && token->data.version_directive.minor != 2 + ) + ) { + yaml_parser_set_parser_error(parser, + "found incompatible YAML document", token->start_mark); + goto error; + } + version_directive = YAML_MALLOC_STATIC(yaml_version_directive_t); + if (!version_directive) { + parser->error = YAML_MEMORY_ERROR; + goto error; + } + version_directive->major = token->data.version_directive.major; + version_directive->minor = token->data.version_directive.minor; + } + + else if (token->type == YAML_TAG_DIRECTIVE_TOKEN) { + yaml_tag_directive_t value; + value.handle = token->data.tag_directive.handle; + value.prefix = token->data.tag_directive.prefix; + + if (!yaml_parser_append_tag_directive(parser, value, 0, + token->start_mark)) + goto error; + if (!PUSH(parser, tag_directives, value)) + goto error; + } + + SKIP_TOKEN(parser); + token = PEEK_TOKEN(parser); + if (!token) goto error; + } + + for (default_tag_directive = default_tag_directives; + default_tag_directive->handle; default_tag_directive++) { + if (!yaml_parser_append_tag_directive(parser, *default_tag_directive, 1, + token->start_mark)) + goto error; + } + + if (version_directive_ref) { + *version_directive_ref = version_directive; + } + if (tag_directives_start_ref) { + if (STACK_EMPTY(parser, tag_directives)) { + *tag_directives_start_ref = *tag_directives_end_ref = NULL; + STACK_DEL(parser, tag_directives); + } + else { + *tag_directives_start_ref = tag_directives.start; + *tag_directives_end_ref = tag_directives.top; + } + } + else { + STACK_DEL(parser, tag_directives); + } + + if (!version_directive_ref) + yaml_free(version_directive); + return 1; + +error: + yaml_free(version_directive); + while (!STACK_EMPTY(parser, tag_directives)) { + yaml_tag_directive_t tag_directive = POP(parser, tag_directives); + yaml_free(tag_directive.handle); + yaml_free(tag_directive.prefix); + } + STACK_DEL(parser, tag_directives); + return 0; +} + +/* + * Append a tag directive to the directives stack. + */ + +static int +yaml_parser_append_tag_directive(yaml_parser_t *parser, + yaml_tag_directive_t value, int allow_duplicates, yaml_mark_t mark) +{ + yaml_tag_directive_t *tag_directive; + yaml_tag_directive_t copy = { NULL, NULL }; + + for (tag_directive = parser->tag_directives.start; + tag_directive != parser->tag_directives.top; tag_directive ++) { + if (strcmp((char *)value.handle, (char *)tag_directive->handle) == 0) { + if (allow_duplicates) + return 1; + return yaml_parser_set_parser_error(parser, + "found duplicate %TAG directive", mark); + } + } + + copy.handle = yaml_strdup(value.handle); + copy.prefix = yaml_strdup(value.prefix); + if (!copy.handle || !copy.prefix) { + parser->error = YAML_MEMORY_ERROR; + goto error; + } + + if (!PUSH(parser, parser->tag_directives, copy)) + goto error; + + return 1; + +error: + yaml_free(copy.handle); + yaml_free(copy.prefix); + return 0; +} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..7e66379 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,4 @@ +[build-system] +requires = ["setuptools", "wheel"] +# test +build-backend = "setuptools.build_meta" diff --git a/reader.c b/reader.c new file mode 100644 index 0000000..f3ac54c --- /dev/null +++ b/reader.c @@ -0,0 +1,469 @@ + +#include "yaml_private.h" + +/* + * Declarations. + */ + +static int +yaml_parser_set_reader_error(yaml_parser_t *parser, const char *problem, + size_t offset, int value); + +static int +yaml_parser_update_raw_buffer(yaml_parser_t *parser); + +static int +yaml_parser_determine_encoding(yaml_parser_t *parser); + +YAML_DECLARE(int) +yaml_parser_update_buffer(yaml_parser_t *parser, size_t length); + +/* + * Set the reader error and return 0. + */ + +static int +yaml_parser_set_reader_error(yaml_parser_t *parser, const char *problem, + size_t offset, int value) +{ + parser->error = YAML_READER_ERROR; + parser->problem = problem; + parser->problem_offset = offset; + parser->problem_value = value; + + return 0; +} + +/* + * Byte order marks. + */ + +#define BOM_UTF8 "\xef\xbb\xbf" +#define BOM_UTF16LE "\xff\xfe" +#define BOM_UTF16BE "\xfe\xff" + +/* + * Determine the input stream encoding by checking the BOM symbol. If no BOM is + * found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. + */ + +static int +yaml_parser_determine_encoding(yaml_parser_t *parser) +{ + /* Ensure that we had enough bytes in the raw buffer. */ + + while (!parser->eof + && parser->raw_buffer.last - parser->raw_buffer.pointer < 3) { + if (!yaml_parser_update_raw_buffer(parser)) { + return 0; + } + } + + /* Determine the encoding. */ + + if (parser->raw_buffer.last - parser->raw_buffer.pointer >= 2 + && !memcmp(parser->raw_buffer.pointer, BOM_UTF16LE, 2)) { + parser->encoding = YAML_UTF16LE_ENCODING; + parser->raw_buffer.pointer += 2; + parser->offset += 2; + } + else if (parser->raw_buffer.last - parser->raw_buffer.pointer >= 2 + && !memcmp(parser->raw_buffer.pointer, BOM_UTF16BE, 2)) { + parser->encoding = YAML_UTF16BE_ENCODING; + parser->raw_buffer.pointer += 2; + parser->offset += 2; + } + else if (parser->raw_buffer.last - parser->raw_buffer.pointer >= 3 + && !memcmp(parser->raw_buffer.pointer, BOM_UTF8, 3)) { + parser->encoding = YAML_UTF8_ENCODING; + parser->raw_buffer.pointer += 3; + parser->offset += 3; + } + else { + parser->encoding = YAML_UTF8_ENCODING; + } + + return 1; +} + +/* + * Update the raw buffer. + */ + +static int +yaml_parser_update_raw_buffer(yaml_parser_t *parser) +{ + size_t size_read = 0; + + /* Return if the raw buffer is full. */ + + if (parser->raw_buffer.start == parser->raw_buffer.pointer + && parser->raw_buffer.last == parser->raw_buffer.end) + return 1; + + /* Return on EOF. */ + + if (parser->eof) return 1; + + /* Move the remaining bytes in the raw buffer to the beginning. */ + + if (parser->raw_buffer.start < parser->raw_buffer.pointer + && parser->raw_buffer.pointer < parser->raw_buffer.last) { + memmove(parser->raw_buffer.start, parser->raw_buffer.pointer, + parser->raw_buffer.last - parser->raw_buffer.pointer); + } + parser->raw_buffer.last -= + parser->raw_buffer.pointer - parser->raw_buffer.start; + parser->raw_buffer.pointer = parser->raw_buffer.start; + + /* Call the read handler to fill the buffer. */ + + if (!parser->read_handler(parser->read_handler_data, parser->raw_buffer.last, + parser->raw_buffer.end - parser->raw_buffer.last, &size_read)) { + return yaml_parser_set_reader_error(parser, "input error", + parser->offset, -1); + } + parser->raw_buffer.last += size_read; + if (!size_read) { + parser->eof = 1; + } + + return 1; +} + +/* + * Ensure that the buffer contains at least `length` characters. + * Return 1 on success, 0 on failure. + * + * The length is supposed to be significantly less that the buffer size. + */ + +YAML_DECLARE(int) +yaml_parser_update_buffer(yaml_parser_t *parser, size_t length) +{ + int first = 1; + + assert(parser->read_handler); /* Read handler must be set. */ + + /* If the EOF flag is set and the raw buffer is empty, do nothing. */ + + if (parser->eof && parser->raw_buffer.pointer == parser->raw_buffer.last) + return 1; + + /* Return if the buffer contains enough characters. */ + + if (parser->unread >= length) + return 1; + + /* Determine the input encoding if it is not known yet. */ + + if (!parser->encoding) { + if (!yaml_parser_determine_encoding(parser)) + return 0; + } + + /* Move the unread characters to the beginning of the buffer. */ + + if (parser->buffer.start < parser->buffer.pointer + && parser->buffer.pointer < parser->buffer.last) { + size_t size = parser->buffer.last - parser->buffer.pointer; + memmove(parser->buffer.start, parser->buffer.pointer, size); + parser->buffer.pointer = parser->buffer.start; + parser->buffer.last = parser->buffer.start + size; + } + else if (parser->buffer.pointer == parser->buffer.last) { + parser->buffer.pointer = parser->buffer.start; + parser->buffer.last = parser->buffer.start; + } + + /* Fill the buffer until it has enough characters. */ + + while (parser->unread < length) + { + /* Fill the raw buffer if necessary. */ + + if (!first || parser->raw_buffer.pointer == parser->raw_buffer.last) { + if (!yaml_parser_update_raw_buffer(parser)) return 0; + } + first = 0; + + /* Decode the raw buffer. */ + + while (parser->raw_buffer.pointer != parser->raw_buffer.last) + { + unsigned int value = 0, value2 = 0; + int incomplete = 0; + unsigned char octet; + unsigned int width = 0; + int low, high; + size_t k; + size_t raw_unread = parser->raw_buffer.last - parser->raw_buffer.pointer; + + /* Decode the next character. */ + + switch (parser->encoding) + { + case YAML_UTF8_ENCODING: + + /* + * Decode a UTF-8 character. Check RFC 3629 + * (http://www.ietf.org/rfc/rfc3629.txt) for more details. + * + * The following table (taken from the RFC) is used for + * decoding. + * + * Char. number range | UTF-8 octet sequence + * (hexadecimal) | (binary) + * --------------------+------------------------------------ + * 0000 0000-0000 007F | 0xxxxxxx + * 0000 0080-0000 07FF | 110xxxxx 10xxxxxx + * 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx + * 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + * + * Additionally, the characters in the range 0xD800-0xDFFF + * are prohibited as they are reserved for use with UTF-16 + * surrogate pairs. + */ + + /* Determine the length of the UTF-8 sequence. */ + + octet = parser->raw_buffer.pointer[0]; + width = (octet & 0x80) == 0x00 ? 1 : + (octet & 0xE0) == 0xC0 ? 2 : + (octet & 0xF0) == 0xE0 ? 3 : + (octet & 0xF8) == 0xF0 ? 4 : 0; + + /* Check if the leading octet is valid. */ + + if (!width) + return yaml_parser_set_reader_error(parser, + "invalid leading UTF-8 octet", + parser->offset, octet); + + /* Check if the raw buffer contains an incomplete character. */ + + if (width > raw_unread) { + if (parser->eof) { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-8 octet sequence", + parser->offset, -1); + } + incomplete = 1; + break; + } + + /* Decode the leading octet. */ + + value = (octet & 0x80) == 0x00 ? octet & 0x7F : + (octet & 0xE0) == 0xC0 ? octet & 0x1F : + (octet & 0xF0) == 0xE0 ? octet & 0x0F : + (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; + + /* Check and decode the trailing octets. */ + + for (k = 1; k < width; k ++) + { + octet = parser->raw_buffer.pointer[k]; + + /* Check if the octet is valid. */ + + if ((octet & 0xC0) != 0x80) + return yaml_parser_set_reader_error(parser, + "invalid trailing UTF-8 octet", + parser->offset+k, octet); + + /* Decode the octet. */ + + value = (value << 6) + (octet & 0x3F); + } + + /* Check the length of the sequence against the value. */ + + if (!((width == 1) || + (width == 2 && value >= 0x80) || + (width == 3 && value >= 0x800) || + (width == 4 && value >= 0x10000))) + return yaml_parser_set_reader_error(parser, + "invalid length of a UTF-8 sequence", + parser->offset, -1); + + /* Check the range of the value. */ + + if ((value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF) + return yaml_parser_set_reader_error(parser, + "invalid Unicode character", + parser->offset, value); + + break; + + case YAML_UTF16LE_ENCODING: + case YAML_UTF16BE_ENCODING: + + low = (parser->encoding == YAML_UTF16LE_ENCODING ? 0 : 1); + high = (parser->encoding == YAML_UTF16LE_ENCODING ? 1 : 0); + + /* + * The UTF-16 encoding is not as simple as one might + * naively think. Check RFC 2781 + * (http://www.ietf.org/rfc/rfc2781.txt). + * + * Normally, two subsequent bytes describe a Unicode + * character. However a special technique (called a + * surrogate pair) is used for specifying character + * values larger than 0xFFFF. + * + * A surrogate pair consists of two pseudo-characters: + * high surrogate area (0xD800-0xDBFF) + * low surrogate area (0xDC00-0xDFFF) + * + * The following formulas are used for decoding + * and encoding characters using surrogate pairs: + * + * U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) + * U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) + * W1 = 110110yyyyyyyyyy + * W2 = 110111xxxxxxxxxx + * + * where U is the character value, W1 is the high surrogate + * area, W2 is the low surrogate area. + */ + + /* Check for incomplete UTF-16 character. */ + + if (raw_unread < 2) { + if (parser->eof) { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 character", + parser->offset, -1); + } + incomplete = 1; + break; + } + + /* Get the character. */ + + value = parser->raw_buffer.pointer[low] + + (parser->raw_buffer.pointer[high] << 8); + + /* Check for unexpected low surrogate area. */ + + if ((value & 0xFC00) == 0xDC00) + return yaml_parser_set_reader_error(parser, + "unexpected low surrogate area", + parser->offset, value); + + /* Check for a high surrogate area. */ + + if ((value & 0xFC00) == 0xD800) { + + width = 4; + + /* Check for incomplete surrogate pair. */ + + if (raw_unread < 4) { + if (parser->eof) { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 surrogate pair", + parser->offset, -1); + } + incomplete = 1; + break; + } + + /* Get the next character. */ + + value2 = parser->raw_buffer.pointer[low+2] + + (parser->raw_buffer.pointer[high+2] << 8); + + /* Check for a low surrogate area. */ + + if ((value2 & 0xFC00) != 0xDC00) + return yaml_parser_set_reader_error(parser, + "expected low surrogate area", + parser->offset+2, value2); + + /* Generate the value of the surrogate pair. */ + + value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF); + } + + else { + width = 2; + } + + break; + + default: + assert(1); /* Impossible. */ + } + + /* Check if the raw buffer contains enough bytes to form a character. */ + + if (incomplete) break; + + /* + * Check if the character is in the allowed range: + * #x9 | #xA | #xD | [#x20-#x7E] (8 bit) + * | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) + * | [#x10000-#x10FFFF] (32 bit) + */ + + if (! (value == 0x09 || value == 0x0A || value == 0x0D + || (value >= 0x20 && value <= 0x7E) + || (value == 0x85) || (value >= 0xA0 && value <= 0xD7FF) + || (value >= 0xE000 && value <= 0xFFFD) + || (value >= 0x10000 && value <= 0x10FFFF))) + return yaml_parser_set_reader_error(parser, + "control characters are not allowed", + parser->offset, value); + + /* Move the raw pointers. */ + + parser->raw_buffer.pointer += width; + parser->offset += width; + + /* Finally put the character into the buffer. */ + + /* 0000 0000-0000 007F -> 0xxxxxxx */ + if (value <= 0x7F) { + *(parser->buffer.last++) = value; + } + /* 0000 0080-0000 07FF -> 110xxxxx 10xxxxxx */ + else if (value <= 0x7FF) { + *(parser->buffer.last++) = 0xC0 + (value >> 6); + *(parser->buffer.last++) = 0x80 + (value & 0x3F); + } + /* 0000 0800-0000 FFFF -> 1110xxxx 10xxxxxx 10xxxxxx */ + else if (value <= 0xFFFF) { + *(parser->buffer.last++) = 0xE0 + (value >> 12); + *(parser->buffer.last++) = 0x80 + ((value >> 6) & 0x3F); + *(parser->buffer.last++) = 0x80 + (value & 0x3F); + } + /* 0001 0000-0010 FFFF -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ + else { + *(parser->buffer.last++) = 0xF0 + (value >> 18); + *(parser->buffer.last++) = 0x80 + ((value >> 12) & 0x3F); + *(parser->buffer.last++) = 0x80 + ((value >> 6) & 0x3F); + *(parser->buffer.last++) = 0x80 + (value & 0x3F); + } + + parser->unread ++; + } + + /* On EOF, put NUL into the buffer and return. */ + + if (parser->eof) { + *(parser->buffer.last++) = '\0'; + parser->unread ++; + return 1; + } + + } + + if (parser->offset >= MAX_FILE_SIZE) { + return yaml_parser_set_reader_error(parser, "input is too long", + parser->offset, -1); + } + + return 1; +} diff --git a/ruamel.yaml.clib.egg-info/PKG-INFO b/ruamel.yaml.clib.egg-info/PKG-INFO new file mode 100644 index 0000000..01aea7b --- /dev/null +++ b/ruamel.yaml.clib.egg-info/PKG-INFO @@ -0,0 +1,52 @@ +Metadata-Version: 2.1 +Name: ruamel.yaml.clib +Version: 0.2.8 +Summary: C version of reader, parser and emitter for ruamel.yaml derived from libyaml +Home-page: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree +Author: Anthon van der Neut +Author-email: a.van.der.neut@ruamel.eu +License: MIT +Keywords: yaml 1.2 parser c-library config +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE + + +ruamel.yaml.clib +================ + +``ruamel.yaml.clib`` is the C based reader/scanner and emitter for ruamel.yaml + +:version: 0.2.7 +:updated: 2022-10-19 +:documentation: http://yaml.readthedocs.io +:repository: https://sourceforge.net/projects/ruamel-yaml-clib/ +:pypi: https://pypi.org/project/ruamel.yaml.clib/ + +This package was split of from ruamel.yaml, so that ruamel.yaml can be build as +a universal wheel. Apart from the C code seldom changing, and taking a long +time to compile for all platforms, this allows installation of the .so +on Linux systems under /usr/lib64/pythonX.Y (without a .pth file or a ruamel +directory) and the Python code for ruamel.yaml under /usr/lib/pythonX.Y. + + +.. image:: https://bestpractices.coreinfrastructure.org/projects/1128/badge + :target: https://bestpractices.coreinfrastructure.org/projects/1128 + +.. image:: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/_doc/_static/license.svg?format=raw + :target: https://opensource.org/licenses/MIT + +This release in loving memory of Johanna Clasina van der Neut-Bandel [1922-10-19 - 2015-11-21] diff --git a/ruamel.yaml.clib.egg-info/SOURCES.txt b/ruamel.yaml.clib.egg-info/SOURCES.txt new file mode 100644 index 0000000..12446aa --- /dev/null +++ b/ruamel.yaml.clib.egg-info/SOURCES.txt @@ -0,0 +1,25 @@ +LICENSE +MANIFEST.in +README.rst +_ruamel_yaml.c +_ruamel_yaml.h +api.c +config.h +dumper.c +emitter.c +loader.c +parser.c +pyproject.toml +reader.c +scanner.c +setup.py +writer.c +yaml.h +yaml_private.h +./LICENSE +./__init__.py +ruamel.yaml.clib.egg-info/PKG-INFO +ruamel.yaml.clib.egg-info/SOURCES.txt +ruamel.yaml.clib.egg-info/dependency_links.txt +ruamel.yaml.clib.egg-info/not-zip-safe +ruamel.yaml.clib.egg-info/top_level.txt
\ No newline at end of file diff --git a/ruamel.yaml.clib.egg-info/dependency_links.txt b/ruamel.yaml.clib.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ruamel.yaml.clib.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/ruamel.yaml.clib.egg-info/not-zip-safe b/ruamel.yaml.clib.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ruamel.yaml.clib.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/ruamel.yaml.clib.egg-info/top_level.txt b/ruamel.yaml.clib.egg-info/top_level.txt new file mode 100644 index 0000000..be006da --- /dev/null +++ b/ruamel.yaml.clib.egg-info/top_level.txt @@ -0,0 +1,2 @@ +_ruamel_yaml +ruamel diff --git a/scanner.c b/scanner.c new file mode 100644 index 0000000..1c3b500 --- /dev/null +++ b/scanner.c @@ -0,0 +1,3575 @@ + +/* + * Introduction + * ************ + * + * The following notes assume that you are familiar with the YAML specification + * (http://yaml.org/spec/cvs/current.html). We mostly follow it, although in + * some cases we are less restrictive that it requires. + * + * The process of transforming a YAML stream into a sequence of events is + * divided on two steps: Scanning and Parsing. + * + * The Scanner transforms the input stream into a sequence of tokens, while the + * parser transform the sequence of tokens produced by the Scanner into a + * sequence of parsing events. + * + * The Scanner is rather clever and complicated. The Parser, on the contrary, + * is a straightforward implementation of a recursive-descendant parser (or, + * LL(1) parser, as it is usually called). + * + * Actually there are two issues of Scanning that might be called "clever", the + * rest is quite straightforward. The issues are "block collection start" and + * "simple keys". Both issues are explained below in details. + * + * Here the Scanning step is explained and implemented. We start with the list + * of all the tokens produced by the Scanner together with short descriptions. + * + * Now, tokens: + * + * STREAM-START(encoding) # The stream start. + * STREAM-END # The stream end. + * VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. + * TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. + * DOCUMENT-START # '---' + * DOCUMENT-END # '...' + * BLOCK-SEQUENCE-START # Indentation increase denoting a block + * BLOCK-MAPPING-START # sequence or a block mapping. + * BLOCK-END # Indentation decrease. + * FLOW-SEQUENCE-START # '[' + * FLOW-SEQUENCE-END # ']' + * FLOW-MAPPING-START # '{' + * FLOW-MAPPING-END # '}' + * BLOCK-ENTRY # '-' + * FLOW-ENTRY # ',' + * KEY # '?' or nothing (simple keys). + * VALUE # ':' + * ALIAS(anchor) # '*anchor' + * ANCHOR(anchor) # '&anchor' + * TAG(handle,suffix) # '!handle!suffix' + * SCALAR(value,style) # A scalar. + * + * The following two tokens are "virtual" tokens denoting the beginning and the + * end of the stream: + * + * STREAM-START(encoding) + * STREAM-END + * + * We pass the information about the input stream encoding with the + * STREAM-START token. + * + * The next two tokens are responsible for tags: + * + * VERSION-DIRECTIVE(major,minor) + * TAG-DIRECTIVE(handle,prefix) + * + * Example: + * + * %YAML 1.1 + * %TAG ! !foo + * %TAG !yaml! tag:yaml.org,2002: + * --- + * + * The corresponding sequence of tokens: + * + * STREAM-START(utf-8) + * VERSION-DIRECTIVE(1,1) + * TAG-DIRECTIVE("!","!foo") + * TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") + * DOCUMENT-START + * STREAM-END + * + * Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole + * line. + * + * The document start and end indicators are represented by: + * + * DOCUMENT-START + * DOCUMENT-END + * + * Note that if a YAML stream contains an implicit document (without '---' + * and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be + * produced. + * + * In the following examples, we present whole documents together with the + * produced tokens. + * + * 1. An implicit document: + * + * 'a scalar' + * + * Tokens: + * + * STREAM-START(utf-8) + * SCALAR("a scalar",single-quoted) + * STREAM-END + * + * 2. An explicit document: + * + * --- + * 'a scalar' + * ... + * + * Tokens: + * + * STREAM-START(utf-8) + * DOCUMENT-START + * SCALAR("a scalar",single-quoted) + * DOCUMENT-END + * STREAM-END + * + * 3. Several documents in a stream: + * + * 'a scalar' + * --- + * 'another scalar' + * --- + * 'yet another scalar' + * + * Tokens: + * + * STREAM-START(utf-8) + * SCALAR("a scalar",single-quoted) + * DOCUMENT-START + * SCALAR("another scalar",single-quoted) + * DOCUMENT-START + * SCALAR("yet another scalar",single-quoted) + * STREAM-END + * + * We have already introduced the SCALAR token above. The following tokens are + * used to describe aliases, anchors, tag, and scalars: + * + * ALIAS(anchor) + * ANCHOR(anchor) + * TAG(handle,suffix) + * SCALAR(value,style) + * + * The following series of examples illustrate the usage of these tokens: + * + * 1. A recursive sequence: + * + * &A [ *A ] + * + * Tokens: + * + * STREAM-START(utf-8) + * ANCHOR("A") + * FLOW-SEQUENCE-START + * ALIAS("A") + * FLOW-SEQUENCE-END + * STREAM-END + * + * 2. A tagged scalar: + * + * !!float "3.14" # A good approximation. + * + * Tokens: + * + * STREAM-START(utf-8) + * TAG("!!","float") + * SCALAR("3.14",double-quoted) + * STREAM-END + * + * 3. Various scalar styles: + * + * --- # Implicit empty plain scalars do not produce tokens. + * --- a plain scalar + * --- 'a single-quoted scalar' + * --- "a double-quoted scalar" + * --- |- + * a literal scalar + * --- >- + * a folded + * scalar + * + * Tokens: + * + * STREAM-START(utf-8) + * DOCUMENT-START + * DOCUMENT-START + * SCALAR("a plain scalar",plain) + * DOCUMENT-START + * SCALAR("a single-quoted scalar",single-quoted) + * DOCUMENT-START + * SCALAR("a double-quoted scalar",double-quoted) + * DOCUMENT-START + * SCALAR("a literal scalar",literal) + * DOCUMENT-START + * SCALAR("a folded scalar",folded) + * STREAM-END + * + * Now it's time to review collection-related tokens. We will start with + * flow collections: + * + * FLOW-SEQUENCE-START + * FLOW-SEQUENCE-END + * FLOW-MAPPING-START + * FLOW-MAPPING-END + * FLOW-ENTRY + * KEY + * VALUE + * + * The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and + * FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' + * correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the + * indicators '?' and ':', which are used for denoting mapping keys and values, + * are represented by the KEY and VALUE tokens. + * + * The following examples show flow collections: + * + * 1. A flow sequence: + * + * [item 1, item 2, item 3] + * + * Tokens: + * + * STREAM-START(utf-8) + * FLOW-SEQUENCE-START + * SCALAR("item 1",plain) + * FLOW-ENTRY + * SCALAR("item 2",plain) + * FLOW-ENTRY + * SCALAR("item 3",plain) + * FLOW-SEQUENCE-END + * STREAM-END + * + * 2. A flow mapping: + * + * { + * a simple key: a value, # Note that the KEY token is produced. + * ? a complex key: another value, + * } + * + * Tokens: + * + * STREAM-START(utf-8) + * FLOW-MAPPING-START + * KEY + * SCALAR("a simple key",plain) + * VALUE + * SCALAR("a value",plain) + * FLOW-ENTRY + * KEY + * SCALAR("a complex key",plain) + * VALUE + * SCALAR("another value",plain) + * FLOW-ENTRY + * FLOW-MAPPING-END + * STREAM-END + * + * A simple key is a key which is not denoted by the '?' indicator. Note that + * the Scanner still produce the KEY token whenever it encounters a simple key. + * + * For scanning block collections, the following tokens are used (note that we + * repeat KEY and VALUE here): + * + * BLOCK-SEQUENCE-START + * BLOCK-MAPPING-START + * BLOCK-END + * BLOCK-ENTRY + * KEY + * VALUE + * + * The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation + * increase that precedes a block collection (cf. the INDENT token in Python). + * The token BLOCK-END denote indentation decrease that ends a block collection + * (cf. the DEDENT token in Python). However YAML has some syntax pecularities + * that makes detections of these tokens more complex. + * + * The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators + * '-', '?', and ':' correspondingly. + * + * The following examples show how the tokens BLOCK-SEQUENCE-START, + * BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: + * + * 1. Block sequences: + * + * - item 1 + * - item 2 + * - + * - item 3.1 + * - item 3.2 + * - + * key 1: value 1 + * key 2: value 2 + * + * Tokens: + * + * STREAM-START(utf-8) + * BLOCK-SEQUENCE-START + * BLOCK-ENTRY + * SCALAR("item 1",plain) + * BLOCK-ENTRY + * SCALAR("item 2",plain) + * BLOCK-ENTRY + * BLOCK-SEQUENCE-START + * BLOCK-ENTRY + * SCALAR("item 3.1",plain) + * BLOCK-ENTRY + * SCALAR("item 3.2",plain) + * BLOCK-END + * BLOCK-ENTRY + * BLOCK-MAPPING-START + * KEY + * SCALAR("key 1",plain) + * VALUE + * SCALAR("value 1",plain) + * KEY + * SCALAR("key 2",plain) + * VALUE + * SCALAR("value 2",plain) + * BLOCK-END + * BLOCK-END + * STREAM-END + * + * 2. Block mappings: + * + * a simple key: a value # The KEY token is produced here. + * ? a complex key + * : another value + * a mapping: + * key 1: value 1 + * key 2: value 2 + * a sequence: + * - item 1 + * - item 2 + * + * Tokens: + * + * STREAM-START(utf-8) + * BLOCK-MAPPING-START + * KEY + * SCALAR("a simple key",plain) + * VALUE + * SCALAR("a value",plain) + * KEY + * SCALAR("a complex key",plain) + * VALUE + * SCALAR("another value",plain) + * KEY + * SCALAR("a mapping",plain) + * BLOCK-MAPPING-START + * KEY + * SCALAR("key 1",plain) + * VALUE + * SCALAR("value 1",plain) + * KEY + * SCALAR("key 2",plain) + * VALUE + * SCALAR("value 2",plain) + * BLOCK-END + * KEY + * SCALAR("a sequence",plain) + * VALUE + * BLOCK-SEQUENCE-START + * BLOCK-ENTRY + * SCALAR("item 1",plain) + * BLOCK-ENTRY + * SCALAR("item 2",plain) + * BLOCK-END + * BLOCK-END + * STREAM-END + * + * YAML does not always require to start a new block collection from a new + * line. If the current line contains only '-', '?', and ':' indicators, a new + * block collection may start at the current line. The following examples + * illustrate this case: + * + * 1. Collections in a sequence: + * + * - - item 1 + * - item 2 + * - key 1: value 1 + * key 2: value 2 + * - ? complex key + * : complex value + * + * Tokens: + * + * STREAM-START(utf-8) + * BLOCK-SEQUENCE-START + * BLOCK-ENTRY + * BLOCK-SEQUENCE-START + * BLOCK-ENTRY + * SCALAR("item 1",plain) + * BLOCK-ENTRY + * SCALAR("item 2",plain) + * BLOCK-END + * BLOCK-ENTRY + * BLOCK-MAPPING-START + * KEY + * SCALAR("key 1",plain) + * VALUE + * SCALAR("value 1",plain) + * KEY + * SCALAR("key 2",plain) + * VALUE + * SCALAR("value 2",plain) + * BLOCK-END + * BLOCK-ENTRY + * BLOCK-MAPPING-START + * KEY + * SCALAR("complex key") + * VALUE + * SCALAR("complex value") + * BLOCK-END + * BLOCK-END + * STREAM-END + * + * 2. Collections in a mapping: + * + * ? a sequence + * : - item 1 + * - item 2 + * ? a mapping + * : key 1: value 1 + * key 2: value 2 + * + * Tokens: + * + * STREAM-START(utf-8) + * BLOCK-MAPPING-START + * KEY + * SCALAR("a sequence",plain) + * VALUE + * BLOCK-SEQUENCE-START + * BLOCK-ENTRY + * SCALAR("item 1",plain) + * BLOCK-ENTRY + * SCALAR("item 2",plain) + * BLOCK-END + * KEY + * SCALAR("a mapping",plain) + * VALUE + * BLOCK-MAPPING-START + * KEY + * SCALAR("key 1",plain) + * VALUE + * SCALAR("value 1",plain) + * KEY + * SCALAR("key 2",plain) + * VALUE + * SCALAR("value 2",plain) + * BLOCK-END + * BLOCK-END + * STREAM-END + * + * YAML also permits non-indented sequences if they are included into a block + * mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: + * + * key: + * - item 1 # BLOCK-SEQUENCE-START is NOT produced here. + * - item 2 + * + * Tokens: + * + * STREAM-START(utf-8) + * BLOCK-MAPPING-START + * KEY + * SCALAR("key",plain) + * VALUE + * BLOCK-ENTRY + * SCALAR("item 1",plain) + * BLOCK-ENTRY + * SCALAR("item 2",plain) + * BLOCK-END + */ + +#include "yaml_private.h" + +/* + * Ensure that the buffer contains the required number of characters. + * Return 1 on success, 0 on failure (reader error or memory error). + */ + +#define CACHE(parser,length) \ + (parser->unread >= (length) \ + ? 1 \ + : yaml_parser_update_buffer(parser, (length))) + +/* + * Advance the buffer pointer. + */ + +#define SKIP(parser) \ + (parser->mark.index ++, \ + parser->mark.column ++, \ + parser->unread --, \ + parser->buffer.pointer += WIDTH(parser->buffer)) + +#define SKIP_LINE(parser) \ + (IS_CRLF(parser->buffer) ? \ + (parser->mark.index += 2, \ + parser->mark.column = 0, \ + parser->mark.line ++, \ + parser->unread -= 2, \ + parser->buffer.pointer += 2) : \ + IS_BREAK(parser->buffer) ? \ + (parser->mark.index ++, \ + parser->mark.column = 0, \ + parser->mark.line ++, \ + parser->unread --, \ + parser->buffer.pointer += WIDTH(parser->buffer)) : 0) + +/* + * Copy a character to a string buffer and advance pointers. + */ + +#define READ(parser,string) \ + (STRING_EXTEND(parser,string) ? \ + (COPY(string,parser->buffer), \ + parser->mark.index ++, \ + parser->mark.column ++, \ + parser->unread --, \ + 1) : 0) + +/* + * Copy a line break character to a string buffer and advance pointers. + */ + +#define READ_LINE(parser,string) \ + (STRING_EXTEND(parser,string) ? \ + (((CHECK_AT(parser->buffer,'\r',0) \ + && CHECK_AT(parser->buffer,'\n',1)) ? /* CR LF -> LF */ \ + (*((string).pointer++) = (yaml_char_t) '\n', \ + parser->buffer.pointer += 2, \ + parser->mark.index += 2, \ + parser->mark.column = 0, \ + parser->mark.line ++, \ + parser->unread -= 2) : \ + (CHECK_AT(parser->buffer,'\r',0) \ + || CHECK_AT(parser->buffer,'\n',0)) ? /* CR|LF -> LF */ \ + (*((string).pointer++) = (yaml_char_t) '\n', \ + parser->buffer.pointer ++, \ + parser->mark.index ++, \ + parser->mark.column = 0, \ + parser->mark.line ++, \ + parser->unread --) : \ + (CHECK_AT(parser->buffer,'\xC2',0) \ + && CHECK_AT(parser->buffer,'\x85',1)) ? /* NEL -> LF */ \ + (*((string).pointer++) = (yaml_char_t) '\n', \ + parser->buffer.pointer += 2, \ + parser->mark.index ++, \ + parser->mark.column = 0, \ + parser->mark.line ++, \ + parser->unread --) : \ + (CHECK_AT(parser->buffer,'\xE2',0) && \ + CHECK_AT(parser->buffer,'\x80',1) && \ + (CHECK_AT(parser->buffer,'\xA8',2) || \ + CHECK_AT(parser->buffer,'\xA9',2))) ? /* LS|PS -> LS|PS */ \ + (*((string).pointer++) = *(parser->buffer.pointer++), \ + *((string).pointer++) = *(parser->buffer.pointer++), \ + *((string).pointer++) = *(parser->buffer.pointer++), \ + parser->mark.index ++, \ + parser->mark.column = 0, \ + parser->mark.line ++, \ + parser->unread --) : 0), \ + 1) : 0) + +/* + * Public API declarations. + */ + +YAML_DECLARE(int) +yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token); + +/* + * Error handling. + */ + +static int +yaml_parser_set_scanner_error(yaml_parser_t *parser, const char *context, + yaml_mark_t context_mark, const char *problem); + +/* + * High-level token API. + */ + +YAML_DECLARE(int) +yaml_parser_fetch_more_tokens(yaml_parser_t *parser); + +static int +yaml_parser_fetch_next_token(yaml_parser_t *parser); + +/* + * Potential simple keys. + */ + +static int +yaml_parser_stale_simple_keys(yaml_parser_t *parser); + +static int +yaml_parser_save_simple_key(yaml_parser_t *parser); + +static int +yaml_parser_remove_simple_key(yaml_parser_t *parser); + +static int +yaml_parser_increase_flow_level(yaml_parser_t *parser); + +static int +yaml_parser_decrease_flow_level(yaml_parser_t *parser); + +/* + * Indentation treatment. + */ + +static int +yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column, + ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark); + +static int +yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column); + +/* + * Token fetchers. + */ + +static int +yaml_parser_fetch_stream_start(yaml_parser_t *parser); + +static int +yaml_parser_fetch_stream_end(yaml_parser_t *parser); + +static int +yaml_parser_fetch_directive(yaml_parser_t *parser); + +static int +yaml_parser_fetch_document_indicator(yaml_parser_t *parser, + yaml_token_type_t type); + +static int +yaml_parser_fetch_flow_collection_start(yaml_parser_t *parser, + yaml_token_type_t type); + +static int +yaml_parser_fetch_flow_collection_end(yaml_parser_t *parser, + yaml_token_type_t type); + +static int +yaml_parser_fetch_flow_entry(yaml_parser_t *parser); + +static int +yaml_parser_fetch_block_entry(yaml_parser_t *parser); + +static int +yaml_parser_fetch_key(yaml_parser_t *parser); + +static int +yaml_parser_fetch_value(yaml_parser_t *parser); + +static int +yaml_parser_fetch_anchor(yaml_parser_t *parser, yaml_token_type_t type); + +static int +yaml_parser_fetch_tag(yaml_parser_t *parser); + +static int +yaml_parser_fetch_block_scalar(yaml_parser_t *parser, int literal); + +static int +yaml_parser_fetch_flow_scalar(yaml_parser_t *parser, int single); + +static int +yaml_parser_fetch_plain_scalar(yaml_parser_t *parser); + +/* + * Token scanners. + */ + +static int +yaml_parser_scan_to_next_token(yaml_parser_t *parser); + +static int +yaml_parser_scan_directive(yaml_parser_t *parser, yaml_token_t *token); + +static int +yaml_parser_scan_directive_name(yaml_parser_t *parser, + yaml_mark_t start_mark, yaml_char_t **name); + +static int +yaml_parser_scan_version_directive_value(yaml_parser_t *parser, + yaml_mark_t start_mark, int *major, int *minor); + +static int +yaml_parser_scan_version_directive_number(yaml_parser_t *parser, + yaml_mark_t start_mark, int *number); + +static int +yaml_parser_scan_tag_directive_value(yaml_parser_t *parser, + yaml_mark_t mark, yaml_char_t **handle, yaml_char_t **prefix); + +static int +yaml_parser_scan_anchor(yaml_parser_t *parser, yaml_token_t *token, + yaml_token_type_t type); + +static int +yaml_parser_scan_tag(yaml_parser_t *parser, yaml_token_t *token); + +static int +yaml_parser_scan_tag_handle(yaml_parser_t *parser, int directive, + yaml_mark_t start_mark, yaml_char_t **handle); + +static int +yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive, + yaml_char_t *head, yaml_mark_t start_mark, yaml_char_t **uri); + +static int +yaml_parser_scan_uri_escapes(yaml_parser_t *parser, int directive, + yaml_mark_t start_mark, yaml_string_t *string); + +static int +yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token, + int literal); + +static int +yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser, + int *indent, yaml_string_t *breaks, + yaml_mark_t start_mark, yaml_mark_t *end_mark); + +static int +yaml_parser_scan_flow_scalar(yaml_parser_t *parser, yaml_token_t *token, + int single); + +static int +yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t *token); + +/* + * Get the next token. + */ + +YAML_DECLARE(int) +yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token) +{ + assert(parser); /* Non-NULL parser object is expected. */ + assert(token); /* Non-NULL token object is expected. */ + + /* Erase the token object. */ + + memset(token, 0, sizeof(yaml_token_t)); + + /* No tokens after STREAM-END or error. */ + + if (parser->stream_end_produced || parser->error) { + return 1; + } + + /* Ensure that the tokens queue contains enough tokens. */ + + if (!parser->token_available) { + if (!yaml_parser_fetch_more_tokens(parser)) + return 0; + } + + /* Fetch the next token from the queue. */ + + *token = DEQUEUE(parser, parser->tokens); + parser->token_available = 0; + parser->tokens_parsed ++; + + if (token->type == YAML_STREAM_END_TOKEN) { + parser->stream_end_produced = 1; + } + + return 1; +} + +/* + * Set the scanner error and return 0. + */ + +static int +yaml_parser_set_scanner_error(yaml_parser_t *parser, const char *context, + yaml_mark_t context_mark, const char *problem) +{ + parser->error = YAML_SCANNER_ERROR; + parser->context = context; + parser->context_mark = context_mark; + parser->problem = problem; + parser->problem_mark = parser->mark; + + return 0; +} + +/* + * Ensure that the tokens queue contains at least one token which can be + * returned to the Parser. + */ + +YAML_DECLARE(int) +yaml_parser_fetch_more_tokens(yaml_parser_t *parser) +{ + int need_more_tokens; + + /* While we need more tokens to fetch, do it. */ + + while (1) + { + /* + * Check if we really need to fetch more tokens. + */ + + need_more_tokens = 0; + + if (parser->tokens.head == parser->tokens.tail) + { + /* Queue is empty. */ + + need_more_tokens = 1; + } + else + { + yaml_simple_key_t *simple_key; + + /* Check if any potential simple key may occupy the head position. */ + + if (!yaml_parser_stale_simple_keys(parser)) + return 0; + + for (simple_key = parser->simple_keys.start; + simple_key != parser->simple_keys.top; simple_key++) { + if (simple_key->possible + && simple_key->token_number == parser->tokens_parsed) { + need_more_tokens = 1; + break; + } + } + } + + /* We are finished. */ + + if (!need_more_tokens) + break; + + /* Fetch the next token. */ + + if (!yaml_parser_fetch_next_token(parser)) + return 0; + } + + parser->token_available = 1; + + return 1; +} + +/* + * The dispatcher for token fetchers. + */ + +static int +yaml_parser_fetch_next_token(yaml_parser_t *parser) +{ + /* Ensure that the buffer is initialized. */ + + if (!CACHE(parser, 1)) + return 0; + + /* Check if we just started scanning. Fetch STREAM-START then. */ + + if (!parser->stream_start_produced) + return yaml_parser_fetch_stream_start(parser); + + /* Eat whitespaces and comments until we reach the next token. */ + + if (!yaml_parser_scan_to_next_token(parser)) + return 0; + + /* Remove obsolete potential simple keys. */ + + if (!yaml_parser_stale_simple_keys(parser)) + return 0; + + /* Check the indentation level against the current column. */ + + if (!yaml_parser_unroll_indent(parser, parser->mark.column)) + return 0; + + /* + * Ensure that the buffer contains at least 4 characters. 4 is the length + * of the longest indicators ('--- ' and '... '). + */ + + if (!CACHE(parser, 4)) + return 0; + + /* Is it the end of the stream? */ + + if (IS_Z(parser->buffer)) + return yaml_parser_fetch_stream_end(parser); + + /* Is it a directive? */ + + if (parser->mark.column == 0 && CHECK(parser->buffer, '%')) + return yaml_parser_fetch_directive(parser); + + /* Is it the document start indicator? */ + + if (parser->mark.column == 0 + && CHECK_AT(parser->buffer, '-', 0) + && CHECK_AT(parser->buffer, '-', 1) + && CHECK_AT(parser->buffer, '-', 2) + && IS_BLANKZ_AT(parser->buffer, 3)) + return yaml_parser_fetch_document_indicator(parser, + YAML_DOCUMENT_START_TOKEN); + + /* Is it the document end indicator? */ + + if (parser->mark.column == 0 + && CHECK_AT(parser->buffer, '.', 0) + && CHECK_AT(parser->buffer, '.', 1) + && CHECK_AT(parser->buffer, '.', 2) + && IS_BLANKZ_AT(parser->buffer, 3)) + return yaml_parser_fetch_document_indicator(parser, + YAML_DOCUMENT_END_TOKEN); + + /* Is it the flow sequence start indicator? */ + + if (CHECK(parser->buffer, '[')) + return yaml_parser_fetch_flow_collection_start(parser, + YAML_FLOW_SEQUENCE_START_TOKEN); + + /* Is it the flow mapping start indicator? */ + + if (CHECK(parser->buffer, '{')) + return yaml_parser_fetch_flow_collection_start(parser, + YAML_FLOW_MAPPING_START_TOKEN); + + /* Is it the flow sequence end indicator? */ + + if (CHECK(parser->buffer, ']')) + return yaml_parser_fetch_flow_collection_end(parser, + YAML_FLOW_SEQUENCE_END_TOKEN); + + /* Is it the flow mapping end indicator? */ + + if (CHECK(parser->buffer, '}')) + return yaml_parser_fetch_flow_collection_end(parser, + YAML_FLOW_MAPPING_END_TOKEN); + + /* Is it the flow entry indicator? */ + + if (CHECK(parser->buffer, ',')) + return yaml_parser_fetch_flow_entry(parser); + + /* Is it the block entry indicator? */ + + if (CHECK(parser->buffer, '-') && IS_BLANKZ_AT(parser->buffer, 1)) + return yaml_parser_fetch_block_entry(parser); + + /* Is it the key indicator? */ + + if (CHECK(parser->buffer, '?') + && (parser->flow_level || IS_BLANKZ_AT(parser->buffer, 1))) + return yaml_parser_fetch_key(parser); + + /* Is it the value indicator? */ + + if (CHECK(parser->buffer, ':') + && (parser->flow_level || IS_BLANKZ_AT(parser->buffer, 1))) + return yaml_parser_fetch_value(parser); + + /* Is it an alias? */ + + if (CHECK(parser->buffer, '*')) + return yaml_parser_fetch_anchor(parser, YAML_ALIAS_TOKEN); + + /* Is it an anchor? */ + + if (CHECK(parser->buffer, '&')) + return yaml_parser_fetch_anchor(parser, YAML_ANCHOR_TOKEN); + + /* Is it a tag? */ + + if (CHECK(parser->buffer, '!')) + return yaml_parser_fetch_tag(parser); + + /* Is it a literal scalar? */ + + if (CHECK(parser->buffer, '|') && !parser->flow_level) + return yaml_parser_fetch_block_scalar(parser, 1); + + /* Is it a folded scalar? */ + + if (CHECK(parser->buffer, '>') && !parser->flow_level) + return yaml_parser_fetch_block_scalar(parser, 0); + + /* Is it a single-quoted scalar? */ + + if (CHECK(parser->buffer, '\'')) + return yaml_parser_fetch_flow_scalar(parser, 1); + + /* Is it a double-quoted scalar? */ + + if (CHECK(parser->buffer, '"')) + return yaml_parser_fetch_flow_scalar(parser, 0); + + /* + * Is it a plain scalar? + * + * A plain scalar may start with any non-blank characters except + * + * '-', '?', ':', ',', '[', ']', '{', '}', + * '#', '&', '*', '!', '|', '>', '\'', '\"', + * '%', '@', '`'. + * + * In the block context (and, for the '-' indicator, in the flow context + * too), it may also start with the characters + * + * '-', '?', ':' + * + * if it is followed by a non-space character. + * + * The last rule is more restrictive than the specification requires. + */ + + if (!(IS_BLANKZ(parser->buffer) || CHECK(parser->buffer, '-') + || CHECK(parser->buffer, '?') || CHECK(parser->buffer, ':') + || CHECK(parser->buffer, ',') || CHECK(parser->buffer, '[') + || CHECK(parser->buffer, ']') || CHECK(parser->buffer, '{') + || CHECK(parser->buffer, '}') || CHECK(parser->buffer, '#') + || CHECK(parser->buffer, '&') || CHECK(parser->buffer, '*') + || CHECK(parser->buffer, '!') || CHECK(parser->buffer, '|') + || CHECK(parser->buffer, '>') || CHECK(parser->buffer, '\'') + || CHECK(parser->buffer, '"') || CHECK(parser->buffer, '%') + || CHECK(parser->buffer, '@') || CHECK(parser->buffer, '`')) || + (CHECK(parser->buffer, '-') && !IS_BLANK_AT(parser->buffer, 1)) || + (!parser->flow_level && + (CHECK(parser->buffer, '?') || CHECK(parser->buffer, ':')) + && !IS_BLANKZ_AT(parser->buffer, 1))) + return yaml_parser_fetch_plain_scalar(parser); + + /* + * If we don't determine the token type so far, it is an error. + */ + + return yaml_parser_set_scanner_error(parser, + "while scanning for the next token", parser->mark, + "found character that cannot start any token"); +} + +/* + * Check the list of potential simple keys and remove the positions that + * cannot contain simple keys anymore. + */ + +static int +yaml_parser_stale_simple_keys(yaml_parser_t *parser) +{ + yaml_simple_key_t *simple_key; + + /* Check for a potential simple key for each flow level. */ + + for (simple_key = parser->simple_keys.start; + simple_key != parser->simple_keys.top; simple_key ++) + { + /* + * The specification requires that a simple key + * + * - is limited to a single line, + * - is shorter than 1024 characters. + */ + + if (simple_key->possible + && (simple_key->mark.line < parser->mark.line + || simple_key->mark.index+1024 < parser->mark.index)) { + + /* Check if the potential simple key to be removed is required. */ + + if (simple_key->required) { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", simple_key->mark, + "could not find expected ':'"); + } + + simple_key->possible = 0; + } + } + + return 1; +} + +/* + * Check if a simple key may start at the current position and add it if + * needed. + */ + +static int +yaml_parser_save_simple_key(yaml_parser_t *parser) +{ + /* + * A simple key is required at the current position if the scanner is in + * the block context and the current column coincides with the indentation + * level. + */ + + int required = (!parser->flow_level + && parser->indent == (ptrdiff_t)parser->mark.column); + + /* + * If the current position may start a simple key, save it. + */ + + if (parser->simple_key_allowed) + { + yaml_simple_key_t simple_key; + simple_key.possible = 1; + simple_key.required = required; + simple_key.token_number = + parser->tokens_parsed + (parser->tokens.tail - parser->tokens.head); + simple_key.mark = parser->mark; + + if (!yaml_parser_remove_simple_key(parser)) return 0; + + *(parser->simple_keys.top-1) = simple_key; + } + + return 1; +} + +/* + * Remove a potential simple key at the current flow level. + */ + +static int +yaml_parser_remove_simple_key(yaml_parser_t *parser) +{ + yaml_simple_key_t *simple_key = parser->simple_keys.top-1; + + if (simple_key->possible) + { + /* If the key is required, it is an error. */ + + if (simple_key->required) { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", simple_key->mark, + "could not find expected ':'"); + } + } + + /* Remove the key from the stack. */ + + simple_key->possible = 0; + + return 1; +} + +/* + * Increase the flow level and resize the simple key list if needed. + */ + +static int +yaml_parser_increase_flow_level(yaml_parser_t *parser) +{ + yaml_simple_key_t empty_simple_key = { 0, 0, 0, { 0, 0, 0 } }; + + /* Reset the simple key on the next level. */ + + if (!PUSH(parser, parser->simple_keys, empty_simple_key)) + return 0; + + /* Increase the flow level. */ + + if (parser->flow_level == INT_MAX) { + parser->error = YAML_MEMORY_ERROR; + return 0; + } + + parser->flow_level++; + + return 1; +} + +/* + * Decrease the flow level. + */ + +static int +yaml_parser_decrease_flow_level(yaml_parser_t *parser) +{ + yaml_simple_key_t dummy_key; /* Used to eliminate a compiler warning. */ + + if (parser->flow_level) { + parser->flow_level --; + dummy_key = POP(parser, parser->simple_keys); + } + + return 1; +} + +/* + * Push the current indentation level to the stack and set the new level + * the current column is greater than the indentation level. In this case, + * append or insert the specified token into the token queue. + * + */ + +static int +yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column, + ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark) +{ + yaml_token_t token; + + /* In the flow context, do nothing. */ + + if (parser->flow_level) + return 1; + + if (parser->indent < column) + { + /* + * Push the current indentation level to the stack and set the new + * indentation level. + */ + + if (!PUSH(parser, parser->indents, parser->indent)) + return 0; + + if (column > INT_MAX) { + parser->error = YAML_MEMORY_ERROR; + return 0; + } + + parser->indent = column; + + /* Create a token and insert it into the queue. */ + + TOKEN_INIT(token, type, mark, mark); + + if (number == -1) { + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + } + else { + if (!QUEUE_INSERT(parser, + parser->tokens, number - parser->tokens_parsed, token)) + return 0; + } + } + + return 1; +} + +/* + * Pop indentation levels from the indents stack until the current level + * becomes less or equal to the column. For each indentation level, append + * the BLOCK-END token. + */ + + +static int +yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column) +{ + yaml_token_t token; + + /* In the flow context, do nothing. */ + + if (parser->flow_level) + return 1; + + /* Loop through the indentation levels in the stack. */ + + while (parser->indent > column) + { + /* Create a token and append it to the queue. */ + + TOKEN_INIT(token, YAML_BLOCK_END_TOKEN, parser->mark, parser->mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + /* Pop the indentation level. */ + + parser->indent = POP(parser, parser->indents); + } + + return 1; +} + +/* + * Initialize the scanner and produce the STREAM-START token. + */ + +static int +yaml_parser_fetch_stream_start(yaml_parser_t *parser) +{ + yaml_simple_key_t simple_key = { 0, 0, 0, { 0, 0, 0 } }; + yaml_token_t token; + + /* Set the initial indentation. */ + + parser->indent = -1; + + /* Initialize the simple key stack. */ + + if (!PUSH(parser, parser->simple_keys, simple_key)) + return 0; + + /* A simple key is allowed at the beginning of the stream. */ + + parser->simple_key_allowed = 1; + + /* We have started. */ + + parser->stream_start_produced = 1; + + /* Create the STREAM-START token and append it to the queue. */ + + STREAM_START_TOKEN_INIT(token, parser->encoding, + parser->mark, parser->mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the STREAM-END token and shut down the scanner. + */ + +static int +yaml_parser_fetch_stream_end(yaml_parser_t *parser) +{ + yaml_token_t token; + + /* Force new line. */ + + if (parser->mark.column != 0) { + parser->mark.column = 0; + parser->mark.line ++; + } + + /* Reset the indentation level. */ + + if (!yaml_parser_unroll_indent(parser, -1)) + return 0; + + /* Reset simple keys. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + parser->simple_key_allowed = 0; + + /* Create the STREAM-END token and append it to the queue. */ + + STREAM_END_TOKEN_INIT(token, parser->mark, parser->mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. + */ + +static int +yaml_parser_fetch_directive(yaml_parser_t *parser) +{ + yaml_token_t token; + + /* Reset the indentation level. */ + + if (!yaml_parser_unroll_indent(parser, -1)) + return 0; + + /* Reset simple keys. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + parser->simple_key_allowed = 0; + + /* Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. */ + + if (!yaml_parser_scan_directive(parser, &token)) + return 0; + + /* Append the token to the queue. */ + + if (!ENQUEUE(parser, parser->tokens, token)) { + yaml_token_delete(&token); + return 0; + } + + return 1; +} + +/* + * Produce the DOCUMENT-START or DOCUMENT-END token. + */ + +static int +yaml_parser_fetch_document_indicator(yaml_parser_t *parser, + yaml_token_type_t type) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + + /* Reset the indentation level. */ + + if (!yaml_parser_unroll_indent(parser, -1)) + return 0; + + /* Reset simple keys. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + parser->simple_key_allowed = 0; + + /* Consume the token. */ + + start_mark = parser->mark; + + SKIP(parser); + SKIP(parser); + SKIP(parser); + + end_mark = parser->mark; + + /* Create the DOCUMENT-START or DOCUMENT-END token. */ + + TOKEN_INIT(token, type, start_mark, end_mark); + + /* Append the token to the queue. */ + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. + */ + +static int +yaml_parser_fetch_flow_collection_start(yaml_parser_t *parser, + yaml_token_type_t type) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + + /* The indicators '[' and '{' may start a simple key. */ + + if (!yaml_parser_save_simple_key(parser)) + return 0; + + /* Increase the flow level. */ + + if (!yaml_parser_increase_flow_level(parser)) + return 0; + + /* A simple key may follow the indicators '[' and '{'. */ + + parser->simple_key_allowed = 1; + + /* Consume the token. */ + + start_mark = parser->mark; + SKIP(parser); + end_mark = parser->mark; + + /* Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. */ + + TOKEN_INIT(token, type, start_mark, end_mark); + + /* Append the token to the queue. */ + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. + */ + +static int +yaml_parser_fetch_flow_collection_end(yaml_parser_t *parser, + yaml_token_type_t type) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + + /* Reset any potential simple key on the current flow level. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + /* Decrease the flow level. */ + + if (!yaml_parser_decrease_flow_level(parser)) + return 0; + + /* No simple keys after the indicators ']' and '}'. */ + + parser->simple_key_allowed = 0; + + /* Consume the token. */ + + start_mark = parser->mark; + SKIP(parser); + end_mark = parser->mark; + + /* Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. */ + + TOKEN_INIT(token, type, start_mark, end_mark); + + /* Append the token to the queue. */ + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the FLOW-ENTRY token. + */ + +static int +yaml_parser_fetch_flow_entry(yaml_parser_t *parser) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + + /* Reset any potential simple keys on the current flow level. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + /* Simple keys are allowed after ','. */ + + parser->simple_key_allowed = 1; + + /* Consume the token. */ + + start_mark = parser->mark; + SKIP(parser); + end_mark = parser->mark; + + /* Create the FLOW-ENTRY token and append it to the queue. */ + + TOKEN_INIT(token, YAML_FLOW_ENTRY_TOKEN, start_mark, end_mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the BLOCK-ENTRY token. + */ + +static int +yaml_parser_fetch_block_entry(yaml_parser_t *parser) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + + /* Check if the scanner is in the block context. */ + + if (!parser->flow_level) + { + /* Check if we are allowed to start a new entry. */ + + if (!parser->simple_key_allowed) { + return yaml_parser_set_scanner_error(parser, NULL, parser->mark, + "block sequence entries are not allowed in this context"); + } + + /* Add the BLOCK-SEQUENCE-START token if needed. */ + + if (!yaml_parser_roll_indent(parser, parser->mark.column, -1, + YAML_BLOCK_SEQUENCE_START_TOKEN, parser->mark)) + return 0; + } + else + { + /* + * It is an error for the '-' indicator to occur in the flow context, + * but we let the Parser detect and report about it because the Parser + * is able to point to the context. + */ + } + + /* Reset any potential simple keys on the current flow level. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + /* Simple keys are allowed after '-'. */ + + parser->simple_key_allowed = 1; + + /* Consume the token. */ + + start_mark = parser->mark; + SKIP(parser); + end_mark = parser->mark; + + /* Create the BLOCK-ENTRY token and append it to the queue. */ + + TOKEN_INIT(token, YAML_BLOCK_ENTRY_TOKEN, start_mark, end_mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the KEY token. + */ + +static int +yaml_parser_fetch_key(yaml_parser_t *parser) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + + /* In the block context, additional checks are required. */ + + if (!parser->flow_level) + { + /* Check if we are allowed to start a new key (not necessary simple). */ + + if (!parser->simple_key_allowed) { + return yaml_parser_set_scanner_error(parser, NULL, parser->mark, + "mapping keys are not allowed in this context"); + } + + /* Add the BLOCK-MAPPING-START token if needed. */ + + if (!yaml_parser_roll_indent(parser, parser->mark.column, -1, + YAML_BLOCK_MAPPING_START_TOKEN, parser->mark)) + return 0; + } + + /* Reset any potential simple keys on the current flow level. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + /* Simple keys are allowed after '?' in the block context. */ + + parser->simple_key_allowed = (!parser->flow_level); + + /* Consume the token. */ + + start_mark = parser->mark; + SKIP(parser); + end_mark = parser->mark; + + /* Create the KEY token and append it to the queue. */ + + TOKEN_INIT(token, YAML_KEY_TOKEN, start_mark, end_mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the VALUE token. + */ + +static int +yaml_parser_fetch_value(yaml_parser_t *parser) +{ + yaml_mark_t start_mark, end_mark; + yaml_token_t token; + yaml_simple_key_t *simple_key = parser->simple_keys.top-1; + + /* Have we found a simple key? */ + + if (simple_key->possible) + { + + /* Create the KEY token and insert it into the queue. */ + + TOKEN_INIT(token, YAML_KEY_TOKEN, simple_key->mark, simple_key->mark); + + if (!QUEUE_INSERT(parser, parser->tokens, + simple_key->token_number - parser->tokens_parsed, token)) + return 0; + + /* In the block context, we may need to add the BLOCK-MAPPING-START token. */ + + if (!yaml_parser_roll_indent(parser, simple_key->mark.column, + simple_key->token_number, + YAML_BLOCK_MAPPING_START_TOKEN, simple_key->mark)) + return 0; + + /* Remove the simple key. */ + + simple_key->possible = 0; + + /* A simple key cannot follow another simple key. */ + + parser->simple_key_allowed = 0; + } + else + { + /* The ':' indicator follows a complex key. */ + + /* In the block context, extra checks are required. */ + + if (!parser->flow_level) + { + /* Check if we are allowed to start a complex value. */ + + if (!parser->simple_key_allowed) { + return yaml_parser_set_scanner_error(parser, NULL, parser->mark, + "mapping values are not allowed in this context"); + } + + /* Add the BLOCK-MAPPING-START token if needed. */ + + if (!yaml_parser_roll_indent(parser, parser->mark.column, -1, + YAML_BLOCK_MAPPING_START_TOKEN, parser->mark)) + return 0; + } + + /* Simple keys after ':' are allowed in the block context. */ + + parser->simple_key_allowed = (!parser->flow_level); + } + + /* Consume the token. */ + + start_mark = parser->mark; + SKIP(parser); + end_mark = parser->mark; + + /* Create the VALUE token and append it to the queue. */ + + TOKEN_INIT(token, YAML_VALUE_TOKEN, start_mark, end_mark); + + if (!ENQUEUE(parser, parser->tokens, token)) + return 0; + + return 1; +} + +/* + * Produce the ALIAS or ANCHOR token. + */ + +static int +yaml_parser_fetch_anchor(yaml_parser_t *parser, yaml_token_type_t type) +{ + yaml_token_t token; + + /* An anchor or an alias could be a simple key. */ + + if (!yaml_parser_save_simple_key(parser)) + return 0; + + /* A simple key cannot follow an anchor or an alias. */ + + parser->simple_key_allowed = 0; + + /* Create the ALIAS or ANCHOR token and append it to the queue. */ + + if (!yaml_parser_scan_anchor(parser, &token, type)) + return 0; + + if (!ENQUEUE(parser, parser->tokens, token)) { + yaml_token_delete(&token); + return 0; + } + return 1; +} + +/* + * Produce the TAG token. + */ + +static int +yaml_parser_fetch_tag(yaml_parser_t *parser) +{ + yaml_token_t token; + + /* A tag could be a simple key. */ + + if (!yaml_parser_save_simple_key(parser)) + return 0; + + /* A simple key cannot follow a tag. */ + + parser->simple_key_allowed = 0; + + /* Create the TAG token and append it to the queue. */ + + if (!yaml_parser_scan_tag(parser, &token)) + return 0; + + if (!ENQUEUE(parser, parser->tokens, token)) { + yaml_token_delete(&token); + return 0; + } + + return 1; +} + +/* + * Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. + */ + +static int +yaml_parser_fetch_block_scalar(yaml_parser_t *parser, int literal) +{ + yaml_token_t token; + + /* Remove any potential simple keys. */ + + if (!yaml_parser_remove_simple_key(parser)) + return 0; + + /* A simple key may follow a block scalar. */ + + parser->simple_key_allowed = 1; + + /* Create the SCALAR token and append it to the queue. */ + + if (!yaml_parser_scan_block_scalar(parser, &token, literal)) + return 0; + + if (!ENQUEUE(parser, parser->tokens, token)) { + yaml_token_delete(&token); + return 0; + } + + return 1; +} + +/* + * Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. + */ + +static int +yaml_parser_fetch_flow_scalar(yaml_parser_t *parser, int single) +{ + yaml_token_t token; + + /* A plain scalar could be a simple key. */ + + if (!yaml_parser_save_simple_key(parser)) + return 0; + + /* A simple key cannot follow a flow scalar. */ + + parser->simple_key_allowed = 0; + + /* Create the SCALAR token and append it to the queue. */ + + if (!yaml_parser_scan_flow_scalar(parser, &token, single)) + return 0; + + if (!ENQUEUE(parser, parser->tokens, token)) { + yaml_token_delete(&token); + return 0; + } + + return 1; +} + +/* + * Produce the SCALAR(...,plain) token. + */ + +static int +yaml_parser_fetch_plain_scalar(yaml_parser_t *parser) +{ + yaml_token_t token; + + /* A plain scalar could be a simple key. */ + + if (!yaml_parser_save_simple_key(parser)) + return 0; + + /* A simple key cannot follow a flow scalar. */ + + parser->simple_key_allowed = 0; + + /* Create the SCALAR token and append it to the queue. */ + + if (!yaml_parser_scan_plain_scalar(parser, &token)) + return 0; + + if (!ENQUEUE(parser, parser->tokens, token)) { + yaml_token_delete(&token); + return 0; + } + + return 1; +} + +/* + * Eat whitespaces and comments until the next token is found. + */ + +static int +yaml_parser_scan_to_next_token(yaml_parser_t *parser) +{ + /* Until the next token is not found. */ + + while (1) + { + /* Allow the BOM mark to start a line. */ + + if (!CACHE(parser, 1)) return 0; + + if (parser->mark.column == 0 && IS_BOM(parser->buffer)) + SKIP(parser); + + /* + * Eat whitespaces. + * + * Tabs are allowed: + * + * - in the flow context; + * - in the block context, but not at the beginning of the line or + * after '-', '?', or ':' (complex value). + */ + + if (!CACHE(parser, 1)) return 0; + + while (CHECK(parser->buffer,' ') || + ((parser->flow_level || !parser->simple_key_allowed) && + CHECK(parser->buffer, '\t'))) { + SKIP(parser); + if (!CACHE(parser, 1)) return 0; + } + + /* Eat a comment until a line break. */ + + if (CHECK(parser->buffer, '#')) { + while (!IS_BREAKZ(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) return 0; + } + } + + /* If it is a line break, eat it. */ + + if (IS_BREAK(parser->buffer)) + { + if (!CACHE(parser, 2)) return 0; + SKIP_LINE(parser); + + /* In the block context, a new line may start a simple key. */ + + if (!parser->flow_level) { + parser->simple_key_allowed = 1; + } + } + else + { + /* We have found a token. */ + + break; + } + } + + return 1; +} + +/* + * Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. + * + * Scope: + * %YAML 1.1 # a comment \n + * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + * %TAG !yaml! tag:yaml.org,2002: \n + * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + */ + +int +yaml_parser_scan_directive(yaml_parser_t *parser, yaml_token_t *token) +{ + yaml_mark_t start_mark, end_mark; + yaml_char_t *name = NULL; + int major, minor; + yaml_char_t *handle = NULL, *prefix = NULL; + + /* Eat '%'. */ + + start_mark = parser->mark; + + SKIP(parser); + + /* Scan the directive name. */ + + if (!yaml_parser_scan_directive_name(parser, start_mark, &name)) + goto error; + + /* Is it a YAML directive? */ + + if (strcmp((char *)name, "YAML") == 0) + { + /* Scan the VERSION directive value. */ + + if (!yaml_parser_scan_version_directive_value(parser, start_mark, + &major, &minor)) + goto error; + + end_mark = parser->mark; + + /* Create a VERSION-DIRECTIVE token. */ + + VERSION_DIRECTIVE_TOKEN_INIT(*token, major, minor, + start_mark, end_mark); + } + + /* Is it a TAG directive? */ + + else if (strcmp((char *)name, "TAG") == 0) + { + /* Scan the TAG directive value. */ + + if (!yaml_parser_scan_tag_directive_value(parser, start_mark, + &handle, &prefix)) + goto error; + + end_mark = parser->mark; + + /* Create a TAG-DIRECTIVE token. */ + + TAG_DIRECTIVE_TOKEN_INIT(*token, handle, prefix, + start_mark, end_mark); + } + + /* Unknown directive. */ + + else + { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unknown directive name"); + goto error; + } + + /* Eat the rest of the line including any comments. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_BLANK(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) goto error; + } + + if (CHECK(parser->buffer, '#')) { + while (!IS_BREAKZ(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) goto error; + } + } + + /* Check if we are at the end of the line. */ + + if (!IS_BREAKZ(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "did not find expected comment or line break"); + goto error; + } + + /* Eat a line break. */ + + if (IS_BREAK(parser->buffer)) { + if (!CACHE(parser, 2)) goto error; + SKIP_LINE(parser); + } + + yaml_free(name); + + return 1; + +error: + yaml_free(prefix); + yaml_free(handle); + yaml_free(name); + return 0; +} + +/* + * Scan the directive name. + * + * Scope: + * %YAML 1.1 # a comment \n + * ^^^^ + * %TAG !yaml! tag:yaml.org,2002: \n + * ^^^ + */ + +static int +yaml_parser_scan_directive_name(yaml_parser_t *parser, + yaml_mark_t start_mark, yaml_char_t **name) +{ + yaml_string_t string = NULL_STRING; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + + /* Consume the directive name. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_ALPHA(parser->buffer)) + { + if (!READ(parser, string)) goto error; + if (!CACHE(parser, 1)) goto error; + } + + /* Check if the name is empty. */ + + if (string.start == string.pointer) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "could not find expected directive name"); + goto error; + } + + /* Check for an blank character after the name. */ + + if (!IS_BLANKZ(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unexpected non-alphabetical character"); + goto error; + } + + *name = string.start; + + return 1; + +error: + STRING_DEL(parser, string); + return 0; +} + +/* + * Scan the value of VERSION-DIRECTIVE. + * + * Scope: + * %YAML 1.1 # a comment \n + * ^^^^^^ + */ + +static int +yaml_parser_scan_version_directive_value(yaml_parser_t *parser, + yaml_mark_t start_mark, int *major, int *minor) +{ + /* Eat whitespaces. */ + + if (!CACHE(parser, 1)) return 0; + + while (IS_BLANK(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) return 0; + } + + /* Consume the major version number. */ + + if (!yaml_parser_scan_version_directive_number(parser, start_mark, major)) + return 0; + + /* Eat '.'. */ + + if (!CHECK(parser->buffer, '.')) { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected digit or '.' character"); + } + + SKIP(parser); + + /* Consume the minor version number. */ + + if (!yaml_parser_scan_version_directive_number(parser, start_mark, minor)) + return 0; + + return 1; +} + +#define MAX_NUMBER_LENGTH 9 + +/* + * Scan the version number of VERSION-DIRECTIVE. + * + * Scope: + * %YAML 1.1 # a comment \n + * ^ + * %YAML 1.1 # a comment \n + * ^ + */ + +static int +yaml_parser_scan_version_directive_number(yaml_parser_t *parser, + yaml_mark_t start_mark, int *number) +{ + int value = 0; + size_t length = 0; + + /* Repeat while the next character is digit. */ + + if (!CACHE(parser, 1)) return 0; + + while (IS_DIGIT(parser->buffer)) + { + /* Check if the number is too long. */ + + if (++length > MAX_NUMBER_LENGTH) { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "found extremely long version number"); + } + + value = value*10 + AS_DIGIT(parser->buffer); + + SKIP(parser); + + if (!CACHE(parser, 1)) return 0; + } + + /* Check if the number was present. */ + + if (!length) { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected version number"); + } + + *number = value; + + return 1; +} + +/* + * Scan the value of a TAG-DIRECTIVE token. + * + * Scope: + * %TAG !yaml! tag:yaml.org,2002: \n + * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + */ + +static int +yaml_parser_scan_tag_directive_value(yaml_parser_t *parser, + yaml_mark_t start_mark, yaml_char_t **handle, yaml_char_t **prefix) +{ + yaml_char_t *handle_value = NULL; + yaml_char_t *prefix_value = NULL; + + /* Eat whitespaces. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_BLANK(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) goto error; + } + + /* Scan a handle. */ + + if (!yaml_parser_scan_tag_handle(parser, 1, start_mark, &handle_value)) + goto error; + + /* Expect a whitespace. */ + + if (!CACHE(parser, 1)) goto error; + + if (!IS_BLANK(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace"); + goto error; + } + + /* Eat whitespaces. */ + + while (IS_BLANK(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) goto error; + } + + /* Scan a prefix. */ + + if (!yaml_parser_scan_tag_uri(parser, 1, NULL, start_mark, &prefix_value)) + goto error; + + /* Expect a whitespace or line break. */ + + if (!CACHE(parser, 1)) goto error; + + if (!IS_BLANKZ(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace or line break"); + goto error; + } + + *handle = handle_value; + *prefix = prefix_value; + + return 1; + +error: + yaml_free(handle_value); + yaml_free(prefix_value); + return 0; +} + +static int +yaml_parser_scan_anchor(yaml_parser_t *parser, yaml_token_t *token, + yaml_token_type_t type) +{ + int length = 0; + yaml_mark_t start_mark, end_mark; + yaml_string_t string = NULL_STRING; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + + /* Eat the indicator character. */ + + start_mark = parser->mark; + + SKIP(parser); + + /* Consume the value. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_ALPHA(parser->buffer)) { + if (!READ(parser, string)) goto error; + if (!CACHE(parser, 1)) goto error; + length ++; + } + + end_mark = parser->mark; + + /* + * Check if length of the anchor is greater than 0 and it is followed by + * a whitespace character or one of the indicators: + * + * '?', ':', ',', ']', '}', '%', '@', '`'. + */ + + if (!length || !(IS_BLANKZ(parser->buffer) || CHECK(parser->buffer, '?') + || CHECK(parser->buffer, ':') || CHECK(parser->buffer, ',') + || CHECK(parser->buffer, ']') || CHECK(parser->buffer, '}') + || CHECK(parser->buffer, '%') || CHECK(parser->buffer, '@') + || CHECK(parser->buffer, '`'))) { + yaml_parser_set_scanner_error(parser, type == YAML_ANCHOR_TOKEN ? + "while scanning an anchor" : "while scanning an alias", start_mark, + "did not find expected alphabetic or numeric character"); + goto error; + } + + /* Create a token. */ + + if (type == YAML_ANCHOR_TOKEN) { + ANCHOR_TOKEN_INIT(*token, string.start, start_mark, end_mark); + } + else { + ALIAS_TOKEN_INIT(*token, string.start, start_mark, end_mark); + } + + return 1; + +error: + STRING_DEL(parser, string); + return 0; +} + +/* + * Scan a TAG token. + */ + +static int +yaml_parser_scan_tag(yaml_parser_t *parser, yaml_token_t *token) +{ + yaml_char_t *handle = NULL; + yaml_char_t *suffix = NULL; + yaml_mark_t start_mark, end_mark; + + start_mark = parser->mark; + + /* Check if the tag is in the canonical form. */ + + if (!CACHE(parser, 2)) goto error; + + if (CHECK_AT(parser->buffer, '<', 1)) + { + /* Set the handle to '' */ + + handle = YAML_MALLOC(1); + if (!handle) goto error; + handle[0] = '\0'; + + /* Eat '!<' */ + + SKIP(parser); + SKIP(parser); + + /* Consume the tag value. */ + + if (!yaml_parser_scan_tag_uri(parser, 0, NULL, start_mark, &suffix)) + goto error; + + /* Check for '>' and eat it. */ + + if (!CHECK(parser->buffer, '>')) { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find the expected '>'"); + goto error; + } + + SKIP(parser); + } + else + { + /* The tag has either the '!suffix' or the '!handle!suffix' form. */ + + /* First, try to scan a handle. */ + + if (!yaml_parser_scan_tag_handle(parser, 0, start_mark, &handle)) + goto error; + + /* Check if it is, indeed, handle. */ + + if (handle[0] == '!' && handle[1] != '\0' && handle[strlen((char *)handle)-1] == '!') + { + /* Scan the suffix now. */ + + if (!yaml_parser_scan_tag_uri(parser, 0, NULL, start_mark, &suffix)) + goto error; + } + else + { + /* It wasn't a handle after all. Scan the rest of the tag. */ + + if (!yaml_parser_scan_tag_uri(parser, 0, handle, start_mark, &suffix)) + goto error; + + /* Set the handle to '!'. */ + + yaml_free(handle); + handle = YAML_MALLOC(2); + if (!handle) goto error; + handle[0] = '!'; + handle[1] = '\0'; + + /* + * A special case: the '!' tag. Set the handle to '' and the + * suffix to '!'. + */ + + if (suffix[0] == '\0') { + yaml_char_t *tmp = handle; + handle = suffix; + suffix = tmp; + } + } + } + + /* Check the character which ends the tag. */ + + if (!CACHE(parser, 1)) goto error; + + if (!IS_BLANKZ(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find expected whitespace or line break"); + goto error; + } + + end_mark = parser->mark; + + /* Create a token. */ + + TAG_TOKEN_INIT(*token, handle, suffix, start_mark, end_mark); + + return 1; + +error: + yaml_free(handle); + yaml_free(suffix); + return 0; +} + +/* + * Scan a tag handle. + */ + +static int +yaml_parser_scan_tag_handle(yaml_parser_t *parser, int directive, + yaml_mark_t start_mark, yaml_char_t **handle) +{ + yaml_string_t string = NULL_STRING; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + + /* Check the initial '!' character. */ + + if (!CACHE(parser, 1)) goto error; + + if (!CHECK(parser->buffer, '!')) { + yaml_parser_set_scanner_error(parser, directive ? + "while scanning a tag directive" : "while scanning a tag", + start_mark, "did not find expected '!'"); + goto error; + } + + /* Copy the '!' character. */ + + if (!READ(parser, string)) goto error; + + /* Copy all subsequent alphabetical and numerical characters. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_ALPHA(parser->buffer)) + { + if (!READ(parser, string)) goto error; + if (!CACHE(parser, 1)) goto error; + } + + /* Check if the trailing character is '!' and copy it. */ + + if (CHECK(parser->buffer, '!')) + { + if (!READ(parser, string)) goto error; + } + else + { + /* + * It's either the '!' tag or not really a tag handle. If it's a %TAG + * directive, it's an error. If it's a tag token, it must be a part of + * URI. + */ + + if (directive && !(string.start[0] == '!' && string.start[1] == '\0')) { + yaml_parser_set_scanner_error(parser, "while parsing a tag directive", + start_mark, "did not find expected '!'"); + goto error; + } + } + + *handle = string.start; + + return 1; + +error: + STRING_DEL(parser, string); + return 0; +} + +/* + * Scan a tag. + */ + +static int +yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive, + yaml_char_t *head, yaml_mark_t start_mark, yaml_char_t **uri) +{ + size_t length = head ? strlen((char *)head) : 0; + yaml_string_t string = NULL_STRING; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + + /* Resize the string to include the head. */ + + while ((size_t)(string.end - string.start) <= length) { + if (!yaml_string_extend(&string.start, &string.pointer, &string.end)) { + parser->error = YAML_MEMORY_ERROR; + goto error; + } + } + + /* + * Copy the head if needed. + * + * Note that we don't copy the leading '!' character. + */ + + if (length > 1) { + memcpy(string.start, head+1, length-1); + string.pointer += length-1; + } + + /* Scan the tag. */ + + if (!CACHE(parser, 1)) goto error; + + /* + * The set of characters that may appear in URI is as follows: + * + * '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', + * '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', + * '%'. + */ + + while (IS_ALPHA(parser->buffer) || CHECK(parser->buffer, ';') + || CHECK(parser->buffer, '/') || CHECK(parser->buffer, '?') + || CHECK(parser->buffer, ':') || CHECK(parser->buffer, '@') + || CHECK(parser->buffer, '&') || CHECK(parser->buffer, '=') + || CHECK(parser->buffer, '+') || CHECK(parser->buffer, '$') + || CHECK(parser->buffer, ',') || CHECK(parser->buffer, '.') + || CHECK(parser->buffer, '!') || CHECK(parser->buffer, '~') + || CHECK(parser->buffer, '*') || CHECK(parser->buffer, '\'') + || CHECK(parser->buffer, '(') || CHECK(parser->buffer, ')') + || CHECK(parser->buffer, '[') || CHECK(parser->buffer, ']') + || CHECK(parser->buffer, '%')) + { + /* Check if it is a URI-escape sequence. */ + + if (CHECK(parser->buffer, '%')) { + if (!STRING_EXTEND(parser, string)) + goto error; + + if (!yaml_parser_scan_uri_escapes(parser, + directive, start_mark, &string)) goto error; + } + else { + if (!READ(parser, string)) goto error; + } + + length ++; + if (!CACHE(parser, 1)) goto error; + } + + /* Check if the tag is non-empty. */ + + if (!length) { + if (!STRING_EXTEND(parser, string)) + goto error; + + yaml_parser_set_scanner_error(parser, directive ? + "while parsing a %TAG directive" : "while parsing a tag", + start_mark, "did not find expected tag URI"); + goto error; + } + + *uri = string.start; + + return 1; + +error: + STRING_DEL(parser, string); + return 0; +} + +/* + * Decode an URI-escape sequence corresponding to a single UTF-8 character. + */ + +static int +yaml_parser_scan_uri_escapes(yaml_parser_t *parser, int directive, + yaml_mark_t start_mark, yaml_string_t *string) +{ + int width = 0; + + /* Decode the required number of characters. */ + + do { + + unsigned char octet = 0; + + /* Check for a URI-escaped octet. */ + + if (!CACHE(parser, 3)) return 0; + + if (!(CHECK(parser->buffer, '%') + && IS_HEX_AT(parser->buffer, 1) + && IS_HEX_AT(parser->buffer, 2))) { + return yaml_parser_set_scanner_error(parser, directive ? + "while parsing a %TAG directive" : "while parsing a tag", + start_mark, "did not find URI escaped octet"); + } + + /* Get the octet. */ + + octet = (AS_HEX_AT(parser->buffer, 1) << 4) + AS_HEX_AT(parser->buffer, 2); + + /* If it is the leading octet, determine the length of the UTF-8 sequence. */ + + if (!width) + { + width = (octet & 0x80) == 0x00 ? 1 : + (octet & 0xE0) == 0xC0 ? 2 : + (octet & 0xF0) == 0xE0 ? 3 : + (octet & 0xF8) == 0xF0 ? 4 : 0; + if (!width) { + return yaml_parser_set_scanner_error(parser, directive ? + "while parsing a %TAG directive" : "while parsing a tag", + start_mark, "found an incorrect leading UTF-8 octet"); + } + } + else + { + /* Check if the trailing octet is correct. */ + + if ((octet & 0xC0) != 0x80) { + return yaml_parser_set_scanner_error(parser, directive ? + "while parsing a %TAG directive" : "while parsing a tag", + start_mark, "found an incorrect trailing UTF-8 octet"); + } + } + + /* Copy the octet and move the pointers. */ + + *(string->pointer++) = octet; + SKIP(parser); + SKIP(parser); + SKIP(parser); + + } while (--width); + + return 1; +} + +/* + * Scan a block scalar. + */ + +static int +yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token, + int literal) +{ + yaml_mark_t start_mark; + yaml_mark_t end_mark; + yaml_string_t string = NULL_STRING; + yaml_string_t leading_break = NULL_STRING; + yaml_string_t trailing_breaks = NULL_STRING; + int chomping = 0; + int increment = 0; + int indent = 0; + int leading_blank = 0; + int trailing_blank = 0; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, leading_break, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, trailing_breaks, INITIAL_STRING_SIZE)) goto error; + + /* Eat the indicator '|' or '>'. */ + + start_mark = parser->mark; + + SKIP(parser); + + /* Scan the additional block scalar indicators. */ + + if (!CACHE(parser, 1)) goto error; + + /* Check for a chomping indicator. */ + + if (CHECK(parser->buffer, '+') || CHECK(parser->buffer, '-')) + { + /* Set the chomping method and eat the indicator. */ + + chomping = CHECK(parser->buffer, '+') ? +1 : -1; + + SKIP(parser); + + /* Check for an indentation indicator. */ + + if (!CACHE(parser, 1)) goto error; + + if (IS_DIGIT(parser->buffer)) + { + /* Check that the indentation is greater than 0. */ + + if (CHECK(parser->buffer, '0')) { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0"); + goto error; + } + + /* Get the indentation level and eat the indicator. */ + + increment = AS_DIGIT(parser->buffer); + + SKIP(parser); + } + } + + /* Do the same as above, but in the opposite order. */ + + else if (IS_DIGIT(parser->buffer)) + { + if (CHECK(parser->buffer, '0')) { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0"); + goto error; + } + + increment = AS_DIGIT(parser->buffer); + + SKIP(parser); + + if (!CACHE(parser, 1)) goto error; + + if (CHECK(parser->buffer, '+') || CHECK(parser->buffer, '-')) { + chomping = CHECK(parser->buffer, '+') ? +1 : -1; + + SKIP(parser); + } + } + + /* Eat whitespaces and comments to the end of the line. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_BLANK(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) goto error; + } + + if (CHECK(parser->buffer, '#')) { + while (!IS_BREAKZ(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) goto error; + } + } + + /* Check if we are at the end of the line. */ + + if (!IS_BREAKZ(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "did not find expected comment or line break"); + goto error; + } + + /* Eat a line break. */ + + if (IS_BREAK(parser->buffer)) { + if (!CACHE(parser, 2)) goto error; + SKIP_LINE(parser); + } + + end_mark = parser->mark; + + /* Set the indentation level if it was specified. */ + + if (increment) { + indent = parser->indent >= 0 ? parser->indent+increment : increment; + } + + /* Scan the leading line breaks and determine the indentation level if needed. */ + + if (!yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, + start_mark, &end_mark)) goto error; + + /* Scan the block scalar content. */ + + if (!CACHE(parser, 1)) goto error; + + while ((int)parser->mark.column == indent && !IS_Z(parser->buffer)) + { + /* + * We are at the beginning of a non-empty line. + */ + + /* Is it a trailing whitespace? */ + + trailing_blank = IS_BLANK(parser->buffer); + + /* Check if we need to fold the leading line break. */ + + if (!literal && (*leading_break.start == '\n') + && !leading_blank && !trailing_blank) + { + /* Do we need to join the lines by space? */ + + if (*trailing_breaks.start == '\0') { + if (!STRING_EXTEND(parser, string)) goto error; + *(string.pointer ++) = ' '; + } + + CLEAR(parser, leading_break); + } + else { + if (!JOIN(parser, string, leading_break)) goto error; + CLEAR(parser, leading_break); + } + + /* Append the remaining line breaks. */ + + if (!JOIN(parser, string, trailing_breaks)) goto error; + CLEAR(parser, trailing_breaks); + + /* Is it a leading whitespace? */ + + leading_blank = IS_BLANK(parser->buffer); + + /* Consume the current line. */ + + while (!IS_BREAKZ(parser->buffer)) { + if (!READ(parser, string)) goto error; + if (!CACHE(parser, 1)) goto error; + } + + /* Consume the line break. */ + + if (!CACHE(parser, 2)) goto error; + + if (!READ_LINE(parser, leading_break)) goto error; + + /* Eat the following indentation spaces and line breaks. */ + + if (!yaml_parser_scan_block_scalar_breaks(parser, + &indent, &trailing_breaks, start_mark, &end_mark)) goto error; + } + + /* Chomp the tail. */ + + if (chomping != -1) { + if (!JOIN(parser, string, leading_break)) goto error; + } + if (chomping == 1) { + if (!JOIN(parser, string, trailing_breaks)) goto error; + } + + /* Create a token. */ + + SCALAR_TOKEN_INIT(*token, string.start, string.pointer-string.start, + literal ? YAML_LITERAL_SCALAR_STYLE : YAML_FOLDED_SCALAR_STYLE, + start_mark, end_mark); + + STRING_DEL(parser, leading_break); + STRING_DEL(parser, trailing_breaks); + + return 1; + +error: + STRING_DEL(parser, string); + STRING_DEL(parser, leading_break); + STRING_DEL(parser, trailing_breaks); + + return 0; +} + +/* + * Scan indentation spaces and line breaks for a block scalar. Determine the + * indentation level if needed. + */ + +static int +yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser, + int *indent, yaml_string_t *breaks, + yaml_mark_t start_mark, yaml_mark_t *end_mark) +{ + int max_indent = 0; + + *end_mark = parser->mark; + + /* Eat the indentation spaces and line breaks. */ + + while (1) + { + /* Eat the indentation spaces. */ + + if (!CACHE(parser, 1)) return 0; + + while ((!*indent || (int)parser->mark.column < *indent) + && IS_SPACE(parser->buffer)) { + SKIP(parser); + if (!CACHE(parser, 1)) return 0; + } + + if ((int)parser->mark.column > max_indent) + max_indent = (int)parser->mark.column; + + /* Check for a tab character messing the indentation. */ + + if ((!*indent || (int)parser->mark.column < *indent) + && IS_TAB(parser->buffer)) { + return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found a tab character where an indentation space is expected"); + } + + /* Have we found a non-empty line? */ + + if (!IS_BREAK(parser->buffer)) break; + + /* Consume the line break. */ + + if (!CACHE(parser, 2)) return 0; + if (!READ_LINE(parser, *breaks)) return 0; + *end_mark = parser->mark; + } + + /* Determine the indentation level if needed. */ + + if (!*indent) { + *indent = max_indent; + if (*indent < parser->indent + 1) + *indent = parser->indent + 1; + if (*indent < 1) + *indent = 1; + } + + return 1; +} + +/* + * Scan a quoted scalar. + */ + +static int +yaml_parser_scan_flow_scalar(yaml_parser_t *parser, yaml_token_t *token, + int single) +{ + yaml_mark_t start_mark; + yaml_mark_t end_mark; + yaml_string_t string = NULL_STRING; + yaml_string_t leading_break = NULL_STRING; + yaml_string_t trailing_breaks = NULL_STRING; + yaml_string_t whitespaces = NULL_STRING; + int leading_blanks; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, leading_break, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, trailing_breaks, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, whitespaces, INITIAL_STRING_SIZE)) goto error; + + /* Eat the left quote. */ + + start_mark = parser->mark; + + SKIP(parser); + + /* Consume the content of the quoted scalar. */ + + while (1) + { + /* Check that there are no document indicators at the beginning of the line. */ + + if (!CACHE(parser, 4)) goto error; + + if (parser->mark.column == 0 && + ((CHECK_AT(parser->buffer, '-', 0) && + CHECK_AT(parser->buffer, '-', 1) && + CHECK_AT(parser->buffer, '-', 2)) || + (CHECK_AT(parser->buffer, '.', 0) && + CHECK_AT(parser->buffer, '.', 1) && + CHECK_AT(parser->buffer, '.', 2))) && + IS_BLANKZ_AT(parser->buffer, 3)) + { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected document indicator"); + goto error; + } + + /* Check for EOF. */ + + if (IS_Z(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected end of stream"); + goto error; + } + + /* Consume non-blank characters. */ + + if (!CACHE(parser, 2)) goto error; + + leading_blanks = 0; + + while (!IS_BLANKZ(parser->buffer)) + { + /* Check for an escaped single quote. */ + + if (single && CHECK_AT(parser->buffer, '\'', 0) + && CHECK_AT(parser->buffer, '\'', 1)) + { + if (!STRING_EXTEND(parser, string)) goto error; + *(string.pointer++) = '\''; + SKIP(parser); + SKIP(parser); + } + + /* Check for the right quote. */ + + else if (CHECK(parser->buffer, single ? '\'' : '"')) + { + break; + } + + /* Check for an escaped line break. */ + + else if (!single && CHECK(parser->buffer, '\\') + && IS_BREAK_AT(parser->buffer, 1)) + { + if (!CACHE(parser, 3)) goto error; + SKIP(parser); + SKIP_LINE(parser); + leading_blanks = 1; + break; + } + + /* Check for an escape sequence. */ + + else if (!single && CHECK(parser->buffer, '\\')) + { + size_t code_length = 0; + + if (!STRING_EXTEND(parser, string)) goto error; + + /* Check the escape character. */ + + switch (parser->buffer.pointer[1]) + { + case '0': + *(string.pointer++) = '\0'; + break; + + case 'a': + *(string.pointer++) = '\x07'; + break; + + case 'b': + *(string.pointer++) = '\x08'; + break; + + case 't': + case '\t': + *(string.pointer++) = '\x09'; + break; + + case 'n': + *(string.pointer++) = '\x0A'; + break; + + case 'v': + *(string.pointer++) = '\x0B'; + break; + + case 'f': + *(string.pointer++) = '\x0C'; + break; + + case 'r': + *(string.pointer++) = '\x0D'; + break; + + case 'e': + *(string.pointer++) = '\x1B'; + break; + + case ' ': + *(string.pointer++) = '\x20'; + break; + + case '"': + *(string.pointer++) = '"'; + break; + + case '\\': + *(string.pointer++) = '\\'; + break; + + case 'N': /* NEL (#x85) */ + *(string.pointer++) = '\xC2'; + *(string.pointer++) = '\x85'; + break; + + case '_': /* #xA0 */ + *(string.pointer++) = '\xC2'; + *(string.pointer++) = '\xA0'; + break; + + case 'L': /* LS (#x2028) */ + *(string.pointer++) = '\xE2'; + *(string.pointer++) = '\x80'; + *(string.pointer++) = '\xA8'; + break; + + case 'P': /* PS (#x2029) */ + *(string.pointer++) = '\xE2'; + *(string.pointer++) = '\x80'; + *(string.pointer++) = '\xA9'; + break; + + case 'x': + code_length = 2; + break; + + case 'u': + code_length = 4; + break; + + case 'U': + code_length = 8; + break; + + case '/': + *(string.pointer++) = '/'; /* JSON -> YAML 1.2 */ + break; + + default: + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found unknown escape character"); + goto error; + } + + SKIP(parser); + SKIP(parser); + + /* Consume an arbitrary escape code. */ + + if (code_length) + { + unsigned int value = 0; + size_t k; + + /* Scan the character value. */ + + if (!CACHE(parser, code_length)) goto error; + + for (k = 0; k < code_length; k ++) { + if (!IS_HEX_AT(parser->buffer, k)) { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "did not find expected hexdecimal number"); + goto error; + } + value = (value << 4) + AS_HEX_AT(parser->buffer, k); + } + + /* Check the value and write the character. */ + + if ((value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF) { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found invalid Unicode character escape code"); + goto error; + } + + if (value <= 0x7F) { + *(string.pointer++) = value; + } + else if (value <= 0x7FF) { + *(string.pointer++) = 0xC0 + (value >> 6); + *(string.pointer++) = 0x80 + (value & 0x3F); + } + else if (value <= 0xFFFF) { + *(string.pointer++) = 0xE0 + (value >> 12); + *(string.pointer++) = 0x80 + ((value >> 6) & 0x3F); + *(string.pointer++) = 0x80 + (value & 0x3F); + } + else { + *(string.pointer++) = 0xF0 + (value >> 18); + *(string.pointer++) = 0x80 + ((value >> 12) & 0x3F); + *(string.pointer++) = 0x80 + ((value >> 6) & 0x3F); + *(string.pointer++) = 0x80 + (value & 0x3F); + } + + /* Advance the pointer. */ + + for (k = 0; k < code_length; k ++) { + SKIP(parser); + } + } + } + + else + { + /* It is a non-escaped non-blank character. */ + + if (!READ(parser, string)) goto error; + } + + if (!CACHE(parser, 2)) goto error; + } + + /* Check if we are at the end of the scalar. */ + + if (CHECK(parser->buffer, single ? '\'' : '"')) + break; + + /* Consume blank characters. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_BLANK(parser->buffer) || IS_BREAK(parser->buffer)) + { + if (IS_BLANK(parser->buffer)) + { + /* Consume a space or a tab character. */ + + if (!leading_blanks) { + if (!READ(parser, whitespaces)) goto error; + } + else { + SKIP(parser); + } + } + else + { + if (!CACHE(parser, 2)) goto error; + + /* Check if it is a first line break. */ + + if (!leading_blanks) + { + CLEAR(parser, whitespaces); + if (!READ_LINE(parser, leading_break)) goto error; + leading_blanks = 1; + } + else + { + if (!READ_LINE(parser, trailing_breaks)) goto error; + } + } + if (!CACHE(parser, 1)) goto error; + } + + /* Join the whitespaces or fold line breaks. */ + + if (leading_blanks) + { + /* Do we need to fold line breaks? */ + + if (leading_break.start[0] == '\n') { + if (trailing_breaks.start[0] == '\0') { + if (!STRING_EXTEND(parser, string)) goto error; + *(string.pointer++) = ' '; + } + else { + if (!JOIN(parser, string, trailing_breaks)) goto error; + CLEAR(parser, trailing_breaks); + } + CLEAR(parser, leading_break); + } + else { + if (!JOIN(parser, string, leading_break)) goto error; + if (!JOIN(parser, string, trailing_breaks)) goto error; + CLEAR(parser, leading_break); + CLEAR(parser, trailing_breaks); + } + } + else + { + if (!JOIN(parser, string, whitespaces)) goto error; + CLEAR(parser, whitespaces); + } + } + + /* Eat the right quote. */ + + SKIP(parser); + + end_mark = parser->mark; + + /* Create a token. */ + + SCALAR_TOKEN_INIT(*token, string.start, string.pointer-string.start, + single ? YAML_SINGLE_QUOTED_SCALAR_STYLE : YAML_DOUBLE_QUOTED_SCALAR_STYLE, + start_mark, end_mark); + + STRING_DEL(parser, leading_break); + STRING_DEL(parser, trailing_breaks); + STRING_DEL(parser, whitespaces); + + return 1; + +error: + STRING_DEL(parser, string); + STRING_DEL(parser, leading_break); + STRING_DEL(parser, trailing_breaks); + STRING_DEL(parser, whitespaces); + + return 0; +} + +/* + * Scan a plain scalar. + */ + +static int +yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t *token) +{ + yaml_mark_t start_mark; + yaml_mark_t end_mark; + yaml_string_t string = NULL_STRING; + yaml_string_t leading_break = NULL_STRING; + yaml_string_t trailing_breaks = NULL_STRING; + yaml_string_t whitespaces = NULL_STRING; + int leading_blanks = 0; + int indent = parser->indent+1; + + if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, leading_break, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, trailing_breaks, INITIAL_STRING_SIZE)) goto error; + if (!STRING_INIT(parser, whitespaces, INITIAL_STRING_SIZE)) goto error; + + start_mark = end_mark = parser->mark; + + /* Consume the content of the plain scalar. */ + + while (1) + { + /* Check for a document indicator. */ + + if (!CACHE(parser, 4)) goto error; + + if (parser->mark.column == 0 && + ((CHECK_AT(parser->buffer, '-', 0) && + CHECK_AT(parser->buffer, '-', 1) && + CHECK_AT(parser->buffer, '-', 2)) || + (CHECK_AT(parser->buffer, '.', 0) && + CHECK_AT(parser->buffer, '.', 1) && + CHECK_AT(parser->buffer, '.', 2))) && + IS_BLANKZ_AT(parser->buffer, 3)) break; + + /* Check for a comment. */ + + if (CHECK(parser->buffer, '#')) + break; + + /* Consume non-blank characters. */ + + while (!IS_BLANKZ(parser->buffer)) + { + /* Check for 'x:x' in the flow context. TODO: Fix the test "spec-08-13". */ + + if (parser->flow_level + && CHECK(parser->buffer, ':') + && !IS_BLANKZ_AT(parser->buffer, 1)) { + yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", + start_mark, "found unexpected ':'"); + goto error; + } + + /* Check for indicators that may end a plain scalar. */ + + if ((CHECK(parser->buffer, ':') && IS_BLANKZ_AT(parser->buffer, 1)) + || (parser->flow_level && + (CHECK(parser->buffer, ',') || CHECK(parser->buffer, ':') + || CHECK(parser->buffer, '?') || CHECK(parser->buffer, '[') + || CHECK(parser->buffer, ']') || CHECK(parser->buffer, '{') + || CHECK(parser->buffer, '}')))) + break; + + /* Check if we need to join whitespaces and breaks. */ + + if (leading_blanks || whitespaces.start != whitespaces.pointer) + { + if (leading_blanks) + { + /* Do we need to fold line breaks? */ + + if (leading_break.start[0] == '\n') { + if (trailing_breaks.start[0] == '\0') { + if (!STRING_EXTEND(parser, string)) goto error; + *(string.pointer++) = ' '; + } + else { + if (!JOIN(parser, string, trailing_breaks)) goto error; + CLEAR(parser, trailing_breaks); + } + CLEAR(parser, leading_break); + } + else { + if (!JOIN(parser, string, leading_break)) goto error; + if (!JOIN(parser, string, trailing_breaks)) goto error; + CLEAR(parser, leading_break); + CLEAR(parser, trailing_breaks); + } + + leading_blanks = 0; + } + else + { + if (!JOIN(parser, string, whitespaces)) goto error; + CLEAR(parser, whitespaces); + } + } + + /* Copy the character. */ + + if (!READ(parser, string)) goto error; + + end_mark = parser->mark; + + if (!CACHE(parser, 2)) goto error; + } + + /* Is it the end? */ + + if (!(IS_BLANK(parser->buffer) || IS_BREAK(parser->buffer))) + break; + + /* Consume blank characters. */ + + if (!CACHE(parser, 1)) goto error; + + while (IS_BLANK(parser->buffer) || IS_BREAK(parser->buffer)) + { + if (IS_BLANK(parser->buffer)) + { + /* Check for tab characters that abuse indentation. */ + + if (leading_blanks && (int)parser->mark.column < indent + && IS_TAB(parser->buffer)) { + yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", + start_mark, "found a tab character that violates indentation"); + goto error; + } + + /* Consume a space or a tab character. */ + + if (!leading_blanks) { + if (!READ(parser, whitespaces)) goto error; + } + else { + SKIP(parser); + } + } + else + { + if (!CACHE(parser, 2)) goto error; + + /* Check if it is a first line break. */ + + if (!leading_blanks) + { + CLEAR(parser, whitespaces); + if (!READ_LINE(parser, leading_break)) goto error; + leading_blanks = 1; + } + else + { + if (!READ_LINE(parser, trailing_breaks)) goto error; + } + } + if (!CACHE(parser, 1)) goto error; + } + + /* Check indentation level. */ + + if (!parser->flow_level && (int)parser->mark.column < indent) + break; + } + + /* Create a token. */ + + SCALAR_TOKEN_INIT(*token, string.start, string.pointer-string.start, + YAML_PLAIN_SCALAR_STYLE, start_mark, end_mark); + + /* Note that we change the 'simple_key_allowed' flag. */ + + if (leading_blanks) { + parser->simple_key_allowed = 1; + } + + STRING_DEL(parser, leading_break); + STRING_DEL(parser, trailing_breaks); + STRING_DEL(parser, whitespaces); + + return 1; + +error: + STRING_DEL(parser, string); + STRING_DEL(parser, leading_break); + STRING_DEL(parser, trailing_breaks); + STRING_DEL(parser, whitespaces); + + return 0; +} diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..8bfd5a1 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,4 @@ +[egg_info] +tag_build = +tag_date = 0 + diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..b60f159 --- /dev/null +++ b/setup.py @@ -0,0 +1,917 @@ +# # header +# coding: utf-8 +# dd: 20230418 + +# # __init__.py parser + +import sys +import os +import datetime +from textwrap import dedent + +sys.path = [path for path in sys.path if path not in [os.getcwd(), ""]] +import platform # NOQA +from _ast import * # NOQA +from ast import parse # NOQA + +from setuptools import setup, Extension, Distribution # NOQA +from setuptools.command import install_lib # NOQA +from setuptools.command.sdist import sdist as _sdist # NOQA + +# try: +# from setuptools.namespaces import Installer as NameSpaceInstaller # NOQA +# except ImportError: +# msg = ('You should use the latest setuptools. The namespaces.py file that this setup.py' +# ' uses was added in setuptools 28.7.0 (Oct 2016)') +# print(msg) +# sys.exit() + +if __name__ != '__main__': + raise NotImplementedError('should never include setup.py') + +# # definitions + +full_package_name = None + +if sys.version_info < (3,): + string_type = basestring +else: + string_type = str + + +if sys.version_info < (3, 4): + + class Bytes: + pass + + class NameConstant: + pass + + +if sys.version_info < (3,): + open_kw = {} +else: + open_kw = dict(encoding='utf-8') # NOQA: C408 + + +if sys.version_info < (2, 7) or platform.python_implementation() == 'Jython': + + class Set: + pass + + +if os.environ.get('DVDEBUG', "") == "": + + def debug(*args, **kw): + pass + + +else: + + def debug(*args, **kw): + with open(os.environ['DVDEBUG'], 'a') as fp: + kw1 = kw.copy() + kw1['file'] = fp + print('{:%Y-%d-%mT%H:%M:%S}'.format(datetime.datetime.now()), file=fp, end=' ') + print(*args, **kw1) + +if sys.version_info >= (3, 8): + from ast import Str, Num, Bytes, NameConstant # NOQA + + +def literal_eval(node_or_string): + """ + Safely evaluate an expression node or a string containing a Python + expression. The string or node provided may only consist of the following + Python literal structures: strings, bytes, numbers, tuples, lists, dicts, + sets, booleans, and None. + + Even when passing in Unicode, the resulting Str types parsed are 'str' in Python 2. + I don't now how to set 'unicode_literals' on parse -> Str is explicitly converted. + """ + _safe_names = {'None': None, 'True': True, 'False': False} + if isinstance(node_or_string, string_type): + node_or_string = parse(node_or_string, mode='eval') + if isinstance(node_or_string, Expression): + node_or_string = node_or_string.body + else: + raise TypeError('only string or AST nodes supported') + + def _convert(node): + if isinstance(node, Str): + if sys.version_info < (3,) and not isinstance(node.s, unicode): + return node.s.decode('utf-8') + return node.s + elif isinstance(node, Bytes): + return node.s + elif isinstance(node, Num): + return node.n + elif isinstance(node, Tuple): + return tuple(map(_convert, node.elts)) + elif isinstance(node, List): + return list(map(_convert, node.elts)) + elif isinstance(node, Set): + return set(map(_convert, node.elts)) + elif isinstance(node, Dict): + return {_convert(k): _convert(v) for k, v in zip(node.keys, node.values)} + elif isinstance(node, NameConstant): + return node.value + elif sys.version_info < (3, 4) and isinstance(node, Name): + if node.id in _safe_names: + return _safe_names[node.id] + elif ( + isinstance(node, UnaryOp) + and isinstance(node.op, (UAdd, USub)) + and isinstance(node.operand, (Num, UnaryOp, BinOp)) + ): # NOQA + operand = _convert(node.operand) + if isinstance(node.op, UAdd): + return +operand + else: + return -operand + elif ( + isinstance(node, BinOp) + and isinstance(node.op, (Add, Sub)) + and isinstance(node.right, (Num, UnaryOp, BinOp)) + and isinstance(node.left, (Num, UnaryOp, BinOp)) + ): # NOQA + left = _convert(node.left) + right = _convert(node.right) + if isinstance(node.op, Add): + return left + right + else: + return left - right + elif isinstance(node, Call): + func_id = getattr(node.func, 'id', None) + if func_id == 'dict': + return {k.arg: _convert(k.value) for k in node.keywords} + elif func_id == 'set': + return set(_convert(node.args[0])) + elif func_id == 'date': + return datetime.date(*[_convert(k) for k in node.args]) + elif func_id == 'datetime': + return datetime.datetime(*[_convert(k) for k in node.args]) + err = SyntaxError('malformed node or string: ' + repr(node)) + err.filename = '<string>' + err.lineno = node.lineno + err.offset = node.col_offset + err.text = repr(node) + err.node = node + raise err + + return _convert(node_or_string) + + +# parses python ( "= dict( )" ) or ( "= {" ) +def _package_data(fn): + data = {} + with open(fn, **open_kw) as fp: + parsing = False + lines = [] + for line in fp.readlines(): + if sys.version_info < (3,): + line = line.decode('utf-8') + if line.startswith('_package_data'): + if 'dict(' in line: + parsing = 'python' + lines.append('dict(\n') + elif line.endswith('= {\n'): + parsing = 'python' + lines.append('{\n') + else: + raise NotImplementedError + continue + if not parsing: + continue + if parsing == 'python': + if line.startswith(')') or line.startswith('}'): + lines.append(line) + try: + data = literal_eval("".join(lines)) + except SyntaxError as e: + context = 2 + from_line = e.lineno - (context + 1) + to_line = e.lineno + (context - 1) + w = len(str(to_line)) + for index, line in enumerate(lines): + if from_line <= index <= to_line: + print( + '{0:{1}}: {2}'.format(index, w, line).encode('utf-8'), + end="", + ) + if index == e.lineno - 1: + print( + '{0:{1}} {2}^--- {3}'.format( + ' ', w, ' ' * e.offset, e.node, + ), + ) + raise + break + lines.append(line) + else: + raise NotImplementedError + return data + + +# make sure you can run "python ../some/dir/setup.py install" +pkg_data = _package_data(__file__.replace('setup.py', '__init__.py')) + +exclude_files = ['setup.py'] + + +# # helper +def _check_convert_version(tup): + """Create a PEP 386 pseudo-format conformant string from tuple tup.""" + ret_val = str(tup[0]) # first is always digit + next_sep = '.' # separator for next extension, can be "" or "." + nr_digits = 0 # nr of adjacent digits in rest, to verify + post_dev = False # are we processig post/dev + for x in tup[1:]: + if isinstance(x, int): + nr_digits += 1 + if nr_digits > 2: + raise ValueError('too many consecutive digits after ' + ret_val) + ret_val += next_sep + str(x) + next_sep = '.' + continue + first_letter = x[0].lower() + next_sep = "" + if first_letter in 'abcr': + if post_dev: + raise ValueError('release level specified after ' 'post/dev: ' + x) + nr_digits = 0 + ret_val += 'rc' if first_letter == 'r' else first_letter + elif first_letter in 'pd': + nr_digits = 1 # only one can follow + post_dev = True + ret_val += '.post' if first_letter == 'p' else '.dev' + else: + raise ValueError('First letter of "' + x + '" not recognised') + # .dev and .post need a number otherwise setuptools normalizes and complains + if nr_digits == 1 and post_dev: + ret_val += '0' + return ret_val + + +version_info = pkg_data['version_info'] +version_str = _check_convert_version(version_info) + + +class MyInstallLib(install_lib.install_lib): + def install(self): + fpp = pkg_data['full_package_name'].split('.') # full package path + full_exclude_files = [os.path.join(*(fpp + [x])) for x in exclude_files] + alt_files = [] + outfiles = install_lib.install_lib.install(self) + for x in outfiles: + for full_exclude_file in full_exclude_files: + if full_exclude_file in x: + os.remove(x) + break + else: + alt_files.append(x) + return alt_files + + +class MySdist(_sdist): + def initialize_options(self): + _sdist.initialize_options(self) + # failed expiriment, see pep 527, new uploads should be tar.gz or .zip + # because of unicode_literals + # self.formats = fmt if fmt else [b'bztar'] if sys.version_info < (3, ) else ['bztar'] + dist_base = os.environ.get('PYDISTBASE') + fpn = getattr(getattr(self, 'nsp', self), 'full_package_name', None) + if fpn and dist_base: + print('setting distdir {}/{}'.format(dist_base, fpn)) + self.dist_dir = os.path.join(dist_base, fpn) + + +# try except so this doesn't bomb when you don't have wheel installed, implies +# generation of wheels in ./dist +try: + from wheel.bdist_wheel import bdist_wheel as _bdist_wheel # NOQA + + class MyBdistWheel(_bdist_wheel): + def initialize_options(self): + _bdist_wheel.initialize_options(self) + dist_base = os.environ.get('PYDISTBASE') + fpn = getattr(getattr(self, 'nsp', self), 'full_package_name', None) + if fpn and dist_base: + print('setting distdir {}/{}'.format(dist_base, fpn)) + self.dist_dir = os.path.join(dist_base, fpn) + + _bdist_wheel_available = True + +except ImportError: + _bdist_wheel_available = False + + +class NameSpacePackager(object): + def __init__(self, pkg_data): + assert isinstance(pkg_data, dict) + self._pkg_data = pkg_data + self.full_package_name = self.pn(self._pkg_data['full_package_name']) + self._split = None + self.depth = self.full_package_name.count('.') + self.nested = self._pkg_data.get('nested', False) + # if self.nested: + # NameSpaceInstaller.install_namespaces = lambda x: None + self.command = None + self.python_version() + self._pkg = [None, None] # required and pre-installable packages + if sys.argv[0] == 'setup.py' and sys.argv[1] == 'install': + debug('calling setup.py', sys.argv) + if '-h' in sys.argv: + pass + elif '--single-version-externally-managed' not in sys.argv: + if os.environ.get('READTHEDOCS', None) == 'True': + os.system('pip install .') + sys.exit(0) + if not os.environ.get('RUAMEL_NO_PIP_INSTALL_CHECK', False): + print('error: you have to install with "pip install ."') + sys.exit(1) + # If you only support an extension module on Linux, Windows thinks it + # is pure. That way you would get pure python .whl files that take + # precedence for downloading on Linux over source with compilable C code + if self._pkg_data.get('universal'): + Distribution.is_pure = lambda *args: True + else: + Distribution.is_pure = lambda *args: False + for x in sys.argv: + if x[0] == '-' or x == 'setup.py': + continue + self.command = x + break + + def pn(self, s): + if sys.version_info < (3,) and isinstance(s, unicode): + return s.encode('utf-8') + return s + + @property + def split(self): + """split the full package name in list of compontents traditionally + done by setuptools.find_packages. This routine skips any directories + with __init__.py, for which the name starts with "_" or ".", or contain a + setup.py/tox.ini (indicating a subpackage) + """ + skip = [] + if self._split is None: + fpn = self.full_package_name.split('.') + self._split = [] + while fpn: + self._split.insert(0, '.'.join(fpn)) + fpn = fpn[:-1] + for d in sorted(os.listdir('.')): + if not os.path.isdir(d) or d == self._split[0] or d[0] in '._': + continue + # prevent sub-packages in namespace from being included + x = os.path.join(d, '__init__.py') + if os.path.exists(x): + pd = _package_data(x) + if pd.get('nested', False): + skip.append(d) + continue + self._split.append(self.full_package_name + '.' + d) + if sys.version_info < (3,): + self._split = [ + (y.encode('utf-8') if isinstance(y, unicode) else y) for y in self._split + ] + if skip: + # this interferes with output checking + # print('skipping sub-packages:', ', '.join(skip)) + pass + return self._split + + @property + def namespace_directories(self, depth=None): + """return list of directories where the namespace should be created / + can be found + """ + res = [] + for index, d in enumerate(self.split[:depth]): + # toplevel gets a dot + if index > 0: + d = os.path.join(*d.split('.')) + res.append('.' + d) + return res + + @property + def package_dir(self): + d = { + # don't specify empty dir, clashes with package_data spec + self.full_package_name: '.', + } + if 'extra_packages' in self._pkg_data: + return d + # if len(self.split) > 1: # only if package namespace + # d[self.split[0]] = self.namespace_directories(1)[0] + # print('d', d, os.getcwd()) + return d + + def python_version(self): + supported = self._pkg_data.get('supported') + if supported is None: + return + if len(supported) == 1: + minimum = supported[0] + else: + for x in supported: + if x[0] == sys.version_info[0]: + minimum = x + break + else: + return + if sys.version_info < minimum: + print('minimum python version(s): ' + str(supported)) + sys.exit(1) + + def check(self): + # https://github.com/pypa/setuptools/issues/2355#issuecomment-685159580 + InstallationError = Exception + # arg is either develop (pip install -e) or install + if self.command not in ['install', 'develop']: + return + + # if hgi and hgi.base are both in namespace_packages matching + # against the top (hgi.) it suffices to find minus-e and non-minus-e + # installed packages. As we don't know the order in namespace_packages + # do some magic + prefix = self.split[0] + prefixes = {prefix, prefix.replace('_', '-')} + for p in sys.path: + if not p: + continue # directory with setup.py + if os.path.exists(os.path.join(p, 'setup.py')): + continue # some linked in stuff might not be hgi based + if not os.path.isdir(p): + continue + if p.startswith('/tmp/'): + continue + for fn in os.listdir(p): + for pre in prefixes: + if fn.startswith(pre): + break + else: + continue + full_name = os.path.join(p, fn) + # not in prefixes the toplevel is never changed from _ to - + if fn == prefix and os.path.isdir(full_name): + # directory -> other, non-minus-e, install + if self.command == 'develop': + raise InstallationError( + 'Cannot mix develop (pip install -e),\nwith ' + 'non-develop installs for package name {0}'.format(fn), + ) + elif fn == prefix: + raise InstallationError('non directory package {0} in {1}'.format(fn, p)) + for pre in [x + '.' for x in prefixes]: + if fn.startswith(pre): + break + else: + continue # hgiabc instead of hgi. + if fn.endswith('-link') and self.command == 'install': + raise InstallationError( + 'Cannot mix non-develop with develop\n(pip install -e)' + ' installs for package name {0}'.format(fn), + ) + + def entry_points(self, script_name=None, package_name=None): + """normally called without explicit script_name and package name + the default console_scripts entry depends on the existence of __main__.py: + if that file exists then the function main() in there is used, otherwise + the in __init__.py. + + the _package_data entry_points key/value pair can be explicitly specified + including a "=" character. If the entry is True or 1 the + scriptname is the last part of the full package path (split on '.') + if the ep entry is a simple string without "=", that is assumed to be + the name of the script. + """ + + def pckg_entry_point(name): + return '{0}{1}:main'.format( + name, '.__main__' if os.path.exists('__main__.py') else "", + ) + + ep = self._pkg_data.get('entry_points', True) + if isinstance(ep, dict): + return ep + if ep is None: + return None + if ep not in [True, 1]: + if '=' in ep: + # full specification of the entry point like + # entry_points=['yaml = ruamel.yaml.cmd:main'], + return {'console_scripts': [ep]} + # assume that it is just the script name + script_name = ep + if package_name is None: + package_name = self.full_package_name + if not script_name: + script_name = package_name.rsplit('.', 1)[-1] + return { + 'console_scripts': [ + '{0} = {1}'.format(script_name, pckg_entry_point(package_name)), + ], + } + + @property + def url(self): + url = self._pkg_data.get('url') + if url: + return url + sp = self.full_package_name + for ch in '_.': + sp = sp.replace(ch, '-') + return 'https://sourceforge.net/p/{0}/code/ci/default/tree'.format(sp) + + @property + def author(self): + return self._pkg_data['author'] # no get needs to be there + + @property + def author_email(self): + return self._pkg_data['author_email'] # no get needs to be there + + @property + def license(self): + """return the license field from _package_data, None means MIT""" + lic = self._pkg_data.get('license') + if lic is None: + # lic_fn = os.path.join(os.path.dirname(__file__), 'LICENSE') + # assert os.path.exists(lic_fn) + return 'MIT license' + return lic + + def has_mit_lic(self): + return 'MIT' in self.license + + @property + def description(self): + return self._pkg_data['description'] # no get needs to be there + + @property + def status(self): + # αβ + status = self._pkg_data.get('status', 'β').lower() + if status in ['α', 'alpha']: + return (3, 'Alpha') + elif status in ['β', 'beta']: + return (4, 'Beta') + elif 'stable' in status.lower(): + return (5, 'Production/Stable') + raise NotImplementedError + + @property + def classifiers(self): + """this needs more intelligence, probably splitting the classifiers from _pkg_data + and only adding defaults when no explicit entries were provided. + Add explicit Python versions in sync with tox.env generation based on python_requires? + """ + attr = '_' + sys._getframe().f_code.co_name + if not hasattr(self, attr): + setattr(self, attr, self._setup_classifiers()) + return getattr(self, attr) + + def _setup_classifiers(self): + return sorted( + set( + [ + 'Development Status :: {0} - {1}'.format(*self.status), + 'Intended Audience :: Developers', + 'License :: ' + + ('OSI Approved :: MIT' if self.has_mit_lic() else 'Other/Proprietary') + + ' License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + ] + + [self.pn(x) for x in self._pkg_data.get('classifiers', [])], + ), + ) + + @property + def keywords(self): + return self.pn(self._pkg_data.get('keywords', [])) + + @property + def install_requires(self): + """list of packages required for installation""" + return self._analyse_packages[0] + + @property + def install_pre(self): + """list of packages required for installation""" + return self._analyse_packages[1] + + @property + def _analyse_packages(self): + """gather from configuration, names starting with * need + to be installed explicitly as they are not on PyPI + install_requires should be dict, with keys 'any', 'py27' etc + or a list (which is as if only 'any' was defined + + ToDo: update with: pep508 conditional dependencies + """ + if self._pkg[0] is None: + self._pkg[0] = [] + self._pkg[1] = [] + + ir = self._pkg_data.get('install_requires') + if ir is None: + return self._pkg # these will be both empty at this point + if isinstance(ir, list): + self._pkg[0] = ir + return self._pkg + # 'any' for all builds, 'py27' etc for specifics versions + packages = ir.get('any', []) + if isinstance(packages, string_type): + packages = packages.split() # assume white space separated string + if self.nested: + # parent dir is also a package, make sure it is installed (need its .pth file) + parent_pkg = self.full_package_name.rsplit('.', 1)[0] + if parent_pkg not in packages: + packages.append(parent_pkg) + implementation = platform.python_implementation() + if implementation == 'CPython': + pyver = 'py{0}{1}'.format(*sys.version_info) + elif implementation == 'PyPy': + pyver = 'pypy' if sys.version_info < (3,) else 'pypy3' + elif implementation == 'Jython': + pyver = 'jython' + packages.extend(ir.get(pyver, [])) + for p in packages: + # package name starting with * means use local source tree, non-published + # to PyPi or maybe not latest version on PyPI -> pre-install + if p[0] == '*': + p = p[1:] + self._pkg[1].append(p) + self._pkg[0].append(p) + return self._pkg + + @property + def extras_require(self): + """dict of conditions -> extra packages informaton required for installation + as of setuptools 33 doing `package ; python_version<=2.7' in install_requires + still doesn't work + + https://www.python.org/dev/peps/pep-0508/ + https://wheel.readthedocs.io/en/latest/index.html#defining-conditional-dependencies + https://hynek.me/articles/conditional-python-dependencies/ + """ + ep = self._pkg_data.get('extras_require') + return ep + + # @property + # def data_files(self): + # df = self._pkg_data.get('data_files', []) + # if self.has_mit_lic(): + # df.append('LICENSE') + # if not df: + # return None + # return [('.', df)] + + @property + def package_data(self): + df = self._pkg_data.get('data_files', []) + if self.has_mit_lic(): + # include the file + df.append('LICENSE') + # but don't install it + exclude_files.append('LICENSE') + if self._pkg_data.get('binary_only', False): + exclude_files.append('__init__.py') + debug('testing<<<<<') + if 'Typing :: Typed' in self.classifiers: + debug('appending') + df.append('py.typed') + pd = self._pkg_data.get('package_data', {}) + if df: + pd[self.full_package_name] = df + if sys.version_info < (3,): + # python2 doesn't seem to like unicode package names as keys + # maybe only when the packages themselves are non-unicode + for k in pd: + if isinstance(k, unicode): + pd[str(k)] = pd.pop(k) + # for k in pd: + # pd[k] = [e.encode('utf-8') for e in pd[k]] # de-unicode + return pd + + @property + def packages(self): + # s = self.split + s = [self._pkg_data['full_package_name']] + # fixed this in package_data, the keys there must be non-unicode for py27 + # if sys.version_info < (3, 0): + # s = [x.encode('utf-8') for x in self.split] + return s + self._pkg_data.get('extra_packages', []) + + @property + def python_requires(self): + return self._pkg_data.get('python_requires', None) + + @property + def ext_modules(self): + """ + Check if all modules specified in the value for 'ext_modules' can be build. + That value (if not None) is a list of dicts with 'name', 'src', 'lib' + Optional 'test' can be used to make sure trying to compile will work on the host + + creates and return the external modules as Extensions, unless that + is not necessary at all for the action (like --version) + + test existence of compiler by using export CC=nonexistent; export CXX=nonexistent + """ + + if hasattr(self, '_ext_modules'): + return self._ext_modules + if '--version' in sys.argv: + return None + if platform.python_implementation() == 'Jython': + return None + try: + plat = sys.argv.index('--plat-name') + if 'win' in sys.argv[plat + 1]: + return None + except ValueError: + pass + self._ext_modules = [] + no_test_compile = True + if '--restructuredtext' in sys.argv: + no_test_compile = True + elif 'sdist' in sys.argv: + no_test_compile = True + if no_test_compile: + for target in self._pkg_data.get('ext_modules', []): + ext = Extension( + self.pn(target['name']), + sources=[self.pn(x) for x in target['src']], + libraries=[self.pn(x) for x in target.get('lib')], + ) + self._ext_modules.append(ext) + return self._ext_modules + # this used to use distutils + + @property + def test_suite(self): + return self._pkg_data.get('test_suite') + + def wheel(self, kw, setup): + """temporary add setup.cfg if creating a wheel to include LICENSE file + https://bitbucket.org/pypa/wheel/issues/47 + """ + if 'bdist_wheel' not in sys.argv: + return False + file_name = 'setup.cfg' + if os.path.exists(file_name): # add it if not in there? + return False + with open(file_name, 'w') as fp: + if self._pkg_data.get('universal'): + fp.write('[bdist_wheel]\nuniversal = 1\n') + try: + setup(**kw) + except Exception: + raise + finally: + os.remove(file_name) + return True + + +class TmpFiles: + def __init__(self, pkg_data, py_project=True, keep=False): + self._rm_after = [] + self._pkg_data = pkg_data + self._py_project = py_project + self._bdist_wheel = 'bdist_wheel' in sys.argv + self._keep = keep + + def __enter__(self): + self.bdist_wheel() + self.py_project() + + def bdist_wheel(self): + """pyproject doesn't allow for universal, so use setup.cfg if necessary + """ + file_name = 'setup.cfg' + if not self._bdist_wheel or os.path.exists(file_name): + return + if self._pkg_data.get('universal'): + self._rm_after.append(file_name) + with open(file_name, 'w') as fp: + fp.write('[bdist_wheel]\nuniversal = 1\n') + + def py_project(self): + """ + to prevent pip from complaining, or is it too late to create it from setup.py + """ + file_name = 'pyproject.toml' + if not self._py_project or os.path.exists(file_name): + return + self._rm_after.append(file_name) + with open(file_name, 'w') as fp: + fp.write(dedent("""\ + [build-system] + requires = ["setuptools", "wheel"] + # test + build-backend = "setuptools.build_meta" + """)) + + def __exit__(self, typ, value, traceback): + if self._keep: + return + for p in self._rm_after: + if not os.path.exists(p): + print('file {} already removed'.format(p)) + else: + os.unlink(p) + + +# call setup +def main(): + dump_kw = '--dump-kw' + if dump_kw in sys.argv: + import wheel + import setuptools + import pip + + print('python: ', sys.version) + print('pip: ', pip.__version__) + print('setuptools:', setuptools.__version__) + print('wheel: ', wheel.__version__) + nsp = NameSpacePackager(pkg_data) + nsp.check() + # nsp.create_dirs() + MySdist.nsp = nsp + cmdclass = dict(install_lib=MyInstallLib, sdist=MySdist) # NOQA: C408 + if _bdist_wheel_available: + MyBdistWheel.nsp = nsp + cmdclass['bdist_wheel'] = MyBdistWheel + + kw = dict( # NOQA: C408 + name=nsp.full_package_name, + version=version_str, + packages=nsp.packages, + python_requires=nsp.python_requires, + url=nsp.url, + author=nsp.author, + author_email=nsp.author_email, + cmdclass=cmdclass, + package_dir=nsp.package_dir, + entry_points=nsp.entry_points(), + description=nsp.description, + install_requires=nsp.install_requires, + extras_require=nsp.extras_require, # available since setuptools 18.0 / 2015-06 + license=nsp.license, + classifiers=nsp.classifiers, + keywords=nsp.keywords, + package_data=nsp.package_data, + ext_modules=nsp.ext_modules, + test_suite=nsp.test_suite, + zip_safe=False, + ) + + if '--version' not in sys.argv and ('--verbose' in sys.argv or dump_kw in sys.argv): + for k in sorted(kw): + v = kw[k] + print(' "{0}": {1},'.format(k, repr(v))) + # if '--record' in sys.argv: + # return + if dump_kw in sys.argv: + sys.argv.remove(dump_kw) + try: + with open('README.rst') as fp: + kw['long_description'] = fp.read() + kw['long_description_content_type'] = 'text/x-rst' + except Exception: + pass + + # if nsp.wheel(kw, setup): + # return + with TmpFiles(pkg_data, keep=True): + for x in ['-c', 'egg_info', '--egg-base', 'pip-egg-info']: + if x not in sys.argv: + break + else: + # we're doing a tox setup install any starred package by searching up the + # source tree until you match your/package/name for your.package.name + for p in nsp.install_pre: + import subprocess + + # search other source + setup_path = os.path.join(*p.split('.') + ['setup.py']) + try_dir = os.path.dirname(sys.executable) + while len(try_dir) > 1: + full_path_setup_py = os.path.join(try_dir, setup_path) + if os.path.exists(full_path_setup_py): + pip = sys.executable.replace('python', 'pip') + cmd = [pip, 'install', os.path.dirname(full_path_setup_py)] + # with open('/var/tmp/notice', 'a') as fp: + # print('installing', cmd, file=fp) + subprocess.check_output(cmd) + break + try_dir = os.path.dirname(try_dir) + setup(**kw) + + +main() diff --git a/writer.c b/writer.c new file mode 100644 index 0000000..964973e --- /dev/null +++ b/writer.c @@ -0,0 +1,140 @@ + +#include "yaml_private.h" + +/* + * Declarations. + */ + +static int +yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char *problem); + +YAML_DECLARE(int) +yaml_emitter_flush(yaml_emitter_t *emitter); + +/* + * Set the writer error and return 0. + */ + +static int +yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char *problem) +{ + emitter->error = YAML_WRITER_ERROR; + emitter->problem = problem; + + return 0; +} + +/* + * Flush the output buffer. + */ + +YAML_DECLARE(int) +yaml_emitter_flush(yaml_emitter_t *emitter) +{ + int low, high; + + assert(emitter); /* Non-NULL emitter object is expected. */ + assert(emitter->write_handler); /* Write handler must be set. */ + assert(emitter->encoding); /* Output encoding must be set. */ + + emitter->buffer.last = emitter->buffer.pointer; + emitter->buffer.pointer = emitter->buffer.start; + + /* Check if the buffer is empty. */ + + if (emitter->buffer.start == emitter->buffer.last) { + return 1; + } + + /* If the output encoding is UTF-8, we don't need to recode the buffer. */ + + if (emitter->encoding == YAML_UTF8_ENCODING) + { + if (emitter->write_handler(emitter->write_handler_data, + emitter->buffer.start, + emitter->buffer.last - emitter->buffer.start)) { + emitter->buffer.last = emitter->buffer.start; + emitter->buffer.pointer = emitter->buffer.start; + return 1; + } + else { + return yaml_emitter_set_writer_error(emitter, "write error"); + } + } + + /* Recode the buffer into the raw buffer. */ + + low = (emitter->encoding == YAML_UTF16LE_ENCODING ? 0 : 1); + high = (emitter->encoding == YAML_UTF16LE_ENCODING ? 1 : 0); + + while (emitter->buffer.pointer != emitter->buffer.last) + { + unsigned char octet; + unsigned int width; + unsigned int value; + size_t k; + + /* + * See the "reader.c" code for more details on UTF-8 encoding. Note + * that we assume that the buffer contains a valid UTF-8 sequence. + */ + + /* Read the next UTF-8 character. */ + + octet = emitter->buffer.pointer[0]; + + width = (octet & 0x80) == 0x00 ? 1 : + (octet & 0xE0) == 0xC0 ? 2 : + (octet & 0xF0) == 0xE0 ? 3 : + (octet & 0xF8) == 0xF0 ? 4 : 0; + + value = (octet & 0x80) == 0x00 ? octet & 0x7F : + (octet & 0xE0) == 0xC0 ? octet & 0x1F : + (octet & 0xF0) == 0xE0 ? octet & 0x0F : + (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; + + for (k = 1; k < width; k ++) { + octet = emitter->buffer.pointer[k]; + value = (value << 6) + (octet & 0x3F); + } + + emitter->buffer.pointer += width; + + /* Write the character. */ + + if (value < 0x10000) + { + emitter->raw_buffer.last[high] = value >> 8; + emitter->raw_buffer.last[low] = value & 0xFF; + + emitter->raw_buffer.last += 2; + } + else + { + /* Write the character using a surrogate pair (check "reader.c"). */ + + value -= 0x10000; + emitter->raw_buffer.last[high] = 0xD8 + (value >> 18); + emitter->raw_buffer.last[low] = (value >> 10) & 0xFF; + emitter->raw_buffer.last[high+2] = 0xDC + ((value >> 8) & 0xFF); + emitter->raw_buffer.last[low+2] = value & 0xFF; + + emitter->raw_buffer.last += 4; + } + } + + /* Write the raw buffer. */ + + if (emitter->write_handler(emitter->write_handler_data, + emitter->raw_buffer.start, + emitter->raw_buffer.last - emitter->raw_buffer.start)) { + emitter->buffer.last = emitter->buffer.start; + emitter->buffer.pointer = emitter->buffer.start; + emitter->raw_buffer.last = emitter->raw_buffer.start; + emitter->raw_buffer.pointer = emitter->raw_buffer.start; + return 1; + } + else { + return yaml_emitter_set_writer_error(emitter, "write error"); + } +} @@ -0,0 +1,1977 @@ +/** + * @file yaml.h + * @brief Public interface for libyaml. + * + * Include the header file with the code: + * @code + * #include <yaml.h> + * @endcode + */ + +#ifndef YAML_H +#define YAML_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +/** + * @defgroup export Export Definitions + * @{ + */ + +/** The public API declaration. */ + +#if defined(__MINGW32__) +# define YAML_DECLARE(type) type +#elif defined(WIN32) +# if defined(YAML_DECLARE_STATIC) +# define YAML_DECLARE(type) type +# elif defined(YAML_DECLARE_EXPORT) +# define YAML_DECLARE(type) __declspec(dllexport) type +# else +# define YAML_DECLARE(type) __declspec(dllimport) type +# endif +#else +# define YAML_DECLARE(type) type +#endif + +/** @} */ + +/** + * @defgroup version Version Information + * @{ + */ + +/** + * Get the library version as a string. + * + * @returns The function returns the pointer to a static string of the form + * @c "X.Y.Z", where @c X is the major version number, @c Y is a minor version + * number, and @c Z is the patch version number. + */ + +YAML_DECLARE(const char *) +yaml_get_version_string(void); + +/** + * Get the library version numbers. + * + * @param[out] major Major version number. + * @param[out] minor Minor version number. + * @param[out] patch Patch version number. + */ + +YAML_DECLARE(void) +yaml_get_version(int *major, int *minor, int *patch); + +/** @} */ + +/** + * @defgroup basic Basic Types + * @{ + */ + +/** The character type (UTF-8 octet). */ +typedef unsigned char yaml_char_t; + +/** The version directive data. */ +typedef struct yaml_version_directive_s { + /** The major version number. */ + int major; + /** The minor version number. */ + int minor; +} yaml_version_directive_t; + +/** The tag directive data. */ +typedef struct yaml_tag_directive_s { + /** The tag handle. */ + yaml_char_t *handle; + /** The tag prefix. */ + yaml_char_t *prefix; +} yaml_tag_directive_t; + +/** The stream encoding. */ +typedef enum yaml_encoding_e { + /** Let the parser choose the encoding. */ + YAML_ANY_ENCODING, + /** The default UTF-8 encoding. */ + YAML_UTF8_ENCODING, + /** The UTF-16-LE encoding with BOM. */ + YAML_UTF16LE_ENCODING, + /** The UTF-16-BE encoding with BOM. */ + YAML_UTF16BE_ENCODING +} yaml_encoding_t; + +/** Line break types. */ + +typedef enum yaml_break_e { + /** Let the parser choose the break type. */ + YAML_ANY_BREAK, + /** Use CR for line breaks (Mac style). */ + YAML_CR_BREAK, + /** Use LN for line breaks (Unix style). */ + YAML_LN_BREAK, + /** Use CR LN for line breaks (DOS style). */ + YAML_CRLN_BREAK +} yaml_break_t; + +/** Many bad things could happen with the parser and emitter. */ +typedef enum yaml_error_type_e { + /** No error is produced. */ + YAML_NO_ERROR, + + /** Cannot allocate or reallocate a block of memory. */ + YAML_MEMORY_ERROR, + + /** Cannot read or decode the input stream. */ + YAML_READER_ERROR, + /** Cannot scan the input stream. */ + YAML_SCANNER_ERROR, + /** Cannot parse the input stream. */ + YAML_PARSER_ERROR, + /** Cannot compose a YAML document. */ + YAML_COMPOSER_ERROR, + + /** Cannot write to the output stream. */ + YAML_WRITER_ERROR, + /** Cannot emit a YAML stream. */ + YAML_EMITTER_ERROR +} yaml_error_type_t; + +/** The pointer position. */ +typedef struct yaml_mark_s { + /** The position index. */ + size_t index; + + /** The position line. */ + size_t line; + + /** The position column. */ + size_t column; +} yaml_mark_t; + +/** @} */ + +/** + * @defgroup styles Node Styles + * @{ + */ + +/** Scalar styles. */ +typedef enum yaml_scalar_style_e { + /** Let the emitter choose the style. */ + YAML_ANY_SCALAR_STYLE, + + /** The plain scalar style. */ + YAML_PLAIN_SCALAR_STYLE, + + /** The single-quoted scalar style. */ + YAML_SINGLE_QUOTED_SCALAR_STYLE, + /** The double-quoted scalar style. */ + YAML_DOUBLE_QUOTED_SCALAR_STYLE, + + /** The literal scalar style. */ + YAML_LITERAL_SCALAR_STYLE, + /** The folded scalar style. */ + YAML_FOLDED_SCALAR_STYLE +} yaml_scalar_style_t; + +/** Sequence styles. */ +typedef enum yaml_sequence_style_e { + /** Let the emitter choose the style. */ + YAML_ANY_SEQUENCE_STYLE, + + /** The block sequence style. */ + YAML_BLOCK_SEQUENCE_STYLE, + /** The flow sequence style. */ + YAML_FLOW_SEQUENCE_STYLE +} yaml_sequence_style_t; + +/** Mapping styles. */ +typedef enum yaml_mapping_style_e { + /** Let the emitter choose the style. */ + YAML_ANY_MAPPING_STYLE, + + /** The block mapping style. */ + YAML_BLOCK_MAPPING_STYLE, + /** The flow mapping style. */ + YAML_FLOW_MAPPING_STYLE +/* YAML_FLOW_SET_MAPPING_STYLE */ +} yaml_mapping_style_t; + +/** @} */ + +/** + * @defgroup tokens Tokens + * @{ + */ + +/** Token types. */ +typedef enum yaml_token_type_e { + /** An empty token. */ + YAML_NO_TOKEN, + + /** A STREAM-START token. */ + YAML_STREAM_START_TOKEN, + /** A STREAM-END token. */ + YAML_STREAM_END_TOKEN, + + /** A VERSION-DIRECTIVE token. */ + YAML_VERSION_DIRECTIVE_TOKEN, + /** A TAG-DIRECTIVE token. */ + YAML_TAG_DIRECTIVE_TOKEN, + /** A DOCUMENT-START token. */ + YAML_DOCUMENT_START_TOKEN, + /** A DOCUMENT-END token. */ + YAML_DOCUMENT_END_TOKEN, + + /** A BLOCK-SEQUENCE-START token. */ + YAML_BLOCK_SEQUENCE_START_TOKEN, + /** A BLOCK-MAPPING-START token. */ + YAML_BLOCK_MAPPING_START_TOKEN, + /** A BLOCK-END token. */ + YAML_BLOCK_END_TOKEN, + + /** A FLOW-SEQUENCE-START token. */ + YAML_FLOW_SEQUENCE_START_TOKEN, + /** A FLOW-SEQUENCE-END token. */ + YAML_FLOW_SEQUENCE_END_TOKEN, + /** A FLOW-MAPPING-START token. */ + YAML_FLOW_MAPPING_START_TOKEN, + /** A FLOW-MAPPING-END token. */ + YAML_FLOW_MAPPING_END_TOKEN, + + /** A BLOCK-ENTRY token. */ + YAML_BLOCK_ENTRY_TOKEN, + /** A FLOW-ENTRY token. */ + YAML_FLOW_ENTRY_TOKEN, + /** A KEY token. */ + YAML_KEY_TOKEN, + /** A VALUE token. */ + YAML_VALUE_TOKEN, + + /** An ALIAS token. */ + YAML_ALIAS_TOKEN, + /** An ANCHOR token. */ + YAML_ANCHOR_TOKEN, + /** A TAG token. */ + YAML_TAG_TOKEN, + /** A SCALAR token. */ + YAML_SCALAR_TOKEN +} yaml_token_type_t; + +/** The token structure. */ +typedef struct yaml_token_s { + + /** The token type. */ + yaml_token_type_t type; + + /** The token data. */ + union { + + /** The stream start (for @c YAML_STREAM_START_TOKEN). */ + struct { + /** The stream encoding. */ + yaml_encoding_t encoding; + } stream_start; + + /** The alias (for @c YAML_ALIAS_TOKEN). */ + struct { + /** The alias value. */ + yaml_char_t *value; + } alias; + + /** The anchor (for @c YAML_ANCHOR_TOKEN). */ + struct { + /** The anchor value. */ + yaml_char_t *value; + } anchor; + + /** The tag (for @c YAML_TAG_TOKEN). */ + struct { + /** The tag handle. */ + yaml_char_t *handle; + /** The tag suffix. */ + yaml_char_t *suffix; + } tag; + + /** The scalar value (for @c YAML_SCALAR_TOKEN). */ + struct { + /** The scalar value. */ + yaml_char_t *value; + /** The length of the scalar value. */ + size_t length; + /** The scalar style. */ + yaml_scalar_style_t style; + } scalar; + + /** The version directive (for @c YAML_VERSION_DIRECTIVE_TOKEN). */ + struct { + /** The major version number. */ + int major; + /** The minor version number. */ + int minor; + } version_directive; + + /** The tag directive (for @c YAML_TAG_DIRECTIVE_TOKEN). */ + struct { + /** The tag handle. */ + yaml_char_t *handle; + /** The tag prefix. */ + yaml_char_t *prefix; + } tag_directive; + + } data; + + /** The beginning of the token. */ + yaml_mark_t start_mark; + /** The end of the token. */ + yaml_mark_t end_mark; + +} yaml_token_t; + +/** + * Free any memory allocated for a token object. + * + * @param[in,out] token A token object. + */ + +YAML_DECLARE(void) +yaml_token_delete(yaml_token_t *token); + +/** @} */ + +/** + * @defgroup events Events + * @{ + */ + +/** Event types. */ +typedef enum yaml_event_type_e { + /** An empty event. */ + YAML_NO_EVENT, + + /** A STREAM-START event. */ + YAML_STREAM_START_EVENT, + /** A STREAM-END event. */ + YAML_STREAM_END_EVENT, + + /** A DOCUMENT-START event. */ + YAML_DOCUMENT_START_EVENT, + /** A DOCUMENT-END event. */ + YAML_DOCUMENT_END_EVENT, + + /** An ALIAS event. */ + YAML_ALIAS_EVENT, + /** A SCALAR event. */ + YAML_SCALAR_EVENT, + + /** A SEQUENCE-START event. */ + YAML_SEQUENCE_START_EVENT, + /** A SEQUENCE-END event. */ + YAML_SEQUENCE_END_EVENT, + + /** A MAPPING-START event. */ + YAML_MAPPING_START_EVENT, + /** A MAPPING-END event. */ + YAML_MAPPING_END_EVENT +} yaml_event_type_t; + +/** The event structure. */ +typedef struct yaml_event_s { + + /** The event type. */ + yaml_event_type_t type; + + /** The event data. */ + union { + + /** The stream parameters (for @c YAML_STREAM_START_EVENT). */ + struct { + /** The document encoding. */ + yaml_encoding_t encoding; + } stream_start; + + /** The document parameters (for @c YAML_DOCUMENT_START_EVENT). */ + struct { + /** The version directive. */ + yaml_version_directive_t *version_directive; + + /** The list of tag directives. */ + struct { + /** The beginning of the tag directives list. */ + yaml_tag_directive_t *start; + /** The end of the tag directives list. */ + yaml_tag_directive_t *end; + } tag_directives; + + /** Is the document indicator implicit? */ + int implicit; + } document_start; + + /** The document end parameters (for @c YAML_DOCUMENT_END_EVENT). */ + struct { + /** Is the document end indicator implicit? */ + int implicit; + } document_end; + + /** The alias parameters (for @c YAML_ALIAS_EVENT). */ + struct { + /** The anchor. */ + yaml_char_t *anchor; + } alias; + + /** The scalar parameters (for @c YAML_SCALAR_EVENT). */ + struct { + /** The anchor. */ + yaml_char_t *anchor; + /** The tag. */ + yaml_char_t *tag; + /** The scalar value. */ + yaml_char_t *value; + /** The length of the scalar value. */ + size_t length; + /** Is the tag optional for the plain style? */ + int plain_implicit; + /** Is the tag optional for any non-plain style? */ + int quoted_implicit; + /** The scalar style. */ + yaml_scalar_style_t style; + } scalar; + + /** The sequence parameters (for @c YAML_SEQUENCE_START_EVENT). */ + struct { + /** The anchor. */ + yaml_char_t *anchor; + /** The tag. */ + yaml_char_t *tag; + /** Is the tag optional? */ + int implicit; + /** The sequence style. */ + yaml_sequence_style_t style; + } sequence_start; + + /** The mapping parameters (for @c YAML_MAPPING_START_EVENT). */ + struct { + /** The anchor. */ + yaml_char_t *anchor; + /** The tag. */ + yaml_char_t *tag; + /** Is the tag optional? */ + int implicit; + /** The mapping style. */ + yaml_mapping_style_t style; + } mapping_start; + + } data; + + /** The beginning of the event. */ + yaml_mark_t start_mark; + /** The end of the event. */ + yaml_mark_t end_mark; + +} yaml_event_t; + +/** + * Create the STREAM-START event. + * + * @param[out] event An empty event object. + * @param[in] encoding The stream encoding. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_stream_start_event_initialize(yaml_event_t *event, + yaml_encoding_t encoding); + +/** + * Create the STREAM-END event. + * + * @param[out] event An empty event object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_stream_end_event_initialize(yaml_event_t *event); + +/** + * Create the DOCUMENT-START event. + * + * The @a implicit argument is considered as a stylistic parameter and may be + * ignored by the emitter. + * + * @param[out] event An empty event object. + * @param[in] version_directive The %YAML directive value or + * @c NULL. + * @param[in] tag_directives_start The beginning of the %TAG + * directives list. + * @param[in] tag_directives_end The end of the %TAG directives + * list. + * @param[in] implicit If the document start indicator is + * implicit. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(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); + +/** + * Create the DOCUMENT-END event. + * + * The @a implicit argument is considered as a stylistic parameter and may be + * ignored by the emitter. + * + * @param[out] event An empty event object. + * @param[in] implicit If the document end indicator is implicit. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_end_event_initialize(yaml_event_t *event, int implicit); + +/** + * Create an ALIAS event. + * + * @param[out] event An empty event object. + * @param[in] anchor The anchor value. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor); + +/** + * Create a SCALAR event. + * + * The @a style argument may be ignored by the emitter. + * + * Either the @a tag attribute or one of the @a plain_implicit and + * @a quoted_implicit flags must be set. + * + * @param[out] event An empty event object. + * @param[in] anchor The scalar anchor or @c NULL. + * @param[in] tag The scalar tag or @c NULL. + * @param[in] value The scalar value. + * @param[in] length The length of the scalar value. + * @param[in] plain_implicit If the tag may be omitted for the plain + * style. + * @param[in] quoted_implicit If the tag may be omitted for any + * non-plain style. + * @param[in] style The scalar style. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_scalar_event_initialize(yaml_event_t *event, + yaml_char_t *anchor, yaml_char_t *tag, + yaml_char_t *value, int length, + int plain_implicit, int quoted_implicit, + yaml_scalar_style_t style); + +/** + * Create a SEQUENCE-START event. + * + * The @a style argument may be ignored by the emitter. + * + * Either the @a tag attribute or the @a implicit flag must be set. + * + * @param[out] event An empty event object. + * @param[in] anchor The sequence anchor or @c NULL. + * @param[in] tag The sequence tag or @c NULL. + * @param[in] implicit If the tag may be omitted. + * @param[in] style The sequence style. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_sequence_start_event_initialize(yaml_event_t *event, + yaml_char_t *anchor, yaml_char_t *tag, int implicit, + yaml_sequence_style_t style); + +/** + * Create a SEQUENCE-END event. + * + * @param[out] event An empty event object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_sequence_end_event_initialize(yaml_event_t *event); + +/** + * Create a MAPPING-START event. + * + * The @a style argument may be ignored by the emitter. + * + * Either the @a tag attribute or the @a implicit flag must be set. + * + * @param[out] event An empty event object. + * @param[in] anchor The mapping anchor or @c NULL. + * @param[in] tag The mapping tag or @c NULL. + * @param[in] implicit If the tag may be omitted. + * @param[in] style The mapping style. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_mapping_start_event_initialize(yaml_event_t *event, + yaml_char_t *anchor, yaml_char_t *tag, int implicit, + yaml_mapping_style_t style); + +/** + * Create a MAPPING-END event. + * + * @param[out] event An empty event object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_mapping_end_event_initialize(yaml_event_t *event); + +/** + * Free any memory allocated for an event object. + * + * @param[in,out] event An event object. + */ + +YAML_DECLARE(void) +yaml_event_delete(yaml_event_t *event); + +/** @} */ + +/** + * @defgroup nodes Nodes + * @{ + */ + +/** The tag @c !!null with the only possible value: @c null. */ +#define YAML_NULL_TAG "tag:yaml.org,2002:null" +/** The tag @c !!bool with the values: @c true and @c false. */ +#define YAML_BOOL_TAG "tag:yaml.org,2002:bool" +/** The tag @c !!str for string values. */ +#define YAML_STR_TAG "tag:yaml.org,2002:str" +/** The tag @c !!int for integer values. */ +#define YAML_INT_TAG "tag:yaml.org,2002:int" +/** The tag @c !!float for float values. */ +#define YAML_FLOAT_TAG "tag:yaml.org,2002:float" +/** The tag @c !!timestamp for date and time values. */ +#define YAML_TIMESTAMP_TAG "tag:yaml.org,2002:timestamp" + +/** The tag @c !!seq is used to denote sequences. */ +#define YAML_SEQ_TAG "tag:yaml.org,2002:seq" +/** The tag @c !!map is used to denote mapping. */ +#define YAML_MAP_TAG "tag:yaml.org,2002:map" + +/** The default scalar tag is @c !!str. */ +#define YAML_DEFAULT_SCALAR_TAG YAML_STR_TAG +/** The default sequence tag is @c !!seq. */ +#define YAML_DEFAULT_SEQUENCE_TAG YAML_SEQ_TAG +/** The default mapping tag is @c !!map. */ +#define YAML_DEFAULT_MAPPING_TAG YAML_MAP_TAG + +/** Node types. */ +typedef enum yaml_node_type_e { + /** An empty node. */ + YAML_NO_NODE, + + /** A scalar node. */ + YAML_SCALAR_NODE, + /** A sequence node. */ + YAML_SEQUENCE_NODE, + /** A mapping node. */ + YAML_MAPPING_NODE +} yaml_node_type_t; + +/** The forward definition of a document node structure. */ +typedef struct yaml_node_s yaml_node_t; + +/** An element of a sequence node. */ +typedef int yaml_node_item_t; + +/** An element of a mapping node. */ +typedef struct yaml_node_pair_s { + /** The key of the element. */ + int key; + /** The value of the element. */ + int value; +} yaml_node_pair_t; + +/** The node structure. */ +struct yaml_node_s { + + /** The node type. */ + yaml_node_type_t type; + + /** The node tag. */ + yaml_char_t *tag; + + /** The node data. */ + union { + + /** The scalar parameters (for @c YAML_SCALAR_NODE). */ + struct { + /** The scalar value. */ + yaml_char_t *value; + /** The length of the scalar value. */ + size_t length; + /** The scalar style. */ + yaml_scalar_style_t style; + } scalar; + + /** The sequence parameters (for @c YAML_SEQUENCE_NODE). */ + struct { + /** The stack of sequence items. */ + struct { + /** The beginning of the stack. */ + yaml_node_item_t *start; + /** The end of the stack. */ + yaml_node_item_t *end; + /** The top of the stack. */ + yaml_node_item_t *top; + } items; + /** The sequence style. */ + yaml_sequence_style_t style; + } sequence; + + /** The mapping parameters (for @c YAML_MAPPING_NODE). */ + struct { + /** The stack of mapping pairs (key, value). */ + struct { + /** The beginning of the stack. */ + yaml_node_pair_t *start; + /** The end of the stack. */ + yaml_node_pair_t *end; + /** The top of the stack. */ + yaml_node_pair_t *top; + } pairs; + /** The mapping style. */ + yaml_mapping_style_t style; + } mapping; + + } data; + + /** The beginning of the node. */ + yaml_mark_t start_mark; + /** The end of the node. */ + yaml_mark_t end_mark; + +}; + +/** The document structure. */ +typedef struct yaml_document_s { + + /** The document nodes. */ + struct { + /** The beginning of the stack. */ + yaml_node_t *start; + /** The end of the stack. */ + yaml_node_t *end; + /** The top of the stack. */ + yaml_node_t *top; + } nodes; + + /** The version directive. */ + yaml_version_directive_t *version_directive; + + /** The list of tag directives. */ + struct { + /** The beginning of the tag directives list. */ + yaml_tag_directive_t *start; + /** The end of the tag directives list. */ + yaml_tag_directive_t *end; + } tag_directives; + + /** Is the document start indicator implicit? */ + int start_implicit; + /** Is the document end indicator implicit? */ + int end_implicit; + + /** The beginning of the document. */ + yaml_mark_t start_mark; + /** The end of the document. */ + yaml_mark_t end_mark; + +} yaml_document_t; + +/** + * Create a YAML document. + * + * @param[out] document An empty document object. + * @param[in] version_directive The %YAML directive value or + * @c NULL. + * @param[in] tag_directives_start The beginning of the %TAG + * directives list. + * @param[in] tag_directives_end The end of the %TAG directives + * list. + * @param[in] start_implicit If the document start indicator is + * implicit. + * @param[in] end_implicit If the document end indicator is + * implicit. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_initialize(yaml_document_t *document, + yaml_version_directive_t *version_directive, + yaml_tag_directive_t *tag_directives_start, + yaml_tag_directive_t *tag_directives_end, + int start_implicit, int end_implicit); + +/** + * Delete a YAML document and all its nodes. + * + * @param[in,out] document A document object. + */ + +YAML_DECLARE(void) +yaml_document_delete(yaml_document_t *document); + +/** + * Get a node of a YAML document. + * + * The pointer returned by this function is valid until any of the functions + * modifying the documents are called. + * + * @param[in] document A document object. + * @param[in] index The node id. + * + * @returns the node objct or @c NULL if @c node_id is out of range. + */ + +YAML_DECLARE(yaml_node_t *) +yaml_document_get_node(yaml_document_t *document, int index); + +/** + * Get the root of a YAML document node. + * + * The root object is the first object added to the document. + * + * The pointer returned by this function is valid until any of the functions + * modifying the documents are called. + * + * An empty document produced by the parser signifies the end of a YAML + * stream. + * + * @param[in] document A document object. + * + * @returns the node object or @c NULL if the document is empty. + */ + +YAML_DECLARE(yaml_node_t *) +yaml_document_get_root_node(yaml_document_t *document); + +/** + * Create a SCALAR node and attach it to the document. + * + * The @a style argument may be ignored by the emitter. + * + * @param[in,out] document A document object. + * @param[in] tag The scalar tag. + * @param[in] value The scalar value. + * @param[in] length The length of the scalar value. + * @param[in] style The scalar style. + * + * @returns the node id or @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_add_scalar(yaml_document_t *document, + yaml_char_t *tag, yaml_char_t *value, int length, + yaml_scalar_style_t style); + +/** + * Create a SEQUENCE node and attach it to the document. + * + * The @a style argument may be ignored by the emitter. + * + * @param[in,out] document A document object. + * @param[in] tag The sequence tag. + * @param[in] style The sequence style. + * + * @returns the node id or @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_add_sequence(yaml_document_t *document, + yaml_char_t *tag, yaml_sequence_style_t style); + +/** + * Create a MAPPING node and attach it to the document. + * + * The @a style argument may be ignored by the emitter. + * + * @param[in,out] document A document object. + * @param[in] tag The sequence tag. + * @param[in] style The sequence style. + * + * @returns the node id or @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_add_mapping(yaml_document_t *document, + yaml_char_t *tag, yaml_mapping_style_t style); + +/** + * Add an item to a SEQUENCE node. + * + * @param[in,out] document A document object. + * @param[in] sequence The sequence node id. + * @param[in] item The item node id. +* + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_append_sequence_item(yaml_document_t *document, + int sequence, int item); + +/** + * Add a pair of a key and a value to a MAPPING node. + * + * @param[in,out] document A document object. + * @param[in] mapping The mapping node id. + * @param[in] key The key node id. + * @param[in] value The value node id. +* + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_document_append_mapping_pair(yaml_document_t *document, + int mapping, int key, int value); + +/** @} */ + +/** + * @defgroup parser Parser Definitions + * @{ + */ + +/** + * The prototype of a read handler. + * + * The read handler is called when the parser needs to read more bytes from the + * source. The handler should write not more than @a size bytes to the @a + * buffer. The number of written bytes should be set to the @a length variable. + * + * @param[in,out] data A pointer to an application data specified by + * yaml_parser_set_input(). + * @param[out] buffer The buffer to write the data from the source. + * @param[in] size The size of the buffer. + * @param[out] size_read The actual number of bytes read from the source. + * + * @returns On success, the handler should return @c 1. If the handler failed, + * the returned value should be @c 0. On EOF, the handler should set the + * @a size_read to @c 0 and return @c 1. + */ + +typedef int yaml_read_handler_t(void *data, unsigned char *buffer, size_t size, + size_t *size_read); + +/** + * This structure holds information about a potential simple key. + */ + +typedef struct yaml_simple_key_s { + /** Is a simple key possible? */ + int possible; + + /** Is a simple key required? */ + int required; + + /** The number of the token. */ + size_t token_number; + + /** The position mark. */ + yaml_mark_t mark; +} yaml_simple_key_t; + +/** + * The states of the parser. + */ +typedef enum yaml_parser_state_e { + /** Expect STREAM-START. */ + YAML_PARSE_STREAM_START_STATE, + /** Expect the beginning of an implicit document. */ + YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE, + /** Expect DOCUMENT-START. */ + YAML_PARSE_DOCUMENT_START_STATE, + /** Expect the content of a document. */ + YAML_PARSE_DOCUMENT_CONTENT_STATE, + /** Expect DOCUMENT-END. */ + YAML_PARSE_DOCUMENT_END_STATE, + /** Expect a block node. */ + YAML_PARSE_BLOCK_NODE_STATE, + /** Expect a block node or indentless sequence. */ + YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE, + /** Expect a flow node. */ + YAML_PARSE_FLOW_NODE_STATE, + /** Expect the first entry of a block sequence. */ + YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE, + /** Expect an entry of a block sequence. */ + YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE, + /** Expect an entry of an indentless sequence. */ + YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE, + /** Expect the first key of a block mapping. */ + YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE, + /** Expect a block mapping key. */ + YAML_PARSE_BLOCK_MAPPING_KEY_STATE, + /** Expect a block mapping value. */ + YAML_PARSE_BLOCK_MAPPING_VALUE_STATE, + /** Expect the first entry of a flow sequence. */ + YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE, + /** Expect an entry of a flow sequence. */ + YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE, + /** Expect a key of an ordered mapping. */ + YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE, + /** Expect a value of an ordered mapping. */ + YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE, + /** Expect the and of an ordered mapping entry. */ + YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE, + /** Expect the first key of a flow mapping. */ + YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE, + /** Expect a key of a flow mapping. */ + YAML_PARSE_FLOW_MAPPING_KEY_STATE, + /** Expect a value of a flow mapping. */ + YAML_PARSE_FLOW_MAPPING_VALUE_STATE, + /** Expect an empty value of a flow mapping. */ + YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE, + /** Expect nothing. */ + YAML_PARSE_END_STATE +} yaml_parser_state_t; + +/** + * This structure holds aliases data. + */ + +typedef struct yaml_alias_data_s { + /** The anchor. */ + yaml_char_t *anchor; + /** The node id. */ + int index; + /** The anchor mark. */ + yaml_mark_t mark; +} yaml_alias_data_t; + +/** + * The parser structure. + * + * All members are internal. Manage the structure using the @c yaml_parser_ + * family of functions. + */ + +typedef struct yaml_parser_s { + + /** + * @name Error handling + * @{ + */ + + /** Error type. */ + yaml_error_type_t error; + /** Error description. */ + const char *problem; + /** The byte about which the problem occurred. */ + size_t problem_offset; + /** The problematic value (@c -1 is none). */ + int problem_value; + /** The problem position. */ + yaml_mark_t problem_mark; + /** The error context. */ + const char *context; + /** The context position. */ + yaml_mark_t context_mark; + + /** + * @} + */ + + /** + * @name Reader stuff + * @{ + */ + + /** Read handler. */ + yaml_read_handler_t *read_handler; + + /** A pointer for passing to the read handler. */ + void *read_handler_data; + + /** Standard (string or file) input data. */ + union { + /** String input data. */ + struct { + /** The string start pointer. */ + const unsigned char *start; + /** The string end pointer. */ + const unsigned char *end; + /** The string current position. */ + const unsigned char *current; + } string; + + /** File input data. */ + FILE *file; + } input; + + /** EOF flag */ + int eof; + + /** The working buffer. */ + struct { + /** The beginning of the buffer. */ + yaml_char_t *start; + /** The end of the buffer. */ + yaml_char_t *end; + /** The current position of the buffer. */ + yaml_char_t *pointer; + /** The last filled position of the buffer. */ + yaml_char_t *last; + } buffer; + + /* The number of unread characters in the buffer. */ + size_t unread; + + /** The raw buffer. */ + struct { + /** The beginning of the buffer. */ + unsigned char *start; + /** The end of the buffer. */ + unsigned char *end; + /** The current position of the buffer. */ + unsigned char *pointer; + /** The last filled position of the buffer. */ + unsigned char *last; + } raw_buffer; + + /** The input encoding. */ + yaml_encoding_t encoding; + + /** The offset of the current position (in bytes). */ + size_t offset; + + /** The mark of the current position. */ + yaml_mark_t mark; + + /** + * @} + */ + + /** + * @name Scanner stuff + * @{ + */ + + /** Have we started to scan the input stream? */ + int stream_start_produced; + + /** Have we reached the end of the input stream? */ + int stream_end_produced; + + /** The number of unclosed '[' and '{' indicators. */ + int flow_level; + + /** The tokens queue. */ + struct { + /** The beginning of the tokens queue. */ + yaml_token_t *start; + /** The end of the tokens queue. */ + yaml_token_t *end; + /** The head of the tokens queue. */ + yaml_token_t *head; + /** The tail of the tokens queue. */ + yaml_token_t *tail; + } tokens; + + /** The number of tokens fetched from the queue. */ + size_t tokens_parsed; + + /* Does the tokens queue contain a token ready for dequeueing. */ + int token_available; + + /** The indentation levels stack. */ + struct { + /** The beginning of the stack. */ + int *start; + /** The end of the stack. */ + int *end; + /** The top of the stack. */ + int *top; + } indents; + + /** The current indentation level. */ + int indent; + + /** May a simple key occur at the current position? */ + int simple_key_allowed; + + /** The stack of simple keys. */ + struct { + /** The beginning of the stack. */ + yaml_simple_key_t *start; + /** The end of the stack. */ + yaml_simple_key_t *end; + /** The top of the stack. */ + yaml_simple_key_t *top; + } simple_keys; + + /** + * @} + */ + + /** + * @name Parser stuff + * @{ + */ + + /** The parser states stack. */ + struct { + /** The beginning of the stack. */ + yaml_parser_state_t *start; + /** The end of the stack. */ + yaml_parser_state_t *end; + /** The top of the stack. */ + yaml_parser_state_t *top; + } states; + + /** The current parser state. */ + yaml_parser_state_t state; + + /** The stack of marks. */ + struct { + /** The beginning of the stack. */ + yaml_mark_t *start; + /** The end of the stack. */ + yaml_mark_t *end; + /** The top of the stack. */ + yaml_mark_t *top; + } marks; + + /** The list of TAG directives. */ + struct { + /** The beginning of the list. */ + yaml_tag_directive_t *start; + /** The end of the list. */ + yaml_tag_directive_t *end; + /** The top of the list. */ + yaml_tag_directive_t *top; + } tag_directives; + + /** + * @} + */ + + /** + * @name Dumper stuff + * @{ + */ + + /** The alias data. */ + struct { + /** The beginning of the list. */ + yaml_alias_data_t *start; + /** The end of the list. */ + yaml_alias_data_t *end; + /** The top of the list. */ + yaml_alias_data_t *top; + } aliases; + + /** The currently parsed document. */ + yaml_document_t *document; + + /** + * @} + */ + +} yaml_parser_t; + +/** + * Initialize a parser. + * + * This function creates a new parser object. An application is responsible + * for destroying the object using the yaml_parser_delete() function. + * + * @param[out] parser An empty parser object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_parser_initialize(yaml_parser_t *parser); + +/** + * Destroy a parser. + * + * @param[in,out] parser A parser object. + */ + +YAML_DECLARE(void) +yaml_parser_delete(yaml_parser_t *parser); + +/** + * Set a string input. + * + * Note that the @a input pointer must be valid while the @a parser object + * exists. The application is responsible for destroing @a input after + * destroying the @a parser. + * + * @param[in,out] parser A parser object. + * @param[in] input A source data. + * @param[in] size The length of the source data in bytes. + */ + +YAML_DECLARE(void) +yaml_parser_set_input_string(yaml_parser_t *parser, + const unsigned char *input, size_t size); + +/** + * Set a file input. + * + * @a file should be a file object open for reading. The application is + * responsible for closing the @a file. + * + * @param[in,out] parser A parser object. + * @param[in] file An open file. + */ + +YAML_DECLARE(void) +yaml_parser_set_input_file(yaml_parser_t *parser, FILE *file); + +/** + * Set a generic input handler. + * + * @param[in,out] parser A parser object. + * @param[in] handler A read handler. + * @param[in] data Any application data for passing to the read + * handler. + */ + +YAML_DECLARE(void) +yaml_parser_set_input(yaml_parser_t *parser, + yaml_read_handler_t *handler, void *data); + +/** + * Set the source encoding. + * + * @param[in,out] parser A parser object. + * @param[in] encoding The source encoding. + */ + +YAML_DECLARE(void) +yaml_parser_set_encoding(yaml_parser_t *parser, yaml_encoding_t encoding); + +/** + * Scan the input stream and produce the next token. + * + * Call the function subsequently to produce a sequence of tokens corresponding + * to the input stream. The initial token has the type + * @c YAML_STREAM_START_TOKEN while the ending token has the type + * @c YAML_STREAM_END_TOKEN. + * + * An application is responsible for freeing any buffers associated with the + * produced token object using the @c yaml_token_delete function. + * + * An application must not alternate the calls of yaml_parser_scan() with the + * calls of yaml_parser_parse() or yaml_parser_load(). Doing this will break + * the parser. + * + * @param[in,out] parser A parser object. + * @param[out] token An empty token object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token); + +/** + * Parse the input stream and produce the next parsing event. + * + * Call the function subsequently to produce a sequence of events corresponding + * to the input stream. The initial event has the type + * @c YAML_STREAM_START_EVENT while the ending event has the type + * @c YAML_STREAM_END_EVENT. + * + * An application is responsible for freeing any buffers associated with the + * produced event object using the yaml_event_delete() function. + * + * An application must not alternate the calls of yaml_parser_parse() with the + * calls of yaml_parser_scan() or yaml_parser_load(). Doing this will break the + * parser. + * + * @param[in,out] parser A parser object. + * @param[out] event An empty event object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event); + +/** + * Parse the input stream and produce the next YAML document. + * + * Call this function subsequently to produce a sequence of documents + * constituting the input stream. + * + * If the produced document has no root node, it means that the document + * end has been reached. + * + * An application is responsible for freeing any data associated with the + * produced document object using the yaml_document_delete() function. + * + * An application must not alternate the calls of yaml_parser_load() with the + * calls of yaml_parser_scan() or yaml_parser_parse(). Doing this will break + * the parser. + * + * @param[in,out] parser A parser object. + * @param[out] document An empty document object. + * + * @return @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document); + +/** @} */ + +/** + * @defgroup emitter Emitter Definitions + * @{ + */ + +/** + * The prototype of a write handler. + * + * The write handler is called when the emitter needs to flush the accumulated + * characters to the output. The handler should write @a size bytes of the + * @a buffer to the output. + * + * @param[in,out] data A pointer to an application data specified by + * yaml_emitter_set_output(). + * @param[in] buffer The buffer with bytes to be written. + * @param[in] size The size of the buffer. + * + * @returns On success, the handler should return @c 1. If the handler failed, + * the returned value should be @c 0. + */ + +typedef int yaml_write_handler_t(void *data, unsigned char *buffer, size_t size); + +/** The emitter states. */ +typedef enum yaml_emitter_state_e { + /** Expect STREAM-START. */ + YAML_EMIT_STREAM_START_STATE, + /** Expect the first DOCUMENT-START or STREAM-END. */ + YAML_EMIT_FIRST_DOCUMENT_START_STATE, + /** Expect DOCUMENT-START or STREAM-END. */ + YAML_EMIT_DOCUMENT_START_STATE, + /** Expect the content of a document. */ + YAML_EMIT_DOCUMENT_CONTENT_STATE, + /** Expect DOCUMENT-END. */ + YAML_EMIT_DOCUMENT_END_STATE, + /** Expect the first item of a flow sequence. */ + YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE, + /** Expect an item of a flow sequence. */ + YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE, + /** Expect the first key of a flow mapping. */ + YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE, + /** Expect a key of a flow mapping. */ + YAML_EMIT_FLOW_MAPPING_KEY_STATE, + /** Expect a value for a simple key of a flow mapping. */ + YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE, + /** Expect a value of a flow mapping. */ + YAML_EMIT_FLOW_MAPPING_VALUE_STATE, + /** Expect the first item of a block sequence. */ + YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE, + /** Expect an item of a block sequence. */ + YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE, + /** Expect the first key of a block mapping. */ + YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE, + /** Expect the key of a block mapping. */ + YAML_EMIT_BLOCK_MAPPING_KEY_STATE, + /** Expect a value for a simple key of a block mapping. */ + YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE, + /** Expect a value of a block mapping. */ + YAML_EMIT_BLOCK_MAPPING_VALUE_STATE, + /** Expect nothing. */ + YAML_EMIT_END_STATE +} yaml_emitter_state_t; + + +/* This is needed for C++ */ + +typedef struct yaml_anchors_s { + /** The number of references. */ + int references; + /** The anchor id. */ + int anchor; + /** If the node has been emitted? */ + int serialized; +} yaml_anchors_t; + +/** + * The emitter structure. + * + * All members are internal. Manage the structure using the @c yaml_emitter_ + * family of functions. + */ + +typedef struct yaml_emitter_s { + + /** + * @name Error handling + * @{ + */ + + /** Error type. */ + yaml_error_type_t error; + /** Error description. */ + const char *problem; + + /** + * @} + */ + + /** + * @name Writer stuff + * @{ + */ + + /** Write handler. */ + yaml_write_handler_t *write_handler; + + /** A pointer for passing to the white handler. */ + void *write_handler_data; + + /** Standard (string or file) output data. */ + union { + /** String output data. */ + struct { + /** The buffer pointer. */ + unsigned char *buffer; + /** The buffer size. */ + size_t size; + /** The number of written bytes. */ + size_t *size_written; + } string; + + /** File output data. */ + FILE *file; + } output; + + /** The working buffer. */ + struct { + /** The beginning of the buffer. */ + yaml_char_t *start; + /** The end of the buffer. */ + yaml_char_t *end; + /** The current position of the buffer. */ + yaml_char_t *pointer; + /** The last filled position of the buffer. */ + yaml_char_t *last; + } buffer; + + /** The raw buffer. */ + struct { + /** The beginning of the buffer. */ + unsigned char *start; + /** The end of the buffer. */ + unsigned char *end; + /** The current position of the buffer. */ + unsigned char *pointer; + /** The last filled position of the buffer. */ + unsigned char *last; + } raw_buffer; + + /** The stream encoding. */ + yaml_encoding_t encoding; + + /** + * @} + */ + + /** + * @name Emitter stuff + * @{ + */ + + /** If the output is in the canonical style? */ + int canonical; + /** The number of indentation spaces. */ + int best_indent; + /** The preferred width of the output lines. */ + int best_width; + /** Allow unescaped non-ASCII characters? */ + int unicode; + /** The preferred line break. */ + yaml_break_t line_break; + + /** The stack of states. */ + struct { + /** The beginning of the stack. */ + yaml_emitter_state_t *start; + /** The end of the stack. */ + yaml_emitter_state_t *end; + /** The top of the stack. */ + yaml_emitter_state_t *top; + } states; + + /** The current emitter state. */ + yaml_emitter_state_t state; + + /** The event queue. */ + struct { + /** The beginning of the event queue. */ + yaml_event_t *start; + /** The end of the event queue. */ + yaml_event_t *end; + /** The head of the event queue. */ + yaml_event_t *head; + /** The tail of the event queue. */ + yaml_event_t *tail; + } events; + + /** The stack of indentation levels. */ + struct { + /** The beginning of the stack. */ + int *start; + /** The end of the stack. */ + int *end; + /** The top of the stack. */ + int *top; + } indents; + + /** The list of tag directives. */ + struct { + /** The beginning of the list. */ + yaml_tag_directive_t *start; + /** The end of the list. */ + yaml_tag_directive_t *end; + /** The top of the list. */ + yaml_tag_directive_t *top; + } tag_directives; + + /** The current indentation level. */ + int indent; + + /** The current flow level. */ + int flow_level; + + /** Is it the document root context? */ + int root_context; + /** Is it a sequence context? */ + int sequence_context; + /** Is it a mapping context? */ + int mapping_context; + /** Is it a simple mapping key context? */ + int simple_key_context; + + /** The current line. */ + int line; + /** The current column. */ + int column; + /** If the last character was a whitespace? */ + int whitespace; + /** If the last character was an indentation character (' ', '-', '?', ':')? */ + int indention; + /** If an explicit document end is required? */ + int open_ended; + + /** Anchor analysis. */ + struct { + /** The anchor value. */ + yaml_char_t *anchor; + /** The anchor length. */ + size_t anchor_length; + /** Is it an alias? */ + int alias; + } anchor_data; + + /** Tag analysis. */ + struct { + /** The tag handle. */ + yaml_char_t *handle; + /** The tag handle length. */ + size_t handle_length; + /** The tag suffix. */ + yaml_char_t *suffix; + /** The tag suffix length. */ + size_t suffix_length; + } tag_data; + + /** Scalar analysis. */ + struct { + /** The scalar value. */ + yaml_char_t *value; + /** The scalar length. */ + size_t length; + /** Does the scalar contain line breaks? */ + int multiline; + /** Can the scalar be expessed in the flow plain style? */ + int flow_plain_allowed; + /** Can the scalar be expressed in the block plain style? */ + int block_plain_allowed; + /** Can the scalar be expressed in the single quoted style? */ + int single_quoted_allowed; + /** Can the scalar be expressed in the literal or folded styles? */ + int block_allowed; + /** The output style. */ + yaml_scalar_style_t style; + } scalar_data; + + /** + * @} + */ + + /** + * @name Dumper stuff + * @{ + */ + + /** If the stream was already opened? */ + int opened; + /** If the stream was already closed? */ + int closed; + + /** The information associated with the document nodes. */ + yaml_anchors_t *anchors; + + /** The last assigned anchor id. */ + int last_anchor_id; + + /** The currently emitted document. */ + yaml_document_t *document; + + /** + * @} + */ + +} yaml_emitter_t; + +/** + * Initialize an emitter. + * + * This function creates a new emitter object. An application is responsible + * for destroying the object using the yaml_emitter_delete() function. + * + * @param[out] emitter An empty parser object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_emitter_initialize(yaml_emitter_t *emitter); + +/** + * Destroy an emitter. + * + * @param[in,out] emitter An emitter object. + */ + +YAML_DECLARE(void) +yaml_emitter_delete(yaml_emitter_t *emitter); + +/** + * Set a string output. + * + * The emitter will write the output characters to the @a output buffer of the + * size @a size. The emitter will set @a size_written to the number of written + * bytes. If the buffer is smaller than required, the emitter produces the + * YAML_WRITE_ERROR error. + * + * @param[in,out] emitter An emitter object. + * @param[in] output An output buffer. + * @param[in] size The buffer size. + * @param[in] size_written The pointer to save the number of written + * bytes. + */ + +YAML_DECLARE(void) +yaml_emitter_set_output_string(yaml_emitter_t *emitter, + unsigned char *output, size_t size, size_t *size_written); + +/** + * Set a file output. + * + * @a file should be a file object open for writing. The application is + * responsible for closing the @a file. + * + * @param[in,out] emitter An emitter object. + * @param[in] file An open file. + */ + +YAML_DECLARE(void) +yaml_emitter_set_output_file(yaml_emitter_t *emitter, FILE *file); + +/** + * Set a generic output handler. + * + * @param[in,out] emitter An emitter object. + * @param[in] handler A write handler. + * @param[in] data Any application data for passing to the write + * handler. + */ + +YAML_DECLARE(void) +yaml_emitter_set_output(yaml_emitter_t *emitter, + yaml_write_handler_t *handler, void *data); + +/** + * Set the output encoding. + * + * @param[in,out] emitter An emitter object. + * @param[in] encoding The output encoding. + */ + +YAML_DECLARE(void) +yaml_emitter_set_encoding(yaml_emitter_t *emitter, yaml_encoding_t encoding); + +/** + * Set if the output should be in the "canonical" format as in the YAML + * specification. + * + * @param[in,out] emitter An emitter object. + * @param[in] canonical If the output is canonical. + */ + +YAML_DECLARE(void) +yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical); + +/** + * Set the indentation increment. + * + * @param[in,out] emitter An emitter object. + * @param[in] indent The indentation increment (1 < . < 10). + */ + +YAML_DECLARE(void) +yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent); + +/** + * Set the preferred line width. @c -1 means unlimited. + * + * @param[in,out] emitter An emitter object. + * @param[in] width The preferred line width. + */ + +YAML_DECLARE(void) +yaml_emitter_set_width(yaml_emitter_t *emitter, int width); + +/** + * Set if unescaped non-ASCII characters are allowed. + * + * @param[in,out] emitter An emitter object. + * @param[in] unicode If unescaped Unicode characters are allowed. + */ + +YAML_DECLARE(void) +yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode); + +/** + * Set the preferred line break. + * + * @param[in,out] emitter An emitter object. + * @param[in] line_break The preferred line break. + */ + +YAML_DECLARE(void) +yaml_emitter_set_break(yaml_emitter_t *emitter, yaml_break_t line_break); + +/** + * Emit an event. + * + * The event object may be generated using the yaml_parser_parse() function. + * The emitter takes the responsibility for the event object and destroys its + * content after it is emitted. The event object is destroyed even if the + * function fails. + * + * @param[in,out] emitter An emitter object. + * @param[in,out] event An event object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event); + +/** + * Start a YAML stream. + * + * This function should be used before yaml_emitter_dump() is called. + * + * @param[in,out] emitter An emitter object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_emitter_open(yaml_emitter_t *emitter); + +/** + * Finish a YAML stream. + * + * This function should be used after yaml_emitter_dump() is called. + * + * @param[in,out] emitter An emitter object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_emitter_close(yaml_emitter_t *emitter); + +/** + * Emit a YAML document. + * + * The documen object may be generated using the yaml_parser_load() function + * or the yaml_document_initialize() function. The emitter takes the + * responsibility for the document object and destroys its content after + * it is emitted. The document object is destroyed even if the function fails. + * + * @param[in,out] emitter An emitter object. + * @param[in,out] document A document object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document); + +/** + * Flush the accumulated characters to the output. + * + * @param[in,out] emitter An emitter object. + * + * @returns @c 1 if the function succeeded, @c 0 on error. + */ + +YAML_DECLARE(int) +yaml_emitter_flush(yaml_emitter_t *emitter); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* #ifndef YAML_H */ diff --git a/yaml_private.h b/yaml_private.h new file mode 100644 index 0000000..caa713d --- /dev/null +++ b/yaml_private.h @@ -0,0 +1,683 @@ + +#include "config.h" + +#include "yaml.h" + +#include <assert.h> +#include <limits.h> +#include <stddef.h> + +/* + * Memory management. + */ + +YAML_DECLARE(void *) +yaml_malloc(size_t size); + +YAML_DECLARE(void *) +yaml_realloc(void *ptr, size_t size); + +YAML_DECLARE(void) +yaml_free(void *ptr); + +YAML_DECLARE(yaml_char_t *) +yaml_strdup(const yaml_char_t *); + +/* + * Reader: Ensure that the buffer contains at least `length` characters. + */ + +YAML_DECLARE(int) +yaml_parser_update_buffer(yaml_parser_t *parser, size_t length); + +/* + * Scanner: Ensure that the token stack contains at least one token ready. + */ + +YAML_DECLARE(int) +yaml_parser_fetch_more_tokens(yaml_parser_t *parser); + +/* + * The size of the input raw buffer. + */ + +#define INPUT_RAW_BUFFER_SIZE 16384 + +/* + * The size of the input buffer. + * + * It should be possible to decode the whole raw buffer. + */ + +#define INPUT_BUFFER_SIZE (INPUT_RAW_BUFFER_SIZE*3) + +/* + * The size of the output buffer. + */ + +#define OUTPUT_BUFFER_SIZE 16384 + +/* + * The size of the output raw buffer. + * + * It should be possible to encode the whole output buffer. + */ + +#define OUTPUT_RAW_BUFFER_SIZE (OUTPUT_BUFFER_SIZE*2+2) + +/* + * The maximum size of a YAML input file. + * This used to be PTRDIFF_MAX, but that's not entirely portable + * because stdint.h isn't available on all platforms. + * It is not entirely clear why this isn't the maximum value + * that can fit into the parser->offset field. + */ + +#define MAX_FILE_SIZE (~(size_t)0 / 2) + + +/* + * The size of other stacks and queues. + */ + +#define INITIAL_STACK_SIZE 16 +#define INITIAL_QUEUE_SIZE 16 +#define INITIAL_STRING_SIZE 16 + +/* + * Buffer management. + */ + +#define BUFFER_INIT(context,buffer,size) \ + (((buffer).start = YAML_MALLOC(size)) ? \ + ((buffer).last = (buffer).pointer = (buffer).start, \ + (buffer).end = (buffer).start+(size), \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define BUFFER_DEL(context,buffer) \ + (yaml_free((buffer).start), \ + (buffer).start = (buffer).pointer = (buffer).end = 0) + +/* + * String management. + */ + +typedef struct { + yaml_char_t *start; + yaml_char_t *end; + yaml_char_t *pointer; +} yaml_string_t; + +YAML_DECLARE(int) +yaml_string_extend(yaml_char_t **start, + yaml_char_t **pointer, yaml_char_t **end); + +YAML_DECLARE(int) +yaml_string_join( + yaml_char_t **a_start, yaml_char_t **a_pointer, yaml_char_t **a_end, + yaml_char_t **b_start, yaml_char_t **b_pointer, yaml_char_t **b_end); + +#define NULL_STRING { NULL, NULL, NULL } + +#define STRING(string,length) { (string), (string)+(length), (string) } + +#define STRING_ASSIGN(value,string,length) \ + ((value).start = (string), \ + (value).end = (string)+(length), \ + (value).pointer = (string)) + +#define STRING_INIT(context,string,size) \ + (((string).start = YAML_MALLOC(size)) ? \ + ((string).pointer = (string).start, \ + (string).end = (string).start+(size), \ + memset((string).start, 0, (size)), \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define STRING_DEL(context,string) \ + (yaml_free((string).start), \ + (string).start = (string).pointer = (string).end = 0) + +#define STRING_EXTEND(context,string) \ + ((((string).pointer+5 < (string).end) \ + || yaml_string_extend(&(string).start, \ + &(string).pointer, &(string).end)) ? \ + 1 : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define CLEAR(context,string) \ + ((string).pointer = (string).start, \ + memset((string).start, 0, (string).end-(string).start)) + +#define JOIN(context,string_a,string_b) \ + ((yaml_string_join(&(string_a).start, &(string_a).pointer, \ + &(string_a).end, &(string_b).start, \ + &(string_b).pointer, &(string_b).end)) ? \ + ((string_b).pointer = (string_b).start, \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +/* + * String check operations. + */ + +/* + * Check the octet at the specified position. + */ + +#define CHECK_AT(string,octet,offset) \ + ((string).pointer[offset] == (yaml_char_t)(octet)) + +/* + * Check the current octet in the buffer. + */ + +#define CHECK(string,octet) CHECK_AT((string),(octet),0) + +/* + * Check if the character at the specified position is an alphabetical + * character, a digit, '_', or '-'. + */ + +#define IS_ALPHA_AT(string,offset) \ + (((string).pointer[offset] >= (yaml_char_t) '0' && \ + (string).pointer[offset] <= (yaml_char_t) '9') || \ + ((string).pointer[offset] >= (yaml_char_t) 'A' && \ + (string).pointer[offset] <= (yaml_char_t) 'Z') || \ + ((string).pointer[offset] >= (yaml_char_t) 'a' && \ + (string).pointer[offset] <= (yaml_char_t) 'z') || \ + (string).pointer[offset] == '_' || \ + (string).pointer[offset] == '-') + +#define IS_ALPHA(string) IS_ALPHA_AT((string),0) + +/* + * Check if the character at the specified position is a digit. + */ + +#define IS_DIGIT_AT(string,offset) \ + (((string).pointer[offset] >= (yaml_char_t) '0' && \ + (string).pointer[offset] <= (yaml_char_t) '9')) + +#define IS_DIGIT(string) IS_DIGIT_AT((string),0) + +/* + * Get the value of a digit. + */ + +#define AS_DIGIT_AT(string,offset) \ + ((string).pointer[offset] - (yaml_char_t) '0') + +#define AS_DIGIT(string) AS_DIGIT_AT((string),0) + +/* + * Check if the character at the specified position is a hex-digit. + */ + +#define IS_HEX_AT(string,offset) \ + (((string).pointer[offset] >= (yaml_char_t) '0' && \ + (string).pointer[offset] <= (yaml_char_t) '9') || \ + ((string).pointer[offset] >= (yaml_char_t) 'A' && \ + (string).pointer[offset] <= (yaml_char_t) 'F') || \ + ((string).pointer[offset] >= (yaml_char_t) 'a' && \ + (string).pointer[offset] <= (yaml_char_t) 'f')) + +#define IS_HEX(string) IS_HEX_AT((string),0) + +/* + * Get the value of a hex-digit. + */ + +#define AS_HEX_AT(string,offset) \ + (((string).pointer[offset] >= (yaml_char_t) 'A' && \ + (string).pointer[offset] <= (yaml_char_t) 'F') ? \ + ((string).pointer[offset] - (yaml_char_t) 'A' + 10) : \ + ((string).pointer[offset] >= (yaml_char_t) 'a' && \ + (string).pointer[offset] <= (yaml_char_t) 'f') ? \ + ((string).pointer[offset] - (yaml_char_t) 'a' + 10) : \ + ((string).pointer[offset] - (yaml_char_t) '0')) + +#define AS_HEX(string) AS_HEX_AT((string),0) + +/* + * Check if the character is ASCII. + */ + +#define IS_ASCII_AT(string,offset) \ + ((string).pointer[offset] <= (yaml_char_t) '\x7F') + +#define IS_ASCII(string) IS_ASCII_AT((string),0) + +/* + * Check if the character can be printed unescaped. + */ + +#define IS_PRINTABLE_AT(string,offset) \ + (((string).pointer[offset] == 0x0A) /* . == #x0A */ \ + || ((string).pointer[offset] >= 0x20 /* #x20 <= . <= #x7E */ \ + && (string).pointer[offset] <= 0x7E) \ + || ((string).pointer[offset] == 0xC2 /* #0xA0 <= . <= #xD7FF */ \ + && (string).pointer[offset+1] >= 0xA0) \ + || ((string).pointer[offset] > 0xC2 \ + && (string).pointer[offset] < 0xED) \ + || ((string).pointer[offset] == 0xED \ + && (string).pointer[offset+1] < 0xA0) \ + || ((string).pointer[offset] == 0xEE) \ + || ((string).pointer[offset] == 0xEF /* #xE000 <= . <= #xFFFD */ \ + && !((string).pointer[offset+1] == 0xBB /* && . != #xFEFF */ \ + && (string).pointer[offset+2] == 0xBF) \ + && !((string).pointer[offset+1] == 0xBF \ + && ((string).pointer[offset+2] == 0xBE \ + || (string).pointer[offset+2] == 0xBF)))) + +#define IS_PRINTABLE(string) IS_PRINTABLE_AT((string),0) + +/* + * Check if the character at the specified position is NUL. + */ + +#define IS_Z_AT(string,offset) CHECK_AT((string),'\0',(offset)) + +#define IS_Z(string) IS_Z_AT((string),0) + +/* + * Check if the character at the specified position is BOM. + */ + +#define IS_BOM_AT(string,offset) \ + (CHECK_AT((string),'\xEF',(offset)) \ + && CHECK_AT((string),'\xBB',(offset)+1) \ + && CHECK_AT((string),'\xBF',(offset)+2)) /* BOM (#xFEFF) */ + +#define IS_BOM(string) IS_BOM_AT(string,0) + +/* + * Check if the character at the specified position is space. + */ + +#define IS_SPACE_AT(string,offset) CHECK_AT((string),' ',(offset)) + +#define IS_SPACE(string) IS_SPACE_AT((string),0) + +/* + * Check if the character at the specified position is tab. + */ + +#define IS_TAB_AT(string,offset) CHECK_AT((string),'\t',(offset)) + +#define IS_TAB(string) IS_TAB_AT((string),0) + +/* + * Check if the character at the specified position is blank (space or tab). + */ + +#define IS_BLANK_AT(string,offset) \ + (IS_SPACE_AT((string),(offset)) || IS_TAB_AT((string),(offset))) + +#define IS_BLANK(string) IS_BLANK_AT((string),0) + +/* + * Check if the character at the specified position is a line break. + */ + +#define IS_BREAK_AT(string,offset) \ + (CHECK_AT((string),'\r',(offset)) /* CR (#xD)*/ \ + || CHECK_AT((string),'\n',(offset)) /* LF (#xA) */ \ + || (CHECK_AT((string),'\xC2',(offset)) \ + && CHECK_AT((string),'\x85',(offset)+1)) /* NEL (#x85) */ \ + || (CHECK_AT((string),'\xE2',(offset)) \ + && CHECK_AT((string),'\x80',(offset)+1) \ + && CHECK_AT((string),'\xA8',(offset)+2)) /* LS (#x2028) */ \ + || (CHECK_AT((string),'\xE2',(offset)) \ + && CHECK_AT((string),'\x80',(offset)+1) \ + && CHECK_AT((string),'\xA9',(offset)+2))) /* PS (#x2029) */ + +#define IS_BREAK(string) IS_BREAK_AT((string),0) + +#define IS_CRLF_AT(string,offset) \ + (CHECK_AT((string),'\r',(offset)) && CHECK_AT((string),'\n',(offset)+1)) + +#define IS_CRLF(string) IS_CRLF_AT((string),0) + +/* + * Check if the character is a line break or NUL. + */ + +#define IS_BREAKZ_AT(string,offset) \ + (IS_BREAK_AT((string),(offset)) || IS_Z_AT((string),(offset))) + +#define IS_BREAKZ(string) IS_BREAKZ_AT((string),0) + +/* + * Check if the character is a line break, space, or NUL. + */ + +#define IS_SPACEZ_AT(string,offset) \ + (IS_SPACE_AT((string),(offset)) || IS_BREAKZ_AT((string),(offset))) + +#define IS_SPACEZ(string) IS_SPACEZ_AT((string),0) + +/* + * Check if the character is a line break, space, tab, or NUL. + */ + +#define IS_BLANKZ_AT(string,offset) \ + (IS_BLANK_AT((string),(offset)) || IS_BREAKZ_AT((string),(offset))) + +#define IS_BLANKZ(string) IS_BLANKZ_AT((string),0) + +/* + * Determine the width of the character. + */ + +#define WIDTH_AT(string,offset) \ + (((string).pointer[offset] & 0x80) == 0x00 ? 1 : \ + ((string).pointer[offset] & 0xE0) == 0xC0 ? 2 : \ + ((string).pointer[offset] & 0xF0) == 0xE0 ? 3 : \ + ((string).pointer[offset] & 0xF8) == 0xF0 ? 4 : 0) + +#define WIDTH(string) WIDTH_AT((string),0) + +/* + * Move the string pointer to the next character. + */ + +#define MOVE(string) ((string).pointer += WIDTH((string))) + +/* + * Copy a character and move the pointers of both strings. + */ + +#define COPY(string_a,string_b) \ + ((*(string_b).pointer & 0x80) == 0x00 ? \ + (*((string_a).pointer++) = *((string_b).pointer++)) : \ + (*(string_b).pointer & 0xE0) == 0xC0 ? \ + (*((string_a).pointer++) = *((string_b).pointer++), \ + *((string_a).pointer++) = *((string_b).pointer++)) : \ + (*(string_b).pointer & 0xF0) == 0xE0 ? \ + (*((string_a).pointer++) = *((string_b).pointer++), \ + *((string_a).pointer++) = *((string_b).pointer++), \ + *((string_a).pointer++) = *((string_b).pointer++)) : \ + (*(string_b).pointer & 0xF8) == 0xF0 ? \ + (*((string_a).pointer++) = *((string_b).pointer++), \ + *((string_a).pointer++) = *((string_b).pointer++), \ + *((string_a).pointer++) = *((string_b).pointer++), \ + *((string_a).pointer++) = *((string_b).pointer++)) : 0) + +/* + * Stack and queue management. + */ + +YAML_DECLARE(int) +yaml_stack_extend(void **start, void **top, void **end); + +YAML_DECLARE(int) +yaml_queue_extend(void **start, void **head, void **tail, void **end); + +#define STACK_INIT(context,stack,type) \ + (((stack).start = (type)yaml_malloc(INITIAL_STACK_SIZE*sizeof(*(stack).start))) ? \ + ((stack).top = (stack).start, \ + (stack).end = (stack).start+INITIAL_STACK_SIZE, \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define STACK_DEL(context,stack) \ + (yaml_free((stack).start), \ + (stack).start = (stack).top = (stack).end = 0) + +#define STACK_EMPTY(context,stack) \ + ((stack).start == (stack).top) + +#define STACK_LIMIT(context,stack,size) \ + ((stack).top - (stack).start < (size) ? \ + 1 : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define PUSH(context,stack,value) \ + (((stack).top != (stack).end \ + || yaml_stack_extend((void **)&(stack).start, \ + (void **)&(stack).top, (void **)&(stack).end)) ? \ + (*((stack).top++) = value, \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define POP(context,stack) \ + (*(--(stack).top)) + +#define QUEUE_INIT(context,queue,size,type) \ + (((queue).start = (type)yaml_malloc((size)*sizeof(*(queue).start))) ? \ + ((queue).head = (queue).tail = (queue).start, \ + (queue).end = (queue).start+(size), \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define QUEUE_DEL(context,queue) \ + (yaml_free((queue).start), \ + (queue).start = (queue).head = (queue).tail = (queue).end = 0) + +#define QUEUE_EMPTY(context,queue) \ + ((queue).head == (queue).tail) + +#define ENQUEUE(context,queue,value) \ + (((queue).tail != (queue).end \ + || yaml_queue_extend((void **)&(queue).start, (void **)&(queue).head, \ + (void **)&(queue).tail, (void **)&(queue).end)) ? \ + (*((queue).tail++) = value, \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +#define DEQUEUE(context,queue) \ + (*((queue).head++)) + +#define QUEUE_INSERT(context,queue,index,value) \ + (((queue).tail != (queue).end \ + || yaml_queue_extend((void **)&(queue).start, (void **)&(queue).head, \ + (void **)&(queue).tail, (void **)&(queue).end)) ? \ + (memmove((queue).head+(index)+1,(queue).head+(index), \ + ((queue).tail-(queue).head-(index))*sizeof(*(queue).start)), \ + *((queue).head+(index)) = value, \ + (queue).tail++, \ + 1) : \ + ((context)->error = YAML_MEMORY_ERROR, \ + 0)) + +/* + * Token initializers. + */ + +#define TOKEN_INIT(token,token_type,token_start_mark,token_end_mark) \ + (memset(&(token), 0, sizeof(yaml_token_t)), \ + (token).type = (token_type), \ + (token).start_mark = (token_start_mark), \ + (token).end_mark = (token_end_mark)) + +#define STREAM_START_TOKEN_INIT(token,token_encoding,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_STREAM_START_TOKEN,(start_mark),(end_mark)), \ + (token).data.stream_start.encoding = (token_encoding)) + +#define STREAM_END_TOKEN_INIT(token,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_STREAM_END_TOKEN,(start_mark),(end_mark))) + +#define ALIAS_TOKEN_INIT(token,token_value,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_ALIAS_TOKEN,(start_mark),(end_mark)), \ + (token).data.alias.value = (token_value)) + +#define ANCHOR_TOKEN_INIT(token,token_value,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_ANCHOR_TOKEN,(start_mark),(end_mark)), \ + (token).data.anchor.value = (token_value)) + +#define TAG_TOKEN_INIT(token,token_handle,token_suffix,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_TAG_TOKEN,(start_mark),(end_mark)), \ + (token).data.tag.handle = (token_handle), \ + (token).data.tag.suffix = (token_suffix)) + +#define SCALAR_TOKEN_INIT(token,token_value,token_length,token_style,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_SCALAR_TOKEN,(start_mark),(end_mark)), \ + (token).data.scalar.value = (token_value), \ + (token).data.scalar.length = (token_length), \ + (token).data.scalar.style = (token_style)) + +#define VERSION_DIRECTIVE_TOKEN_INIT(token,token_major,token_minor,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_VERSION_DIRECTIVE_TOKEN,(start_mark),(end_mark)), \ + (token).data.version_directive.major = (token_major), \ + (token).data.version_directive.minor = (token_minor)) + +#define TAG_DIRECTIVE_TOKEN_INIT(token,token_handle,token_prefix,start_mark,end_mark) \ + (TOKEN_INIT((token),YAML_TAG_DIRECTIVE_TOKEN,(start_mark),(end_mark)), \ + (token).data.tag_directive.handle = (token_handle), \ + (token).data.tag_directive.prefix = (token_prefix)) + +/* + * Event initializers. + */ + +#define EVENT_INIT(event,event_type,event_start_mark,event_end_mark) \ + (memset(&(event), 0, sizeof(yaml_event_t)), \ + (event).type = (event_type), \ + (event).start_mark = (event_start_mark), \ + (event).end_mark = (event_end_mark)) + +#define STREAM_START_EVENT_INIT(event,event_encoding,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_STREAM_START_EVENT,(start_mark),(end_mark)), \ + (event).data.stream_start.encoding = (event_encoding)) + +#define STREAM_END_EVENT_INIT(event,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_STREAM_END_EVENT,(start_mark),(end_mark))) + +#define DOCUMENT_START_EVENT_INIT(event,event_version_directive, \ + event_tag_directives_start,event_tag_directives_end,event_implicit,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_DOCUMENT_START_EVENT,(start_mark),(end_mark)), \ + (event).data.document_start.version_directive = (event_version_directive), \ + (event).data.document_start.tag_directives.start = (event_tag_directives_start), \ + (event).data.document_start.tag_directives.end = (event_tag_directives_end), \ + (event).data.document_start.implicit = (event_implicit)) + +#define DOCUMENT_END_EVENT_INIT(event,event_implicit,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_DOCUMENT_END_EVENT,(start_mark),(end_mark)), \ + (event).data.document_end.implicit = (event_implicit)) + +#define ALIAS_EVENT_INIT(event,event_anchor,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_ALIAS_EVENT,(start_mark),(end_mark)), \ + (event).data.alias.anchor = (event_anchor)) + +#define SCALAR_EVENT_INIT(event,event_anchor,event_tag,event_value,event_length, \ + event_plain_implicit, event_quoted_implicit,event_style,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_SCALAR_EVENT,(start_mark),(end_mark)), \ + (event).data.scalar.anchor = (event_anchor), \ + (event).data.scalar.tag = (event_tag), \ + (event).data.scalar.value = (event_value), \ + (event).data.scalar.length = (event_length), \ + (event).data.scalar.plain_implicit = (event_plain_implicit), \ + (event).data.scalar.quoted_implicit = (event_quoted_implicit), \ + (event).data.scalar.style = (event_style)) + +#define SEQUENCE_START_EVENT_INIT(event,event_anchor,event_tag, \ + event_implicit,event_style,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_SEQUENCE_START_EVENT,(start_mark),(end_mark)), \ + (event).data.sequence_start.anchor = (event_anchor), \ + (event).data.sequence_start.tag = (event_tag), \ + (event).data.sequence_start.implicit = (event_implicit), \ + (event).data.sequence_start.style = (event_style)) + +#define SEQUENCE_END_EVENT_INIT(event,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_SEQUENCE_END_EVENT,(start_mark),(end_mark))) + +#define MAPPING_START_EVENT_INIT(event,event_anchor,event_tag, \ + event_implicit,event_style,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_MAPPING_START_EVENT,(start_mark),(end_mark)), \ + (event).data.mapping_start.anchor = (event_anchor), \ + (event).data.mapping_start.tag = (event_tag), \ + (event).data.mapping_start.implicit = (event_implicit), \ + (event).data.mapping_start.style = (event_style)) + +#define MAPPING_END_EVENT_INIT(event,start_mark,end_mark) \ + (EVENT_INIT((event),YAML_MAPPING_END_EVENT,(start_mark),(end_mark))) + +/* + * Document initializer. + */ + +#define DOCUMENT_INIT(document,document_nodes_start,document_nodes_end, \ + document_version_directive,document_tag_directives_start, \ + document_tag_directives_end,document_start_implicit, \ + document_end_implicit,document_start_mark,document_end_mark) \ + (memset(&(document), 0, sizeof(yaml_document_t)), \ + (document).nodes.start = (document_nodes_start), \ + (document).nodes.end = (document_nodes_end), \ + (document).nodes.top = (document_nodes_start), \ + (document).version_directive = (document_version_directive), \ + (document).tag_directives.start = (document_tag_directives_start), \ + (document).tag_directives.end = (document_tag_directives_end), \ + (document).start_implicit = (document_start_implicit), \ + (document).end_implicit = (document_end_implicit), \ + (document).start_mark = (document_start_mark), \ + (document).end_mark = (document_end_mark)) + +/* + * Node initializers. + */ + +#define NODE_INIT(node,node_type,node_tag,node_start_mark,node_end_mark) \ + (memset(&(node), 0, sizeof(yaml_node_t)), \ + (node).type = (node_type), \ + (node).tag = (node_tag), \ + (node).start_mark = (node_start_mark), \ + (node).end_mark = (node_end_mark)) + +#define SCALAR_NODE_INIT(node,node_tag,node_value,node_length, \ + node_style,start_mark,end_mark) \ + (NODE_INIT((node),YAML_SCALAR_NODE,(node_tag),(start_mark),(end_mark)), \ + (node).data.scalar.value = (node_value), \ + (node).data.scalar.length = (node_length), \ + (node).data.scalar.style = (node_style)) + +#define SEQUENCE_NODE_INIT(node,node_tag,node_items_start,node_items_end, \ + node_style,start_mark,end_mark) \ + (NODE_INIT((node),YAML_SEQUENCE_NODE,(node_tag),(start_mark),(end_mark)), \ + (node).data.sequence.items.start = (node_items_start), \ + (node).data.sequence.items.end = (node_items_end), \ + (node).data.sequence.items.top = (node_items_start), \ + (node).data.sequence.style = (node_style)) + +#define MAPPING_NODE_INIT(node,node_tag,node_pairs_start,node_pairs_end, \ + node_style,start_mark,end_mark) \ + (NODE_INIT((node),YAML_MAPPING_NODE,(node_tag),(start_mark),(end_mark)), \ + (node).data.mapping.pairs.start = (node_pairs_start), \ + (node).data.mapping.pairs.end = (node_pairs_end), \ + (node).data.mapping.pairs.top = (node_pairs_start), \ + (node).data.mapping.style = (node_style)) + +/* Strict C compiler warning helpers */ + +#if defined(__clang__) || defined(__GNUC__) +# define HASATTRIBUTE_UNUSED +#endif +#ifdef HASATTRIBUTE_UNUSED +# define __attribute__unused__ __attribute__((__unused__)) +#else +# define __attribute__unused__ +#endif + +/* Shim arguments are arguments that must be included in your function, + * but serve no purpose inside. Silence compiler warnings. */ +#define SHIM(a) /*@unused@*/ a __attribute__unused__ + +/* UNUSED_PARAM() marks a shim argument in the body to silence compiler warnings */ +#ifdef __clang__ +# define UNUSED_PARAM(a) (void)(a); +#else +# define UNUSED_PARAM(a) /*@-noeffect*/if (0) (void)(a)/*@=noeffect*/; +#endif + +#define YAML_MALLOC_STATIC(type) (type*)yaml_malloc(sizeof(type)) +#define YAML_MALLOC(size) (yaml_char_t *)yaml_malloc(size) |