X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/3742fa2929619a4c54a50d3e79e0eeadb4d6ca6f..98c1b923fc090f830b7b3a575e3d08ba399bd870:/src/nominatim_db/clicmd/refresh.py diff --git a/src/nominatim_db/clicmd/refresh.py b/src/nominatim_db/clicmd/refresh.py index 363bad78..1d1977d2 100644 --- a/src/nominatim_db/clicmd/refresh.py +++ b/src/nominatim_db/clicmd/refresh.py @@ -11,19 +11,17 @@ from typing import Tuple, Optional import argparse import logging from pathlib import Path +import asyncio from ..config import Configuration from ..db.connection import connect, table_exists from ..tokenizer.base import AbstractTokenizer from .args import NominatimArgs -# Do not repeat documentation of subcommand classes. -# pylint: disable=C0111 -# Using non-top-level imports to avoid eventually unused imports. -# pylint: disable=E0012,C0415 LOG = logging.getLogger() + def _parse_osm_object(obj: str) -> Tuple[str, int]: """ Parse the given argument into a tuple of OSM type and ID. Raises an ArgumentError if the format is not recognized. @@ -68,7 +66,8 @@ class UpdateRefresh: group.add_argument('--importance', action='store_true', help='Recompute place importances (expensive!)') group.add_argument('--website', action='store_true', - help='Refresh the directory that serves the scripts for the web API') + help='DEPRECATED. This function has no function anymore' + ' and will be removed in a future version.') group.add_argument('--data-object', action='append', type=_parse_osm_object, metavar='OBJECT', help='Mark the given OSM object as requiring an update' @@ -84,8 +83,7 @@ class UpdateRefresh: group.add_argument('--enable-debug-statements', action='store_true', help='Enable debug warning statements in functions') - - def run(self, args: NominatimArgs) -> int: #pylint: disable=too-many-branches, too-many-statements + def run(self, args: NominatimArgs) -> int: from ..tools import refresh, postcodes from ..indexer.indexer import Indexer @@ -99,7 +97,7 @@ class UpdateRefresh: args.project_dir, tokenizer) indexer = Indexer(args.config.get_libpq_dsn(), tokenizer, args.threads or 1) - indexer.index_postcodes() + asyncio.run(indexer.index_postcodes()) else: LOG.error("The place table doesn't exist. " "Postcode updates on a frozen database is not possible.") @@ -129,7 +127,7 @@ class UpdateRefresh: LOG.warning('Import secondary importance raster data from %s', args.project_dir) if refresh.import_secondary_importance(args.config.get_libpq_dsn(), - args.project_dir) > 0: + args.project_dir) > 0: LOG.fatal('FATAL: Cannot update secondary importance raster data') return 1 need_function_refresh = True @@ -158,14 +156,8 @@ class UpdateRefresh: refresh.recompute_importance(conn) if args.website: - webdir = args.project_dir / 'website' - LOG.warning('Setting up website directory at %s', webdir) - # This is a little bit hacky: call the tokenizer setup, so that - # the tokenizer directory gets repopulated as well, in case it - # wasn't there yet. - self._get_tokenizer(args.config) - with connect(args.config.get_libpq_dsn()) as conn: - refresh.setup_website(webdir, args.config, conn) + LOG.error('WARNING: Website setup is no longer required. ' + 'This function will be removed in future version of Nominatim.') if args.data_object or args.data_area: with connect(args.config.get_libpq_dsn()) as conn: @@ -177,7 +169,6 @@ class UpdateRefresh: return 0 - def _get_tokenizer(self, config: Configuration) -> AbstractTokenizer: if self.tokenizer is None: from ..tokenizer import factory as tokenizer_factory