Merged with compass-interface-core
.
Restructured project to per-subpackage folders.
Updated infrastructure to cope with this.
Added retrospective changelog.
Drastically improved dockerfile (made it much smaller too).
Centralised API error codes for consistency.
Removed redis support.
Updated pin on compass-interface-core
to 0.20.0
(fix missed files).
Removed compass.util.cache
.
Updated pin on compass-interface-core
to 0.20.0
.
Updated JS sources to Compass version 4.07.
Added script to automatically update Compass JS sources.
Fixed packaging to include JSON resources.
Updated pin on compass-interface-core
to 0.15.1
.
Added more hierarchy API endpoints.
Renamed compass.api.utility
to compass.api.util
for consistency with
compass-interface-core
.
Moved http error handling to compass.api.util.http_errors
.
Updated pin on compass-interface-core
to 0.14.1
.
Added compass/api/resources/hierarchy_flat.json
and
compass.api.util.flatten_units
.
Added initial hierarchy API endpoints.
Updated pin on compass-interface-core
to 0.13.1
.
Added error handling context manager.
Fixed accidental overwriting of username
argument.
Added automatic deploy workflow through GitHub Actions.
Added logging throughout.
Updated pin on compass-interface-core
to 0.13.0
.
Fix packaging metadata.
Moved cache implementation to compass.util.cache
Fixed automatic release workflow (take two).
Fixed automatic release workflow.
Updated badges in README.
Updated pin on compass-interface-core
to 0.9.3
.
Added compass.api.utility.oauth2.people_accessor
.
Added several /me/<accessor>
accessors (awards, disclosures, latest disclosure)
Changed redis management to use a Starlette
lifetime.
Refactored redis support to compass.api.plugins.redis
.
Removed script.py
.
Centralised docker configuration in docker/
.
Updated README with docker information and new installation instructions.
Fixed errors in automatic release workflow.
Removed:
- compass.api.utility.compass_people_interface
.
- compass.api.utility.tables
.
- compass.api.utility.redis_handler.RedisConfig
.
Added:
- role_details_all_csv_to_json
in script.py
.
- logic for /permits
API endpoint.
- automatic release workflow through GitHub Actions.
Changed:
- Normalised imports to fully-qualified style.
- Updated type hints.
- Updated pin on compass-interface-core
to 0.8.0
.
- Renamed report_to_sql
in compass.api.utility.reports_interface
to
report_to_feather
.
Fixed API authentication.
Updated pin on compass-interface-core
to 0.5.0
.
Added packaging configuration.
Moved compass.util
to this project.
General formatting changes (black
and isort
).
Moved to namespace packages:
- api
-> compass.api
- interface
-> compass.interface
Switched to using p3x-redis-ui
over redisinsight
for docker.
Updated JS sources to Compass version 4.06.
Updated requirements.txt
Moved to using docker-hub images for scouts/compass-interface-backend
Updated the licence for 2021.
Integrated compass-interface-core
:
- Removed split out compass.core
modules
- Removed certificate files
- Updated README
- Added isort
configuration
- Switched to using compass.core
classes, functions, etc
Added requirements.txt
for pip as an alternative to conda.
Simplified dockerfile.
Note
compass-interface-core initially branched from this point.
Unify project descriptions between FastAPI and README.
Added initial docker support with a dockerfile for the backend and settings for docker-compose to run the full API and associated services.
Added project metadata to FastAPI for better automatic documentation.
Updated README with more project information.
Moved redis lifetime handling into api.utility.redis_handler
.
Created compass.settings.Settings
.
Moved compass authorisation header logic to compass.logon
.
Moved utility.jk_hash
to compass.logon
.
Renamed API endpoint function names for better automatic documentation.
Moved logic for api ongoing learning wrangling to
api.utility.compass_people_interface
.
Added /me/ongoing-training
API endpoint.
Added option to only get mandatory ongoing learning information from CompassPeopleScraper.get_training_tab
.
Added /me/permits
API endpoint.
Added /me/roles
API endpoint.
Changed return type of /me
API endpoint to Member
model.
Changed API login flow logic to validate member numbers.
Removed entire jQuery source from JS sources.
Added CompassPeople.get_roles
.
Integrated authentication against Compass into the API.
Added logic to /me
API endpoint.
Fixed import location.
Added oauth2 utility functions in api.utility
.
Added experimental PeriodicTimer
class.
Migrated to using custom CompassError
exception types in compass.logon
.
Wrote redis cache plugin.
Updated installation instructions.
Created api.schemas.auth
.
Added custom exception types for the compass
module.
Moved api.database.interface
to api.utility.reports_interface
and
combine with api.database.database
.
Moved api.database.tables
to api.utility.tables
,
Updated metadate:
- use strong emphasis for venv suggestion
- added progress to API routes sketch
- simplified .gitignore
.
- renamed certs/
to certificates/
Added installation instructions in README.
Fixed mandatory ongoing learning API endpoint.
Added mandatory ongoing learning schema.
Increased type strictness in api.schemas.member
.
Added (broken) mandatory ongoing learning API endpoint.
Updated project metadata: - Added licence information (MIT) - Expanded README - Updated dependencies
Added logic for member roles endpoint.
Fixed bug in project root detection.
Added main API router.
Added sketch of proposed API routes.
Added draft of initial API routes for member accessors.
Added draft of API database functionality.
Added custom exception types for reports.
reports.get_report
now returns bytes.
Added first pydantic schemas for member types.
Enabled SSL checks
Fixed invalid certificates error by vendoring certificates.
Namespaced modules as compass.*
.
Created compass_reports
.
Move compass_read
to interface
.
First working report exports (Regional Appointments Report).
Removed safe_xpath
.
Moved compass_people.cast
to utility
.
Added return type hints to some functions in compass_people
.
Moved training parsing from CompassPeople
to CompassPeopleScraper
.
Moved roles parsing from CompassPeople
to CompassPeopleScraper
.
Moved permit parsing from CompassPeople
to CompassPeopleScraper
.
Added David Breakwell's compassread2.php
recipe.
Fix requirements file to use Python 3.8.
Added role data properties (CompassLogon.current_role
,
CompassLogon.roles_dict
).
Added cast
function to coerce types.
Added CompassPeopleScraper.get
.
Added permit functions through CompassPeopleScraper.get_permits_tab
and
CompassPeople._permits_tab
.
Use LiveData
to get section type.
Rename get_units_from_numeric_level
to
get_descendants_from_numeric_level
.
Bugfixes in CompassLogon
.
Broke out get_report
in script.py
.
Return PLPs and role data in addition to mandatory learning in
CompassPeople._training_tab
.
Generate CompassHierarchy.hierarchy_levels
more dynamically.
Substantially refactored CompassLogon
.
Standardised interchange format between scraper and interface classes.
Added keep_non_volunteer_roles
argument to CompassPeople._roles_tab
Fixed imports in script.py
Added common utility methods.
Refactored compass_data
to modules (compass_(hierarchy|logon|people)
, utility
)
Changed:
- Moved compass_data.py
to src/
directory
Added:
- Dependency information in environment.yml
- Configuration for black
Standardised variable names in script.py
Added script.py
file.
Internal refactor, exposed CompassLogon.session
directly.
Initial import of the compass_data.py
script into version control.