]> git.openstreetmap.org Git - nominatim.git/commitdiff
Correct some typos
authormarc tobias <mtmail@gmx.net>
Mon, 26 Feb 2024 17:13:30 +0000 (18:13 +0100)
committermarc tobias <mtmail@gmx.net>
Mon, 26 Feb 2024 17:13:30 +0000 (18:13 +0100)
45 files changed:
CONTRIBUTING.md
ChangeLog
docs/admin/Deployment-Python.md
docs/api/Reverse.md
docs/api/Search.md
docs/customize/Import-Styles.md
docs/customize/Tokenizers.md
docs/develop/ICU-Tokenizer-Modules.md
docs/develop/Testing.md
docs/develop/parenting-flow.plantuml
docs/develop/parenting-flow.svg
lib-sql/tokenizer/legacy_tokenizer.sql
nominatim/api/core.py
nominatim/api/logging.py
nominatim/api/result_formatting.py
nominatim/api/results.py
nominatim/api/reverse.py
nominatim/api/search/db_search_fields.py
nominatim/api/search/db_searches.py
nominatim/api/search/legacy_tokenizer.py
nominatim/api/search/query.py
nominatim/api/search/query_analyzer_factory.py
nominatim/api/search/token_assignment.py
nominatim/api/status.py
nominatim/api/types.py
nominatim/api/v1/classtypes.py
nominatim/api/v1/helpers.py
nominatim/api/v1/server_glue.py
nominatim/db/async_core_library.py
nominatim/db/sql_preprocessor.py
nominatim/db/sqlite_functions.py
nominatim/server/falcon/server.py
nominatim/tokenizer/icu_tokenizer.py
nominatim/tokenizer/sanitizers/base.py
nominatim/tools/check_database.py
nominatim/tools/collect_os_info.py
test/bdd/api/search/simple.feature
test/bdd/db/import/addressing.feature
test/bdd/steps/geometry_factory.py
test/bdd/steps/nominatim_environment.py
test/bdd/steps/steps_db_ops.py
test/bdd/steps/steps_osm_data.py
test/python/api/test_api_search.py
test/python/cli/test_cli.py
test/python/cli/test_cmd_admin.py

index 8baadb28e4d63bf31ef3230e4ec25a0686026f68..1df644e750e3c66fbee24102010e014e1faaffa3 100644 (file)
@@ -69,7 +69,7 @@ Before submitting a pull request make sure that the tests pass:
 
 Nominatim follows semantic versioning. Major releases are done for large changes
 that require (or at least strongly recommend) a reimport of the databases.
 
 Nominatim follows semantic versioning. Major releases are done for large changes
 that require (or at least strongly recommend) a reimport of the databases.
-Minor releases can usually be applied to exisiting databases. Patch releases
+Minor releases can usually be applied to existing databases. Patch releases
 contain bug fixes only and are released from a separate branch where the
 relevant changes are cherry-picked from the master branch.
 
 contain bug fixes only and are released from a separate branch where the
 relevant changes are cherry-picked from the master branch.
 
index fae0d68f3897ede3bc93cd08fe32f435640d0e68..49fed459050e7a9330cbf1cdbf4408b3ab7ec823 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,7 +23,7 @@
  * new documentation section for library
  * various smaller fixes to existing documentation
    (thanks @woodpeck, @bloom256, @biswajit-k)
  * new documentation section for library
  * various smaller fixes to existing documentation
    (thanks @woodpeck, @bloom256, @biswajit-k)
- * updates to vagrant install scripts, drop support for Ubunut 18
+ * updates to vagrant install scripts, drop support for Ubuntu 18
    (thanks @n-timofeev)
  * removed obsolete configuration variables from env.defaults
  * add script for generating a taginfo description (thanks @biswajit-k)
    (thanks @n-timofeev)
  * removed obsolete configuration variables from env.defaults
  * add script for generating a taginfo description (thanks @biswajit-k)
  * increase splitting for large geometries to improve indexing speed
  * remove deprecated get_magic_quotes_gpc() function
  * make sure that all postcodes have an entry in word and are thus searchable
  * increase splitting for large geometries to improve indexing speed
  * remove deprecated get_magic_quotes_gpc() function
  * make sure that all postcodes have an entry in word and are thus searchable
- * remove use of ST_Covers in conjunction woth ST_Intersects,
+ * remove use of ST_Covers in conjunction with ST_Intersects,
    causes bad query planning and slow updates in Postgis3
  * update osm2pgsql
 
    causes bad query planning and slow updates in Postgis3
  * update osm2pgsql
 
  * exclude postcode ranges separated by colon from centre point calculation
  * update osm2pgsql, better handling of imports without flatnode file
  * switch to more efficient algorithm for word set computation
  * exclude postcode ranges separated by colon from centre point calculation
  * update osm2pgsql, better handling of imports without flatnode file
  * switch to more efficient algorithm for word set computation
- * use only boundries for country and state parts of addresses
+ * use only boundaries for country and state parts of addresses
  * improve updates of addresses with housenumbers and interpolations
  * remove country from place_addressline table and use country_code instead
  * optimise indexes on search_name partition tables
  * improve updates of addresses with housenumbers and interpolations
  * remove country from place_addressline table and use country_code instead
  * optimise indexes on search_name partition tables
 
  * complete rewrite of reverse search algorithm
  * add new geojson and geocodejson output formats
 
  * complete rewrite of reverse search algorithm
  * add new geojson and geocodejson output formats
- * add simple export script to exprot addresses to CSV
+ * add simple export script to export addresses to CSV
  * remove is_in terms from address computation
  * remove unused search_name_country tables
  * various smaller fixes to query parsing
  * remove is_in terms from address computation
  * remove unused search_name_country tables
  * various smaller fixes to query parsing
  * move installation documentation into this repo
  * add self-documenting vagrant scripts
  * remove --create-website, recommend to use website directory in build
  * move installation documentation into this repo
  * add self-documenting vagrant scripts
  * remove --create-website, recommend to use website directory in build
- * add accessor functions for URL parameters and improve erro checking
+ * add accessor functions for URL parameters and improve error checking
  * remove IP blocking and rate-limiting code
  * enable CI via travis
  * reformatting for more consistent coding style
  * remove IP blocking and rate-limiting code
  * enable CI via travis
  * reformatting for more consistent coding style
  * update to refactored osm2pgsql which use libosmium based types
  * switch from osmosis to pyosmium for updates
  * be more strict when matching against special search terms
  * update to refactored osm2pgsql which use libosmium based types
  * switch from osmosis to pyosmium for updates
  * be more strict when matching against special search terms
- * handle postcode entries with mutliple values correctly
+ * handle postcode entries with multiple values correctly
 
 2.5
 
 
 2.5
 
index 6fd24167d24433d0509bec5c35f7deb8825d3f9a..e95df00dbe235341a3e2c5434880f67426b73360 100644 (file)
@@ -44,7 +44,7 @@ Next you need to set up the service that runs the Nominatim frontend. This is
 easiest done with a systemd job.
 
 First you need to tell systemd to create a socket file to be used by
 easiest done with a systemd job.
 
 First you need to tell systemd to create a socket file to be used by
