Custom Query (132 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (10 - 12 of 132)

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Ticket Resolution Summary Owner Reporter
#53 fixed Allow for immutable subclasses of YAMLObject xi toidinamai

Reported by toidinamai, 7 years ago.

Description

YAMLObject are not directly instantiated so they don't need their own instance attribute (i.e. an own dict). Because of that they should define an empty slots and let subclasses decide whether they want arbitrary instance attributes or not:

--- lib/yaml/__init__.py        (revision 251)
+++ lib/yaml/__init__.py        (working copy)
@@ -272,6 +272,9 @@
     yaml_tag = None
     yaml_flow_style = None
 
+    # no direct instantiation, so allow for immutable subclasses
+    __slots__ = ()
+
     def from_yaml(cls, loader, node):
         """
         Convert a representation node to a Python object.

The same is basically also true for YAMLObjectMetaclass but I doubt there is much use for this in practice.

#3 fixed allow_unicode missing in emitter? xi tim@…

Reported by tim@…, 8 years ago.

Description

Trying to emit plain chars in utf8 (£ symbol for instance - \xc2\xa3) isn't working.. I think I've tracked it down to missing allow_unicode passing through to emitter and possibly the emit events resetting allow_unicode (I won't say I've fixed it as I've forced allow_unicode to True in various places to get it to emit plain's in utf-8 rather than double quoted escaped unicode). I'll post more tomorrow if I can get my fix cleaner. Looking good btw!!

#22 fixed Aliases break if there are temporary objects xi tim.hochberg@…

Reported by tim.hochberg@…, 8 years ago.

Description

If an object being passed to represet_data has a shorter lifespan than the representer, the results are unpredictable, but generally bad. In my case, I'm trying to represent a custom omap class. I register a representer like so:

def omap_representer(dumper, data):
    items = [[x, y] for (x, y) in data.iteritems()] 
    return dumper.represent_sequence(u'!omap', items)
    
yaml.add_representer(omap, omap_representer)

If I then dump something that contains multiple omaps, such as [one_omap,another_omap], the representer get's confused because it sees distinct objects that have the same id. Here's an actual example:

>>> a # Note that these are omaps not dictionaries, despite appearances.
[{1: 2, 2: 4}, {1: 99, 2: 88}]

>>> print yaml.dump(a)
- !omap
  - &id001 [1, 2]
  - &id002 [2, 4]
- !omap
  - *id001
  - *id002

Two approaches come to mind to fix this.

  1. Hold onto a reference to the original object as well as to the serialized object in represented_objects. This is what I did as a temporary fix.
  2. Do some sort of weak reference magic to track if an object dies and then delete it from represented_objects. This is more complicated and I'm not entirely sure it would work well. The upside is it's possibly more frugal with memory.

-tim

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Note: See TracQuery for help on using queries.