Skip to content

Commit db240e0

Browse files
authored
Merge pull request #38 from semuconsulting/RC-1.0.8
RC 1.0.8
2 parents 5513cdc + 7907301 commit db240e0

File tree

8 files changed

+47
-39
lines changed

8 files changed

+47
-39
lines changed

.github/workflows/checkpr.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
strategy:
1010
matrix:
11-
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
11+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14.0-rc.2"]
1212

1313
steps:
1414
- uses: actions/checkout@v4
@@ -18,6 +18,8 @@ jobs:
1818
python-version: ${{ matrix.python-version }}
1919
- name: Install deploy dependencies
2020
run: pip install --group deploy
21+
- name: Install optional cryptography dependencies
22+
run: pip install --group crypto
2123
- name: Install code dependencies
2224
run: pip install .
2325
- name: Lint with pylint

.github/workflows/main.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
strategy:
1212
matrix:
13-
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
13+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14.0-rc.2"]
1414

1515
steps:
1616
- uses: actions/checkout@v4
@@ -20,6 +20,8 @@ jobs:
2020
python-version: ${{ matrix.python-version }}
2121
- name: Install deploy dependencies
2222
run: pip install --group deploy
23+
- name: Install optional cryptography dependencies
24+
run: pip install --group crypto
2325
- name: Install code dependencies
2426
run: pip install .
2527
- name: Lint with pylint

.vscode/settings.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
{
2-
"python.testing.unittestEnabled": false,
2+
// These test, build and deploy tasks are targeted at a venv
3+
// called 'pygpsclient' located in the user's home directory.
4+
// Set your workspace default VSCode Python interpreter to
5+
// this venv, i.e.
6+
// "${userHome}/pygpsclient/bin/python3" on linux/macos
7+
// "${userHome}/pygpsclient/Scripts/python" on windows
38
"python.testing.pytestEnabled": true,
49
"python.terminal.activateEnvironment": true,
510
"editor.formatOnSave": true,
611
"modulename": "${workspaceFolderBasename}",
712
"distname": "${workspaceFolderBasename}",
8-
"venv": "${env:HOME}/pygpsclient",
13+
"venv": "${userHome}/pygpsclient",
914
"python.testing.pytestArgs": [
1015
"tests"
1116
],
@@ -17,5 +22,5 @@
1722
"python.analysis.addHoverSummaries": false,
1823
"python-envs.defaultEnvManager": "ms-python.python:venv",
1924
"python-envs.pythonProjects": [],
20-
"python.defaultInterpreterPath": "/Users/steve/pygpsclient/bin/python3",
25+
"python.defaultInterpreterPath": "${userHome}/pygpsclient/bin/python3"
2126
}

.vscode/tasks.json

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
{
2-
// See https://go.microsoft.com/fwlink/?LinkId=733558
3-
// for the documentation about the tasks.json format
4-
//
5-
// This VSCode development workflow is intended to work on
6-
// MacOS, Linux and Windows (with Powershell>=5.1).
7-
//
8-
// Use the Install Deploy Dependencies tasks to install the necessary
9-
// build and test packages into the system environment.
10-
//
11-
// Use the Create Venv task to create a virtual environment in the
12-
// designated directory. Select this environment using Select
13-
// Interpreter to auto-activate it via New Terminal.
14-
//
15-
// Remember to include any global Python bin (Scripts on Windows) in PATH.
2+
// These test, build and deploy tasks are targeted at a venv
3+
// called 'pygpsclient' located in the user's home directory.
4+
// Set your workspace default VSCode Python interpreter to
5+
// this venv, i.e.
6+
// "${userHome}/pygpsclient/bin/python3" on linux/macos
7+
// "${userHome}/pygpsclient/Scripts/python" on windows
168
"version": "2.0.0",
179
"tasks": [
1810
{
@@ -250,15 +242,6 @@
250242
"Sphinx HTML"
251243
],
252244
"problemMatcher": []
253-
},
254-
{
255-
"label": "Benchmark",
256-
"type": "process",
257-
"command": "${config:python.defaultInterpreterPath}",
258-
"args": [
259-
"${workspaceFolder}/examples/benchmark.py",
260-
],
261-
"problemMatcher": []
262-
},
245+
}
263246
]
264247
}

