|
389 | 389 | " self.doc_baseurl = (u.path or '/').rstrip('/') or '/'\n", |
390 | 390 | " if 'lib_path' not in self: self['lib_path'] = self.lib_name.replace('-', '_')\n", |
391 | 391 | "\n", |
392 | | - " def __getattr__(self, k):\n", |
393 | | - " v = super().__getattr__(k)\n", |
394 | | - " return self.config_path / v if k in _path_keys else v\n", |
| 392 | + " @property\n", |
| 393 | + " def d(self): return {k:v for k,v in super().items()}\n", |
| 394 | + "\n", |
| 395 | + " def __getattr__(self, k): return stop(AttributeError(k)) if k=='d' or k not in self.d else self.get(k)\n", |
| 396 | + " def __getitem__(self, k): return stop(IndexError(k)) if k not in self.d else self.get(k)\n", |
395 | 397 | "\n", |
396 | 398 | " def get(self, k, default=None):\n", |
397 | | - " v = super().get(k, default)\n", |
398 | | - " return self.config_path / v if k in _path_keys and v else v" |
| 399 | + " v = self.d.get(k, default)\n", |
| 400 | + " if v is None: return None\n", |
| 401 | + " return self.config_path / v if k in _path_keys else v\n", |
| 402 | + "\n", |
| 403 | + " def path(self, k, default=None):\n", |
| 404 | + " v = self.d.get(k, default)\n", |
| 405 | + " return v if v is None else self.config_path / v" |
399 | 406 | ] |
400 | 407 | }, |
401 | 408 | { |
|
0 commit comments