|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- """Errors for invalid slice indices"""
- # pylint: disable=too-few-public-methods, no-self-use
-
-
- TESTLIST = [1, 2, 3]
-
- # Invalid indices
- def function1():
- """functions used as indices"""
- return TESTLIST[id:id:] # [invalid-slice-index,invalid-slice-index]
-
- def function2():
- """strings used as indices"""
- return TESTLIST['0':'1':] # [invalid-slice-index,invalid-slice-index]
-
- def function3():
- """class without __index__ used as index"""
-
- class NoIndexTest(object):
- """Class with no __index__ method"""
- pass
-
- return TESTLIST[NoIndexTest()::] # [invalid-slice-index]
-
- # Valid indices
- def function4():
- """integers used as indices"""
- return TESTLIST[0:0:0] # no error
-
- def function5():
- """None used as indices"""
- return TESTLIST[None:None:None] # no error
-
- def function6():
- """class with __index__ used as index"""
- class IndexTest(object):
- """Class with __index__ method"""
- def __index__(self):
- """Allow objects of this class to be used as slice indices"""
- return 0
-
- return TESTLIST[IndexTest():None:None] # no error
-
- def function7():
- """class with __index__ in superclass used as index"""
- class IndexType(object):
- """Class with __index__ method"""
- def __index__(self):
- """Allow objects of this class to be used as slice indices"""
- return 0
-
- class IndexSubType(IndexType):
- """Class with __index__ in parent"""
- pass
-
- return TESTLIST[IndexSubType():None:None] # no error
-
- def function8():
- """slice object used as index"""
- return TESTLIST[slice(1, 2, 3)] # no error
|