add deprecation warnings in the code

This commit is contained in:
Sarah Hoffmann
2024-08-09 17:40:15 +02:00
parent 6527b7cdcd
commit fd33ef92dc
3 changed files with 20 additions and 2 deletions

View File

@@ -271,3 +271,7 @@ if (INSTALL_MUNIN_PLUGINS)
munin/nominatim_requests munin/nominatim_requests
DESTINATION ${NOMINATIM_MUNINDIR}) DESTINATION ${NOMINATIM_MUNINDIR})
endif() 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")

View File

@@ -119,7 +119,13 @@ class CommandlineParser:
log.warning('Using project directory: %s', str(args.project_dir)) log.warning('Using project directory: %s', str(args.project_dir))
try: 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: except UsageError as exception:
if log.isEnabledFor(logging.DEBUG): if log.isEnabledFor(logging.DEBUG):
raise # use Python's exception printing raise # use Python's exception printing
@@ -169,6 +175,8 @@ class AdminServe:
if args.engine == 'php': if args.engine == 'php':
if args.config.lib_dir.php is None: if args.config.lib_dir.php is None:
raise UsageError("PHP frontend not configured.") 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') run_php_server(args.server, args.project_dir / 'website')
else: else:
asyncio.run(self.run_uvicorn(args)) asyncio.run(self.run_uvicorn(args))

View File

@@ -38,10 +38,12 @@ LOG = logging.getLogger()
def create(dsn: str, data_dir: Path) -> 'LegacyTokenizer': def create(dsn: str, data_dir: Path) -> 'LegacyTokenizer':
""" Create a new instance of the tokenizer provided by this module. """ 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) 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 """ Copies the PostgreSQL normalisation module into the project
directory if necessary. For historical reasons the module is directory if necessary. For historical reasons the module is
saved in the '/module' subdirectory and not with the other tokenizer 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) LOG.info("Using custom path for database module at '%s'", config_module_path)
return 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. # Compatibility mode for builddir installations.
if module_dir.exists() and src_dir.samefile(module_dir): if module_dir.exists() and src_dir.samefile(module_dir):
LOG.info('Running from build directory. Leaving database module as is.') LOG.info('Running from build directory. Leaving database module as is.')