in src/cfnlint/template.py [0:0]
def get_location_yaml(self, text, path):
"""
Get the location information
"""
LOGGER.debug('Get location of path %s', path)
result = None
if not path:
result = self._loc(text)
elif len(path) > 1:
try:
result = self.get_location_yaml(text[path[0]], path[1:])
except KeyError as err:
pass
# TypeError will help catch string indices must be integers for when
# we parse JSON string and get a path inside that json string
except TypeError as err:
pass
if not result:
try:
for key in text:
if key == path[0]:
result = self._loc(key)
except AttributeError as err:
LOGGER.debug(err)
else:
# If the last item of the path is an integer, and the vaue is an array,
# Get the location of the item in the array
if isinstance(text, list) and isinstance(path[0], int):
try:
result = self._loc(text[path[0]])
except AttributeError as err:
LOGGER.debug(err)
else:
try:
for key in text:
if key == path[0]:
result = self._loc(key)
except AttributeError as err:
LOGGER.debug(err)
return result