1 """CherryPy Library"""
2
3 import sys as _sys
4
5
7 """Load a module and retrieve a reference to that module."""
8 try:
9 mod = _sys.modules[modulePath]
10 if mod is None:
11 raise KeyError()
12 except KeyError:
13
14 mod = __import__(modulePath, globals(), locals(), [''])
15 return mod
16
18 """Load a module and retrieve an attribute of that module."""
19
20
21 last_dot = full_attribute_name.rfind(u".")
22 attr_name = full_attribute_name[last_dot + 1:]
23 mod_path = full_attribute_name[:last_dot]
24
25 mod = modules(mod_path)
26
27 try:
28 attr = getattr(mod, attr_name)
29 except AttributeError:
30 raise AttributeError("'%s' object has no attribute '%s'"
31 % (mod_path, attr_name))
32
33
34 return attr
35
36
37
38
40
42 m = getattr(self, 'build_' + o.__class__.__name__, None)
43 if m is None:
44 raise TypeError("unrepr does not recognize %s" %
45 repr(o.__class__.__name__))
46 return m(o)
47
49 expr, flags, subs = o.getChildren()
50 expr = self.build(expr)
51 subs = self.build(subs)
52 return expr[subs]
53
55 children = map(self.build, o.getChildren())
56 callee = children.pop(0)
57 kwargs = children.pop() or {}
58 starargs = children.pop() or ()
59 args = tuple(children) + tuple(starargs)
60 return callee(*args, **kwargs)
61
63 return map(self.build, o.getChildren())
64
67
69 d = {}
70 i = iter(map(self.build, o.getChildren()))
71 for el in i:
72 d[el] = i.next()
73 return d
74
77
79 if o.name == 'None':
80 return None
81 if o.name == 'True':
82 return True
83 if o.name == 'False':
84 return False
85
86
87 try:
88 return modules(o.name)
89 except ImportError:
90 pass
91
92
93 try:
94 import __builtin__
95 return getattr(__builtin__, o.name)
96 except AttributeError:
97 pass
98
99 raise TypeError("unrepr could not resolve the name %s" % repr(o.name))
100
102 left, right = map(self.build, o.getChildren())
103 return left + right
104
106 parent = self.build(o.expr)
107 return getattr(parent, o.attrname)
108
111
113 return -self.build(o.getChildren()[0])
114
116 return self.build(o.getChildren()[0])
117
118
120 """Return a Python object compiled from a string."""
121 if not s:
122 return s
123
124 try:
125 import compiler
126 except ImportError:
127
128
129 return eval(s)
130
131 p = compiler.parse("__tempvalue__ = " + s)
132 obj = p.getChildren()[1].getChildren()[0].getChildren()[1]
133
134 return _Builder().build(obj)
135
136
138 """Yield the given input (a file object) in chunks (default 64k). (Core)"""
139 chunk = input.read(chunkSize)
140 while chunk:
141 yield chunk
142 chunk = input.read(chunkSize)
143 input.close()
144
145
147 """Yield the given file object in chunks, stopping after `count`
148 bytes has been emitted. Default chunk size is 64kB. (Core)
149 """
150 remaining = count
151 while remaining > 0:
152 chunk = fileobj.read(min(chunk_size, remaining))
153 chunklen = len(chunk)
154 if chunklen == 0:
155 return
156 remaining -= chunklen
157 yield chunk
158