Skip to main content

er-smart-sync

Synchronize SMART Connect wildlife-monitoring data with EarthRanger, and migrate a SMART conservation area's patrol history into EarthRanger from a backup.

📖 Full documentation

https://padas.github.io/earthranger-smart-utils/

Includes install instructions, step-by-step workflows for every sync flow, a complete CLI reference, conceptual background, and troubleshooting.

What it does

  • Datamodel sync (SMART → ER) — turn SMART data models into EarthRanger event categories and event types.
  • Event sync (ER → SMART) — poll EarthRanger events and forward them via message broker.
  • Patrol sync (ER → SMART) — poll EarthRanger patrols with track points and attached files.
  • Patrol migration (SMART backup → ER) — from a migration bundle written by smart-able, with no SMART Connect needed: patrol-datamodel creates the patrol types, universal patrol fields, choices and ranger subjects; patrol-preflight checks the site is ready; import-patrols writes the patrol history (a patrol with a segment per leg, an event per observation, the leaders' tracks). Re-runs write nothing new. See Migrate SMART patrols.
  • Event-type copy (ER → ER) — copy a single event type (and the v2 choices its schema references) from one EarthRanger site to another via the copy-event-type CLI subcommand.

Quick install

uv pip install er-smart-sync
er-smart-sync --help

Or install from source (for development):

git clone git@github.com:PADAS/earthranger-smart-utils.git
cd earthranger-smart-utils
uv pip install -e ".[dev]"
er-smart-sync --help

See the Installation page for prerequisites, optional extras, and verification steps.

For contributors

Working on the codebase itself? Start with:

  • CLAUDE.md — codebase conventions: Pydantic v1 API, SMART version-gating (<7.5.3 needs smart_observation_uuid patching), the bracketed-CA-label convention, and the protocol-based dependency-injection pattern.
  • USAGE.md — developer-oriented CLI reference and the bracketed-CA-label convention as it affects the codebase.
  • docs/superpowers/specs/ — design specs for non-trivial features (v2 event types, choices population, etc.).
  • docs/superpowers/plans/ — implementation plans for recent feature work.

The user-facing documentation at the link above covers what er-smart-sync does and how to use it; the references in this section cover how it's built.

License

Apache License 2.0. See LICENSE.

Metadata

Release files for er-smart-sync 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for er-smart-sync 0.10.0
File Size Uploaded Provenance
er_smart_sync-0.10.0.tar.gz 621.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for er-smart-sync 0.10.0
File Interpreter ABI Platform
er_smart_sync-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 736.6 kB

Release files / er_smart_sync-0.10.0.tar.gz

Download URL er_smart_sync-0.10.0.tar.gz
Size 621.0 kB
Tags Source
SHA-256 checksum
How to use checksums
71eb80672b18753df6c998d2896e7c069e6461daeb4b0b59d3ec40a67969d3c6
BLAKE2b-256 checksum
How to use checksums
758b2995cb32a227973be5e93ee5a05d16ea7792906944129b26bd4de2447365
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / er_smart_sync-0.10.0-py3-none-any.whl

Download URL er_smart_sync-0.10.0-py3-none-any.whl
Size 115.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
31f56a29b522b8f3d76ed79cda5809b8bfe8d2bcef2dc8b2a5dfad02dd3f333a
BLAKE2b-256 checksum
How to use checksums
cab334726d5c14d13811482fb68c6512e4b3e91644a91378288f41565d56973d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for er-smart-sync 0.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for er_smart_sync-0.10.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page