From 667197a47e6feaa7c336f6d857f10685ee85b8d9 Mon Sep 17 00:00:00 2001 From: Robbe Haesendonck Date: Tue, 26 Sep 2023 11:59:32 +0200 Subject: [PATCH] Changed naming of flags. Made sure legacy import is also still ok --- nominatim/clicmd/args.py | 3 +-- nominatim/clicmd/setup.py | 26 ++++++++++++-------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/nominatim/clicmd/args.py b/nominatim/clicmd/args.py index a52f5217..433435bc 100644 --- a/nominatim/clicmd/args.py +++ b/nominatim/clicmd/args.py @@ -87,8 +87,7 @@ class NominatimArgs: offline: bool ignore_errors: bool index_noanalyse: bool - only_import_data: bool - only_prepare_database: bool + prepare_database: bool # Arguments to 'index' boundaries_only: bool diff --git a/nominatim/clicmd/setup.py b/nominatim/clicmd/setup.py index 4df14bc5..20dbba23 100644 --- a/nominatim/clicmd/setup.py +++ b/nominatim/clicmd/setup.py @@ -45,7 +45,7 @@ class SetupAll: help='OSM file to be imported' ' (repeat for importing multiple files)') group1.add_argument('--continue', dest='continue_at', - choices=['load-data', 'indexing', 'db-postprocess'], + choices=['import-from-file', 'load-data', 'indexing', 'db-postprocess'], help='Continue an import that was interrupted') group2 = parser.add_argument_group('Optional arguments') group2.add_argument('--osm2pgsql-cache', metavar='SIZE', type=int, @@ -65,9 +65,7 @@ class SetupAll: help='Continue import even when errors in SQL are present') group3.add_argument('--index-noanalyse', action='store_true', help='Do not perform analyse operations during index (expert only)') - group3.add_argument('--only-import-data', action='store_true', - help='Do not attempt to create the database') - group3.add_argument('--only-prepare-database', action='store_true', + group3.add_argument('--prepare-database', action='store_true', help='Create the database but do not import any data') @@ -82,15 +80,15 @@ class SetupAll: if args.continue_at is None: files = args.get_osm_file_list() - if not files and not args.only_prepare_database: + if not files and not args.prepare_database: raise UsageError("No input files (use --osm-file).") - if args.only_import_data and args.only_prepare_database: + if args.continue_at is not None and args.prepare_database: raise UsageError( - "Cannot use --only-import-data and --only-prepare-database together." + "Cannot use --continue and --prepare-database together." ) - if args.only_prepare_database or self._is_complete_import(args): + if args.prepare_database or self._is_complete_import(args): LOG.warning('Creating database') database_import.setup_database_skeleton(args.config.get_libpq_dsn(), rouser=args.config.DATABASE_WEBUSER) @@ -98,8 +96,8 @@ class SetupAll: if not self._is_complete_import(args): return 0 - if not args.only_prepare_database or \ - args.only_import_data or \ + if not args.prepare_database or \ + args.continue_at == 'import-from-file' or \ self._is_complete_import(args): # Check if the correct plugins are installed database_import.check_existing_database_plugins(args.config.get_libpq_dsn()) @@ -130,7 +128,7 @@ class SetupAll: self._setup_tables(args.config, args.reverse_only) - if args.continue_at is None or args.continue_at == 'load-data': + if args.continue_at is None or args.continue_at in ('import-from-file', 'load-data'): LOG.warning('Initialise tables') with connect(args.config.get_libpq_dsn()) as conn: database_import.truncate_data_tables(conn) @@ -141,12 +139,12 @@ class SetupAll: LOG.warning("Setting up tokenizer") tokenizer = self._get_tokenizer(args.continue_at, args.config) - if args.continue_at is None or args.continue_at == 'load-data': + if args.continue_at is None or args.continue_at in ('import-from-file', 'load-data'): LOG.warning('Calculate postcodes') postcodes.update_postcodes(args.config.get_libpq_dsn(), args.project_dir, tokenizer) - if args.continue_at is None or args.continue_at in ('load-data', 'indexing'): + if args.continue_at is None or args.continue_at in ('import-from-file', 'load-data', 'indexing'): LOG.warning('Indexing places') indexer = Indexer(args.config.get_libpq_dsn(), tokenizer, num_threads) indexer.index_full(analyse=not args.index_noanalyse) @@ -178,7 +176,7 @@ class SetupAll: def _is_complete_import(self, args: NominatimArgs) -> bool: """ Determine if the import is complete or if only the database should be prepared. """ - return not args.only_import_data and not args.only_prepare_database + return args.continue_at is None and not args.prepare_database def _setup_tables(self, config: Configuration, reverse_only: bool) -> None: -- 2.39.5