Changeset 3936

Show
Ignore:
Timestamp:
07/02/08 09:44:29 (5 months ago)
Author:
coderanger
Message:

Make the graphviz model objects all use unicode.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • masterticketsplugin/0.11/mastertickets/graphviz.py

    r2959 r3936  
     1# -*- coding: utf-8 -*- 
    12# Created by Noah Kantrowitz on 2007-12-21. 
    23# Copyright (c) 2007 Noah Kantrowitz. All rights reserved. 
     
    1314 
    1415def _format_options(base_string, options): 
    15     return '%s [%s]'%(base_string, ', '.join(['%s="%s"'%x for x in options.iteritems()])) 
     16    return u'%s [%s]'%(base_string, u', '.join([u'%s="%s"'%x for x in options.iteritems()])) 
    1617 
    1718class Edge(dict): 
     
    2425 
    2526    def __str__(self): 
    26         ret = '%s -> %s'%(self.source.name, self.dest.name) 
     27        ret = u'%s -> %s'%(self.source.name, self.dest.name) 
    2728        if self: 
    2829            ret = _format_options(ret, self) 
     
    3738 
    3839    def __init__(self, name, **kwargs): 
    39         self.name = str(name) 
     40        self.name = unicode(name) 
    4041        self.edges = [] 
    4142        dict.__init__(self, **kwargs) 
     
    6768    """A model object for a graphviz digraph.""" 
    6869 
    69     def __init__(self, name='graph'): 
     70    def __init__(self, name=u'graph'): 
    7071        super(Graph,self).__init__() 
    7172        self.name = name 
     
    8283 
    8384    def __getitem__(self, key): 
    84         key = str(key) 
     85        key = unicode(key) 
    8586        if key not in self._node_map: 
    8687            new_node = Node(key) 
     
    9091 
    9192    def __delitem__(self, key): 
    92         key = str(key) 
     93        key = unicode(key) 
    9394        node = self._node_map.pop(key) 
    9495        self.nodes.remove(node) 
     
    127128        """Render a dot graph.""" 
    128129        proc = subprocess.Popen([dot_path, '-T%s'%format], stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
    129         out, _ = proc.communicate(str(self)) 
     130        out, _ = proc.communicate(unicode(self).encode('utf8')) 
    130131        return out 
    131132 
     
    135136    root = Node('me') 
    136137    root > Node('them') 
    137     root < Node('us') 
     138    root < Node(u'Üs') 
    138139     
    139140    g.add(root)