@@ -160,15 +160,30 @@ def __init__(self, impl, registry):
160
160
self .lock = threading .Lock ()
161
161
162
162
def get_spec (self , name , package ):
163
+ if not package :
164
+ # if there's no package, we can't do any conversion
165
+ return name
166
+
163
167
spec = name
164
- isabs = os .path .isabs (name )
168
+ isabspath = os .path .isabs (name )
169
+ colon_in_name = ':' in name
170
+ isabsspec = colon_in_name and (not isabspath )
171
+ isrelspec = (not isabsspec ) and (not isabspath )
172
+
173
+ # if it's already an absolute spec, we don't need to do anything,
174
+ # but if it's a relative spec or an absolute path, we need to try
175
+ # to convert it to an absolute spec
176
+
177
+ if isrelspec :
178
+ # convert relative asset spec to absolute asset spec
179
+ pp = package_path (package )
180
+ spec = os .path .join (pp , spec )
181
+ spec = asset_spec_from_abspath (spec , package )
165
182
166
- if (not isabs ) and (not ':' in name ) and package :
167
- # relative asset spec
168
- if not isabs :
169
- pp = package_path (package )
170
- spec = os .path .join (pp , spec )
183
+ elif isabspath :
184
+ # convert absolute path to absolute asset spec
171
185
spec = asset_spec_from_abspath (spec , package )
186
+
172
187
return spec
173
188
174
189
@property # wait until completely necessary to look up translator
@@ -177,12 +192,16 @@ def translate(self):
177
192
178
193
@property # wait until completely necessary to look up debug_templates
179
194
def debug (self ):
180
- settings = self .registry .settings or {}
195
+ settings = self .registry .settings
196
+ if settings is None :
197
+ return False
181
198
return settings .get ('debug_templates' , False )
182
199
183
200
@property # wait until completely necessary to look up reload_templates
184
201
def auto_reload (self ):
185
- settings = self .registry .settings or {}
202
+ settings = self .registry .settings
203
+ if settings is None :
204
+ return False
186
205
return settings .get ('reload_templates' , False )
187
206
188
207
def __call__ (self , info ):
@@ -220,7 +239,7 @@ def __call__(self, info):
220
239
raise ValueError (
221
240
'Missing template asset: %s (%s)' % (spec , abspath ))
222
241
renderer = self .impl (abspath , self )
223
- settings = info .settings or {}
242
+ settings = info .settings
224
243
if not settings .get ('reload_assets' ):
225
244
# cache the template
226
245
self .lock .acquire ()
@@ -268,7 +287,9 @@ def __init__(self, name=None, package=None, registry=None):
268
287
269
288
@reify
270
289
def settings (self ):
271
- settings = self .registry .settings or {}
290
+ settings = self .registry .settings
291
+ if settings is None :
292
+ settings = {}
272
293
return settings
273
294
274
295
@reify
0 commit comments