database administration and querying.
"""
from typing import Optional, Any, List, Union
+import importlib
import logging
import os
import sys
def nominatim_version_text(self) -> str:
""" Program name and version number as string
"""
- text = f'Nominatim version {version.version_str()}'
+ text = f'Nominatim version {version.NOMINATIM_VERSION!s}'
if version.GIT_COMMIT_HASH is not None:
text += f' ({version.GIT_COMMIT_HASH})'
return text
group.add_argument('--server', default='127.0.0.1:8088',
help='The address the server will listen to.')
group.add_argument('--engine', default='php',
- choices=('php', 'sanic', 'falcon', 'starlette'),
+ choices=('php', 'falcon', 'starlette'),
help='Webserver framework to run. (default: php)')
if args.engine == 'php':
run_php_server(args.server, args.project_dir / 'website')
else:
+ import uvicorn # pylint: disable=import-outside-toplevel
server_info = args.server.split(':', 1)
host = server_info[0]
if len(server_info) > 1:
else:
port = 8088
- if args.engine == 'sanic':
- import nominatim.server.sanic.server
+ server_module = importlib.import_module(f'nominatim.server.{args.engine}.server')
- app = nominatim.server.sanic.server.get_application(args.project_dir)
- app.run(host=host, port=port, debug=True)
- else:
- import uvicorn
-
- if args.engine == 'falcon':
- import nominatim.server.falcon.server as server_module
- elif args.engine == 'starlette':
- import nominatim.server.starlette.server as server_module
-
- app = server_module.get_application(args.project_dir)
- uvicorn.run(app, host=host, port=port)
+ app = server_module.get_application(args.project_dir)
+ uvicorn.run(app, host=host, port=port)
return 0
-def get_set_parser(**kwargs: Any) -> CommandlineParser:
+def get_set_parser() -> CommandlineParser:
"""\
Initializes the parser and adds various subcommands for
nominatim cli.
parser.add_subcommand('export', QueryExport())
parser.add_subcommand('serve', AdminServe())
- if kwargs.get('phpcgi_path'):
- parser.add_subcommand('search', clicmd.APISearch())
- parser.add_subcommand('reverse', clicmd.APIReverse())
- parser.add_subcommand('lookup', clicmd.APILookup())
- parser.add_subcommand('details', clicmd.APIDetails())
- parser.add_subcommand('status', clicmd.APIStatus())
- else:
- parser.parser.epilog = 'php-cgi not found. Query commands not available.'
+ parser.add_subcommand('search', clicmd.APISearch())
+ parser.add_subcommand('reverse', clicmd.APIReverse())
+ parser.add_subcommand('lookup', clicmd.APILookup())
+ parser.add_subcommand('details', clicmd.APIDetails())
+ parser.add_subcommand('status', clicmd.APIStatus())
return parser
Command-line tools for importing, updating, administrating and
querying the Nominatim database.
"""
- parser = get_set_parser(**kwargs)
-
- return parser.run(**kwargs)
+ return get_set_parser().run(**kwargs)