-hunicorn. Crate the following file `/etc/systemd/system/nominatim.socket`:
+hunicorn. Create the following file `/etc/systemd/system/nominatim.socket`:
 
 ``` systemd
 [Unit]
 
 ``` systemd
 [Unit]
index 6d281da8aa9850debd2cd0b3539a81d636bcba1c..216ce6e613907b5a96d035d4d0a06eedd53197b9 100644 (file)
@@ -165,7 +165,7 @@ The `railway` layer includes railway infrastructure like tracks.
 Note that in Nominatim's standard configuration, only very few railway
 features are imported into the database.
 
 Note that in Nominatim's standard configuration, only very few railway
 features are imported into the database.
 
-The `natural` layer collects feautures like rivers, lakes and mountains while
+The `natural` layer collects features like rivers, lakes and mountains while
 the `manmade` layer functions as a catch-all for features not covered by the
 other layers.
 
 the `manmade` layer functions as a catch-all for features not covered by the
 other layers.
 
index fe848a177d29ca6e26e71ff3f4b8e0c5f8aef0e1..da2a96b0725e5f5b692dcda91ade48b88c8e0239 100644 (file)
@@ -179,7 +179,7 @@ also excluded when the filter is set.
     This parameter should not be confused with the 'country' parameter of
     the structured query. The 'country' parameter contains a search term
     and will be handled with some fuzziness. The `countrycodes` parameter
     This parameter should not be confused with the 'country' parameter of
     the structured query. The 'country' parameter contains a search term
     and will be handled with some fuzziness. The `countrycodes` parameter
-    is a hard filter and as such should be prefered. Having both parameters
+    is a hard filter and as such should be preferred. Having both parameters
     in the same query will work. If the parameters contradict each other,
     the search will come up empty.
 
     in the same query will work. If the parameters contradict each other,
     the search will come up empty.
 
@@ -203,7 +203,7 @@ The `railway` layer includes railway infrastructure like tracks.
 Note that in Nominatim's standard configuration, only very few railway
 features are imported into the database.
 
 Note that in Nominatim's standard configuration, only very few railway
 features are imported into the database.
 
-The `natural` layer collects feautures like rivers, lakes and mountains while
+The `natural` layer collects features like rivers, lakes and mountains while
 the `manmade` layer functions as a catch-all for features not covered by the
 other layers.
 
 the `manmade` layer functions as a catch-all for features not covered by the
 other layers.
 
@@ -217,7 +217,7 @@ the 'state', 'country' or 'city' part of an address. A featureType of
 settlement selects any human inhabited feature from 'state' down to
 'neighbourhood'.
 
 settlement selects any human inhabited feature from 'state' down to
 'neighbourhood'.
 
-When featureType ist set, then results are automatically restricted
+When featureType is set, then results are automatically restricted
 to the address layer (see above).
 
 !!! tip
 to the address layer (see above).
 
 !!! tip
@@ -227,7 +227,7 @@ to the address layer (see above).
 
 | Parameter | Value | Default |
 |-----------| ----- | ------- |
 
 | Parameter | Value | Default |
 |-----------| ----- | ------- |
-| exclude_place_ids | comma-separeted list of place ids |
+| exclude_place_ids | comma-separated list of place ids |
 
 If you do not want certain OSM objects to appear in the search
 result, give a comma separated list of the `place_id`s you want to skip.
 
 If you do not want certain OSM objects to appear in the search
 result, give a comma separated list of the `place_id`s you want to skip.
@@ -248,7 +248,7 @@ box. `x` is longitude, `y` is latitude.
 | bounded   | 0 or 1 | 0       |
 
 When set to 1, then it turns the 'viewbox' parameter (see above) into
 | bounded   | 0 or 1 | 0       |
 
 When set to 1, then it turns the 'viewbox' parameter (see above) into
-a filter paramter, excluding any results outside the viewbox.
+a filter parameter, excluding any results outside the viewbox.
 
 When `bounded=1` is given and the viewbox is small enough, then an amenity-only
 search is allowed. Give the special keyword for the amenity in square
 
 When `bounded=1` is given and the viewbox is small enough, then an amenity-only
 search is allowed. Give the special keyword for the amenity in square
index e96f96e039baaacbf99c7316f698a2a05708430a..eb548e10c460560ea3d9c29ef4870f625a9dc2e4 100644 (file)
@@ -280,7 +280,7 @@ kinds of geometries can be used:
 * __relation_as_multipolygon__ creates a (Multi)Polygon from the ways in
   the relation. If the ways do not form a valid area, then the object is
   silently discarded.
 * __relation_as_multipolygon__ creates a (Multi)Polygon from the ways in
   the relation. If the ways do not form a valid area, then the object is
   silently discarded.
-* __relation_as_multiline__ creates a (Mutli)LineString from the ways in
+* __relation_as_multiline__ creates a (Multi)LineString from the ways in
   the relations. Ways are combined as much as possible without any regards
   to their order in the relation.
 
   the relations. Ways are combined as much as possible without any regards
   to their order in the relation.
 
index 2c7b687834ba7cd53308833d6179586813ba29aa..df336a71198b08e1d8276fcdb2c080f7bd4cb7ef 100644 (file)
@@ -394,7 +394,7 @@ The analyzer cannot be customized.
 ##### Postcode token analyzer
 
 The analyzer `postcodes` is pupose-made to analyze postcodes. It supports
 ##### Postcode token analyzer
 
 The analyzer `postcodes` is pupose-made to analyze postcodes. It supports
-a 'lookup' varaint of the token, which produces variants with optional
+a 'lookup' variant of the token, which produces variants with optional
 spaces. Use together with the clean-postcodes sanitizer.
 
 The analyzer cannot be customized.
 spaces. Use together with the clean-postcodes sanitizer.
 
 The analyzer cannot be customized.
index 63b1c3c1db5833f1f53225252f424d426e0941b8..daadf8998ac7a40cddf4a008ebb499bbb0f34883 100644 (file)
@@ -129,7 +129,7 @@ sanitizers:
 !!! warning
     This example is just a simplified show case on how to create a sanitizer.
     It is not really read for real-world use: while the sanitizer would
 !!! warning
     This example is just a simplified show case on how to create a sanitizer.
     It is not really read for real-world use: while the sanitizer would
-    correcly transform `West 5th Street` into `5th Street`. it would also
+    correctly transform `West 5th Street` into `5th Street`. it would also
     shorten a simple `North Street` to `Street`.
 
 For more sanitizer examples, have a look at the sanitizers provided by Nominatim.
     shorten a simple `North Street` to `Street`.
 
 For more sanitizer examples, have a look at the sanitizers provided by Nominatim.
index be13d94983c795865334d63e13e72eb785f281f1..97d40ab7375a2d6a426e74896c886608c5ab4ca2 100644 (file)
@@ -10,7 +10,7 @@ There are two kind of tests in this test suite. There are functional tests
 which test the API interface using a BDD test framework and there are unit
 tests for specific PHP functions.
 
 which test the API interface using a BDD test framework and there are unit
 tests for specific PHP functions.
 
-This test directory is sturctured as follows:
+This test directory is structured as follows:
 
 ```
  -+-   bdd         Functional API tests
 
 ```
  -+-   bdd         Functional API tests
