| LEFT | RIGHT |
| 1 # This file is part of the Adblock Plus web scripts, | 1 # This file is part of the Adblock Plus web scripts, |
| 2 # Copyright (C) 2006-present eyeo GmbH | 2 # Copyright (C) 2006-present eyeo GmbH |
| 3 # | 3 # |
| 4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify |
| 5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as |
| 6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. |
| 7 # | 7 # |
| 8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, |
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 return self | 228 return self |
| 229 | 229 |
| 230 def __exit__(self, type, value, traceback): | 230 def __exit__(self, type, value, traceback): |
| 231 return False | 231 return False |
| 232 | 232 |
| 233 def close(self): | 233 def close(self): |
| 234 pass | 234 pass |
| 235 | 235 |
| 236 @property | 236 @property |
| 237 def version(self): | 237 def version(self): |
| 238 return randint(1, 10) | 238 return randint(1, 2 ** 32) |
| 239 | 239 |
| 240 def get_path(self, filename): | 240 def get_path(self, filename): |
| 241 return os.path.join(self._dir, *filename.split('/')) | 241 return os.path.join(self._dir, *filename.split('/')) |
| 242 | 242 |
| 243 def has_file(self, filename): | 243 def has_file(self, filename): |
| 244 return os.path.isfile(self.get_path(filename)) | 244 return os.path.isfile(self.get_path(filename)) |
| 245 | 245 |
| 246 def read_file(self, filename, binary=False): | 246 def read_file(self, filename, binary=False): |
| 247 path = self.get_path(filename) | 247 path = self.get_path(filename) |
| 248 | 248 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 | 361 |
| 362 | 362 |
| 363 def create_source(path, cached=False, revision=None): | 363 def create_source(path, cached=False, revision=None): |
| 364 """Create a source from path and optional revision. | 364 """Create a source from path and optional revision. |
| 365 | 365 |
| 366 `cached` flag activates caching. This can be used to optimize performance | 366 `cached` flag activates caching. This can be used to optimize performance |
| 367 if no changes are expected on the filesystem after the source was created. | 367 if no changes are expected on the filesystem after the source was created. |
| 368 This is usually the case with static generation (as opposed to dynamic | 368 This is usually the case with static generation (as opposed to dynamic |
| 369 preview). | 369 preview). |
| 370 | 370 |
| 371 If `revision` option is provided, the `path` is assumed to be pointing to a | |
| 372 Mercurial repository. In this case the source will return the content of | |
| 373 selected revision (using `MercurialSource`) instead of the content of the | |
| 374 directory. Note that any local changes will be ignored in this case. | |
| 375 | |
| 376 If `settings.ini` in the source contains `[paths]` section with an | 371 If `settings.ini` in the source contains `[paths]` section with an |
| 377 `additional-paths` key that contains the list of additional root folders, | 372 `additional-paths` key that contains the list of additional root folders, |
| 378 `MultiSource` will be instantiated and its bases will be the original | 373 `MultiSource` will be instantiated and its bases will be the original |
| 379 source plus an additional source for each additional root folder. | 374 source plus an additional source for each additional root folder. |
| 380 `MultiSource` looks up files in its base sources in the order they are | 375 `MultiSource` looks up files in its base sources in the order they are |
| 381 provided, so the files in the additional folders will only be used if the | 376 provided, so the files in the additional folders will only be used if the |
| 382 original source doesn't contain that file. | 377 original source doesn't contain that file. |
| 383 """ | 378 """ |
| 384 source = FileSource(path) | 379 source = FileSource(path) |
| 385 | 380 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 402 'resolve_link', | 397 'resolve_link', |
| 403 'read_config', | 398 'read_config', |
| 404 'read_template', | 399 'read_template', |
| 405 'read_locale', | 400 'read_locale', |
| 406 'read_include', | 401 'read_include', |
| 407 'exec_file', | 402 'exec_file', |
| 408 ]: | 403 ]: |
| 409 setattr(source, fname, _memoize(getattr(source, fname))) | 404 setattr(source, fname, _memoize(getattr(source, fname))) |
| 410 | 405 |
| 411 return source | 406 return source |
| LEFT | RIGHT |