(cell, config)
| 4 | |
| 5 | |
| 6 | def parse(cell, config): |
| 7 | parts = [part.strip() for part in cell.split(None, 1)] |
| 8 | if not parts: |
| 9 | return {'connection': '', 'sql': ''} |
| 10 | if parts[0].startswith('[') and parts[0].endswith(']'): |
| 11 | section = parts[0].lstrip('[').rstrip(']') |
| 12 | parser = CP.ConfigParser() |
| 13 | parser.read(config.dsn_filename) |
| 14 | cfg_dict = dict(parser.items(section)) |
| 15 | |
| 16 | connection = str(URL(**cfg_dict)) |
| 17 | sql = parts[1] if len(parts) > 1 else '' |
| 18 | elif '@' in parts[0] or '://' in parts[0]: |
| 19 | connection = parts[0] |
| 20 | if len(parts) > 1: |
| 21 | sql = parts[1] |
| 22 | else: |
| 23 | sql = '' |
| 24 | else: |
| 25 | connection = '' |
| 26 | sql = cell |
| 27 | return {'connection': connection.strip(), |
| 28 | 'sql': sql.strip()} |
no outgoing calls