index ade927c64130e1024c45f7c0f5899b7ff4d777ed..dbfcc8bed38ef64ac5eedcc615fdb7ca7a0ea66e 100644 (file)
@@ -18,7 +18,7 @@ elseif (has 'addr:place'?) then (yes)
      **with same name**;
      kill
   else (no)
      **with same name**;
      kill
   else (no)
-    :add addr:place to adress;
+    :add addr:place to address;
     :**Use closest place**\n**rank 16 to 25**;
      kill
   endif
     :**Use closest place**\n**rank 16 to 25**;
      kill
   endif
index 7e8271a9c37f43d81dc9aa7bff675c0f33513a2c..dc201d349cc98fcc4c6ba21feac841ac3790d292 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="275px" preserveAspectRatio="none" style="width:785px;height:275px;background:#FFFFFF;" version="1.1" viewBox="0 0 785 275" width="785px" zoomAndPan="magnify"><defs><filter height="300%" id="f1b513ppngo123" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="379.5" cy="20" fill="#000000" filter="url(#f1b513ppngo123)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="118,50,218,50,230,62,218,74,118,74,106,62,118,50" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="172" y="84.2104">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="100" x="118" y="65.8081">has 'addr:street'?</text><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="108,105.7104,228,105.7104,240,118.5151,228,131.3198,108,131.3198,96,118.5151,108,105.7104" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="120" x="108" y="115.9209">street with that name</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="45" x="111" y="128.7256">nearby?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="76" y="115.9209">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="14" x="240" y="115.9209">no</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="150" x="11" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="130" x="21" y="162.4585">Use closest street</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="0" x="25" y="176.4272"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="116" x="25" y="176.4272">with same name</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="106" x="197" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="82" x="211" y="162.4585">Use closest</text><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="44" x="207" y="176.4272">street</text><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="427.75,50,523.75,50,535.75,62,523.75,74,427.75,74,415.75,62,427.75,50" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="479.75" y="84.2104">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="96" x="427.75" y="65.8081">has 'addr:place'?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="56" x="535.75" y="59.4058">otherwise</text><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="417.75,105.7104,533.75,105.7104,545.75,118.5151,533.75,131.3198,417.75,131.3198,405.75,118.5151,417.75,105.7104" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="116" x="417.75" y="115.9209">place with that name</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="45" x="420.75" y="128.7256">nearby?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="385.75" y="115.9209">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="14" x="545.75" y="115.9209">no</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="144" x="313" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="124" x="323" y="162.4585">Use closest place</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="0" x="327" y="176.4272"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="116" x="327" y="176.4272">with same name</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="179" x="477" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="159" x="487" y="162.4585">add addr:place to adress</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="144" x="494.5" y="210.2886"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="124" x="504.5" y="231.4272">Use closest place</text><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="91" x="504.5" y="245.396">rank 16 to 25</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="102" x="666" y="157.5972"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="82" x="676" y="178.7358">Use closest</text><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="44" x="676" y="192.7046">street</text><line style="stroke:#383838;stroke-width:1.5;" x1="96" x2="86" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="86" x2="86" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="82,131.3198,86,141.3198,90,131.3198,86,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="240" x2="250" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="250" x2="250" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="246,131.3198,250,141.3198,254,131.3198,250,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="566.5" x2="566.5" y1="175.2886" y2="210.2886"/><polygon fill="#383838" points="562.5,200.2886,566.5,210.2886,570.5,200.2886,566.5,204.2886" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="405.75" x2="385" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="385" x2="385" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="381,131.3198,385,141.3198,389,131.3198,385,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="545.75" x2="566.5" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="566.5" x2="566.5" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="562.5,131.3198,566.5,141.3198,570.5,131.3198,566.5,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="168" x2="168" y1="74" y2="105.7104"/><polygon fill="#383838" points="164,95.7104,168,105.7104,172,95.7104,168,99.7104" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="475.75" x2="475.75" y1="74" y2="105.7104"/><polygon fill="#383838" points="471.75,95.7104,475.75,105.7104,479.75,95.7104,475.75,99.7104" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="230" x2="415.75" y1="62" y2="62"/><polygon fill="#383838" points="405.75,58,415.75,62,405.75,66,409.75,62" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="379.5" x2="379.5" y1="30" y2="35"/><line style="stroke:#383838;stroke-width:1.5;" x1="379.5" x2="168" y1="35" y2="35"/><line style="stroke:#383838;stroke-width:1.5;" x1="168" x2="168" y1="35" y2="50"/><polygon fill="#383838" points="164,40,168,50,172,40,168,44" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="535.75" x2="717" y1="62" y2="62"/><line style="stroke:#383838;stroke-width:1.5;" x1="717" x2="717" y1="62" y2="157.5972"/><polygon fill="#383838" points="713,147.5972,717,157.5972,721,147.5972,717,151.5972" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[e03d31a5684b671bb715075c57004ccb]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="275px" preserveAspectRatio="none" style="width:785px;height:275px;background:#FFFFFF;" version="1.1" viewBox="0 0 785 275" width="785px" zoomAndPan="magnify"><defs><filter height="300%" id="f1b513ppngo123" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="379.5" cy="20" fill="#000000" filter="url(#f1b513ppngo123)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="118,50,218,50,230,62,218,74,118,74,106,62,118,50" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="172" y="84.2104">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="100" x="118" y="65.8081">has 'addr:street'?</text><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="108,105.7104,228,105.7104,240,118.5151,228,131.3198,108,131.3198,96,118.5151,108,105.7104" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="120" x="108" y="115.9209">street with that name</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="45" x="111" y="128.7256">nearby?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="76" y="115.9209">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="14" x="240" y="115.9209">no</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="150" x="11" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="130" x="21" y="162.4585">Use closest street</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="0" x="25" y="176.4272"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="116" x="25" y="176.4272">with same name</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="106" x="197" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="82" x="211" y="162.4585">Use closest</text><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="44" x="207" y="176.4272">street</text><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="427.75,50,523.75,50,535.75,62,523.75,74,427.75,74,415.75,62,427.75,50" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="479.75" y="84.2104">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="96" x="427.75" y="65.8081">has 'addr:place'?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="56" x="535.75" y="59.4058">otherwise</text><polygon fill="#F8F8F8" filter="url(#f1b513ppngo123)" points="417.75,105.7104,533.75,105.7104,545.75,118.5151,533.75,131.3198,417.75,131.3198,405.75,118.5151,417.75,105.7104" style="stroke:#383838;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="116" x="417.75" y="115.9209">place with that name</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="45" x="420.75" y="128.7256">nearby?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="20" x="385.75" y="115.9209">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="14" x="545.75" y="115.9209">no</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="144" x="313" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="124" x="323" y="162.4585">Use closest place</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="0" x="327" y="176.4272"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="116" x="327" y="176.4272">with same name</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="179" x="477" y="141.3198"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="159" x="487" y="162.4585">add addr:place to address</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="144" x="494.5" y="210.2886"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="124" x="504.5" y="231.4272">Use closest place</text><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="91" x="504.5" y="245.396">rank 16 to 25</text><rect fill="#F8F8F8" filter="url(#f1b513ppngo123)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#383838;stroke-width:1.5;" width="102" x="666" y="157.5972"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="82" x="676" y="178.7358">Use closest</text><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="44" x="676" y="192.7046">street</text><line style="stroke:#383838;stroke-width:1.5;" x1="96" x2="86" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="86" x2="86" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="82,131.3198,86,141.3198,90,131.3198,86,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="240" x2="250" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="250" x2="250" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="246,131.3198,250,141.3198,254,131.3198,250,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="566.5" x2="566.5" y1="175.2886" y2="210.2886"/><polygon fill="#383838" points="562.5,200.2886,566.5,210.2886,570.5,200.2886,566.5,204.2886" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="405.75" x2="385" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="385" x2="385" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="381,131.3198,385,141.3198,389,131.3198,385,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="545.75" x2="566.5" y1="118.5151" y2="118.5151"/><line style="stroke:#383838;stroke-width:1.5;" x1="566.5" x2="566.5" y1="118.5151" y2="141.3198"/><polygon fill="#383838" points="562.5,131.3198,566.5,141.3198,570.5,131.3198,566.5,135.3198" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="168" x2="168" y1="74" y2="105.7104"/><polygon fill="#383838" points="164,95.7104,168,105.7104,172,95.7104,168,99.7104" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="475.75" x2="475.75" y1="74" y2="105.7104"/><polygon fill="#383838" points="471.75,95.7104,475.75,105.7104,479.75,95.7104,475.75,99.7104" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="230" x2="415.75" y1="62" y2="62"/><polygon fill="#383838" points="405.75,58,415.75,62,405.75,66,409.75,62" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="379.5" x2="379.5" y1="30" y2="35"/><line style="stroke:#383838;stroke-width:1.5;" x1="379.5" x2="168" y1="35" y2="35"/><line style="stroke:#383838;stroke-width:1.5;" x1="168" x2="168" y1="35" y2="50"/><polygon fill="#383838" points="164,40,168,50,172,40,168,44" style="stroke:#383838;stroke-width:1.0;"/><line style="stroke:#383838;stroke-width:1.5;" x1="535.75" x2="717" y1="62" y2="62"/><line style="stroke:#383838;stroke-width:1.5;" x1="717" x2="717" y1="62" y2="157.5972"/><polygon fill="#383838" points="713,147.5972,717,157.5972,721,147.5972,717,151.5972" style="stroke:#383838;stroke-width:1.0;"/><!--MD5=[e03d31a5684b671bb715075c57004ccb]\r
 @startuml\r
 skinparam monochrome true\r
 \r
 @startuml\r
 skinparam monochrome true\r
 \r
