| |
| from error import YAMLError |
| from reader import Reader |
| from scanner import Scanner |
| from parser import Parser |
| from composer import Composer |
| from resolver import Resolver |
| |
| from tokens import * |
| from events import * |
| |
| def scan(data, Reader=Reader, Scanner=Scanner): |
| reader = Reader(data) |
| scanner = Scanner(reader) |
| return iter(scanner) |
| |
| def parse(data, Reader=Reader, Scanner=Scanner, Parser=Parser): |
| reader = Reader(data) |
| scanner = Scanner(reader) |
| parser = Parser(scanner) |
| return iter(parser) |
| |
| def compose(data, Reader=Reader, Scanner=Scanner, Parser=Parser, |
| Composer=Composer): |
| reader = Reader(data) |
| scanner = Scanner(reader) |
| parser = Parser(scanner) |
| composer = Composer(parser) |
| return iter(composer) |
| |
| def compose_document(*args, **kwds): |
| try: |
| return compose(*args, **kwds).next() |
| except StopIteration: |
| return None |
| |
| def resolve(data, Reader=Reader, Scanner=Scanner, Parser=Parser, |
| Composer=Composer, Resolver=Resolver): |
| reader = Reader(data) |
| scanner = Scanner(reader) |
| parser = Parser(scanner) |
| composer = Composer(parser) |
| resolver = Resolver(composer) |
| return iter(resolver) |
| |
| def resolve_document(*args, **kwds): |
| try: |
| return resolve(*args, **kwds).next() |
| except StopIteration: |
| return None |
| |