]>
git.openstreetmap.org Git - nominatim.git/log
Sarah Hoffmann [Thu, 30 Mar 2023 07:58:02 +0000 (09:58 +0200)]
limit results for country lookup
Sarah Hoffmann [Wed, 29 Mar 2023 18:49:34 +0000 (20:49 +0200)]
add BDD tests for new layers parameter
Sarah Hoffmann [Wed, 29 Mar 2023 15:21:33 +0000 (17:21 +0200)]
python reverse: add support for point geometries in interpolations
Sarah Hoffmann [Tue, 28 Mar 2023 13:05:52 +0000 (15:05 +0200)]
add wsgi entry point for falcon server
Sarah Hoffmann [Tue, 28 Mar 2023 13:03:00 +0000 (15:03 +0200)]
add wsgi entry point for starlette
uvicorn needs a parameter-free function to start.
Sarah Hoffmann [Tue, 28 Mar 2023 12:57:39 +0000 (14:57 +0200)]
ignore broken data in interpolation table
Sarah Hoffmann [Tue, 28 Mar 2023 12:53:45 +0000 (14:53 +0200)]
disable prepared statements
Prepared statements do not work well with the partial indexes that
Nominatim uses because all Python constants are replaced with
parameters. A query like:
placex.select().where(placex.c.rank_address.between(4, 25)
gets translated into a prepared query with two parameters:
SELECT * FROM placex WHERE rank_address BETWEEN %s and %s
And this does not work with a partial index of:
CREATE INDEX on placex(geometry) WHERE rank_address between 4 and 25
Sarah Hoffmann [Sun, 26 Mar 2023 16:09:33 +0000 (18:09 +0200)]
switch reverse CLI command to Python implementation
Sarah Hoffmann [Sun, 26 Mar 2023 10:22:34 +0000 (12:22 +0200)]
make sure PHP and Python reverse code does the same
The only allowable difference is precision of coordinates. Python uses
a precision of 7 digits where possible, which corresponds to the
precision of OSM data.
Also fixes some smaller bugs found by the BDD tests.
Sarah Hoffmann [Sat, 25 Mar 2023 16:04:02 +0000 (17:04 +0100)]
add server glue for reverse API call
Sarah Hoffmann [Fri, 24 Mar 2023 20:45:47 +0000 (21:45 +0100)]
add output formatters for ReverseResults
These formatters are written in a way that they can be reused for
search results later.
Sarah Hoffmann [Fri, 24 Mar 2023 10:16:02 +0000 (11:16 +0100)]
ignore NotImplementedErrors when compiling SQL
Sarah Hoffmann [Fri, 24 Mar 2023 09:08:01 +0000 (10:08 +0100)]
factor out layer checks in reverse function
Sarah Hoffmann [Thu, 23 Mar 2023 21:38:37 +0000 (22:38 +0100)]
python: implement reverse lookup function
The implementation follows for most part the PHP code but introduces an
additional layer parameter with which the kind of places to be returned
can be restricted. This replaces the hard-coded exclusion lists.
Sarah Hoffmann [Tue, 21 Mar 2023 23:07:17 +0000 (00:07 +0100)]
add python implementation of reverse
This adds an additional layer parameter and slightly changes the
queries to do more efficient lookups for large area features.
Sarah Hoffmann [Tue, 21 Mar 2023 16:42:53 +0000 (17:42 +0100)]
api: make details parameter optional
Sarah Hoffmann [Tue, 21 Mar 2023 15:24:26 +0000 (16:24 +0100)]
api: generalize error handling
Return a consistent error response which takes into account the chosen
content type. Also adds tests for V1 server glue.
Sarah Hoffmann [Tue, 14 Mar 2023 13:21:35 +0000 (14:21 +0100)]
split SearchResult type
Use adapted types for the different result types. This makes it
easier to have adapted output formatting and means there are only
result fields that are filled.
Sarah Hoffmann [Thu, 23 Mar 2023 08:20:25 +0000 (09:20 +0100)]
Merge pull request #3013 from mtmail/changelog-4-2-x
update ChangeLog to verison 4.2.2
marc tobias [Wed, 22 Mar 2023 22:45:59 +0000 (23:45 +0100)]
update ChangeLog to verison 4.2.2
Sarah Hoffmann [Tue, 21 Mar 2023 08:58:53 +0000 (09:58 +0100)]
Merge pull request #3011 from lonvia/fix-flex-scripts
Fix extra tag handling in some flex scripts
Sarah Hoffmann [Tue, 21 Mar 2023 07:56:25 +0000 (08:56 +0100)]
Merge pull request #3010 from lonvia/adapt-zoom-for-reverse
Minor adjustments to reverse zoom translation
Sarah Hoffmann [Mon, 20 Mar 2023 20:42:24 +0000 (21:42 +0100)]
remove more tags from full style
The full style should only save the necessary tags needed for
processing.
Sarah Hoffmann [Mon, 20 Mar 2023 20:20:27 +0000 (21:20 +0100)]
fix handling of unused extra tags
The tags can only be moved to extra tags after the main tags have been
handled.
Sarah Hoffmann [Mon, 20 Mar 2023 19:47:42 +0000 (20:47 +0100)]
minor adjustment to reverse zoom translation
Add a 'village' zoom level at 13 between town and neighbourhood
and a all locality-like objects for zoom 15. These zoom levels had
the same behaviour as the lower level so far. However, the distinction
for village and locality may be useful at times.
Sarah Hoffmann [Fri, 10 Mar 2023 09:01:24 +0000 (10:01 +0100)]
Merge pull request #3003 from lonvia/rework-bdd-api-tests
Reorganize code around BDD API tests and extend reverse API tests
Sarah Hoffmann [Thu, 9 Mar 2023 20:47:29 +0000 (21:47 +0100)]
bdd: be more fuzzy with coordinate comparisons
Sarah Hoffmann [Thu, 9 Mar 2023 19:57:43 +0000 (20:57 +0100)]
avoid recent Python dialect
Sarah Hoffmann [Thu, 9 Mar 2023 19:24:07 +0000 (20:24 +0100)]
fix polygon simplification in reverse results
polygon_threshold has never really worked for reverse.
Sarah Hoffmann [Thu, 9 Mar 2023 19:20:50 +0000 (20:20 +0100)]
bdd: extend reverse API tests for format checks
Reorganise the API reverse tests and extend the checks for the
output format, testing for all expected fields.
Sarah Hoffmann [Thu, 9 Mar 2023 19:10:51 +0000 (20:10 +0100)]
bdd: add tests for valid debug output
Sarah Hoffmann [Thu, 9 Mar 2023 18:49:55 +0000 (19:49 +0100)]
bdd: replace old formatting strings
Sarah Hoffmann [Thu, 9 Mar 2023 18:40:24 +0000 (19:40 +0100)]
bdd: more format checks for reverse XML
Sarah Hoffmann [Thu, 9 Mar 2023 18:31:21 +0000 (19:31 +0100)]
bdd: new step variant 'result contains in field'
This replaces the + notation for recursing into result dictionaries.
Sarah Hoffmann [Thu, 9 Mar 2023 17:01:45 +0000 (18:01 +0100)]
bdd: factor out computation of result to-check lists
Sarah Hoffmann [Thu, 9 Mar 2023 16:55:27 +0000 (17:55 +0100)]
bdd: replace property_list construct with standard check functions
Sarah Hoffmann [Thu, 9 Mar 2023 16:44:34 +0000 (17:44 +0100)]
bdd: remove special case for osm_type field
The fuzzy field check hide cover formatting errors. Use 'osm' when
only caring about the conent.
Sarah Hoffmann [Thu, 9 Mar 2023 16:05:05 +0000 (17:05 +0100)]
bdd: reorganise field comparisons
Move comparision on Field values from assert_field() into a
comparator class. Replace BadRowValueAssert with a simpler
check_row() function.
Sarah Hoffmann [Thu, 9 Mar 2023 15:44:07 +0000 (16:44 +0100)]
bdd: use new check_for_attributes() function also in steps
Sarah Hoffmann [Thu, 9 Mar 2023 15:36:46 +0000 (16:36 +0100)]
bdd: fully check correctness of geojson and geocodejson
Parse code now checks presence of all required fields and exports
all fields for inspection.
Sarah Hoffmann [Thu, 9 Mar 2023 15:08:39 +0000 (16:08 +0100)]
bdd: remove OrderedDict
dicts are guaranteed to keep insertion order by since Python 3.7, making
use of ORderedDict mute.
Sarah Hoffmann [Thu, 9 Mar 2023 13:31:45 +0000 (14:31 +0100)]
Merge pull request #2993 from biswajit-k/delete-tags
Adds sanitizer for preventing certain tags to enter search index based on parameters
biswajit-k [Thu, 2 Mar 2023 14:55:06 +0000 (20:25 +0530)]
Adds sanitizer for preventing certain tags to enter search index based on parameters
fix: pylint error
added docs for delete tags sanitizer
fixed typos in docs and code comments
fix: python typechecking error
fixed rank address type
Revert "fixed typos in docs and code comments"
This reverts commit
6839eea755a87f557895f30524fb5c03dd983d60 .
added default parameters and refactored code
added test for all parameters
Sarah Hoffmann [Wed, 8 Mar 2023 07:55:27 +0000 (08:55 +0100)]
Merge pull request #2999 from biswajit-k/fix-typos
fixed typos in docs and code comments
biswajit-k [Mon, 6 Mar 2023 11:39:38 +0000 (17:09 +0530)]
fixed typos in docs and code comments
Sarah Hoffmann [Wed, 22 Feb 2023 10:24:04 +0000 (11:24 +0100)]
add latest security incident
Also removes 3.6 which is no longer supported.
Sarah Hoffmann [Mon, 20 Feb 2023 15:46:53 +0000 (16:46 +0100)]
harmonize flags for PHP's htmlspecialchars
Sarah Hoffmann [Mon, 20 Feb 2023 15:23:28 +0000 (16:23 +0100)]
adapt PHP tests for debug output
Sarah Hoffmann [Mon, 20 Feb 2023 14:41:04 +0000 (15:41 +0100)]
properly encode special HTML characters in debug mode
Sarah Hoffmann [Mon, 20 Feb 2023 10:12:08 +0000 (11:12 +0100)]
Merge pull request #2986 from mtmail/add-more-languages-from-osm-wiki
sp_wiki_loader: add more default languages
marc tobias [Fri, 17 Feb 2023 23:31:21 +0000 (00:31 +0100)]
sp_wiki_loader: add more default languages
Sarah Hoffmann [Sat, 18 Feb 2023 08:49:30 +0000 (09:49 +0100)]
add timestamp to debug SQL output
Sarah Hoffmann [Sat, 18 Feb 2023 08:43:37 +0000 (09:43 +0100)]
add warning for reverse index migration
Sarah Hoffmann [Sat, 18 Feb 2023 08:35:19 +0000 (09:35 +0100)]
Merge pull request #2985 from lonvia/fix-place-rank-inheritance
Restrict place rank inheritance to address items
Sarah Hoffmann [Fri, 17 Feb 2023 15:25:26 +0000 (16:25 +0100)]
restrict place rank inheritance to address items
Place tags must have no influence on street- or POI-level
objects.
Sarah Hoffmann [Fri, 17 Feb 2023 14:51:55 +0000 (15:51 +0100)]
Merge pull request #2983 from lonvia/improve-reverse-place-node-lookup
Improve reverse place node lookup
Sarah Hoffmann [Fri, 17 Feb 2023 10:27:50 +0000 (11:27 +0100)]
use reverse buffered index for search within country
Sarah Hoffmann [Fri, 17 Feb 2023 09:31:49 +0000 (10:31 +0100)]
speed up reverse lookup of place nodes
Add a special index that contains the place nodes buffered by their
respective area according to their search rank. This replaces the
maximum area search for place nodes and reduces drastically the number
of place nodes that need to be retrieved.
Sarah Hoffmann [Fri, 17 Feb 2023 07:40:14 +0000 (08:40 +0100)]
Merge pull request #2981 from lonvia/add-point-wkb-decoder
Python frontend: add a WKB decoder for the Point class
Sarah Hoffmann [Thu, 16 Feb 2023 14:35:54 +0000 (15:35 +0100)]
add a WKB decoder for the Point class
This allows to return point geometries from the database and makes
the SQL a bit simpler.
Sarah Hoffmann [Tue, 14 Feb 2023 13:08:42 +0000 (14:08 +0100)]
Merge pull request #2978 from lonvia/add-debug-view
Add debug view to Python API
Sarah Hoffmann [Sun, 12 Feb 2023 09:17:08 +0000 (10:17 +0100)]
add typing information for pygments to requirements
Sarah Hoffmann [Sun, 12 Feb 2023 08:34:22 +0000 (09:34 +0100)]
actions: use token to avoid rate limiting
Sarah Hoffmann [Tue, 14 Feb 2023 10:05:37 +0000 (11:05 +0100)]
add debug output for unit tests
This uses the debug output facility meant for pretty HTML output
to give us debugging output for the unit tests.
Sarah Hoffmann [Sat, 11 Feb 2023 19:42:24 +0000 (20:42 +0100)]
add HTML-formatted debug output to lookup
Sarah Hoffmann [Sat, 11 Feb 2023 10:01:11 +0000 (11:01 +0100)]
Merge pull request #2974 from bloom256/main-tag-in-reverse-lookup
Main tag information added to geocodejson in reverse geocoding
Sarah Hoffmann [Sat, 11 Feb 2023 10:00:15 +0000 (11:00 +0100)]
Merge pull request #2975 from bloom256/typo-fix
typo fixed
danil [Tue, 7 Feb 2023 20:21:58 +0000 (00:21 +0400)]
typo fixed
danil [Tue, 7 Feb 2023 20:19:49 +0000 (00:19 +0400)]
Main tag information added to geocodejson in reverse geocoding
Sarah Hoffmann [Mon, 6 Feb 2023 15:32:35 +0000 (16:32 +0100)]
Merge pull request #2970 from lonvia/add-details-endpoint
Python implementation of details endpoint
Sarah Hoffmann [Sat, 4 Feb 2023 13:23:19 +0000 (14:23 +0100)]
actions: force PHPUnit 9
PHPUnit 10 is incompatible with our tests. Not worth adapting anymore.
Sarah Hoffmann [Sat, 4 Feb 2023 13:17:47 +0000 (14:17 +0100)]
add tests for details result formatting and trim results
Values that are None are no longer included in the output to save
a bit of bandwidth.
Sarah Hoffmann [Fri, 3 Feb 2023 20:59:16 +0000 (21:59 +0100)]
expand details BDD tests
There are now minor differences in the output between PHP and
Python versions, so introduce specific tests.
Sarah Hoffmann [Fri, 3 Feb 2023 20:14:33 +0000 (21:14 +0100)]
implement details endpoint in Python servers
Sarah Hoffmann [Fri, 3 Feb 2023 09:43:54 +0000 (10:43 +0100)]
switch details cli command to new Python implementation
Sarah Hoffmann [Thu, 2 Feb 2023 15:22:18 +0000 (16:22 +0100)]
add lookup of postcdoe data
Sarah Hoffmann [Thu, 2 Feb 2023 14:31:42 +0000 (15:31 +0100)]
add lookup of tiger data
Sarah Hoffmann [Thu, 2 Feb 2023 14:01:54 +0000 (15:01 +0100)]
add lookup of address interpolations
Sarah Hoffmann [Thu, 2 Feb 2023 08:48:20 +0000 (09:48 +0100)]
fix new linting issues from pylint 2.16
Sarah Hoffmann [Wed, 1 Feb 2023 21:59:31 +0000 (22:59 +0100)]
add unit tests for lookup function
Sarah Hoffmann [Wed, 1 Feb 2023 09:22:53 +0000 (10:22 +0100)]
improve scaffolding for API unit tests
Use the static table definition to create the test database.
Add helper function to simplify filling the tables.
Sarah Hoffmann [Wed, 1 Feb 2023 08:56:33 +0000 (09:56 +0100)]
add lookup() call to the library API
Currently only looks places up in placex.
Sarah Hoffmann [Sat, 4 Feb 2023 20:21:23 +0000 (21:21 +0100)]
docs: fix internal links
Fixes #2968.
Sarah Hoffmann [Mon, 30 Jan 2023 10:17:22 +0000 (11:17 +0100)]
Merge pull request #2963 from lonvia/add-sqlalchemy-schema
Add table definitions for SQLAlchemy
Sarah Hoffmann [Sun, 29 Jan 2023 08:53:42 +0000 (09:53 +0100)]
add pytest-asyncio as a requirement for testing
Sarah Hoffmann [Sat, 28 Jan 2023 21:24:36 +0000 (22:24 +0100)]
add property cache for API
This caches results from querying nominatim_properties.
Sarah Hoffmann [Fri, 27 Jan 2023 20:53:53 +0000 (21:53 +0100)]
adapt annotations for SQLAlchemy 2.x
It is not possible to produce type annotations that work with both
versions 1.4 and 2.0. So keep to the principle of only supporting
newest versions when it comes to mypy. This means that some types
may have to be string quoted to not cause issues when running with
SQLAlchemy 1.4.
Sarah Hoffmann [Fri, 27 Jan 2023 08:15:06 +0000 (09:15 +0100)]
add new geoalchemy requirement
Sarah Hoffmann [Thu, 26 Jan 2023 16:55:46 +0000 (17:55 +0100)]
adapt status to use SQLAlchemy tables
Sarah Hoffmann [Thu, 26 Jan 2023 16:51:15 +0000 (17:51 +0100)]
convert StatusResult to a dataclass
This gives us nice str() functions.
Sarah Hoffmann [Thu, 26 Jan 2023 16:36:11 +0000 (17:36 +0100)]
add SQLAlchemy table schema for Nominatim tables
Also defines an extended connection object that includes access to
the table definitions. Makes it easier to access the tables from
code that has been split off into separate modules.
Sarah Hoffmann [Wed, 25 Jan 2023 16:36:23 +0000 (17:36 +0100)]
Merge pull request #2958 from lonvia/streaming-json-writer
Introduce streaming json writer for JSON output
Sarah Hoffmann [Wed, 25 Jan 2023 13:14:47 +0000 (14:14 +0100)]
add streaming json writer for JSON output
Sarah Hoffmann [Wed, 25 Jan 2023 08:29:31 +0000 (09:29 +0100)]
Merge pull request #2957 from lonvia/reorganise-api-module
Assorted improvements to the new api library module
Sarah Hoffmann [Tue, 24 Jan 2023 20:36:45 +0000 (21:36 +0100)]
allow to add php-compatible endpoints
If the new setting NOMINATIM_SERVE_LEGACY_URLS is set, the servers
expose the endpoints also with the .php suffix to ensure backwards
compatibility.
Sarah Hoffmann [Tue, 24 Jan 2023 20:26:32 +0000 (21:26 +0100)]
add support for CORS headers
Adds the additional dependency to sanic-cors for the Sanic server.
Sarah Hoffmann [Tue, 24 Jan 2023 20:04:32 +0000 (21:04 +0100)]
factor out common server implementation code
Most of the server implementation of V1 API now resides in
api.v1.server_glue. The webframeworks only supply some glue code
which is independent to changes in the API code.
Sarah Hoffmann [Tue, 24 Jan 2023 16:20:51 +0000 (17:20 +0100)]
reorganize code around result formatting
Code is now organized by api version. So formatting has moved to
the api.v1 module. Instead of holding a separate ResultFormatter
object per result format, simply move the functions to the
formater collector and hand in the requested format as a parameter.
Thus reorganized, the api.v1 module can export three simple functions
for result formatting which in turn makes the code that uses
the formatters much simpler.
Sarah Hoffmann [Tue, 24 Jan 2023 12:28:04 +0000 (13:28 +0100)]
reorganize api submodule
Use a directory for the submodule where the __init__ file contains
the public API. This makes it easier to separate public interface
from the internal implementation.
Sarah Hoffmann [Tue, 24 Jan 2023 09:56:22 +0000 (10:56 +0100)]
api: delay setup of initial database connection
Defer database setup until the first call to a function. Needs an
additional lock because the setup still needs to be done sequentially.