@@ -19,7 +19,7 @@ elseif (has 'addr:place'?) then (yes)
      **with same name**;\r
      kill\r
   else (no)\r
      **with same name**;\r
      kill\r
   else (no)\r
-    :add addr:place to adress;\r
+    :add addr:place to address;\r
     :**Use closest place**\n**rank 16 to 25**;\r
      kill\r
   endif\r
     :**Use closest place**\n**rank 16 to 25**;\r
      kill\r
   endif\r
@@ -30,12 +30,12 @@ endif
 \r
 \r
 @enduml\r
 \r
 \r
 @enduml\r
-
-PlantUML version 1.2021.12(Tue Oct 05 18:01:58 CEST 2021)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Default Encoding: UTF-8
-Language: en
-Country: US
+\r
+PlantUML version 1.2021.12(Tue Oct 05 18:01:58 CEST 2021)\r
+(GPL source distribution)\r
+Java Runtime: OpenJDK Runtime Environment\r
+JVM: OpenJDK 64-Bit Server VM\r
+Default Encoding: UTF-8\r
+Language: en\r
+Country: US\r
 --></g></svg>
\ No newline at end of file
 --></g></svg>
\ No newline at end of file
index 8c8f56e1c264e937bf8617ab56b5e6e9d83325e2..c21d0510429910a94403203bfd2acf77df52fce1 100644 (file)
@@ -347,7 +347,7 @@ BEGIN
       END LOOP;
     END IF;
 
       END LOOP;
     END IF;
 
-    -- consider parts before an opening braket a full word as well
+    -- consider parts before an opening bracket a full word as well
     words := regexp_split_to_array(value, E'[(]');
     IF array_upper(words, 1) > 1 THEN
       s := make_standard_name(words[1]);
     words := regexp_split_to_array(value, E'[(]');
     IF array_upper(words, 1) > 1 THEN
       s := make_standard_name(words[1]);
index 3481e647399b31cdd6c72201d34970b7a558fe17..333833b030f2d4b2d3775a91f64599768d0d7073 100644 (file)
@@ -374,7 +374,7 @@ class NominatimAPI:
         """ Close all active connections to the database.
 
             This function also closes the asynchronous worker loop making
         """ Close all active connections to the database.
 
             This function also closes the asynchronous worker loop making
-            the NominatimAPI object unusuable.
+            the NominatimAPI object unusable.
         """
         self._loop.run_until_complete(self._async_api.close())
         self._loop.close()
         """
         self._loop.run_until_complete(self._async_api.close())
         self._loop.close()
@@ -447,7 +447,7 @@ class NominatimAPI:
                   place. Only meaning full for POI-like objects (places with a
                   rank_address of 30).
               linked_place_id (Optional[int]): Internal ID of the place this object
                   place. Only meaning full for POI-like objects (places with a
                   rank_address of 30).
               linked_place_id (Optional[int]): Internal ID of the place this object
-                  linkes to. When this ID is set then there is no guarantee that
+                  links to. When this ID is set then there is no guarantee that
                   the rest of the result information is complete.
               admin_level (int): Value of the `admin_level` OSM tag. Only meaningful
                   for administrative boundary objects.
                   the rest of the result information is complete.
               admin_level (int): Value of the `admin_level` OSM tag. Only meaningful
                   for administrative boundary objects.
index 2d9a487ae82cbfcd52b7841f6c416e0dd075c7dc..30999a3f31282a085520baabf1a6b308f9d6ed7b 100644 (file)
@@ -84,7 +84,7 @@ class BaseLogger:
     def format_sql(self, conn: AsyncConnection, statement: 'sa.Executable',
                    extra_params: Union[Mapping[str, Any],
                                  Sequence[Mapping[str, Any]], None]) -> str:
     def format_sql(self, conn: AsyncConnection, statement: 'sa.Executable',
                    extra_params: Union[Mapping[str, Any],
                                  Sequence[Mapping[str, Any]], None]) -> str:
-        """ Return the comiled version of the statement.
+        """ Return the compiled version of the statement.
         """
         compiled = cast('sa.ClauseElement', statement).compile(conn.sync_engine)
 
         """
         compiled = cast('sa.ClauseElement', statement).compile(conn.sync_engine)
 
index a6bfa91c64fb5befb8fdb4dcb4b8acd0cbbb7eb3..4670a1d6d16a2766d8a589a60d25169cdf9b4beb 100644 (file)
@@ -5,7 +5,7 @@
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
-Helper classes and functions for formating results into API responses.
+Helper classes and functions for formatting results into API responses.
 """
 from typing import Type, TypeVar, Dict, List, Callable, Any, Mapping
 from collections import defaultdict
 """
 from typing import Type, TypeVar, Dict, List, Callable, Any, Mapping
 from collections import defaultdict
