Package: dropmate-py
Dropmate-pyPython helpers for theEDC Dropmate.InstallationInstall by cloning this repository and installing into a virtual environment:$pipinstall.You can confirm proper installation via thedropmateCLI:$dropmate--help
Usage:dropmate[OPTIONS]COMMAND[ARGS]...

Options:--helpShowthismessageandexit.

Commands:auditAuditaconsolidatedDropmatelog.audit-bulkAuditadirectoryofconsolidatedDropmatelogs.consolidateMergeadirectoryoflogsintoasimplifieddroprecord.UsageNOTE: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 AuditsThe following audits are supported:Empty Drop RecordMinimum Altitude LossMinimum Time Between Drop RecordsTime 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-airMinimum Dropmate Firmware VersionDropmate Internal Clock DriftMeasured as the delta between the scanning device's clock at scan time and the Dropmate's internal clockEnvironment VariablesThe following environment variables are provided to help customize pipeline behaviors.Variable NameDescriptionDefaultPROMPT_START_DIRStart path for UI file/dir prompt'.'dropmate auditProcess a consolidated Dropmate log CSV.Input ParametersParameterDescriptionTypeDefault--log-filepathPath to Dropmate log CSV to parse.Path|NoneGUI Prompt--min-alt-loss-ftThreshold altitude delta, feet.int200--min-firmwareThreshold firmware version.int|float5--internal-time-delta-minutesDropmate internal clock delta from real-time.int60--time-between-delta-minutesDelta between the start of a drop record and end of the previousint10dropmate audit-bulkBatch process a directory of consolidated Dropmate log CSVs.Input ParametersParameterDescriptionTypeDefault--log-dirPath to Dropmate log directory to parse.Path|NoneGUI Prompt--log-patternDropmate log file glob pattern.1,2str"*.csv"--min-alt-loss-ftThreshold altitude delta, feet.int200--min-firmwareThreshold firmware version.int|float5--internal-time-delta-minutesDropmate internal clock delta from real-time.int60--time-between-delta-minutesDelta between the start of a drop record and end of the previousint10Case sensitivity is deferred to the host OSRecursive globbing requires manual specification (e.g.**/*.csv)dropmate consolidateMerge a directory of Dropmate app outputs into a deduplicated, simplified drop record.Input ParametersParameterDescriptionTypeDefault--log-dirPath to Dropmate log directory to parse.Path|NoneGUI Prompt--log-patternDropmate log file glob pattern.1,2str"dropmate_records_*"--out-filenameConsolidated log filename.3strconsolidated_dropmate_records.csvCase sensitivity is deferred to the host OSRecursive 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 overwrittenContributingNOTE: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 EnvironmentThis project usesPoetryto manage dependencies. With your fork cloned to your local machine, you can install the project and its dependencies to create a development environment using:$poetryinstallApre-commitconfiguration is also provided to create a pre-commit hook so linting errors aren't committed:$pre-commitinstallTesting & CoverageApytestsuite is provided, with coverage reporting frompytest-cov. Atoxconfiguration is provided to test across all supported versions of Python. Testing will be skipped for Python versions that cannot be found.$toxDetails on missing coverage, including in the test suite, is provided in the report to allow the user to generate additional tests for full coverage.