bpo-35843: Implement __getitem__ for _NamespacePath (GH-11690)

This commit is contained in:
Anthony Sottile 2019-03-08 10:58:00 -08:00 committed by Miss Islington (bot)
parent 8a1bab9291
commit ab9b31f947
4 changed files with 888 additions and 869 deletions

View File

@ -1163,6 +1163,9 @@ class _NamespacePath:
def __iter__(self):
return iter(self._recalculate())
def __getitem__(self, index):
return self._recalculate()[index]
def __setitem__(self, index, path):
self._path[index] = path

View File

@ -332,6 +332,12 @@ class LoaderTests(NamespacePackageTest):
self.assertIsNone(foo.__spec__.origin)
self.assertIsNone(foo.__file__)
def test_path_indexable(self):
# bpo-35843
import foo
expected_path = os.path.join(self.root, 'portion1', 'foo')
self.assertEqual(foo.__path__[0], expected_path)
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1 @@
Implement ``__getitem__`` for ``_NamespacePath``. Patch by Anthony Sottile.

File diff suppressed because it is too large Load Diff