import types
import urllib.request as urlrequest
-import requests
-
-from nominatim_core.errors import UsageError
-from nominatim_core.db import status
-from nominatim_core.db.connection import Connection, connect
+from ..errors import UsageError
+from ..db import status
+from ..db.connection import Connection, connect, server_version_tuple
from .exec_utils import run_osm2pgsql
try:
from osmium.replication.server import ReplicationServer
from osmium import WriteHandler
from osmium import version as pyo_version
-except ImportError as exc:
+ import requests
+except ModuleNotFoundError as exc:
logging.getLogger().critical("pyosmium not installed. Replication functions not available.\n"
- "To install pyosmium via pip: pip3 install osmium")
+ "To install pyosmium via pip: pip install osmium")
raise UsageError("replication tools not available") from exc
LOG = logging.getLogger()
# Read updates into file.
with _make_replication_server(options['base_url'], socket_timeout) as repl:
outhandler = WriteHandler(str(options['import_file']))
- endseq = repl.apply_diffs(outhandler, startseq + 1,
+ # tyoing: work around typing bug in pyosmium 4.0
+ endseq = repl.apply_diffs(outhandler, startseq + 1, # type: ignore[arg-type]
max_size=options['max_diff_size'] * 1024)
outhandler.close()
# Consume updates with osm2pgsql.
options['append'] = True
- options['disable_jit'] = conn.server_version_tuple() >= (11, 0)
+ options['disable_jit'] = server_version_tuple(conn) >= (11, 0)
run_osm2pgsql(options)
# Handle deletions