Custom Query (121 matches)
Results (52 - 54 of 121)
| Ticket | Resolution | Summary | Owner | Reporter |
|---|---|---|---|---|
| #33 | fixed | PyYAML + libyyaml shouldn't need PyRex | xi | edemaine@… |
| Description |
In my understanding of PyRex? (which, I admit, is fairly limited), it is a tool that converts PyRex? code into C (.c, .h, etc.) and Python code. Can't this conversion be done ahead of time when assembling a distribution, so that you don't need PyRex? on the install side? (Same as running lex or yacc etc. at distribution time instead of install time.) Or is there something more subtle going on during installation that this is actually necessary? Reducing the barrier to installation should make the "fast PyYAML solution" (PyYAML + libyaml) more widely available. |
|||
| #50 | fixed | ScannerError TypeError | xi | edemaine@… |
| Description |
I encountered a small bug in error reporting with the libyaml interface: ## A "real-world" example: mistaken input HTML instead of YAML.
>>> x='<HTML>\n <HEAD>\n <STYLE>\n TABLE { border-collapse: collapse; }\n </STYLE>\n </HEAD>\n</HTML>'
>>> yaml.load(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/__init__.py", line 66, in load
return loader.get_data()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/constructor.py", line 38, in get_data
return self.construct_document(self.get_node())
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/composer.py", line 27, in get_node
return self.compose_document()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/composer.py", line 37, in compose_document
self.get_event()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/parser.py", line 115, in get_event
self.current_event = self.state()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/parser.py", line 186, in parse_document_end
token = self.peek_token()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/scanner.py", line 128, in peek_token
self.fetch_more_tokens()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/scanner.py", line 220, in fetch_more_tokens
return self.fetch_value()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/scanner.py", line 579, in fetch_value
self.get_mark())
yaml.scanner.ScannerError: mapping values are not allowed here
in "<string>", line 4, column 30:
TABLE { border-collapse: collapse; }
^
## great error reporting
>>> yaml.load(x,yaml.CLoader) Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/__init__.py", line 66, in load
return loader.get_data()
File "/toc/home/edemaine/Packages/lib/python2.6/site-packages/yaml/constructor.py", line 38, in get_data
return self.construct_document(self.get_node())
File "_yaml.pyx", line 664, in _yaml.CParser.get_node
File "_yaml.pyx", line 669, in _yaml.CParser._compose_document
File "_yaml.pyx", line 848, in _yaml.CParser._parse_next_event
TypeError: exceptions must be strings, classes, or instances, not ScannerError
## not so useful--seems to be a bug
I didn't investigate why ScannerError is considered to be a class in the first case but not the second; perhaps _yaml defines its own ScannerError? type? Should probably just use yaml.scanner.ScannerError instead. |
|||
| #51 | fixed | Won't emit a document until the next document is available | xi | edward@… |
| Description |
parse_document_end won't emit an event until it has seen the next token after the document end. This makes it difficult to use PyYAML to parse live streams of documents in a timely way, because the next document may not actually be available for some undetermined amount of time. Using PyYAML-3.04. |
|||
