Coverage for amazonorders/entity/parsable.py: 93.75%
16 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-16 21:17 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-16 21:17 +0000
1import logging
3from amazonorders.exception import AmazonOrdersError
5__author__ = "Alex Laird"
6__copyright__ = "Copyright 2024, Alex Laird"
7__version__ = "0.0.5"
9logger = logging.getLogger(__name__)
12class Parsable:
13 def __init__(self,
14 parsed):
15 self.parsed = parsed
17 def safe_parse(self, parse_function):
18 if not parse_function.__name__.startswith("_parse_"):
19 raise AmazonOrdersError("This name of the `parse_function` passed to this method must start with `_parse_`")
21 try:
22 return parse_function()
23 except (AttributeError, IndexError):
24 logger.warning("When building {}, `{}` could not be parsed.".format(self.__class__.__name__,
25 parse_function.__name__.split(
26 "_parse_")[1]),
27 exc_info=True)