pyramid_oereb
is an open-source implementation of the server side part for the swiss "Cadastre of
Public-law Restrictions on landownership" (PLR-cadastre).
It is written in Python and designed as a plugin for the Pyramid Web Framework. This allows pyramid_oereb
to be
included in any Pyramid web application.
Please refer to the documentation for detailed information and instructions for installation and configuration.
If you are interested in contributing or extending the project, take a look at the contribution page.
- Build run the initial build depending on your OS:
docker network create print-network
- Linux:
docker compose run --rm -u $(id -u):$(id -g) oereb-make build
- MAC/Windows:
docker compose run --rm oereb-make build
docker compose up
Running docker compose up
will start the DB (it will automatically import the test/dev data on startup) and start
a running instance of the pyramid_oereb DEV server connected to the DB. The project folder is mounted
to it. So changes take effect.
The sample static extract should then be available at http://localhost:6543/oereb/extract/json?EGRID=CH113928077734
To run the tests locally:
docker network create print-network
- Linux:
docker compose run --rm -u $(id -u):$(id -g) oereb-server make build tests
- MAC/Windows:
docker compose run --rm oereb-server make build tests
For systems having a local make tool, the following recipe can be used:
make docker-tests
sometimes the local postgres port is already in use, and you must override it:
EXPOSED_PGPORT=5433 make docker-tests
For local tests without the complete docker composition you need a running DB.
You can create one based on the oereb image:
docker compose up -d oereb-db
or create an empty postgis DB
docker run -p 5555:5432 --name pg_oereb --rm -it -e POSTGRES_PASSWORD=pw postgis/postgis
Then you can run the tests easily:
make tests
If the DB does not use standard credentials, you can set them as ENV vars:
PGPORT=5555 PGPASSWORD=pw make tests
To run one specfic test:
docker compose exec oereb-server PYTEST_OPTS="-k <name_of_the_test>" make tests
Some local files may remain from previous builds, and the regular user may not be able to delete them. In this case cleanup can be done like:
docker compose run --rm oereb-make clean-all
Run the make
targets found in the Makefile either in the oereb-server
container (if using docker compose
) or in your local shell (if running the server locally).
Some useful targets:
make serve-dev
to run the applicationmake tests
to run the application testsmake docker-tests
to run the application tests inside a docker composition, so one does not have to care about local set upmake clean
to empty the databasemake clean-all
to empty the database, uninstall the application and the virtual env and clear the rendered configuration filesmake docker-clean-all
to clean up everything written by the docker container. This is sometimes useful when docker has created some files with root only permission
If necessary the application is re-installed and the database is filled when running make serve-dev
again.
There are further make targets to check the validity of federal data:
make check_fed_data
downloads currently known federal data definitions and compares them with the active onesmake update_fed_data_urls
try to retrieve the new urls from the server's index page. The file fed.urls must then be committed to the repomake update_fed_data_urls
generate new json files in the repo. The modified files must then be committedmake auto_update_fed_data
automagic command which finds the new URLs, generates json data, copies json to project. The files fed.urls and dev/sample_data/ch.*.json must be committed if changed
To be able to test the OEREB static extract (pdf), you need to run pyramid_oereb
with docker compose
and to have a running instance of pyramid_oereb_mfp.
The Docker network print-network
is also required and can be created with:
docker network create print-network
It is also possible to launch a Mapfish Print service on a local URL (via Docker or not) and then run the server via make serve. The correct print url must be provided:
PRINT_URL="http://localhost:8680/print/oereb" EXPOSED_PGPORT=5433 PGPORT=5433 make serve-dev
The sample static extract should then be available at http://localhost:6543/oereb/extract/pdf?EGRID=CH113928077734
CI status on master branch:
Daily check status:
Code Quality Status: