From fd33ef92dcd30de9fe1ba218a474899e6707ca0d Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 9 Aug 2024 17:40:15 +0200 Subject: [PATCH] add deprecation warnings in the code --- CMakeLists.txt | 4 ++++ src/nominatim_db/cli.py | 10 +++++++++- src/nominatim_db/tokenizer/legacy_tokenizer.py | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dd5c3110..d1c2702a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -271,3 +271,7 @@ if (INSTALL_MUNIN_PLUGINS) munin/nominatim_requests DESTINATION ${NOMINATIM_MUNINDIR}) endif() + +message(WARNING "Building with CMake is deprecated and will be removed in Nominatim 5.0." + "Use Nominatim pip packages instead.\n" + "See https://nominatim.org/release-docs/develop/admin/Installation/#downloading-and-building-nominatim") diff --git a/src/nominatim_db/cli.py b/src/nominatim_db/cli.py index 93278668..88810df5 100644 --- a/src/nominatim_db/cli.py +++ b/src/nominatim_db/cli.py @@ -119,7 +119,13 @@ class CommandlineParser: log.warning('Using project directory: %s', str(args.project_dir)) try: - return args.command.run(args) + ret = args.command.run(args) + + if args.config.TOKENIZER == 'legacy': + log.warning('WARNING: the "legacy" tokenizer is deprecated ' + 'and will be removed in Nominatim 5.0.') + + return ret except UsageError as exception: if log.isEnabledFor(logging.DEBUG): raise # use Python's exception printing @@ -169,6 +175,8 @@ class AdminServe: if args.engine == 'php': if args.config.lib_dir.php is None: raise UsageError("PHP frontend not configured.") + LOG.warning('\n\nWARNING: the PHP frontend is deprecated ' + 'and will be removed in Nominatim 5.0.\n\n') run_php_server(args.server, args.project_dir / 'website') else: asyncio.run(self.run_uvicorn(args)) diff --git a/src/nominatim_db/tokenizer/legacy_tokenizer.py b/src/nominatim_db/tokenizer/legacy_tokenizer.py index fa4b3b99..04b7b881 100644 --- a/src/nominatim_db/tokenizer/legacy_tokenizer.py +++ b/src/nominatim_db/tokenizer/legacy_tokenizer.py @@ -38,10 +38,12 @@ LOG = logging.getLogger() def create(dsn: str, data_dir: Path) -> 'LegacyTokenizer': """ Create a new instance of the tokenizer provided by this module. """ + LOG.warning('WARNING: the legacy tokenizer is deprecated ' + 'and will be removed in Nominatim 5.0.') return LegacyTokenizer(dsn, data_dir) -def _install_module(config_module_path: str, src_dir: Path, module_dir: Path) -> str: +def _install_module(config_module_path: str, src_dir: Optional[Path], module_dir: Path) -> str: """ Copies the PostgreSQL normalisation module into the project directory if necessary. For historical reasons the module is saved in the '/module' subdirectory and not with the other tokenizer @@ -55,6 +57,10 @@ def _install_module(config_module_path: str, src_dir: Path, module_dir: Path) -> LOG.info("Using custom path for database module at '%s'", config_module_path) return config_module_path + # Otherwise a source dir must be given. + if src_dir is None: + raise UsageError("The legacy tokenizer cannot be used with the Nominatim pip module.") + # Compatibility mode for builddir installations. if module_dir.exists() and src_dir.samefile(module_dir): LOG.info('Running from build directory. Leaving database module as is.') -- 2.39.5