Skip to content

Settings

Configuration

Geocoders

Default geocoders: env var FTMGEO_GEOCODERS They are used in the given order

Make sure to configure the geocoders as needed for geopy (endpoints, api keys, ...):

export FTMGEO_<GEOCODERNAME>_<SETTING>=...

Reference

Settings

Bases: BaseSettings

ftm-geocode settings management using pydantic-settings

Note

All settings can be set via environment variables in uppercase, prepending FTMGEO_ (except for those with a given prefix)

Source code in ftm_geocode/settings.py
class Settings(BaseSettings):
    """
    `ftm-geocode` settings management using
    [pydantic-settings](https://docs.pydantic.dev/latest/concepts/pydantic_settings/)

    Note:
        All settings can be set via environment variables in uppercase,
        prepending `FTMGEO_` (except for those with a given prefix)

    """

    model_config = SettingsConfigDict(
        env_prefix="ftmgeo_",
        env_nested_delimiter="__",
        nested_model_default_partial_update=True,
    )

    user_agent: str = f"ftm-geocode v{__version__}"
    """User-Agent string to use for geocoding services"""

    default_timeout: int = 10
    """Geocoder timeout"""

    min_delay_seconds: float = 0.5
    """Minimum delay between geocoding requests"""

    max_retries: int = 5
    """Maximum retries for geocoding"""

    cache: StoreModel = StoreModel(uri=anystore.uri)
    """Cache uri (using anystore)"""

    nuts_data: Path = NUTS
    """Location for nuts shapefile data"""

    geocoders: list[GEOCODERS] = [GEOCODERS.nominatim]
    """Default geocoders to use (in order)"""

    libpostal: bool = False
    """Activate libpostal (requires additional install)"""

cache = StoreModel(uri=anystore.uri) class-attribute instance-attribute

Cache uri (using anystore)

default_timeout = 10 class-attribute instance-attribute

Geocoder timeout

geocoders = [GEOCODERS.nominatim] class-attribute instance-attribute

Default geocoders to use (in order)

libpostal = False class-attribute instance-attribute

Activate libpostal (requires additional install)

max_retries = 5 class-attribute instance-attribute

Maximum retries for geocoding

min_delay_seconds = 0.5 class-attribute instance-attribute

Minimum delay between geocoding requests

nuts_data = NUTS class-attribute instance-attribute

Location for nuts shapefile data

user_agent = f'ftm-geocode v{__version__}' class-attribute instance-attribute

User-Agent string to use for geocoding services