| 45 | |
| 46 | |
| 47 | def import_tokens(tokens): |
| 48 | # XXX Document me |
| 49 | # import as many as we can |
| 50 | rval = None |
| 51 | for i in range(len(tokens)): |
| 52 | modname = ".".join(tokens[: i + 1]) |
| 53 | # XXX: try using getattr, and then merge with load_tokens |
| 54 | try: |
| 55 | logger.info("importing %s" % modname) |
| 56 | exec(f"import {modname}") |
| 57 | exec(f"rval = {modname}") |
| 58 | except ImportError as e: |
| 59 | logger.info("failed to import %s" % modname) |
| 60 | logger.info("reason: %s" % str(e)) |
| 61 | break |
| 62 | return rval, tokens[i:] |
| 63 | |
| 64 | |
| 65 | def load_tokens(tokens): |