def recreate_views(args): from dependencies import dependencies_manager views = definitions.defined_views() existing_views = sa_util.view_list() updates = dependencies_manager.updates_for(views) needed = [] for update in updates: if update in views: if update in existing_views: continue needed.append(update) needed.reverse() print needed sa_util.build_views_and_summaries( items=needed, dependencies=False, verbose=args.verbose, ) sa_util.swap_tables(verbose=args.verbose)
def import_csv(args): verbose = args.verbose filename = args.filename tablename = args.tablename delimiter = args.delimiter filename = os.path.join(config.DATA_PATH, 'import', filename) if delimiter == '\\t': delimiter = '\t' if not tablename: tablename = os.path.splitext(os.path.basename(filename))[0] if verbose: print('Importing %s' % args.filename) csv_util.import_single( filename, tablename, encoding=args.encoding, delimiter=delimiter, verbose=verbose ) sa_util.swap_tables(verbose=verbose)
def main(): commands = [ 'export_all', 'export_custom', 'web', 'clean_db', 'db_functions', 'clear_views', 'recreate_views', ] parser = argparse.ArgumentParser( description='Command line interface for munge' ) parser.add_argument('-v', '--verbose', action='count', default=0) subparsers = parser.add_subparsers(help='commands', dest='command') for command in commands: subparsers.add_parser(command) import_csv_parser = subparsers.add_parser('import_csv') import_csv_parser.add_argument("--encoding", default='utf-8') import_csv_parser.add_argument("--delimiter", default=',') import_csv_parser.add_argument('--tablename', default=None) import_csv_parser.add_argument('filename') swap_temp_parser = subparsers.add_parser('swap_temp') swap_temp_parser.add_argument('-f', '--force', action="store_true") module_commands = [ 'import', 'summaries', ] for command in module_commands: module_parser = subparsers.add_parser(command) module_parser.add_argument('-f', '--force', action="store_true") module_parser.add_argument('-d', '--no-dependants', action="store_true") module_parser.add_argument('-a', '--all', action="store_true") module_parser.add_argument('-t', '--test', action="store_true") module_parser.add_argument('-n', '--noupdate', action="store_true") module_parser.add_argument('-u', '--updateonly', action="store_true") module_parser.add_argument('-s', '--stage', default=0, type=int) module_parser.add_argument('module', nargs='*') dep_parser = subparsers.add_parser('deps') dep_parser.add_argument('items', nargs='*') dep_parser = subparsers.add_parser('sql') dep_parser.add_argument('items', nargs='*') args = parser.parse_args() if args.command == 'deps': deps(args) if args.command == 'sql': sql(args) if args.command == 'export_all': export_all(verbose=args.verbose) if args.command == 'export_all': export_all(verbose=args.verbose) elif args.command == 'import': import_module(args) sa_util.swap_tables(verbose=args.verbose) elif args.command == 'swap_temp': sa_util.swap_tables(verbose=args.verbose, force=args.force) elif args.command == 'summaries': build_views_summaries(args) if not args.noupdate: sa_util.swap_tables(verbose=args.verbose, force=args.force) elif args.command == 'export_custom': export_custom(verbose=args.verbose) elif args.command == 'import_csv': import_csv(args) elif args.command == 'web': webserver(args) elif args.command == 'clean_db': clean_db(args) elif args.command == 'clear_views': clear_views(args) elif args.command == 'recreate_views': recreate_views(args) elif args.command == 'db_functions': db_functions(verbose=args.verbose)