Custom Query (132 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (61 - 63 of 132)

Ticket Resolution Summary Owner Reporter
#74 fixed porting yaml to python 3000 xi idadesub@…

Reported by idadesub@…, 6 years ago.

Description

Hello,

I've started to play around with porting code over to python 3, and since I use yaml, I had to port it over as well. So, here's the patch :) It's pretty heavyweight, though, because of the change of "str" to be unicode. Since there are many incompatible changes, I'd recommend creating a branch for this.

Here's some other notes that you ought to be aware of:

  • In order to do from error import * you now have to specify the full path to the module from yaml.error import *, explicitly specify what you want to import with from .error import YAMLError, or from . import error. I went with from yaml.error import * as that let me touch less code.
  • Removed:
try:
    set
except NameError:
    from sets import Set as set
  • Removed utf_*_decode functions from yaml/reader.py.
  • file was removed as a function, so I replaced it with open.
  • Since python 3 doesn't have classic-style classes, I removed all the instance code I could find. This means that __initargs__ isn't used anymore.
  • u'...' isn't supported, so it's been replaced with just '...'.
  • Unicode encoding now is str to bytes and decoding is bytes to str, so it required a lot of changes to change the order of encoding and decoding.
  • unichr was replaced with chr.
  • print now requires parenthesis.
  • open('foo', 'rb') now returns a stream object that produces bytes instead of strs, so that had to be specially handled.
  • Automatic tuple extraction with things like def foo(a, b, (c, d)): ... is no longer supported.
  • There is no longer total ordering of all types, so [None, 1].sort() is now a TypeError. So, I added a basic __lt__ to yaml.nodes.Node which might need more attention.
  • exec now requires parenthesis. Also, it doesn't seem like the values that get added to locals() are actually added to the local scope. This might be a bug.
  • StringIO has been moved to the io module.
  • Catching exceptions is now written like except YAMLError as exc.
  • If you catch and then re raise another exception you can write raise YAMLError from other_exception to save the history of the other exception.
  • I left in support for !!python/long and !!python/unicode for backwards compatibility.
  • I removed all the (object) from class definition.
  • mapping.keys() now returns an iterator, so I wrapped all the cases I could find that require it returning a list.
  • I moved the sorting of a mapping to after the items in it have been turned into nodes so that it's more sortable.

Finally, in case it wasn't clear in the patch, I've removed the following tests:

D      tests/data/construct-python-unicode-utf8.data
D      tests/data/construct-python-unicode-ascii.data
D      tests/data/construct-python-unicode-utf8.code
D      tests/data/construct-python-unicode-ascii.code

And added:

A      tests/data/construct-python-bytes-utf8.data
A      tests/data/construct-python-bytes-ascii.data
A      tests/data/construct-python-bytes-utf8.code
A      tests/data/construct-python-bytes-ascii.code
#39 fixed yaml.load("") raises an exception xi iusty@…

Reported by iusty@…, 7 years ago.

Description

With the latest PyYAML (3.04):

$ python
Python 2.4.4 (#2, Oct 19 2006, 23:03:48) 
[GCC 4.1.2 20061007 (prerelease) (Debian 4.1.1-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yaml
>>> yaml.load("")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local//lib/python2.4/site-packages/yaml/__init__.py", line 66, in load
    return loader.get_data()
  File "/usr/local//lib/python2.4/site-packages/yaml/constructor.py", line 38, in get_data
    return self.construct_document(self.get_node())
  File "/usr/local//lib/python2.4/site-packages/yaml/composer.py", line 23, in get_node
    return self.compose_document()
  File "/usr/local//lib/python2.4/site-packages/yaml/composer.py", line 35, in compose_document
    node = self.compose_node(None, None)
  File "/usr/local//lib/python2.4/site-packages/yaml/composer.py", line 52, in compose_node
    anchor = event.anchor
AttributeError: 'NoneType' object has no attribute 'anchor'
>>> 

I think this is a bug - at least it should raise a yaml.scanner.ScannerError?, like yaml.load("'") does, and then it can be easily catched as a malformed stream. Right now, it's hard to deal with this.

Thanks, Iustin

#46 worksforme syck.dump is not here ! xi jean.philippe.mague _at_ gmail _d.o.t_ com

Reported by jean.philippe.mague _at_ gmail _d.o.t_ com, 7 years ago.

Description

when installing pysyck from syck-0.61+svn231+patches.tar.gz, I end up with a module with only the Node type and the load function (and several blah funtions). When I install it from PySyck-0.61.2.tar.gz (with syck previouly installed) every goes just fine. I use python 2.4 on a Ubuntu Edgy

Note: See TracQuery for help on using queries.