The Compass Interface project aims to provide a unified and well-documented API to the Scouts' national membership system, Compass.
This is not an official API to Compass and as such should be used in a way that doesn't cause a high request load on the Compass system.
Please also remember your personal data handling obligations (under both GDPR and Scouting policies) whilst using this module.
The source code for the project is hosted on GitHub at the-scouts/compass-interface-core
Installers for the latest release are availibe on Conda and at the Python Package Index (PyPI).
# conda
conda install compass-interface-core
# or PyPI
pip install compass-interface-core
- requests - for intuitive HTTP requests
- certifi - for SSL/TLS certificate management
- lxml - for parsing HTML documents
- pydantic, email-validator, phonenumbers - for data validation and parsing
Compass Interface - Core is naturally open source and is licensed under the MIT license.
This sub-project hosts the extraction functionaility of Compass Interface, and is itself a standalone module for querying Compass.
The main project is found at the-scouts/compass-interface.
import compass as ci
# Turn on debug logging for development
ci.logger.enable_debug_logging()
# Login to Compass
compass_session = ci.login(username=..., password=...)
# Setup Compass Helpers
hierarchy = ci.Hierarchy(compass_session)
people = ci.People(compass_session)
# Get all unique members from the in your hierarchy
member_set = hierarchy.get_unique_members()