This release is a pre-release and may not be stable for production use.
python-geoservercloud
Documentation
https://camptocamp.github.io/python-geoservercloud/
Installation
From PyPI:
pip install geoservercloud
From git repository:
git clone https://github.com/camptocamp/python-geoservercloud
cd python-geoservercloud
python3 -m venv .venv
source .venv/bin/activate
poetry install
Quick start
from geoservercloud import GeoServerCloud
geoserver = GeoServerCloud(
url="http://localhost:9090/geoserver/cloud/",
user="admin",
password="geoserver",
)
geoserver.create_workspace("newworkspace")
About
Lightweight Python client to interact with GeoServer Cloud REST API, GeoServer ACL and OGC services. Intended use cases are listed below.
Programmatic setup of a GeoServer catalog
For example, creating a workspace, connecting to a PostGIS datastore and publishing a PG layer:
geoserver.create_workspace("example")
geoserver.create_pg_datastore(
workspace_name="example",
datastore_name="example_store",
pg_host="localhost",
pg_port=5432,
pg_db="database",
pg_user="user",
pg_password="password"
)
geoserver.create_feature_type(
layer_name="layer_example",
workspace_name="example",
datastore_name="example_store",
title={
"en":"Layer title",
"fr": "Titre de la couche",
"default": "Default title",
},
)
Testing
Automatic tests of GeoServer functionalities with pytest, for example before upgrading.
The example below tests the fallback mechanism for internationalized layer titles in the GetCapabilities document.
@pytest.mark.parametrize(
"language,expected_title",
[
(
"en",
"Layer title",
),
(
"fr",
"Titre de la couche",
),
(
"de,en",
"Layer title",
),
(
None,
"Default title",
),
],
)
def test_i18n_layer_title(geoserver, language, expected_title):
capabilities = geoserver.get_wms_layers(
workspace="example",
accept_languages=language,
)
layer = capabilities.get("Layer")
assert layer.get("Title") == expected_title
A test suite is provided in the directory geoserver_acceptance_tests.
Syncing
Copying a workspace from one GeoServer instance to another, including PG datastores, layers, styles and style images.
In a Python console or script
from geoservercloud import GeoServerCloudSync
geoserversync = GeoServerCloudSync(
src_url="http://localhost:8080/geoserver",
src_user="admin",
src_password="geoserver",
dst_url="http://localhost:9099/geoserver",
dst_user="admin",
dst_password="geoserver",
)
geoserversync.copy_workspace("workspace_name", deep_copy=True)
In a shell terminal or script
First install the package in your current virtual environment (see Installation), then run the script with:
copy-workspace --src_url "http://localhost:8080/geoserver" --src_user admin --src_password geoserver --dst_url "http://localhost:9099/geoserver" --dst_user admin --dst_password geoserver --workspace workspace_name
Logging
Set the log level using the standard logging module, e.g.:
import logging
gs_logger = logging.getLogger("geoservercloud")
gs_logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
gs_logger.addHandler(handler)
Release files for geoservercloud 0.8.13.dev3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| geoservercloud-0.8.13.dev3.tar.gz | 16.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| geoservercloud-0.8.13.dev3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.4 MB
Release files / geoservercloud-0.8.13.dev3.tar.gz
| Download URL | geoservercloud-0.8.13.dev3.tar.gz |
|---|---|
| Size | 16.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0bd864c69acb6d1ba724da7ca0ba50a6b4da1e87721c9b1ecc69d712b0b46f05
|
|
BLAKE2b-256 checksum How to use checksums |
cbc2b635783058bf4dd52c7b0fc4a88796f8508aba0d2bc9f677f65edf08aee2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.14.7
|
Release files / geoservercloud-0.8.13.dev3-py3-none-any.whl
| Download URL | geoservercloud-0.8.13.dev3-py3-none-any.whl |
|---|---|
| Size | 16.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
04dfbf689520b346d125193d37b65280286015bb782c5dce365278bfe8d3b67a
|
|
BLAKE2b-256 checksum How to use checksums |
a78beca26afcd52a01276d81441b59a0736fe4b8c000e5aa2100bf976a792650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.14.7
|