README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ Contributions welcome - please refer to [CONTRIBUTING.MD](https://github.com/sem
5555
[![PyPI version](https://img.shields.io/pypi/v/pyspartn)](https://pypi.org/project/pyspartn/)
5656
[![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/master/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pyspartn)
5757

58-
`pyspartn` is compatible with Python >= 3.9. It utilises the Python `cryptography` package to decrypt SPARTN message payloads*¹ ²*.
58+
`pyspartn` is compatible with Python >= 3.10.
5959

60-
In the following, `python3` & `pip` refer to the Python 3 executables. You may need to substitute `python` for `python3`, depending on your particular environment (*on Windows it's generally `python`*). **It is strongly recommended that** the Python 3 binaries (\Scripts or /bin) and site_packages directories are included in your PATH (*most standard Python 3 installation packages will do this automatically if you select the 'Add to PATH' option during installation*).
60+
In the following, `python3` & `pip` refer to the Python 3 executables. You may need to substitute `python` for `python3`, depending on your particular environment (*on Windows it's generally `python`*).
6161

6262
The recommended way to install the latest version of `pyspartn` is with [pip](http://pypi.python.org/pypi/pip/):
6363

@@ -73,7 +73,13 @@ source env/bin/activate # (or env\Scripts\activate on Windows)
7373
python3 -m pip install --upgrade pyspartn
7474
```
7575

76-
*¹* From `pyspartn` version 1.0.7 onwards, SPARTN decryption functionality is optional. To install without decryption support, use the `--no-deps` argument e.g. ```python3 -m pip install --upgrade pyspartn --no-deps```. The boolean attribute `pyspartn.HASCRYPTO` can be used to test if decryption support is available at runtime.
76+
`pyspartn` can utilise the Python `cryptography` package to decrypt encrypted SPARTN message payloads*¹ ²*, but as of version 1.0.8 this is *not* installed by default. To enable SPARTN decryption support, install the `cryptography` package separately:
77+
78+
```shell
79+
python3 -m pip install --upgrade cryptography
80+
```
81+
82+
*¹* The boolean attribute `pyspartn.HASCRYPTO` can be used to test if decryption support is available at runtime.
7783

7884
*²* On some 32-bit Linux platforms (e.g. Raspberry Pi OS 32), it may be necessary to [install Rust compiler support](https://www.rust-lang.org/tools/install) in order to install the `cryptography` package which `pyspartn` depends on to decrypt SPARTN message payloads. See [cryptography install README](https://github.com/semuconsulting/pyspartn/blob/main/cryptography_installation/README.md).
7985

RELEASE_NOTES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# pyspartn Release Notes
22

3+
### RELEASE 1.0.8
4+
5+
1. As of October 2025, u-blox have discontinued all their encrypted SPARTN services (PointPerfect L-Band and MQTT). For this reason, the `cryptography` package used for SPARTN message decryption is now an *optional* dependency for `pyspartn`. To enable decryption support, install `cryptography` separately e.g.
6+
7+
```shell
8+
python3 -m pip install --upgrade cryptography
9+
```
10+
311
### RELEASE 1.0.7
412

513
1. Make SPARTN decryption (and associated `cryptography` library dependencies) an optional feature, to avoid a hard dependency on the `cryptography` library (which can be problematic on some platforms). To install without SPARTN decryption support, use `python3 -m pip install pyspartn --no-deps`.

pyproject.toml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description = "SPARTN protocol parser"
1111
license = "BSD-3-Clause"
1212
license-files = ["LICENSE"]
1313
readme = "README.md"
14-
requires-python = ">=3.9"
14+
requires-python = ">=3.10"
1515
classifiers = [
1616
"Operating System :: OS Independent",
1717
"Development Status :: 5 - Production/Stable",
@@ -23,7 +23,6 @@ classifiers = [
2323
"Intended Audience :: Science/Research",
2424
"Intended Audience :: End Users/Desktop",
2525
"Programming Language :: Python :: 3",
26-
"Programming Language :: Python :: 3.9",
2726
"Programming Language :: Python :: 3.10",
2827
"Programming Language :: Python :: 3.11",
2928
"Programming Language :: Python :: 3.12",
@@ -34,7 +33,7 @@ classifiers = [
3433
"Topic :: Scientific/Engineering :: GIS",
3534
]
3635

37-
dependencies = ["cryptography>=45.0.0"]
36+
dependencies = []
3837

3938
[project.urls]
4039
homepage = "https://github.com/semuconsulting/pyspartn"
@@ -63,16 +62,19 @@ test = [
6362
"Sphinx",
6463
"sphinx-rtd-theme",
6564
]
65+
crypto = [
66+
"cryptography>=45.0.0"
67+
]
6668
deploy = [{ include-group = "build" }, { include-group = "test" }]
6769

6870
[tool.setuptools.dynamic]
6971
version = { attr = "pyspartn._version.__version__" }
7072

7173
[tool.black]
72-
target-version = ['py39']
74+
target-version = ['py310']
7375

7476
[tool.isort]
75-
py_version = 39
77+
py_version = 310
7678
profile = "black"
7779

7880
[tool.bandit]
@@ -83,7 +85,7 @@ skips = []
8385
jobs = 0
8486
reports = "y"
8587
recursive = "y"
86-
py-version = "3.9"
88+
py-version = "3.10"
8789
fail-under = "9.8"
8890
fail-on = "E,F"
8991
clear-cache-post-run = "y"

src/pyspartn/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
:license: BSD 3-Clause
99
"""
1010

11-
__version__ = "1.0.7"
11+
__version__ = "1.0.8"

0 commit comments

Comments
 (0)