Skip to content

Commit 7a16777

Browse files
authored
Release v0.9.1
2 parents d7571a0 + 188d49d commit 7a16777

17 files changed

Lines changed: 1003 additions & 767 deletions

.bumper.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[tool.bumper]
2-
current_version = "0.9.0"
2+
current_version = "0.9.1"
3+
versioning_type = "semver"
34

45
[[tool.bumper.files]]
56
file = "./pyproject.toml"

.flake8

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
[flake8]
2-
max-line-length=100
3-
import-order-style=pycharm
4-
application-import-names=pyflysight,tests
52
extend-ignore=
6-
# pycodestyle
7-
E203,E226,E701
3+
E,F,W,
84
# flake8-annotations
95
ANN002,ANN003,ANN101,ANN102,ANN204,ANN206,
106
extend-exclude=
117
.venv,
12-
per-file-ignores =
13-
tests/test_*.py:E501,

.github/workflows/lint_test.yml

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ jobs:
1313
runs-on: ubuntu-latest
1414

1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v6
20+
with:
21+
python-version-file: "pyproject.toml"
1722

1823
- name: Install uv
19-
uses: astral-sh/setup-uv@v3
24+
uses: astral-sh/setup-uv@v6
2025
with:
21-
version: "0.5.x"
26+
version: "0.8.x"
2227
enable-cache: true
2328
cache-dependency-glob: "uv.lock"
2429

25-
- name: Set up Python
26-
uses: actions/setup-python@v5
27-
with:
28-
python-version-file: "pyproject.toml"
29-
3030
- name: Install dependencies
3131
run: uv sync --all-extras --dev
3232

@@ -38,21 +38,19 @@ jobs:
3838
runs-on: ubuntu-latest
3939
strategy:
4040
matrix:
41-
python-version: ["3.11", "3.12", "3.13"]
41+
python-version: ["3.11", "3.12", "3.13", "3.14-dev"]
4242
fail-fast: false
4343

4444
steps:
45-
- uses: actions/checkout@v4
45+
- uses: actions/checkout@v5
4646

47-
- name: Install uv
48-
uses: astral-sh/setup-uv@v3
49-
with:
50-
version: "0.5.x"
51-
enable-cache: true
52-
cache-dependency-glob: "uv.lock"
47+
- name: Get Non-Hyphenated Python Version
48+
id: get-pyver
49+
run: |
50+
echo "PYVER=$(cut -d '-' -f 1 <<< ${{ matrix.python-version }})" >> $GITHUB_OUTPUT
5351
5452
- name: Set up (release) Python ${{ matrix.python-version }}
55-
uses: actions/setup-python@v5
53+
uses: actions/setup-python@v6
5654
if: "!endsWith(matrix.python-version, '-dev')"
5755
with:
5856
python-version: ${{ matrix.python-version }}
@@ -64,13 +62,21 @@ jobs:
6462
python-version: ${{ matrix.python-version }}
6563
tk: true
6664

65+
- name: Install uv
66+
uses: astral-sh/setup-uv@v6
67+
with:
68+
version: "0.8.x"
69+
enable-cache: true
70+
cache-dependency-glob: "uv.lock"
71+
6772
- name: Install dependencies
6873
run: |
69-
uv venv
70-
uv pip install tox-gh-actions tox-uv
74+
uv venv --python ${{ steps.get-pyver.outputs.PYVER }}
75+
uv pip install tox-uv
7176
7277
- name: Run tests w/tox
73-
run: uv run tox
78+
run: |
79+
uv run tox -e ${{ steps.get-pyver.outputs.PYVER }}
7480
7581
- name: Cache coverage for ${{ matrix.python-version }}
7682
uses: actions/upload-artifact@v4
@@ -85,15 +91,15 @@ jobs:
8591
needs: test
8692

8793
steps:
88-
- uses: actions/checkout@v4
94+
- uses: actions/checkout@v5
8995

9096
- name: Set up Python
91-
uses: actions/setup-python@v5
97+
uses: actions/setup-python@v6
9298
with:
9399
python-version-file: "pyproject.toml"
94100

95101
- name: Pull coverage workflow artifacts
96-
uses: actions/download-artifact@v4
102+
uses: actions/download-artifact@v5
97103
with:
98104
path: cov_cache/
99105

.github/workflows/pypi_release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,25 @@ jobs:
1616
id-token: write
1717

1818
steps:
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@v5
2020

2121
- name: Install uv
22-
uses: astral-sh/setup-uv@v3
22+
uses: astral-sh/setup-uv@v6
2323
with:
24-
version: "0.5.x"
24+
version: "0.8.x"
2525
enable-cache: true
2626
cache-dependency-glob: "uv.lock"
2727

2828
- name: Set up Python
29-
uses: actions/setup-python@v5
29+
uses: actions/setup-python@v6
3030
with:
3131
python-version-file: "pyproject.toml"
3232

3333
- name: Build package
3434
run: uv build
3535

3636
- name: Publish to PyPI
37-
uses: pypa/gh-action-pypi-publish@release/v1.10
37+
uses: pypa/gh-action-pypi-publish@release/v1.13
3838
with:
3939
print-hash: true
4040

