Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2016 The LUCI Authors. All rights reserved. | 1 # Copyright 2016 The LUCI Authors. All rights reserved. |
| 2 # Use of this source code is governed under the Apache License, Version 2.0 | 2 # Use of this source code is governed under the Apache License, Version 2.0 |
| 3 # that can be found in the LICENSE file. | 3 # that can be found in the LICENSE file. |
| 4 | 4 |
| 5 from __future__ import absolute_import | 5 from __future__ import absolute_import |
| 6 import contextlib | 6 import contextlib |
| 7 import collections | 7 import collections |
| 8 import copy | 8 import copy |
| 9 import keyword | 9 import keyword |
| 10 import re | 10 import re |
| (...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 640 """Note: Injected dependencies are NOT available in __init__().""" | 640 """Note: Injected dependencies are NOT available in __init__().""" |
| 641 super(RecipeApiPlain, self).__init__() | 641 super(RecipeApiPlain, self).__init__() |
| 642 | 642 |
| 643 self._module = module | 643 self._module = module |
| 644 | 644 |
| 645 assert isinstance(test_data, (ModuleTestData, DisabledTestData)) | 645 assert isinstance(test_data, (ModuleTestData, DisabledTestData)) |
| 646 self._test_data = test_data | 646 self._test_data = test_data |
| 647 | 647 |
| 648 # If we're the 'root' api, inject directly into 'self'. | 648 # If we're the 'root' api, inject directly into 'self'. |
| 649 # Otherwise inject into 'self.m' | 649 # Otherwise inject into 'self.m' |
| 650 self.m = self if module is None else ModuleInjectionSite(self) | 650 if not isinstance(module, types.ModuleType): |
| 651 self.m = self | |
| 652 else: | |
| 653 self.m = ModuleInjectionSite(self) | |
|
iannucci
2016/11/19 00:15:32
this is really dumb, but it's what caused the erro
| |
| 651 | 654 |
| 652 # If our module has a test api, it gets injected here. | 655 # If our module has a test api, it gets injected here. |
| 653 self.test_api = None | 656 self.test_api = None |
| 654 | 657 |
| 655 # Config goes here. | 658 # Config goes here. |
| 656 self.c = None | 659 self.c = None |
| 657 | 660 |
| 658 def initialize(self): | 661 def initialize(self): |
| 659 """ | 662 """ |
| 660 Initializes the recipe module after it has been instantiated with all | 663 Initializes the recipe module after it has been instantiated with all |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 728 config_object or self.c, optional=optional) | 731 config_object or self.c, optional=optional) |
| 729 | 732 |
| 730 def resource(self, *path): | 733 def resource(self, *path): |
| 731 """Returns path to a file under <recipe module>/resources/ directory. | 734 """Returns path to a file under <recipe module>/resources/ directory. |
| 732 | 735 |
| 733 Args: | 736 Args: |
| 734 path: path relative to module's resources/ directory. | 737 path: path relative to module's resources/ directory. |
| 735 """ | 738 """ |
| 736 # TODO(vadimsh): Verify that file exists. Including a case like: | 739 # TODO(vadimsh): Verify that file exists. Including a case like: |
| 737 # module.resource('dir').join('subdir', 'file.py') | 740 # module.resource('dir').join('subdir', 'file.py') |
| 738 return self._module.MODULE_DIRECTORY.join('resources', *path) | 741 return self._module.RESOURCE_DIRECTORY.join(*path) |
| 739 | 742 |
| 740 def package_repo_resource(self, *path): | 743 def package_repo_resource(self, *path): |
| 741 """Returns a resource path, where path is relative to the root of | 744 """Returns a resource path, where path is relative to the root of |
| 742 the package repo where this module is defined. | 745 the package repo where this module is defined. |
| 743 """ | 746 """ |
| 744 return self._module.PACKAGE_REPO_ROOT.join(*path) | 747 return self._module.PACKAGE_REPO_ROOT.join(*path) |
| 745 | 748 |
| 746 @property | 749 @property |
| 747 def name(self): | 750 def name(self): |
| 748 return self._module.NAME | 751 return self._module.NAME |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 928 """ | 931 """ |
| 929 Gets the BoundProperty version of this Property. Requires a name. | 932 Gets the BoundProperty version of this Property. Requires a name. |
| 930 """ | 933 """ |
| 931 return BoundProperty( | 934 return BoundProperty( |
| 932 self._default, self.help, self.kind, name, property_type, module, | 935 self._default, self.help, self.kind, name, property_type, module, |
| 933 self.param_name) | 936 self.param_name) |
| 934 | 937 |
| 935 class UndefinedPropertyException(TypeError): | 938 class UndefinedPropertyException(TypeError): |
| 936 pass | 939 pass |
| 937 | 940 |
| OLD | NEW |