Subversion Repositories programming

Rev

Rev 392 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 392 Rev 395
Line 2... Line 2...
2
 
2
 
3
__author__    = "Ira W. Snyder (devel@irasnyder.com)"
3
__author__    = "Ira W. Snyder (devel@irasnyder.com)"
4
__copyright__ = "Copyright (c) 2006 Ira W. Snyder (devel@irasnyder.com)"
4
__copyright__ = "Copyright (c) 2006 Ira W. Snyder (devel@irasnyder.com)"
5
__license__   = "GNU GPL v2 (or, at your option, any later version)"
5
__license__   = "GNU GPL v2 (or, at your option, any later version)"
6
 
6
 
-
 
7
# Fix for the lame version of python on the school's computers (v2.1)
-
 
8
try:
-
 
9
	(True, False)
-
 
10
except NameError:
-
 
11
	(True, False) = (1, 0)
-
 
12
 
7
class Vertex (object):
13
class Vertex:
8
	def __init__ (self, label='', value=0, shape='circle'):
14
	def __init__ (self, label='', value=0, shape='circle', raw_obj=None):
9
		self.label = label
15
		self.label = label
10
		self.value = value
16
		self.value = value
11
		self.shape = shape
17
		self.shape = shape
-
 
18
		self.raw_obj = raw_obj
12
 
19
 
13
class Edge (object):
20
class Edge:
14
	def __init__ (self, color='black', label=''):
21
	def __init__ (self, color='black', label=''):
15
		self.color = color
22
		self.color = color
16
		self.label = label
23
		self.label = label
17
 
24
 
18
class Graph:
25
class Graph:
Line 37... Line 44...
37
		"""Create a key for this set of nodes"""
44
		"""Create a key for this set of nodes"""
38
		key = [v1, v2]
45
		key = [v1, v2]
39
		key.sort ()
46
		key.sort ()
40
		return tuple (key)
47
		return tuple (key)
41
 
48
 
42
	def add_vertex (self, label, data=0):
49
	def add_vertex (self, label, data=0, raw_obj=None):
43
		"""Add a vertex to the graph"""
50
		"""Add a vertex to the graph"""
44
		if self.has_vertex (label):
51
		if self.has_vertex (label):
45
			raise ValueError
52
			raise ValueError
46
 
53
 
47
		# Create vertex and set the value
54
		# Create vertex and set the value
48
		self.vertices[label] = Vertex(label, data)
55
		self.vertices[label] = Vertex(label, data, raw_obj=raw_obj)
49
 
56
 
50
	def add_edge (self, v1, v2, color='black', label=''):
57
	def add_edge (self, v1, v2, color='black', label=''):
51
		"""Add an edge from v1 to v2 (undirected)"""
58
		"""Add an edge from v1 to v2 (undirected)"""
52
 
59
 
53
		key = self.__get_key (v1, v2)
60
		key = self.__get_key (v1, v2)