mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-10-05 15:08:32 +03:00
reduce from 3 to 2 packages
This commit is contained in:
parent
139cea5720
commit
4da4cbfe27
@ -221,22 +221,22 @@ if (BUILD_IMPORTER)
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
RENAME nominatim)
|
||||
|
||||
foreach (submodule nominatim_core nominatim_db nominatim_api)
|
||||
install(DIRECTORY src/${submodule}
|
||||
DESTINATION ${NOMINATIM_LIBDIR}/lib-python
|
||||
FILES_MATCHING PATTERN "*.py"
|
||||
PATTERN "paths.py" EXCLUDE
|
||||
PATTERN __pycache__ EXCLUDE)
|
||||
endforeach()
|
||||
|
||||
if (EXISTS ${PHP_BIN})
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/paths-py.tmpl paths-py.installed)
|
||||
else()
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/paths-py-no-php.tmpl paths-py.installed)
|
||||
endif()
|
||||
|
||||
foreach (submodule nominatim_db nominatim_api)
|
||||
install(DIRECTORY src/${submodule}
|
||||
DESTINATION ${NOMINATIM_LIBDIR}/lib-python
|
||||
FILES_MATCHING PATTERN "*.py"
|
||||
PATTERN "paths.py" EXCLUDE
|
||||
PATTERN __pycache__ EXCLUDE)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/paths-py.installed
|
||||
DESTINATION ${NOMINATIM_LIBDIR}/lib-python/nominatim_core
|
||||
DESTINATION ${NOMINATIM_LIBDIR}/lib-python/${submodule}
|
||||
RENAME paths.py)
|
||||
endforeach()
|
||||
|
||||
install(DIRECTORY lib-sql DESTINATION ${NOMINATIM_LIBDIR})
|
||||
|
||||
|
8
Makefile
8
Makefile
@ -2,10 +2,10 @@ all:
|
||||
|
||||
# Building of wheels
|
||||
|
||||
build: build-core build-db build-api
|
||||
build: clean-build build-db build-api
|
||||
|
||||
build-core:
|
||||
python3 -m build packaging/nominatim-core --outdir dist/
|
||||
clean-build:
|
||||
rm -f dist/*
|
||||
|
||||
build-db:
|
||||
python3 -m build packaging/nominatim-db --outdir dist/
|
||||
@ -29,4 +29,4 @@ lint:
|
||||
bdd:
|
||||
cd test/bdd; behave -DREMOVE_TEMPLATE=1
|
||||
|
||||
.PHONY: tests mypy pytest lint bdd build build-core build-db build-api
|
||||
.PHONY: tests mypy pytest lint bdd build clean-build build-db build-api
|
||||
|
@ -162,7 +162,7 @@ Nominatim is easiest to run from its own virtual environment. To create one, run
|
||||
|
||||
To install Nominatim directly from the source tree into the virtual environment, run:
|
||||
|
||||
/srv/nominatim-venv/bin/pip install packaging/nominatim-{core,db,api}
|
||||
/srv/nominatim-venv/bin/pip install packaging/nominatim-{db,api}
|
||||
|
||||
#### Building in legacy CMake mode
|
||||
|
||||
|
@ -20,7 +20,7 @@ configuration parameters, see the [Configuration page](../customize/Settings.md)
|
||||
|
||||
## `Configuration` class
|
||||
|
||||
::: nominatim_core.config.Configuration
|
||||
::: nominatim_api.Configuration
|
||||
options:
|
||||
members:
|
||||
- get_bool
|
||||
|
15
packaging/nominatim-api/extra_src/paths.py
Normal file
15
packaging/nominatim-api/extra_src/paths.py
Normal file
@ -0,0 +1,15 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# This file is part of Nominatim. (https://nominatim.org)
|
||||
#
|
||||
# Copyright (C) 2024 by the Nominatim developer community.
|
||||
# For a full list of authors see the git log.
|
||||
"""
|
||||
Path settings for extra data used by Nominatim.
|
||||
"""
|
||||
from pathlib import Path
|
||||
|
||||
PHPLIB_DIR = None
|
||||
DATA_DIR = None
|
||||
SQLLIB_DIR = None
|
||||
CONFIG_DIR = (Path(__file__) / '..' / 'resources' / 'settings').resolve()
|
@ -14,7 +14,8 @@ classifiers = [
|
||||
"Operating System :: OS Independent",
|
||||
]
|
||||
dependencies = [
|
||||
"nominatim-core",
|
||||
"python-dotenv",
|
||||
"pyYAML>=5.1",
|
||||
"SQLAlchemy>=1.4.31",
|
||||
"psycopg",
|
||||
"PyICU"
|
||||
@ -34,8 +35,21 @@ path = "src/nominatim_api/version.py"
|
||||
pattern = "NOMINATIM_API_VERSION = '(?P<version>[^']+)'"
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = ["src/nominatim_api"]
|
||||
include = [
|
||||
"src/nominatim_api",
|
||||
"src/nominatim_db/config.py",
|
||||
"settings",
|
||||
"extra_src/paths.py"
|
||||
]
|
||||
|
||||
exclude = [
|
||||
"src/nominatim_api/config.py"
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/nominatim_api"]
|
||||
|
||||
[tool.hatch.build.targets.wheel.force-include]
|
||||
"src/nominatim_db/config.py" = "nominatim_api/config.py"
|
||||
"extra_src/paths.py" = "nominatim_api/paths.py"
|
||||
"settings" = "nominatim_api/resources/settings"
|
||||
|
@ -1 +0,0 @@
|
||||
../../COPYING
|
@ -1,24 +0,0 @@
|
||||
Nominatim - Core Package
|
||||
=========
|
||||
|
||||
Nominatim is a tool to search OpenStreetMap data
|
||||
by name and address (geocoding) and to generate synthetic addresses of
|
||||
OSM points (reverse geocoding).
|
||||
|
||||
This is the core pacakage containing resources and code shared by
|
||||
Nominatim's frontend `nominatim-api` and backend `nominatim-db`. You
|
||||
usually don't want to install this package directly.
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
The documentation of the latest development version is in the
|
||||
`docs/` subdirectory. A HTML version can be found at
|
||||
https://nominatim.org/release-docs/develop/ .
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
The Python source code is available under a GPL license version 3 or later.
|
||||
The Lua configuration files for osm2pgsql are released under the
|
||||
Apache License, Version 2.0. All other files are under a GPLv2 license.
|
@ -1 +0,0 @@
|
||||
../../data
|
@ -1,60 +0,0 @@
|
||||
[project]
|
||||
name = "nominatim-core"
|
||||
description = "A tool for building a database of OpenStreetMap for geocoding and for searching the database. Base package for common resources for the project."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.7"
|
||||
license = 'GPL-3.0-or-later'
|
||||
maintainers = [
|
||||
{ name = "Sarah Hoffmann", email = "lonvia@denofr.de" }
|
||||
]
|
||||
keywords = [ "geocoding", "OpenStreetMap", "search" ]
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3",
|
||||
"License :: OSI Approved :: GNU General Public License (GPL)",
|
||||
"Operating System :: OS Independent",
|
||||
]
|
||||
dependencies = [
|
||||
"python-dotenv",
|
||||
"jinja2",
|
||||
"pyYAML>=5.1",
|
||||
"datrie"
|
||||
]
|
||||
dynamic = ["version"]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://nominatim.org"
|
||||
Issues = "https://github.com/osm-search/Nominatim/issues"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.version]
|
||||
source = "code"
|
||||
path = "src/nominatim_core/version.py"
|
||||
expression = "NOMINATIM_CORE_VERSION"
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = [
|
||||
"src/nominatim_core",
|
||||
"lib-sql/**.sql",
|
||||
"settings",
|
||||
"data/words.sql",
|
||||
"extra_src/nominatim_core/paths.py"
|
||||
]
|
||||
artifacts = [
|
||||
"data/country_osm_grid.sql.gz"
|
||||
]
|
||||
exclude = [
|
||||
"src/nominatim_core/paths.py"
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/nominatim_core"]
|
||||
|
||||
[tool.hatch.build.targets.wheel.force-include]
|
||||
"lib-sql" = "nominatim_core/resources/lib-sql"
|
||||
"settings" = "nominatim_core/resources/settings"
|
||||
"data/country_osm_grid.sql.gz" = "nominatim_core/resources/country_osm_grid.sql.gz"
|
||||
"data/words.sql" = "nominatim_core/resources/words.sql"
|
||||
"extra_src/nominatim_core/paths.py" = "nominatim_core/paths.py"
|
@ -1 +0,0 @@
|
||||
../../src
|
1
packaging/nominatim-db/data
Symbolic link
1
packaging/nominatim-db/data
Symbolic link
@ -0,0 +1 @@
|
||||
../../data/
|
@ -14,8 +14,11 @@ classifiers = [
|
||||
"Operating System :: OS Independent",
|
||||
]
|
||||
dependencies = [
|
||||
"nominatim-core",
|
||||
"psycopg2-binary",
|
||||
"python-dotenv",
|
||||
"jinja2",
|
||||
"pyYAML>=5.1",
|
||||
"datrie",
|
||||
"psutil",
|
||||
"PyICU"
|
||||
]
|
||||
@ -24,6 +27,7 @@ dynamic = ["version"]
|
||||
[project.urls]
|
||||
Homepage = "https://nominatim.org"
|
||||
Issues = "https://github.com/osm-search/Nominatim/issues"
|
||||
Documentation = "https://nominatim.org/release-docs/latest/"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
@ -34,10 +38,32 @@ path = "src/nominatim_db/version.py"
|
||||
pattern = "NOMINATIM_VERSION = parse_version.'(?P<version>[^-]+)"
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = ["src/nominatim_db", "scripts"]
|
||||
include = [
|
||||
"src/nominatim_db",
|
||||
"scripts",
|
||||
"lib-sql/**/*.sql",
|
||||
"settings",
|
||||
"data/words.sql",
|
||||
"extra_src/nominatim_db/paths.py"
|
||||
]
|
||||
|
||||
artifacts = [
|
||||
"data/country_osm_grid.sql.gz"
|
||||
]
|
||||
|
||||
exclude = [
|
||||
"src/nominatim_db/paths.py"
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/nominatim_db"]
|
||||
|
||||
[tool.hatch.build.targets.wheel.shared-scripts]
|
||||
"scripts" = "/"
|
||||
|
||||
[tool.hatch.build.targets.wheel.force-include]
|
||||
"lib-sql" = "nominatim_db/resources/lib-sql"
|
||||
"settings" = "nominatim_db/resources/settings"
|
||||
"data/country_osm_grid.sql.gz" = "nominatim_db/resources/country_osm_grid.sql.gz"
|
||||
"data/words.sql" = "nominatim_db/resources/words.sql"
|
||||
"extra_src/nominatim_db/paths.py" = "nominatim_db/paths.py"
|
||||
|
1
packaging/nominatim-db/settings
Symbolic link
1
packaging/nominatim-db/settings
Symbolic link
@ -0,0 +1 @@
|
||||
../../settings/
|
@ -14,8 +14,8 @@ import from this file, not from the source files directly.
|
||||
# See also https://github.com/PyCQA/pylint/issues/6006
|
||||
# pylint: disable=useless-import-alias
|
||||
|
||||
from nominatim_core.errors import (UsageError as UsageError)
|
||||
from nominatim_core.config import (Configuration as Configuration)
|
||||
from .errors import (UsageError as UsageError)
|
||||
from .config import (Configuration as Configuration)
|
||||
|
||||
from .core import (NominatimAPI as NominatimAPI,
|
||||
NominatimAPIAsync as NominatimAPIAsync)
|
||||
|
12
src/nominatim_api/config.py
Normal file
12
src/nominatim_api/config.py
Normal file
@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# This file is part of Nominatim. (https://nominatim.org)
|
||||
#
|
||||
# Copyright (C) 2024 by the Nominatim developer community.
|
||||
# For a full list of authors see the git log.
|
||||
|
||||
# This file is just a placeholder to make the config module available
|
||||
# during development. It will be replaced by nominatim_db/config.py on
|
||||
# installation.
|
||||
# pylint: skip-file
|
||||
from nominatim_db.config import *
|
@ -14,9 +14,9 @@ import asyncio
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.ext.asyncio import AsyncConnection
|
||||
|
||||
from nominatim_core.typing import SaFromClause
|
||||
from nominatim_core.db.sqlalchemy_schema import SearchTables
|
||||
from nominatim_core.db.sqlalchemy_types import Geometry
|
||||
from .typing import SaFromClause
|
||||
from .sql.sqlalchemy_schema import SearchTables
|
||||
from .sql.sqlalchemy_types import Geometry
|
||||
from .logging import log
|
||||
|
||||
T = TypeVar('T')
|
||||
|
@ -16,10 +16,10 @@ from pathlib import Path
|
||||
import sqlalchemy as sa
|
||||
import sqlalchemy.ext.asyncio as sa_asyncio
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.db.sqlalchemy_schema import SearchTables
|
||||
from nominatim_core.db.async_core_library import PGCORE_LIB, PGCORE_ERROR
|
||||
from nominatim_core.config import Configuration
|
||||
from .errors import UsageError
|
||||
from .sql.sqlalchemy_schema import SearchTables
|
||||
from .sql.async_core_library import PGCORE_LIB, PGCORE_ERROR
|
||||
from .config import Configuration
|
||||
from .sql import sqlite_functions, sqlalchemy_functions #pylint: disable=unused-import
|
||||
from .connection import SearchConnection
|
||||
from .status import get_status, StatusResult
|
||||
|
@ -12,7 +12,7 @@ import datetime as dt
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaColumn, SaRow, SaSelect
|
||||
from .typing import SaColumn, SaRow, SaSelect
|
||||
from .connection import SearchConnection
|
||||
from .logging import log
|
||||
from . import types as ntyp
|
||||
|
@ -18,8 +18,8 @@ import datetime as dt
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaSelect, SaRow
|
||||
from nominatim_core.db.sqlalchemy_types import Geometry
|
||||
from .typing import SaSelect, SaRow
|
||||
from .sql.sqlalchemy_types import Geometry
|
||||
from .types import Point, Bbox, LookupDetails
|
||||
from .connection import SearchConnection
|
||||
from .logging import log
|
||||
|
@ -12,9 +12,9 @@ import functools
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaColumn, SaSelect, SaFromClause, SaLabel, SaRow,\
|
||||
from .typing import SaColumn, SaSelect, SaFromClause, SaLabel, SaRow,\
|
||||
SaBind, SaLambdaSelect
|
||||
from nominatim_core.db.sqlalchemy_types import Geometry
|
||||
from .sql.sqlalchemy_types import Geometry
|
||||
from .connection import SearchConnection
|
||||
from . import results as nres
|
||||
from .logging import log
|
||||
|
@ -12,8 +12,8 @@ import dataclasses
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaFromClause, SaColumn, SaExpression
|
||||
from nominatim_core.utils.json_writer import JsonWriter
|
||||
from ..typing import SaFromClause, SaColumn, SaExpression
|
||||
from ..utils.json_writer import JsonWriter
|
||||
from .query import Token
|
||||
from . import db_search_lookups as lookups
|
||||
|
||||
|
@ -12,8 +12,8 @@ from typing import List, Any
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.ext.compiler import compiles
|
||||
|
||||
from nominatim_core.typing import SaFromClause
|
||||
from nominatim_core.db.sqlalchemy_types import IntArray
|
||||
from ..typing import SaFromClause
|
||||
from ..sql.sqlalchemy_types import IntArray
|
||||
|
||||
# pylint: disable=consider-using-f-string
|
||||
|
||||
|
@ -12,9 +12,9 @@ import abc
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaFromClause, SaScalarSelect, SaColumn, \
|
||||
from ..typing import SaFromClause, SaScalarSelect, SaColumn, \
|
||||
SaExpression, SaSelect, SaLambdaSelect, SaRow, SaBind
|
||||
from nominatim_core.db.sqlalchemy_types import Geometry, IntArray
|
||||
from ..sql.sqlalchemy_types import Geometry, IntArray
|
||||
from ..connection import SearchConnection
|
||||
from ..types import SearchDetails, DataLayer, GeometryFormat, Bbox
|
||||
from .. import results as nres
|
||||
|
@ -16,8 +16,8 @@ from icu import Transliterator
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaRow
|
||||
from nominatim_core.db.sqlalchemy_types import Json
|
||||
from ..typing import SaRow
|
||||
from ..sql.sqlalchemy_types import Json
|
||||
from ..connection import SearchConnection
|
||||
from ..logging import log
|
||||
from ..search import query as qmod
|
||||
|
@ -14,7 +14,7 @@ import dataclasses
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.typing import SaRow
|
||||
from ..typing import SaRow
|
||||
from ..connection import SearchConnection
|
||||
from ..logging import log
|
||||
from . import query as qmod
|
||||
|
@ -14,7 +14,7 @@ import asyncio
|
||||
|
||||
from falcon.asgi import App, Request, Response
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from ...config import Configuration
|
||||
from ...core import NominatimAPIAsync
|
||||
from ... import v1 as api_impl
|
||||
from ... import logging as loglib
|
||||
|
@ -21,7 +21,7 @@ from starlette.middleware import Middleware
|
||||
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
|
||||
from starlette.middleware.cors import CORSMiddleware
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from ...config import Configuration
|
||||
from ...core import NominatimAPIAsync
|
||||
from ... import v1 as api_impl
|
||||
from ... import logging as loglib
|
||||
|
@ -13,7 +13,7 @@ from typing import Any
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.ext.compiler import compiles
|
||||
|
||||
from nominatim_core.typing import SaColumn
|
||||
from ..typing import SaColumn
|
||||
|
||||
# pylint: disable=all
|
||||
|
||||
|
@ -14,7 +14,7 @@ import dataclasses
|
||||
import sqlalchemy as sa
|
||||
|
||||
from .connection import SearchConnection
|
||||
from .version import NOMINATIM_API_VERSION, NominatimVersion, parse_version
|
||||
from .version import NOMINATIM_API_VERSION
|
||||
|
||||
@dataclasses.dataclass
|
||||
class StatusResult:
|
||||
@ -24,7 +24,7 @@ class StatusResult:
|
||||
message: str
|
||||
software_version = NOMINATIM_API_VERSION
|
||||
data_updated: Optional[dt.datetime] = None
|
||||
database_version: Optional[NominatimVersion] = None
|
||||
database_version: Optional[str] = None
|
||||
|
||||
|
||||
async def get_status(conn: SearchConnection) -> StatusResult:
|
||||
@ -44,7 +44,7 @@ async def get_status(conn: SearchConnection) -> StatusResult:
|
||||
|
||||
# Database version
|
||||
try:
|
||||
status.database_version = parse_version(await conn.get_property('database_version'))
|
||||
status.database_version = await conn.get_property('database_version')
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
|
@ -16,7 +16,7 @@ import math
|
||||
from struct import unpack
|
||||
from binascii import unhexlify
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from .errors import UsageError
|
||||
from .localization import Locales
|
||||
|
||||
# pylint: disable=no-member,too-many-boolean-expressions,too-many-instance-attributes
|
||||
|
40
src/nominatim_api/typing.py
Normal file
40
src/nominatim_api/typing.py
Normal file
@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# This file is part of Nominatim. (https://nominatim.org)
|
||||
#
|
||||
# Copyright (C) 2024 by the Nominatim developer community.
|
||||
# For a full list of authors see the git log.
|
||||
"""
|
||||
Type definitions for typing annotations.
|
||||
|
||||
Complex type definitions are moved here, to keep the source files readable.
|
||||
"""
|
||||
from typing import Union, TYPE_CHECKING
|
||||
|
||||
# pylint: disable=missing-class-docstring,useless-import-alias
|
||||
|
||||
# SQLAlchemy introduced generic types in version 2.0 making typing
|
||||
# incompatible with older versions. Add wrappers here so we don't have
|
||||
# to litter the code with bare-string types.
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any
|
||||
import sqlalchemy as sa
|
||||
import os
|
||||
from typing_extensions import (TypeAlias as TypeAlias)
|
||||
else:
|
||||
TypeAlias = str
|
||||
|
||||
StrPath = Union[str, 'os.PathLike[str]']
|
||||
|
||||
SaLambdaSelect: TypeAlias = 'Union[sa.Select[Any], sa.StatementLambdaElement]'
|
||||
SaSelect: TypeAlias = 'sa.Select[Any]'
|
||||
SaScalarSelect: TypeAlias = 'sa.ScalarSelect[Any]'
|
||||
SaRow: TypeAlias = 'sa.Row[Any]'
|
||||
SaColumn: TypeAlias = 'sa.ColumnElement[Any]'
|
||||
SaExpression: TypeAlias = 'sa.ColumnElement[bool]'
|
||||
SaLabel: TypeAlias = 'sa.Label[Any]'
|
||||
SaFromClause: TypeAlias = 'sa.FromClause'
|
||||
SaSelectable: TypeAlias = 'sa.Selectable'
|
||||
SaBind: TypeAlias = 'sa.BindParameter[Any]'
|
||||
SaDialect: TypeAlias = 'sa.Dialect'
|
@ -11,7 +11,7 @@ from typing import List, Dict, Mapping, Any
|
||||
import collections
|
||||
import datetime as dt
|
||||
|
||||
from nominatim_core.utils.json_writer import JsonWriter
|
||||
from ..utils.json_writer import JsonWriter
|
||||
from ..status import StatusResult
|
||||
from ..results import DetailedResult, ReverseResults, SearchResults, \
|
||||
AddressLines, AddressLine
|
||||
|
@ -9,7 +9,7 @@ Helper functions for output of results in json formats.
|
||||
"""
|
||||
from typing import Mapping, Any, Optional, Tuple, Union
|
||||
|
||||
from nominatim_core.utils.json_writer import JsonWriter
|
||||
from ..utils.json_writer import JsonWriter
|
||||
from ..results import AddressLines, ReverseResults, SearchResults
|
||||
from . import classtypes as cl
|
||||
|
||||
|
@ -17,8 +17,8 @@ from urllib.parse import urlencode
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from .. import logging as loglib
|
||||
from ..core import NominatimAPIAsync
|
||||
from .format import dispatch as formatting
|
||||
|
@ -8,10 +8,4 @@
|
||||
Version information for the Nominatim API.
|
||||
"""
|
||||
|
||||
# See also https://github.com/PyCQA/pylint/issues/6006
|
||||
# pylint: disable=useless-import-alias,unused-import
|
||||
|
||||
from nominatim_core.version import (NominatimVersion as NominatimVersion,
|
||||
parse_version as parse_version)
|
||||
|
||||
NOMINATIM_API_VERSION = '4.4.99'
|
||||
|
@ -1,57 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# This file is part of Nominatim. (https://nominatim.org)
|
||||
#
|
||||
# Copyright (C) 2024 by the Nominatim developer community.
|
||||
# For a full list of authors see the git log.
|
||||
"""
|
||||
Version information for the Nominatim core package.
|
||||
"""
|
||||
from typing import NamedTuple, Optional
|
||||
|
||||
__version__ = '4.4.99'
|
||||
NOMINATIM_CORE_VERSION = __version__
|
||||
|
||||
class NominatimVersion(NamedTuple):
|
||||
""" Version information for Nominatim. We follow semantic versioning.
|
||||
|
||||
Major, minor and patch_level refer to the last released version.
|
||||
The database patch level tracks important changes between releases
|
||||
and must always be increased when there is a change to the database or code
|
||||
that requires a migration.
|
||||
|
||||
When adding a migration on the development branch, raise the patch level
|
||||
to 99 to make sure that the migration is applied when updating from a
|
||||
patch release to the next minor version. Patch releases usually shouldn't
|
||||
have migrations in them. When they are needed, then make sure that the
|
||||
migration can be reapplied and set the migration version to the appropriate
|
||||
patch level when cherry-picking the commit with the migration.
|
||||
"""
|
||||
|
||||
major: int
|
||||
minor: int
|
||||
patch_level: int
|
||||
db_patch_level: Optional[int]
|
||||
|
||||
def __str__(self) -> str:
|
||||
if self.db_patch_level is None:
|
||||
return f"{self.major}.{self.minor}.{self.patch_level}"
|
||||
|
||||
return f"{self.major}.{self.minor}.{self.patch_level}-{self.db_patch_level}"
|
||||
|
||||
def release_version(self) -> str:
|
||||
""" Return the release version in semantic versioning format.
|
||||
|
||||
The release version does not include the database patch version.
|
||||
"""
|
||||
return f"{self.major}.{self.minor}.{self.patch_level}"
|
||||
|
||||
|
||||
def parse_version(version: str) -> NominatimVersion:
|
||||
""" Parse a version string into a version consisting of a tuple of
|
||||
four ints: major, minor, patch level, database patch level
|
||||
|
||||
This is the reverse operation of `version_str()`.
|
||||
"""
|
||||
parts = version.split('.')
|
||||
return NominatimVersion(*[int(x) for x in parts[:2] + parts[2].split('-')])
|
@ -16,8 +16,8 @@ import sys
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.errors import UsageError
|
||||
from .config import Configuration
|
||||
from .errors import UsageError
|
||||
from .tools.exec_utils import run_php_server
|
||||
from . import clicmd
|
||||
from . import version
|
||||
|
@ -11,8 +11,8 @@ import logging
|
||||
import argparse
|
||||
import random
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.db.connection import connect
|
||||
from ..errors import UsageError
|
||||
from ..db.connection import connect
|
||||
from .args import NominatimArgs
|
||||
|
||||
# Do not repeat documentation of subcommand classes.
|
||||
|
@ -14,12 +14,12 @@ import json
|
||||
import sys
|
||||
from functools import reduce
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
import nominatim_api as napi
|
||||
import nominatim_api.v1 as api_output
|
||||
from nominatim_api.v1.helpers import zoom_to_rank, deduplicate_results
|
||||
from nominatim_api.v1.format import dispatch as formatting
|
||||
import nominatim_api.logging as loglib
|
||||
from ..errors import UsageError
|
||||
from .args import NominatimArgs
|
||||
|
||||
# Do not repeat documentation of subcommand classes.
|
||||
|
@ -12,9 +12,9 @@ import argparse
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.typing import Protocol
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from ..typing import Protocol
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
||||
|
@ -12,7 +12,7 @@ import argparse
|
||||
import asyncio
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from ..errors import UsageError
|
||||
from .args import NominatimArgs
|
||||
|
||||
# Do not repeat documentation of subcommand classes.
|
||||
|
@ -14,12 +14,13 @@ import asyncio
|
||||
import csv
|
||||
import sys
|
||||
|
||||
import sqlalchemy as sa
|
||||
|
||||
import nominatim_api as napi
|
||||
from nominatim_api.results import create_from_placex_row, ReverseResult, add_result_details
|
||||
from nominatim_api.types import LookupDetails
|
||||
from nominatim_core.errors import UsageError
|
||||
|
||||
import sqlalchemy as sa # pylint: disable=C0411
|
||||
|
||||
from ..errors import UsageError
|
||||
from .args import NominatimArgs
|
||||
|
||||
# Do not repeat documentation of subcommand classes.
|
||||
|
@ -9,7 +9,7 @@ Implementation of the 'freeze' subcommand.
|
||||
"""
|
||||
import argparse
|
||||
|
||||
from nominatim_core.db.connection import connect
|
||||
from ..db.connection import connect
|
||||
from .args import NominatimArgs
|
||||
|
||||
# Do not repeat documentation of subcommand classes.
|
||||
|
@ -11,8 +11,8 @@ import argparse
|
||||
|
||||
import psutil
|
||||
|
||||
from nominatim_core.db import status
|
||||
from nominatim_core.db.connection import connect
|
||||
from ..db import status
|
||||
from ..db.connection import connect
|
||||
from .args import NominatimArgs
|
||||
|
||||
# Do not repeat documentation of subcommand classes.
|
||||
|
@ -12,8 +12,8 @@ import argparse
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import connect
|
||||
from ..config import Configuration
|
||||
from ..db.connection import connect
|
||||
from ..tokenizer.base import AbstractTokenizer
|
||||
from .args import NominatimArgs
|
||||
|
||||
|
@ -14,9 +14,9 @@ import logging
|
||||
import socket
|
||||
import time
|
||||
|
||||
from nominatim_core.db import status
|
||||
from nominatim_core.db.connection import connect
|
||||
from nominatim_core.errors import UsageError
|
||||
from ..db import status
|
||||
from ..db.connection import connect
|
||||
from ..errors import UsageError
|
||||
from .args import NominatimArgs
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
@ -14,10 +14,10 @@ from pathlib import Path
|
||||
|
||||
import psutil
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import connect
|
||||
from nominatim_core.db import status, properties
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from ..db.connection import connect
|
||||
from ..db import status, properties
|
||||
from ..tokenizer.base import AbstractTokenizer
|
||||
from ..version import NOMINATIM_VERSION
|
||||
from .args import NominatimArgs
|
||||
|
@ -11,8 +11,8 @@ import argparse
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.db.connection import connect
|
||||
from ..errors import UsageError
|
||||
from ..db.connection import connect
|
||||
from ..tools.special_phrases.sp_importer import SPImporter, SpecialPhraseLoader
|
||||
from ..tools.special_phrases.sp_wiki_loader import SPWikiLoader
|
||||
from ..tools.special_phrases.sp_csv_loader import SPCsvLoader
|
||||
|
@ -17,7 +17,11 @@ import json
|
||||
import yaml
|
||||
|
||||
from dotenv import dotenv_values
|
||||
from psycopg2.extensions import parse_dsn
|
||||
|
||||
try:
|
||||
from psycopg2.extensions import parse_dsn
|
||||
except ModuleNotFoundError:
|
||||
from psycopg.conninfo import conninfo_to_dict as parse_dsn # type: ignore[assignment]
|
||||
|
||||
from .typing import StrPath
|
||||
from .errors import UsageError
|
@ -11,10 +11,10 @@ from typing import Dict, Any, Iterable, Tuple, Optional, Container, overload
|
||||
from pathlib import Path
|
||||
import psycopg2.extras
|
||||
|
||||
from nominatim_core.db import utils as db_utils
|
||||
from nominatim_core.db.connection import connect, Connection
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from ..db import utils as db_utils
|
||||
from ..db.connection import connect, Connection
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from ..tokenizer.base import AbstractTokenizer
|
||||
|
||||
def _flatten_name_list(names: Any) -> Dict[str, str]:
|
||||
|
@ -11,7 +11,7 @@ format.
|
||||
from typing import Any, Mapping, Optional, Set, Match
|
||||
import re
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from ..errors import UsageError
|
||||
from . import country_info
|
||||
|
||||
class CountryPostcodeMatcher:
|
||||
|
14
src/nominatim_db/errors.py
Normal file
14
src/nominatim_db/errors.py
Normal file
@ -0,0 +1,14 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# This file is part of Nominatim. (https://nominatim.org)
|
||||
#
|
||||
# Copyright (C) 2024 by the Nominatim developer community.
|
||||
# For a full list of authors see the git log.
|
||||
"""
|
||||
Custom exception and error classes for Nominatim.
|
||||
"""
|
||||
|
||||
class UsageError(Exception):
|
||||
""" An error raised because of bad user input. This error will usually
|
||||
not cause a stack trace to be printed unless debugging is enabled.
|
||||
"""
|
@ -13,9 +13,9 @@ import time
|
||||
|
||||
import psycopg2.extras
|
||||
|
||||
from nominatim_core.typing import DictCursorResults
|
||||
from nominatim_core.db.async_connection import DBConnection, WorkerPool
|
||||
from nominatim_core.db.connection import connect, Connection, Cursor
|
||||
from ..typing import DictCursorResults
|
||||
from ..db.async_connection import DBConnection, WorkerPool
|
||||
from ..db.connection import connect, Connection, Cursor
|
||||
from ..tokenizer.base import AbstractTokenizer
|
||||
from .progress import ProgressLogger
|
||||
from . import runners
|
||||
|
@ -14,8 +14,8 @@ import functools
|
||||
from psycopg2 import sql as pysql
|
||||
import psycopg2.extras
|
||||
|
||||
from nominatim_core.typing import Query, DictCursorResult, DictCursorResults, Protocol
|
||||
from nominatim_core.db.async_connection import DBConnection
|
||||
from ..typing import Query, DictCursorResult, DictCursorResults, Protocol
|
||||
from ..db.async_connection import DBConnection
|
||||
from ..data.place_info import PlaceInfo
|
||||
from ..tokenizer.base import AbstractAnalyzer
|
||||
|
||||
|
@ -12,9 +12,9 @@ from abc import ABC, abstractmethod
|
||||
from typing import List, Tuple, Dict, Any, Optional, Iterable
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.typing import Protocol
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import Connection
|
||||
from ..typing import Protocol
|
||||
from ..config import Configuration
|
||||
from ..db.connection import Connection
|
||||
from ..data.place_info import PlaceInfo
|
||||
|
||||
class AbstractAnalyzer(ABC):
|
||||
|
@ -24,10 +24,10 @@ import logging
|
||||
import importlib
|
||||
from pathlib import Path
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.db import properties
|
||||
from nominatim_core.db.connection import connect
|
||||
from nominatim_core.config import Configuration
|
||||
from ..errors import UsageError
|
||||
from ..db import properties
|
||||
from ..db.connection import connect
|
||||
from ..config import Configuration
|
||||
from ..tokenizer.base import AbstractTokenizer, TokenizerModule
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
@ -14,10 +14,10 @@ import logging
|
||||
|
||||
from icu import Transliterator
|
||||
|
||||
from nominatim_core.config import flatten_config_list, Configuration
|
||||
from nominatim_core.db.properties import set_property, get_property
|
||||
from nominatim_core.db.connection import Connection
|
||||
from nominatim_core.errors import UsageError
|
||||
from ..config import flatten_config_list, Configuration
|
||||
from ..db.properties import set_property, get_property
|
||||
from ..db.connection import Connection
|
||||
from ..errors import UsageError
|
||||
from .place_sanitizer import PlaceSanitizer
|
||||
from .icu_token_analysis import ICUTokenAnalysis
|
||||
from .token_analysis.base import AnalysisModule, Analyzer
|
||||
|
@ -16,10 +16,10 @@ import logging
|
||||
from pathlib import Path
|
||||
from textwrap import dedent
|
||||
|
||||
from nominatim_core.db.connection import connect, Connection, Cursor
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.utils import CopyBuffer
|
||||
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
|
||||
from ..db.connection import connect, Connection, Cursor
|
||||
from ..config import Configuration
|
||||
from ..db.utils import CopyBuffer
|
||||
from ..db.sql_preprocessor import SQLPreprocessor
|
||||
from ..data.place_info import PlaceInfo
|
||||
from ..data.place_name import PlaceName
|
||||
from .icu_rule_loader import ICURuleLoader
|
||||
|
@ -20,12 +20,12 @@ from icu import Transliterator
|
||||
import psycopg2
|
||||
import psycopg2.extras
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.db.connection import connect, Connection
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db import properties
|
||||
from nominatim_core.db import utils as db_utils
|
||||
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
|
||||
from ..errors import UsageError
|
||||
from ..db.connection import connect, Connection
|
||||
from ..config import Configuration
|
||||
from ..db import properties
|
||||
from ..db import utils as db_utils
|
||||
from ..db.sql_preprocessor import SQLPreprocessor
|
||||
from ..data.place_info import PlaceInfo
|
||||
from .base import AbstractAnalyzer, AbstractTokenizer
|
||||
|
||||
|
@ -10,8 +10,8 @@ is handed to the token analysis.
|
||||
"""
|
||||
from typing import Optional, List, Mapping, Sequence, Callable, Any, Tuple
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from .sanitizers.config import SanitizerConfig
|
||||
from .sanitizers.base import SanitizerHandler, ProcessInfo
|
||||
from ..data.place_name import PlaceName
|
||||
|
@ -9,7 +9,7 @@ Common data types and protocols for sanitizers.
|
||||
"""
|
||||
from typing import Optional, List, Mapping, Callable
|
||||
|
||||
from nominatim_core.typing import Protocol, Final
|
||||
from ...typing import Protocol, Final
|
||||
from ...data.place_info import PlaceInfo
|
||||
from ...data.place_name import PlaceName
|
||||
from .config import SanitizerConfig
|
||||
|
@ -11,7 +11,7 @@ from typing import Sequence, Union, Optional, Pattern, Callable, Any, TYPE_CHECK
|
||||
from collections import UserDict
|
||||
import re
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from ...errors import UsageError
|
||||
|
||||
# working around missing generics in Python < 3.8
|
||||
# See https://github.com/python/typing/issues/60#issuecomment-869757075
|
||||
|
@ -9,7 +9,7 @@ Common data types and protocols for analysers.
|
||||
"""
|
||||
from typing import Mapping, List, Any
|
||||
|
||||
from nominatim_core.typing import Protocol
|
||||
from ...typing import Protocol
|
||||
from ...data.place_name import PlaceName
|
||||
|
||||
class Analyzer(Protocol):
|
||||
|
@ -12,8 +12,8 @@ from collections import defaultdict
|
||||
import itertools
|
||||
import re
|
||||
|
||||
from nominatim_core.config import flatten_config_list
|
||||
from nominatim_core.errors import UsageError
|
||||
from ...config import flatten_config_list
|
||||
from ...errors import UsageError
|
||||
|
||||
class ICUVariant(NamedTuple):
|
||||
""" A single replacement rule for variant creation.
|
||||
|
@ -12,7 +12,7 @@ import itertools
|
||||
|
||||
import datrie
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from ...errors import UsageError
|
||||
from ...data.place_name import PlaceName
|
||||
from .config_variants import get_variant_config
|
||||
from .generic_mutation import MutationVariantGenerator
|
||||
|
@ -12,7 +12,7 @@ import itertools
|
||||
import logging
|
||||
import re
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from ...errors import UsageError
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
||||
|
@ -12,8 +12,8 @@ from pathlib import Path
|
||||
import logging
|
||||
import urllib
|
||||
|
||||
from nominatim_core.db.connection import connect
|
||||
from nominatim_core.utils.url_utils import get_url
|
||||
from ..db.connection import connect
|
||||
from ..utils.url_utils import get_url
|
||||
from .exec_utils import run_osm2pgsql
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
@ -13,10 +13,10 @@ import logging
|
||||
from psycopg2.extras import Json, register_hstore
|
||||
from psycopg2 import DataError
|
||||
|
||||
from nominatim_core.typing import DictCursorResult
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import connect, Cursor
|
||||
from nominatim_core.errors import UsageError
|
||||
from ..typing import DictCursorResult
|
||||
from ..config import Configuration
|
||||
from ..db.connection import connect, Cursor
|
||||
from ..errors import UsageError
|
||||
from ..tokenizer import factory as tokenizer_factory
|
||||
from ..data.place_info import PlaceInfo
|
||||
|
||||
|
@ -11,10 +11,10 @@ from typing import Callable, Optional, Any, Union, Tuple, Mapping, List
|
||||
from enum import Enum
|
||||
from textwrap import dedent
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import connect, Connection
|
||||
from nominatim_core.db import properties
|
||||
from nominatim_core.errors import UsageError
|
||||
from ..config import Configuration
|
||||
from ..db.connection import connect, Connection
|
||||
from ..db import properties
|
||||
from ..errors import UsageError
|
||||
from ..tokenizer import factory as tokenizer_factory
|
||||
from . import freeze
|
||||
from ..version import NOMINATIM_VERSION, parse_version
|
||||
|
@ -17,8 +17,8 @@ from typing import List, Optional, Tuple, Union
|
||||
import psutil
|
||||
from psycopg2.extensions import make_dsn, parse_dsn
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import connect
|
||||
from ..config import Configuration
|
||||
from ..db.connection import connect
|
||||
from ..version import NOMINATIM_VERSION
|
||||
|
||||
|
||||
|
@ -16,8 +16,8 @@ import sqlalchemy as sa
|
||||
|
||||
import nominatim_api as napi
|
||||
from nominatim_api.search.query_analyzer_factory import make_query_analyzer
|
||||
from nominatim_core.typing import SaSelect, SaRow
|
||||
from nominatim_core.db.sqlalchemy_types import Geometry, IntArray
|
||||
from nominatim_api.typing import SaSelect, SaRow
|
||||
from nominatim_api.sql.sqlalchemy_types import Geometry, IntArray
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
||||
|
@ -17,11 +17,11 @@ from pathlib import Path
|
||||
import psutil
|
||||
from psycopg2 import sql as pysql
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import connect, get_pg_env, Connection
|
||||
from nominatim_core.db.async_connection import DBConnection
|
||||
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from ..db.connection import connect, get_pg_env, Connection
|
||||
from ..db.async_connection import DBConnection
|
||||
from ..db.sql_preprocessor import SQLPreprocessor
|
||||
from .exec_utils import run_osm2pgsql
|
||||
from ..version import POSTGRESQL_REQUIRED_VERSION, POSTGIS_REQUIRED_VERSION
|
||||
|
||||
|
@ -13,8 +13,8 @@ import os
|
||||
import subprocess
|
||||
import shutil
|
||||
|
||||
from nominatim_core.typing import StrPath
|
||||
from nominatim_core.db.connection import get_pg_env
|
||||
from ..typing import StrPath
|
||||
from ..db.connection import get_pg_env
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
||||
|
@ -12,7 +12,7 @@ from pathlib import Path
|
||||
|
||||
from psycopg2 import sql as pysql
|
||||
|
||||
from nominatim_core.db.connection import Connection
|
||||
from ..db.connection import Connection
|
||||
|
||||
UPDATE_TABLES = [
|
||||
'address_levels',
|
||||
|
@ -12,10 +12,10 @@ import logging
|
||||
|
||||
from psycopg2 import sql as pysql
|
||||
|
||||
from nominatim_core.errors import UsageError
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db import properties
|
||||
from nominatim_core.db.connection import connect, Connection
|
||||
from ..errors import UsageError
|
||||
from ..config import Configuration
|
||||
from ..db import properties
|
||||
from ..db.connection import connect, Connection
|
||||
from ..version import NominatimVersion, NOMINATIM_VERSION, parse_version
|
||||
from ..tokenizer import factory as tokenizer_factory
|
||||
from . import refresh
|
||||
|
@ -18,8 +18,8 @@ from math import isfinite
|
||||
|
||||
from psycopg2 import sql as pysql
|
||||
|
||||
from nominatim_core.db.connection import connect, Connection
|
||||
from nominatim_core.utils.centroid import PointsCentroid
|
||||
from ..db.connection import connect, Connection
|
||||
from ..utils.centroid import PointsCentroid
|
||||
from ..data.postcode_format import PostcodeFormatter, CountryPostcodeMatcher
|
||||
from ..tokenizer.base import AbstractAnalyzer, AbstractTokenizer
|
||||
|
||||
|
@ -16,10 +16,10 @@ from pathlib import Path
|
||||
|
||||
from psycopg2 import sql as pysql
|
||||
|
||||
from nominatim_core.config import Configuration
|
||||
from nominatim_core.db.connection import Connection, connect
|
||||
from nominatim_core.db.utils import execute_file, CopyBuffer
|
||||
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
|
||||
from ..config import Configuration
|
||||
from ..db.connection import Connection, connect
|
||||
from ..db.utils import execute_file, CopyBuffer
|
||||
from ..db.sql_preprocessor import SQLPreprocessor
|
||||
from ..version import NOMINATIM_VERSION
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user