1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 """
18 =================
19 Factory Caching
20 =================
21
22 Factory Caching.
23 """
24 __author__ = u"Andr\xe9 Malo"
25 __docformat__ = "restructuredtext en"
26
27
29 """
30 Copy docstring
31
32 :Parameters:
33 `func` : ``callable``
34 The method's function
35 """
36 from tdi import factory as _factory
37 method = getattr(_factory.Factory, func.__name__, None)
38 if method is not None:
39 func.__doc__ = method.__doc__
40
41
43 """
44 Wrapper for providing template factory memoization keys
45
46 :IVariables:
47 `_factory` : `tdi.factory.Factory`
48 Factory
49 """
50
52 """
53 Initialization
54
55 :Parameters:
56 `factory` : `tdi.factory.Factory`
57 Factory
58 """
59 self._factory = factory
60
61 - def replace(self, autoupdate=None, eventfilters=None, streamfilters=None,
62 default_eventfilters=None, default_streamfilters=None,
63 overlay_eventfilters=None, overlay_streamfilters=None,
64 overlay_default_eventfilters=None,
65 overlay_default_streamfilters=None, default_encoding=None,
66 memoizer=None):
67 """ Create factory with replaced parameters """
68
69
70
71 return self.__class__(self._factory.replace(
72 autoupdate=autoupdate,
73 eventfilters=eventfilters,
74 streamfilters=streamfilters,
75 default_eventfilters=default_eventfilters,
76 default_streamfilters=default_streamfilters,
77 overlay_eventfilters=overlay_eventfilters,
78 overlay_streamfilters=overlay_streamfilters,
79 overlay_default_eventfilters=overlay_default_eventfilters,
80 overlay_default_streamfilters=overlay_default_streamfilters,
81 default_encoding=default_encoding,
82 memoizer=memoizer,
83 ))
84 _copy_doc(replace)
85
86 - def from_file(self, filename, encoding=None, key=None):
93 _copy_doc(from_file)
94
95 - def from_stream(self, stream, encoding=None, filename=None, mtime=None,
96 opener=None, key=None):
104 _copy_doc(from_stream)
105
106 - def from_opener(self, opener, filename, encoding=None, key=None):
113 _copy_doc(from_opener)
114
115 - def from_string(self, data, encoding=None, filename=None, mtime=None,
116 key=None):
124 _copy_doc(from_string)
125
126 - def from_files(self, names, encoding=None, basedir=None, key=None):
127 """ Load templates from files and overlay them """
128 if key is None:
129 key = (basedir,) + tuple(names)
130 return self._factory.from_files(names, encoding=encoding,
131 basedir=basedir,
132 key=key
133 )
134 _copy_doc(from_files)
135
136 - def from_streams(self, streams, encoding=None, streamopen=None,
137 key=None):
138 """ Load templates from streams and overlay them """
139 if key is None:
140 key = tuple(streams)
141 try:
142 hash(key)
143 except TypeError:
144 key = None
145 return self._factory.from_streams(streams, encoding=encoding,
146 streamopen=streamopen,
147 key=key
148 )
149 _copy_doc(from_streams)
150