index 9b67c51aa580ef38befd5e9efb80ed7b7885b825..8e83d52370fbb83a0715b5f5f694581fd5bf8754 100644 (file)
@@ -466,7 +466,7 @@ async def add_result_details(conn: SearchConnection, results: List[BaseResultT],
 
 
 def _result_row_to_address_row(row: SaRow, isaddress: Optional[bool] = None) -> AddressLine:
 
 
 def _result_row_to_address_row(row: SaRow, isaddress: Optional[bool] = None) -> AddressLine:
-    """ Create a new AddressLine from the results of a datbase query.
+    """ Create a new AddressLine from the results of a database query.
     """
     extratags: Dict[str, str] = getattr(row, 'extratags', {}) or {}
     if 'linked_place' in extratags:
     """
     extratags: Dict[str, str] = getattr(row, 'extratags', {}) or {}
     if 'linked_place' in extratags:
index a2daee157eb032c943869f4c0cc0da7bf2883dae..e16742cfa34170f6a8afbd0da75b6c945d7635d7 100644 (file)
@@ -175,7 +175,7 @@ class ReverseGeocoder:
         t = self.conn.t.placex
 
         # PostgreSQL must not get the distance as a parameter because
         t = self.conn.t.placex
 
         # PostgreSQL must not get the distance as a parameter because
-        # there is a danger it won't be able to proberly estimate index use
+        # there is a danger it won't be able to properly estimate index use
         # when used with prepared statements
         diststr = sa.text(f"{distance}")
 
         # when used with prepared statements
         diststr = sa.text(f"{distance}")
 
index 6947a565f80dad421dcd9398975284988121a254..aa3a2dad301b703307167541f110368a364565b4 100644 (file)
@@ -94,7 +94,7 @@ class RankedTokens:
 
     def with_token(self, t: Token, transition_penalty: float) -> 'RankedTokens':
         """ Create a new RankedTokens list with the given token appended.
 
     def with_token(self, t: Token, transition_penalty: float) -> 'RankedTokens':
         """ Create a new RankedTokens list with the given token appended.
-            The tokens penalty as well as the given transision penalty
+            The tokens penalty as well as the given transition penalty
             are added to the overall penalty.
         """
         return RankedTokens(self.penalty + t.penalty + transition_penalty,
             are added to the overall penalty.
         """
         return RankedTokens(self.penalty + t.penalty + transition_penalty,
index 555819e7451dac76042482cd101ffbdfd067c882..742f4a70f60aedf00ca5a92bc2a4e6adbd917c7a 100644 (file)
@@ -5,7 +5,7 @@
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
-Implementation of the acutal database accesses for forward search.
+Implementation of the actual database accesses for forward search.
 """
 from typing import List, Tuple, AsyncIterator, Dict, Any, Callable, cast
 import abc
 """
 from typing import List, Tuple, AsyncIterator, Dict, Any, Callable, cast
 import abc
index e7984ee41832909fe608edd69dfc2dc6ec635a50..86d42a543d20ce8429770d16451e61f8b7ea1e4b 100644 (file)
@@ -44,7 +44,7 @@ class LegacyToken(qmod.Token):
 
     @property
     def info(self) -> Dict[str, Any]:
 
     @property
     def info(self) -> Dict[str, Any]:
-        """ Dictionary of additional propoerties of the token.
+        """ Dictionary of additional properties of the token.
             Should only be used for debugging purposes.
         """
         return {'category': self.category,
             Should only be used for debugging purposes.
         """
         return {'category': self.category,
index ad1b69ef521dfd303ae1d5b95aa8629859feb10b..333722fe44ffa94ed3816d8832b04fbc0b552e10 100644 (file)
@@ -169,7 +169,7 @@ class TokenList:
 
 @dataclasses.dataclass
 class QueryNode:
 
 @dataclasses.dataclass
 class QueryNode:
-    """ A node of the querry representing a break between terms.
+    """ A node of the query representing a break between terms.
     """
     btype: BreakType
     ptype: PhraseType
     """
     btype: BreakType
     ptype: PhraseType
index bbc1eb6b1d787c483fc8086912279afda0a53b1a..3666b7fcf5c33cf33cd5ab416ede48a7d22f4d34 100644 (file)
@@ -19,7 +19,7 @@ if TYPE_CHECKING:
     from nominatim.api.search.query import Phrase, QueryStruct
 
 class AbstractQueryAnalyzer(ABC):
     from nominatim.api.search.query import Phrase, QueryStruct
 
 class AbstractQueryAnalyzer(ABC):
-    """ Class for analysing incomming queries.
+    """ Class for analysing incoming queries.
 
         Query analyzers are tied to the tokenizer used on import.
     """
 
         Query analyzers are tied to the tokenizer used on import.
     """
index 7a53a20efe35bd80c3f43cc68aeab5e27894983b..ca907b797dfe53b24e48d1602cc19ca97ff0fc2c 100644 (file)
@@ -72,7 +72,7 @@ class TokenAssignment: # pylint: disable=too-many-instance-attributes
 
 
 class _TokenSequence:
 
 
 class _TokenSequence:
-    """ Working state used to put together the token assignements.
+    """ Working state used to put together the token assignments.
 
         Represents an intermediate state while traversing the tokenized
         query.
 
         Represents an intermediate state while traversing the tokenized
         query.
@@ -132,7 +132,7 @@ class _TokenSequence:
 
         # Name tokens are always acceptable and don't change direction
         if ttype == qmod.TokenType.PARTIAL:
 
         # Name tokens are always acceptable and don't change direction
         if ttype == qmod.TokenType.PARTIAL:
-            # qualifiers cannot appear in the middle of the qeury. They need
+            # qualifiers cannot appear in the middle of the query. They need
             # to be near the next phrase.
             if self.direction == -1 \
                and any(t.ttype == qmod.TokenType.QUALIFIER for t in self.seq[:-1]):
             # to be near the next phrase.
             if self.direction == -1 \
                and any(t.ttype == qmod.TokenType.QUALIFIER for t in self.seq[:-1]):
@@ -238,10 +238,10 @@ class _TokenSequence:
 
     def recheck_sequence(self) -> bool:
         """ Check that the sequence is a fully valid token assignment
 
     def recheck_sequence(self) -> bool:
         """ Check that the sequence is a fully valid token assignment
-            and addapt direction and penalties further if necessary.
+            and adapt direction and penalties further if necessary.
 
             This function catches some impossible assignments that need
 
             This function catches some impossible assignments that need
-            forward context and can therefore not be exluded when building
+            forward context and can therefore not be excluded when building
             the assignment.
         """
         # housenumbers may not be further than 2 words from the beginning.
             the assignment.
         """
         # housenumbers may not be further than 2 words from the beginning.
@@ -277,10 +277,10 @@ class _TokenSequence:
             # <address>,<postcode> should give preference to address search
             if base.postcode.start == 0:
                 penalty = self.penalty
             # <address>,<postcode> should give preference to address search
             if base.postcode.start == 0:
                 penalty = self.penalty
-                self.direction = -1 # name searches are only possbile backwards
+                self.direction = -1 # name searches are only possible backwards
             else:
                 penalty = self.penalty + 0.1
             else:
                 penalty = self.penalty + 0.1
-                self.direction = 1 # name searches are only possbile forwards
+                self.direction = 1 # name searches are only possible forwards
             yield dataclasses.replace(base, penalty=penalty)
 
 
             yield dataclasses.replace(base, penalty=penalty)
 
 
index 8ac92f35835d0914e1d069b4cfef276ff95ac8e6..1069184c88e8bc9655111b737b3a060731d931e6 100644 (file)
@@ -5,7 +5,7 @@
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
-Classes and function releated to status call.
+Classes and function related to status call.
 """
 from typing import Optional
 import datetime as dt
 """
 from typing import Optional
 import datetime as dt
index 5767fe1604a7d31e5b1adffdf3699adf8420a439..e93015fcd0a8ce9cbfa67b2cb602674695b4bb11 100644 (file)
@@ -316,7 +316,7 @@ class DataLayer(enum.Flag):
         for reverse and forward search.
     """
     ADDRESS = enum.auto()
         for reverse and forward search.
     """
     ADDRESS = enum.auto()
-    """ The address layer contains all places relavant for addresses:
+    """ The address layer contains all places relevant for addresses:
         fully qualified addresses with a house number (or a house name equivalent,
         for some addresses) and places that can be part of an address like
         roads, cities, states.
         fully qualified addresses with a house number (or a house name equivalent,
         for some addresses) and places that can be part of an address like
         roads, cities, states.
@@ -415,7 +415,7 @@ class LookupDetails:
         more the geometry gets simplified.
     """
     locales: Locales = Locales()
         more the geometry gets simplified.
     """
     locales: Locales = Locales()
-    """ Prefered languages for localization of results.
+    """ Preferred languages for localization of results.
     """
 
     @classmethod
     """
 
     @classmethod
@@ -544,7 +544,7 @@ class SearchDetails(LookupDetails):
 
 
     def layer_enabled(self, layer: DataLayer) -> bool:
 
 
     def layer_enabled(self, layer: DataLayer) -> bool:
-        """ Check if the given layer has been choosen. Also returns
+        """ Check if the given layer has been chosen. Also returns
             true when layer restriction has been disabled completely.
         """
         return self.layers is None or bool(self.layers & layer)
             true when layer restriction has been disabled completely.
         """
         return self.layers is None or bool(self.layers & layer)
index 273fe2f5bf97ec39fb8bfa8dd5861779a8e429cd..b85d54011f5fc6c4eab0dd0a2681a5215dbaa52f 100644 (file)
@@ -5,7 +5,7 @@
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
-Hard-coded information about tag catagories.
+Hard-coded information about tag categories.
 
 These tables have been copied verbatim from the old PHP code. For future
 version a more flexible formatting is required.
 
 These tables have been copied verbatim from the old PHP code. For future
 version a more flexible formatting is required.
@@ -44,7 +44,7 @@ def get_label_tag(category: Tuple[str, str], extratags: Optional[Mapping[str, st
 def bbox_from_result(result: Union[napi.ReverseResult, napi.SearchResult]) -> napi.Bbox:
     """ Compute a bounding box for the result. For ways and relations
         a given boundingbox is used. For all other object, a box is computed
 def bbox_from_result(result: Union[napi.ReverseResult, napi.SearchResult]) -> napi.Bbox:
     """ Compute a bounding box for the result. For ways and relations
         a given boundingbox is used. For all other object, a box is computed
-        around the centroid according to dimensions dereived from the
+        around the centroid according to dimensions derived from the
         search rank.
     """
     if (result.osm_object and result.osm_object[0] == 'N') or result.bbox is None:
         search rank.
     """
     if (result.osm_object and result.osm_object[0] == 'N') or result.bbox is None:
index 896a131cc8c98da4eb982e69068e4f3df6cee2a8..ffd06a6a35e3439d4b47ae92a4bcd4d321506521 100644 (file)
@@ -155,7 +155,7 @@ COORD_REGEX = [re.compile(r'(?:(?P<pre>.*?)\s+)??' + r + r'(?:\s+(?P<post>.*))?'
 )]
 
 def extract_coords_from_query(query: str) -> Tuple[str, Optional[float], Optional[float]]:
 )]
 
 def extract_coords_from_query(query: str) -> Tuple[str, Optional[float], Optional[float]]:
-    """ Look for something that is formated like a coordinate at the
+    """ Look for something that is formatted like a coordinate at the
         beginning or end of the query. If found, extract the coordinate and
         return the remaining query (or the empty string if the query
         consisted of nothing but a coordinate).
         beginning or end of the query. If found, extract the coordinate and
         return the remaining query (or the empty string if the query
         consisted of nothing but a coordinate).
index 70f7dc40611f9ba552d8e8397922b1c0fc78e61a..f08e804292a4e674a0266e9c4454b00dbd8d8feb 100644 (file)
@@ -240,7 +240,7 @@ class ASGIAdaptor(abc.ABC):
 
 
     def parse_geometry_details(self, fmt: str) -> Dict[str, Any]:
 
 
     def parse_geometry_details(self, fmt: str) -> Dict[str, Any]:
-        """ Create details strucutre from the supplied geometry parameters.
+        """ Create details structure from the supplied geometry parameters.
         """
         numgeoms = 0
         output = napi.GeometryFormat.NONE
         """
         numgeoms = 0
         output = napi.GeometryFormat.NONE
@@ -531,7 +531,7 @@ async def deletable_endpoint(api: napi.NominatimAPIAsync, params: ASGIAdaptor) -
 async def polygons_endpoint(api: napi.NominatimAPIAsync, params: ASGIAdaptor) -> Any:
     """ Server glue for /polygons endpoint.
         This is a special endpoint that shows polygons that have changed
 async def polygons_endpoint(api: napi.NominatimAPIAsync, params: ASGIAdaptor) -> Any:
     """ Server glue for /polygons endpoint.
         This is a special endpoint that shows polygons that have changed
-        thier size but are kept in the Nominatim database with their
+        their size but are kept in the Nominatim database with their
         old area to minimize disruption.
     """
     fmt = params.parse_format(RawDataList, 'json')
         old area to minimize disruption.
     """
     fmt = params.parse_format(RawDataList, 'json')
index d86ce5ec15a92631430ecaacd637590fdd1aede5..4a4b9f290fc323dee3ce37e3509f1b48d49ba448 100644 (file)
@@ -5,7 +5,7 @@
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 # Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
-Import the base libary to use with asynchronous SQLAlchemy.
+Import the base library to use with asynchronous SQLAlchemy.
 """
 # pylint: disable=invalid-name
 
 """
 # pylint: disable=invalid-name
 
index 3762d82eff1a8a0b0a8e17223eb3f9f9c154e329..839f682d8a8e5db722657751e6b9e4051db9d002 100644 (file)
@@ -115,7 +115,7 @@ class SQLPreprocessor:
 
     def run_parallel_sql_file(self, dsn: str, name: str, num_threads: int = 1,
                               **kwargs: Any) -> None:
 
     def run_parallel_sql_file(self, dsn: str, name: str, num_threads: int = 1,
                               **kwargs: Any) -> None:
-        """ Execure the given SQL files using parallel asynchronous connections.
+        """ Execute the given SQL files using parallel asynchronous connections.
             The keyword arguments may supply additional parameters for
             preprocessing.
 
             The keyword arguments may supply additional parameters for
             preprocessing.
 
index 2134ae457b06ac263236f63927475a9fb33a7684..a56c04edc8f6a1eb2a1d3933cc4b5924a26cb38c 100644 (file)
@@ -26,7 +26,7 @@ def weigh_search(search_vector: Optional[str], rankings: str, default: float) ->
 
 class ArrayIntersectFuzzy:
     """ Compute the array of common elements of all input integer arrays.
 
 class ArrayIntersectFuzzy:
     """ Compute the array of common elements of all input integer arrays.
-        Very large input paramenters may be ignored to speed up
+        Very large input parameters may be ignored to speed up
         computation. Therefore, the result is a superset of common elements.
 
         Input and output arrays are given as comma-separated lists.
         computation. Therefore, the result is a superset of common elements.
 
         Input and output arrays are given as comma-separated lists.
index 1551c06257ff405aeca53a1b822ad2577c67ce7e..bdae350744e6774ff927f8bec597da8b05ee90e6 100644 (file)
@@ -128,7 +128,7 @@ class FileLoggingMiddleware:
                                resource: Optional[EndpointWrapper],
                                req_succeeded: bool) -> None:
         """ Callback after requests writes to the logfile. It only
                                resource: Optional[EndpointWrapper],
                                req_succeeded: bool) -> None:
         """ Callback after requests writes to the logfile. It only
-            writes logs for sucessful requests for search, reverse and lookup.
+            writes logs for successful requests for search, reverse and lookup.
         """
         if not req_succeeded or resource is None or resp.status != 200\
             or resource.name not in ('reverse', 'search', 'lookup', 'details'):
         """
         if not req_succeeded or resource is None or resp.status != 200\
             or resource.name not in ('reverse', 'search', 'lookup', 'details'):
index 84b4b9242b995a7b996176fff76c56496c33fc93..c1821d7edc7b88b2aa1f95797be2ddfce0ee0c85 100644 (file)
@@ -286,7 +286,7 @@ class ICUTokenizer(AbstractTokenizer):
 
 
     def _create_lookup_indices(self, config: Configuration, table_name: str) -> None:
 
 
     def _create_lookup_indices(self, config: Configuration, table_name: str) -> None:
-        """ Create addtional indexes used when running the API.
+        """ Create additional indexes used when running the API.
         """
         with connect(self.dsn) as conn:
             sqlp = SQLPreprocessor(conn, config)
         """
         with connect(self.dsn) as conn:
             sqlp = SQLPreprocessor(conn, config)
index 2de868c787cb6f47d75039a1b239ab385f9853af..ac8d90e4677e726449f3a1889cdcae10ae12a1b7 100644 (file)
@@ -60,5 +60,5 @@ class SanitizerHandler(Protocol):
 
         Return:
             The result must be a callable that takes a place description
 
         Return:
             The result must be a callable that takes a place description
-            and transforms name and address as reuqired.
+            and transforms name and address as required.
         """
         """
index 721f2ceea0630b61ea18b9cb117e34f7577a9421..8ffd93fe4c3f09932509ab24a92a13b0e41792a8 100644 (file)
@@ -127,7 +127,7 @@ def _get_indexes(conn: Connection) -> List[str]:
 
 # CHECK FUNCTIONS
 #
 
 # CHECK FUNCTIONS
 #
-# Functions are exectured in the order they appear here.
+# Functions are executed in the order they appear here.
 
 @_check(hint="""\
              {error}
 
 @_check(hint="""\
              {error}
index c8fda908c731324e28eb074e9fc0a31bd99f574e..779c55c7b00d835fd26eb6287674e8d1115e89c5 100644 (file)
@@ -78,7 +78,7 @@ def from_file_find_line_portion(
     filename: str, start: str, sep: str, fieldnum: int = 1
 ) -> Optional[str]:
     """open filename, finds the line starting with the 'start' string.
     filename: str, start: str, sep: str, fieldnum: int = 1
 ) -> Optional[str]:
     """open filename, finds the line starting with the 'start' string.
-    Splits the line using seperator and returns a "fieldnum" from the split."""
+    Splits the line using separator and returns a "fieldnum" from the split."""
     with open(filename, encoding='utf8') as file:
         result = ""
         for line in file:
     with open(filename, encoding='utf8') as file:
         result = ""
         for line in file:
index 121271cdf1abd3eb04be9b9715c70de7715a15bb..655c639b5d244e8ae5b84a78dbfc68a8171968e2 100644 (file)
@@ -120,7 +120,7 @@ Feature: Simple Tests
           | querystring | pub |
           | viewbox     | 12,33,77,45.13 |
 
           | querystring | pub |
           | viewbox     | 12,33,77,45.13 |
 
-    Scenario: Empty XML search with exluded place ids
+    Scenario: Empty XML search with excluded place ids
         When sending xml search query "jghrleoxsbwjer"
           | exclude_place_ids |
           | 123,76,342565 |
         When sending xml search query "jghrleoxsbwjer"
           | exclude_place_ids |
           | 123,76,342565 |
@@ -128,7 +128,7 @@ Feature: Simple Tests
           | attr              | value |
           | exclude_place_ids | 123,76,342565 |
 
           | attr              | value |
           | exclude_place_ids | 123,76,342565 |
 
-    Scenario: Empty XML search with bad exluded place ids
+    Scenario: Empty XML search with bad excluded place ids
         When sending xml search query "jghrleoxsbwjer"
           | exclude_place_ids |
           | , |
         When sending xml search query "jghrleoxsbwjer"
           | exclude_place_ids |
           | , |
index e72ff448a87893ea1352e661ac7ad1aa26fdb557..8cc74eadd9f2f721b52a01ebd512ced82fb30a60 100644 (file)
@@ -56,7 +56,7 @@ Feature: Address computation
             | N1     | R1      | True |
             | N1     | R2      | True |
 
             | N1     | R1      | True |
             | N1     | R2      | True |
 
-    Scenario: with boundaries of same rank the one with the closer centroid is prefered
+    Scenario: with boundaries of same rank the one with the closer centroid is preferred
         Given the grid
             | 1 |   |   | 3 |  | 5 |
             |   | 9 |   |   |  |   |
         Given the grid
             | 1 |   |   | 3 |  | 5 |
             |   | 9 |   |   |  |   |
index a8fda5ffff11bc1567cce52fca55388266f959df..19c0406c61ec085c21558a0ea7f1a730a7cccee5 100644 (file)
@@ -21,7 +21,7 @@ class GeometryFactory:
             The function understands the following formats:
 
               country:<country code>
             The function understands the following formats:
 
               country:<country code>
-                 Point geoemtry guaranteed to be in the given country
+                 Point geometry guaranteed to be in the given country
               <P>
                  Point geometry
               <P>,...,<P>
               <P>
                  Point geometry
               <P>,...,<P>
@@ -50,7 +50,7 @@ class GeometryFactory:
 
     def mk_wkt_point(self, point):
         """ Parse a point description.
 
     def mk_wkt_point(self, point):
         """ Parse a point description.
-            The point may either consist of 'x y' cooordinates or a number
+            The point may either consist of 'x y' coordinates or a number
             that refers to a grid setup.
         """
         geom = point.strip()
             that refers to a grid setup.
         """
         geom = point.strip()
index 11dede3049854a323388fceae13fa61b428fb689..1fc6f887ee0c11d66a6b2b9fa06ee29ada36608b 100644 (file)
@@ -270,8 +270,8 @@ class NominatimEnvironment:
             self.db_drop_database(self.test_db)
 
     def _reuse_or_drop_db(self, name):
             self.db_drop_database(self.test_db)
 
     def _reuse_or_drop_db(self, name):
-        """ Check for the existance of the given DB. If reuse is enabled,
-            then the function checks for existance and returns True if the
+        """ Check for the existence of the given DB. If reuse is enabled,
+            then the function checks for existnce and returns True if the
             database is already there. Otherwise an existing database is
             dropped and always false returned.
         """
             database is already there. Otherwise an existing database is
             dropped and always false returned.
         """
index 14ae5d520684eb060ac9a9f6d5632de1399fde09..493b40cc333c57610487d4ac2f76ddf33684e686 100644 (file)
@@ -164,7 +164,7 @@ def delete_places(context, oids):
 def check_place_contents(context, table, exact):
     """ Check contents of place/placex tables. Each row represents a table row
         and all data must match. Data not present in the expected table, may
 def check_place_contents(context, table, exact):
     """ Check contents of place/placex tables. Each row represents a table row
         and all data must match. Data not present in the expected table, may
-        be arbitry. The rows are identified via the 'object' column which must
+        be arbitrary. The rows are identified via the 'object' column which must
         have an identifier of the form '<NRW><osm id>[:<class>]'. When multiple
         rows match (for example because 'class' was left out and there are
         multiple entries for the given OSM object) then all must match. All
         have an identifier of the form '<NRW><osm id>[:<class>]'. When multiple
         rows match (for example because 'class' was left out and there are
         multiple entries for the given OSM object) then all must match. All
@@ -211,7 +211,7 @@ def check_place_has_entry(context, table, oid):
 def check_search_name_contents(context, exclude):
     """ Check contents of place/placex tables. Each row represents a table row
         and all data must match. Data not present in the expected table, may
 def check_search_name_contents(context, exclude):
     """ Check contents of place/placex tables. Each row represents a table row
         and all data must match. Data not present in the expected table, may
-        be arbitry. The rows are identified via the 'object' column which must
+        be arbitrary. The rows are identified via the 'object' column which must
         have an identifier of the form '<NRW><osm id>[:<class>]'. All
         expected rows are expected to be present with at least one database row.
     """
         have an identifier of the form '<NRW><osm id>[:<class>]'. All
         expected rows are expected to be present with at least one database row.
     """
@@ -260,7 +260,7 @@ def check_search_name_has_entry(context, oid):
 def check_location_postcode(context):
     """ Check full contents for location_postcode table. Each row represents a table row
         and all data must match. Data not present in the expected table, may
 def check_location_postcode(context):
     """ Check full contents for location_postcode table. Each row represents a table row
         and all data must match. Data not present in the expected table, may
-        be arbitry. The rows are identified via 'country' and 'postcode' columns.
+        be arbitrary. The rows are identified via 'country' and 'postcode' columns.
         All rows must be present as excepted and there must not be additional
         rows.
     """
         All rows must be present as excepted and there must not be additional
         rows.
     """
@@ -317,7 +317,7 @@ def check_word_table_for_postcodes(context, exclude, postcodes):
 def check_place_addressline(context):
     """ Check the contents of the place_addressline table. Each row represents
         a table row and all data must match. Data not present in the expected
 def check_place_addressline(context):
     """ Check the contents of the place_addressline table. Each row represents
         a table row and all data must match. Data not present in the expected
-        table, may be arbitry. The rows are identified via the 'object' column,
+        table, may be arbitrary. The rows are identified via the 'object' column,
         representing the addressee and the 'address' column, representing the
         address item.
     """
         representing the addressee and the 'address' column, representing the
         address item.
     """
@@ -384,7 +384,7 @@ def check_location_property_osmline(context, oid, neg):
 def check_place_contents(context, exact):
     """ Check contents of the interpolation table. Each row represents a table row
         and all data must match. Data not present in the expected table, may
 def check_place_contents(context, exact):
     """ Check contents of the interpolation table. Each row represents a table row
         and all data must match. Data not present in the expected table, may
-        be arbitry. The rows are identified via the 'object' column which must
+        be arbitrary. The rows are identified via the 'object' column which must
         have an identifier of the form '<osm id>[:<startnumber>]'. When multiple
         rows match (for example because 'startnumber' was left out and there are
         multiple entries for the given OSM object) then all must match. All
         have an identifier of the form '<osm id>[:<startnumber>]'. When multiple
         rows match (for example because 'startnumber' was left out and there are
         multiple entries for the given OSM object) then all must match. All
index 336fb707038bc02d775f84c85ba3165f3b583221..2d17c1a0e1f2eacd68ad24a41037f23611859665 100644 (file)
@@ -75,7 +75,7 @@ def define_node_grid(context, grid_step, origin):
             # TODO coordinate
             coords = origin.split(',')
             if len(coords) != 2:
             # TODO coordinate
             coords = origin.split(',')
             if len(coords) != 2:
-                raise RuntimeError('Grid origin expects orgin with x,y coordinates.')
+                raise RuntimeError('Grid origin expects origin with x,y coordinates.')
             origin = (float(coords[0]), float(coords[1]))
         elif origin in ALIASES:
             origin = ALIASES[origin]
             origin = (float(coords[0]), float(coords[1]))
         elif origin in ALIASES:
             origin = ALIASES[origin]
index 22dbaa2642d63a99ad227246c2c135139c087bcc..25f63bb8490a6964fc71ac94efa6aec96fcb28ff 100644 (file)
@@ -23,7 +23,7 @@ API_OPTIONS = {'search'}
 
 @pytest.fixture(autouse=True)
 def setup_icu_tokenizer(apiobj):
 
 @pytest.fixture(autouse=True)
 def setup_icu_tokenizer(apiobj):
-    """ Setup the propoerties needed for using the ICU tokenizer.
+    """ Setup the properties needed for using the ICU tokenizer.
     """
     apiobj.add_data('properties',
                     [{'property': 'tokenizer', 'value': 'icu'},
     """
     apiobj.add_data('properties',
                     [{'property': 'tokenizer', 'value': 'icu'},
index d455f35e1157b3aadb53b8e715e1ab211b9deb9c..998bccb434c418eeaa076995f851a0cbaeab8ba9 100644 (file)
@@ -8,7 +8,7 @@
 Tests for command line interface wrapper.
 
 These tests just check that the various command line parameters route to the
 Tests for command line interface wrapper.
 
 These tests just check that the various command line parameters route to the
-correct functionionality. They use a lot of monkeypatching to avoid executing
+correct functionality. They use a lot of monkeypatching to avoid executing
 the actual functions.
 """
 import importlib
 the actual functions.
 """
 import importlib
index 45104ea6850fd75ea596bc7818774a715a17063f..cc80c19aac3735f5250224a87ef4b64c926fceef 100644 (file)
@@ -8,7 +8,7 @@
 Test for the command line interface wrapper admin subcommand.
 
 These tests just check that the various command line parameters route to the
 Test for the command line interface wrapper admin subcommand.
 
 These tests just check that the various command line parameters route to the
-correct functionionality. They use a lot of monkeypatching to avoid executing
+correct functionality. They use a lot of monkeypatching to avoid executing
 the actual functions.
 """
 import pytest
 the actual functions.
 """
 import pytest