.github/workflows/static.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ jobs:
2222

2323
steps:
2424
- name: Checkout
25-
uses: actions/checkout@v4
25+
uses: actions/checkout@v5
2626

2727
- name: Setup Pages
2828
uses: actions/configure-pages@v5
2929

3030
- name: Install uv
31-
uses: astral-sh/setup-uv@v3
31+
uses: astral-sh/setup-uv@v6
3232
with:
33-
version: "0.5.x"
33+
version: "0.8.x"
3434
enable-cache: true
3535
cache-dependency-glob: "uv.lock"
3636

3737
- name: Set up Python
38-
uses: actions/setup-python@v5
38+
uses: actions/setup-python@v6
3939
with:
4040
python-version-file: "pyproject.toml"
4141

@@ -46,7 +46,7 @@ jobs:
4646
run: uv run mkdocs build
4747

4848
- name: Upload artifact
49-
uses: actions/upload-pages-artifact@v3
49+
uses: actions/upload-pages-artifact@v4
5050
with:
5151
path: './site'
5252

.pre-commit-config.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
ci:
2-
autoupdate_schedule: monthly
2+
autoupdate_schedule: quarterly
33

44
repos:
55
- repo: https://github.com/psf/black
66
rev: 25.1.0
77
hooks:
88
- id: black
99
- repo: https://github.com/pycqa/isort
10-
rev: 6.0.0
10+
rev: 6.0.1
1111
hooks:
1212
- id: isort
1313
name: isort
1414
- repo: https://github.com/pycqa/flake8
15-
rev: 7.1.1
15+
rev: 7.3.0
1616
hooks:
1717
- id: flake8
1818
additional_dependencies:
1919
- flake8-annotations
20+
- flake8-define-class-attributes
2021
- repo: https://github.com/pre-commit/pre-commit-hooks
21-
rev: v5.0.0
22+
rev: v6.0.0
2223
hooks:
2324
- id: check-case-conflict
2425
- id: check-json
@@ -35,6 +36,6 @@ repos:
3536
- id: python-check-blanket-type-ignore
3637
- id: python-use-type-annotations
3738
- repo: https://github.com/astral-sh/ruff-pre-commit
38-
rev: v0.9.4
39+
rev: v0.13.0
3940
hooks:
40-
- id: ruff
41+
- id: ruff-check

.ruff.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ select = [
1212
"B", # flake8-bugbear
1313
"C4", # flake8-comprehensions
1414
"D", # pydocstyle/flake8-docstrings
15+
"E", # pycodestyle
1516
"F", # Pyflakes
1617
"FIX", # flake8-fixme
1718
"N", # pep8-naming
19+
"W", # pycodestyle
1820
]
1921

