Settings

Options for the application itself, the InfluxDB connection and all connected devices are configured using a config file. The docker image assumes that this file is called config.yaml but for local execution the name can be whatever.

Example

A minimal example of the config can look like this:

config.json
{
    "title": "Heidelberg",
    "database": "tests/test-data/poi.parquet",
    "categories": ["landmark", "university", "transportation", "nature"]
}

Available settings

Aside from the three basic settings (title, databse file, categories), further details can be set (zoomlevel, port, loglevel).

pydantic model poi_map.config.models.POIMapConfig

Show JSON schema
{
   "title": "POIMapConfig",
   "type": "object",
   "properties": {
      "title": {
         "description": "Title of the app.",
         "title": "Title",
         "type": "string"
      },
      "database": {
         "description": "Path to the database file.",
         "format": "path",
         "title": "Database",
         "type": "string"
      },
      "categories": {
         "description": "List of POI categories to use.",
         "items": {
            "type": "string"
         },
         "title": "Categories",
         "type": "array"
      },
      "zoomlevel": {
         "default": 5,
         "description": "Initial zoom level.",
         "title": "Zoomlevel",
         "type": "integer"
      },
      "port": {
         "default": 8080,
         "description": "Port to run the app on.",
         "title": "Port",
         "type": "integer"
      },
      "loglevel": {
         "default": "INFO",
         "description": "Level at which messages should be logged.",
         "enum": [
            "NOTSET",
            "DEBUG",
            "INFO",
            "WARNING",
            "ERROR",
            "CRITICAL"
         ],
         "title": "Loglevel",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "title",
      "database",
      "categories"
   ]
}

Config:
  • extra: str = forbid

Fields:
Validators:
field categories: list[str] [Required]

List of POI categories to use.

field database: Path [Required]

Path to the database file.

Validated by:
field loglevel: Literal['NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO'

Level at which messages should be logged.

field port: int = 8080

Port to run the app on.

field title: str [Required]

Title of the app.

field zoomlevel: int = 5

Initial zoom level.

validator database_must_be_parquet  »  database
Return type:

Path

validator database_must_exist  »  database
Return type:

Path