Python helpers for the EDC Dropmate
Project description
Dropmate-py
Python helpers for the EDC Dropmate.
Installation
Install by cloning this repository and installing into a virtual environment:
$ pip install .
You can confirm proper installation via the dropmate
CLI:
$ dropmate --help
Usage: dropmate [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
audit Audit a consolidated Dropmate log.
audit-bulk Audit a directory of consolidated Dropmate logs.
consolidate Merge a directory of logs into a simplified drop record.
Usage
NOTE: All functionality assumes that log records have been provided by Dropmate app version 1.5.16 or newer. Prior versions may not contain all the necessary data columns to conduct the data audit, and there may also be column naming discrepancies between the iOS and Android apps.
Supported Audits
The following audits are supported:
- Empty Drop Record
- Minimum Altitude Loss
- Minimum Time Between Drop Records
- Time delta between the end of the previous drop record and the beginning of the next.
- Short deltas may indicate that the previous drop record ended prematurely & restarted mid-air
- Minimum Dropmate Firmware Version
- Dropmate Internal Clock Drift
- Measured as the delta between the scanning device's clock at scan time and the Dropmate's internal clock
Environment Variables
The following environment variables are provided to help customize pipeline behaviors.
Variable Name | Description | Default |
---|---|---|
PROMPT_START_DIR |
Start path for UI file/dir prompt | '.' |
dropmate audit
Process a consolidated Dropmate log CSV.
Input Parameters
Parameter | Description | Type | Default |
---|---|---|---|
--log-filepath |
Path to Dropmate log CSV to parse. | Path|None |
GUI Prompt |
--min-alt-loss-ft |
Threshold altitude delta, feet. | int |
200 |
--min-firmware |
Threshold firmware version. | int|float |
5 |
--internal-time-delta-minutes |
Dropmate internal clock delta from real-time. | int |
60 |
--time-between-delta-minutes |
Delta between the start of a drop record and end of the previous | int |
10 |
dropmate audit-bulk
Batch process a directory of consolidated Dropmate log CSVs.
Input Parameters
Parameter | Description | Type | Default |
---|---|---|---|
--log-dir |
Path to Dropmate log directory to parse. | Path|None |
GUI Prompt |
--log-pattern |
Dropmate log file glob pattern.1,2 | str |
"*.csv" |
--min-alt-loss-ft |
Threshold altitude delta, feet. | int |
200 |
--min-firmware |
Threshold firmware version. | int|float |
5 |
--internal-time-delta-minutes |
Dropmate internal clock delta from real-time. | int |
60 |
--time-between-delta-minutes |
Delta between the start of a drop record and end of the previous | int |
10 |
- Case sensitivity is deferred to the host OS
- Recursive globbing requires manual specification (e.g.
**/*.csv
)
dropmate consolidate
Merge a directory of Dropmate app outputs into a deduplicated, simplified drop record.
Input Parameters
Parameter | Description | Type | Default |
---|---|---|---|
--log-dir |
Path to Dropmate log directory to parse. | Path|None |
GUI Prompt |
--log-pattern |
Dropmate log file glob pattern.1,2 | str |
"dropmate_records_*" |
--out-filename |
Consolidated log filename.3 | str |
consolidated_dropmate_records.csv |
- Case sensitivity is deferred to the host OS
- Recursive globbing requires manual specification (e.g.
**/dropmate_records_*
) - Consolidate log will be written into the specified log directory; any existing file of the same name will be overwritten
Contributing
NOTE: Due to deployment environment restrictions preventing the use of compiled libraries (e.g. Polars, Pandas/Numpy), tooling is intentionally limited to pure-Python implementations.
Development Environment
This project uses Poetry to manage dependencies. With your fork cloned to your local machine, you can install the project and its dependencies to create a development environment using:
$ poetry install
A pre-commit configuration is also provided to create a pre-commit hook so linting errors aren't committed:
$ pre-commit install
Testing & Coverage
A pytest suite is provided, with coverage reporting from pytest-cov. A tox configuration is provided to test across all supported versions of Python. Testing will be skipped for Python versions that cannot be found.
$ tox
Details on missing coverage, including in the test suite, is provided in the report to allow the user to generate additional tests for full coverage.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dropmate_py-1.0.0.tar.gz
.
File metadata
- Download URL: dropmate_py-1.0.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f767adcb58110b01d21eab348fdc2243cd4a76be1b5b184d78f15b55760de923 |
|
MD5 | 00791ccaca8eceab618f115e9ffcbcfe |
|
BLAKE2b-256 | 7e64857b5e05152fbc3f979af51eddca016a2c26a9404b125614d68d9bb7e3e5 |
File details
Details for the file dropmate_py-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: dropmate_py-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 314467190934b12550058ac87d0ef35fbab80e13db291b5be3c4bc5d5d12416d |
|
MD5 | 792b7d446e199f88dca6bf5cdca7f7e4 |
|
BLAKE2b-256 | 119d7dfb05044c07b15c9e01a03876bb805980048e249136494f8991539e1699 |