2022
ignore = [
@@ -54,6 +56,7 @@ ignore = [
5456
"tests/test_*.py" = [
5557
"D101",
5658
"D103",
59+
"E501",
5760
]
5861
"tests/conftest.py" = [
5962
"D101",

CHANGELOG.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
# Changelog
22
Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html) (`<major>`.`<minor>`.`<patch>`)
33

4-
## [0.9.0]
4+
## `[0.9.1]`
5+
### Fixed
6+
* #50 fix tz-awareness issue from `calculate_sync_delta`
7+
8+
## `[0.9.0]`
59
### Changed
610
* #44 Add optional consideration for the `./TEMP` log directory on FlySight V2 hardware. This directory contains log sessions that have not yet been finalized and may contain the entire flight log of interest in certain situations (e.g. battery has depleted)
711

812
### Fixed
913
* #45 Enhance error message for mismatched series dimensions when parsing raw log files. This is typically encountered when the device is interrupted while finalizing log data and does not finish writing out one or more data rows
1014

11-
## [0.8.0]
15+
## `[0.8.0]`
1216
### Added
1317
* #35 Add a `prefer_processed` kwarg to the `pyflysight.flysight_proc.parse_v2_log_directory` helper pipeline to prefer loading a serialized `pyflysight.flysight_proc.FlysightV2FlightLog` instance, if detected, rather than parsing the raw data files
1418

1519
### Changed
1620
* (Internal) Move some commonly used/caught exceptions to `pyflysight.exceptions` for more granular exception handling
1721
* #41 `pyflysight log_convert single` and `pyflysight trim single` are now more tolerant of directory specification when provided a top-level directory containing only one child logging session; the child directory should now automatically be resolved prior to processing
1822

19-
## [0.7.0]
23+
## `[0.7.0]`
2024
### Added
2125
* #15 Add `pyflysight.flysight_proc.FlysightV1` and `pyflysight.flysight_proc.FlysightV1FlightLog` container classes for interfacing with FlySight V1 track data & metadata
2226
* #30 Add optional normalization of GPS coordinates in plaintext log files
@@ -27,7 +31,7 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html) (`<ma
2731
* #15 FlySight V1 related parsing helpers now utilize `pyflysight.flysight_proc.FlysightV1FlightLog` instances rather than bare `DataFrame`s
2832
* (Internal) Migrate to uv from poetry
2933

30-
## [0.6.0]
34+
## `[0.6.0]`
3135
### Added
3236
* #24 Add optional normalization of parsed GPS coordinates
3337
* #27 Add `filter_accel` and `filter_baro` helpers to `pyflysight.flysight_proc.FlysightV2FlightLog` to assist with applying filters to logged accelerometer & baro data.
@@ -39,39 +43,39 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html) (`<ma
3943
### Fixed
4044
* #25 Re-initialize nested configuration dataclasses when loading from JSON
4145

42-
## [0.5.1]
46+
## `[0.5.1]`
4347
### Added
4448
* Add `py.typed` marker to register library as typed for downstream type checking
4549

46-
## [0.5.0]
50+
## `[0.5.0]`
4751
### Changed
4852
* #16 Complete reimplementation of CLI
4953

5054
### Added
5155
* Add additional helpers to `pyflysight.config_utils` and `pyflysight.flysight_utils`
5256
* (Internal) #21 Add documentation autogeneration using `pdoc3`
5357

54-
## [v0.4.0]
58+
## `[v0.4.0]`
5559
### Added
5660
* Add derived `total_accel` column to FlySight V2 IMU sensor dataframe, calculated as a vector sum of the `xyz` acceleration components
5761
* Add `pyflysight.log_utils.locate_log_subdir` helper for resolving child log directory from a given top-level directory
5862
* Add `pyflysight.log_utils.iter_log_dirs` helper for iterating through child log directories of a given top-level directory
5963
* #19 Add `pyflysight.config_utils` for config file generation
6064
* #19 Add `pyflysight.flysight_utils` with helper utilities for working with connected FlySight devices
6165

62-
## [v0.3.0]
66+
## `[v0.3.0]`
6367
### Changed
6468
* (Internal) Bump to Polars v1.x
6569

6670
### Added
6771
* #18 Add `pyflysight.log_utils.classify_log_dir` helper for classifying the FlySight hardware rev of a given log directory
6872

69-
## [v0.2.0]
73+
## `[v0.2.0]`
7074
### Added
7175
* Add parsing pipelines for FlySight V1 track data files
7276
* #8 Add parsing pipelines for FlySight V2 track & sensor data files
7377
* #11 Add trimming for FlySight V1 & V2 data files
7478
* #12 Add simplified CSV log export for FlySight V2 data files
7579

76-
## [v0.1.0]
80+
## `[v0.1.0]`
7781
Initial release - yay!

CONTRIBUTING.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,54 @@
11
# Contributing
2+
23
## Development Environment
3-
Development of this project is done using the supported Python version most recently released. Note that tests are run against all supported versions of Python; see: [Testing & Coverage](#testing-and-coverage) for additional information.
4+
5+
Development of this project is done using the supported Python version most recently released. Note that tests are run against all supported versions of Python; see: [Testing & Coverage](#testing--coverage) for additional information.
46

57
This project uses [uv](https://docs.astral.sh/uv) 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:
68

7-
```bash
9+
```text
810
$ uv venv
911
$ uv sync --all-extras --dev
1012
```
1113

1214
A [`pre-commit`](https://pre-commit.com) configuration is also provided to create a pre-commit hook so linting errors aren't committed:
1315

14-
```bash
16+
```text
1517
$ pre-commit install
1618
```
1719

1820
[`mypy`](https://mypy-lang.org/) is also used by this project to provide static type checking. It can be invoked using:
1921

20-
```bash
22+
```text
2123
$ mypy .
2224
```
2325

2426
Note that `mypy` is not included as a pre-commit hook.
2527

26-
## Testing and Coverage
28+
## Testing & Coverage
29+
2730
A [pytest](https://docs.pytest.org/en/latest/) suite is provided, with coverage reporting from [`pytest-cov`](https://github.com/pytest-dev/pytest-cov). A [`tox`](https://github.com/tox-dev/tox/) configuration is provided to test across all supported versions of Python. Testing will be skipped locally for Python versions that cannot be found; all supported versions are tested in CI.
2831

29-
```bash
32+
```text
3033
$ tox
3134
```
3235

3336
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. Full code coverage is expected for the majority of code contributed to this project. Some exceptions are expected, primarily around code whose functionality relies on either user input or the presence of external drives; these interactions are currently not mocked, though this may change in the future.
3437

3538
## Documentation
39+
3640
### MkDocs
41+
3742
Library documentation is written using [MkDocs](https://www.mkdocs.org) and [mkdocstrings](https://mkdocstrings.github.io/) and contained in the `./docs/` directory. Unless otherwise agreed upon, documentation should be provided for all public interfaces. In progress documentation can be viewed using `mkdocs serve`, and a `tox` tonfiguration is also provided to render the static HTML to the `./site/` directory for previewing if desired:
3843

39-
```bash
44+
```text
4045
$ tox -e mkdocs
4146
```
4247

4348
### `cog`
49+
4450
The project README contains some dynamic content generated by [`cog`](https://cog.readthedocs.io/en/latest/). The included `tox` configuration will also these sections, and you can also invoke manually using:
4551

46-
```bash
52+
```text
4753
$ tox -e cog
4854
```

0 commit comments

Comments
 (0)