Contents
New Features
- [x] Add `GoogleCloudStorageClient`
- [x] Write manifest, its datasets, and its datafiles to cloud in `Analysis.finalise` (96)
- [x] Closes 84 - add auto tag and release workflow
- [x] Allow Google Cloud storage blobs to be represented by `Pathable`
- [x] Add `Datafile`, `Dataset`, and `Manifest` `to_cloud` and `from_cloud` methods
- [x] Allow regular GCP files to be represented as `Datafile`s
Minor fixes and improvements
- [x] Add cloud storage emulator once for all tests
- [x] Add disk usage and file age utilities
- [x] Allow `Dataset`s to have custom names
- [x] Add `storage.path` module akin to `os.path` but for Google Cloud Storage paths
- [x] Allow `Hashable`s' hash values to be set
- [x] Pass GCP project and bucket names to tests from environment (93)
- [x] Add ability to delete topic and subscription when a `Service` has finished serving
- [x] Facilitate graceful exit for serving `Service`s on `KeyboardInterrupt`
- [x] Use latest versions of flake8, isort, and black in pre-commit and across all files (87)
- [x] Fix CI test skipping flag
- [x] Fix documentation links (92)
Breaking changes
- [x] Remove testing and explicit support for `python3.6` and `python3.7`
- [x] Remove `base_from` from Pathable and replace with more transparent method
- [x] Rename `Datafile.posix_timestamp` to `Datafile.timestamp` and remove default value
- [x] Make `Datafile.last_modified` private
- [x] Rename `persistence` subpackage to `storage`
Testing
- [x] Test that children can question their own children as part of answering a question
- [x] Close 94 - delete topics and subscriptions at the end of each test
- [x] Remove timeouts from tests and replace with thread executor shutdown upon test pass, meaning that tests that connect to Google Pub/Sub won't fail because the connection is slower than expected