Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@
"pip",
"install",
"--force-reinstall",
"${workspaceFolder}/dist/pygpsclient-1.5.22-py3-none-any.whl",
"${workspaceFolder}/dist/pygpsclient-1.6.0-py3-none-any.whl",
]
},
"problemMatcher": [],
Expand Down Expand Up @@ -275,15 +275,18 @@
"problemMatcher": []
},
{
"label": "Run Installed Version",
"label": "Run from Source",
"type": "shell",
"command": "${config:python.defaultInterpreterPath}",
"command": "python3",
"args": [
"-m",
"pygpsclient",
//"--verbosity",
//"3"
],
"options": {
"cwd": "${workspaceFolder}/src"
},
"problemMatcher": []
},
]
Expand Down
5 changes: 3 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@ Please help us keep our issue list small by adding fixes: #{$ISSUE_NO} to the co
## Coding conventions

* This is open source software. Code should be as simple and transparent as possible. Favour clarity over brevity.
* Avoid external library dependencies unless there's a compelling reason not to.
* We use and recommend [Visual Studio Code](https://code.visualstudio.com/) with the [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) for development and testing.
* Avoid external library dependencies (*especially those only available as source distributions*) unless there's a compelling reason not to.
* Avoid platform-specific methods (*be vigilant with tkinter window manager methods*).
* Code should be documented in accordance with [Sphinx](https://www.sphinx-doc.org/en/master/) docstring conventions.
* Code should formatted using [black](https://pypi.org/project/black/).
* We use and recommend [Visual Studio Code](https://code.visualstudio.com/) with the [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) for development and testing.
* We use and recommend [pylint](https://pypi.org/project/pylint/) for code analysis.
* We use and recommend [bandit](https://pypi.org/project/bandit/) for security vulnerability analysis.
* Commits must be [signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits).
Expand Down
2 changes: 1 addition & 1 deletion INSTALLATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ In the following, `python3` & `pip` refer to the Python 3 executables. You may n

- Python >= 3.10⁴
- Tk (tkinter) >= 8.6⁵ (*tkinter is a commonly used library for developing Graphical User Interfaces (GUI) in Python*)
- Screen resolution >= 640 x 400; Ideally 1920 x 1080, though at lower screen resolutions (<= 1024 width), top level dialogs will be resizable and scrollable.
- Screen resolution >= 640 x 480 (VGA); Ideally 1920 x 1080, though at lower screen resolutions (<= 1024 width), top level dialogs will be resizable and scrollable.

**NB** It is highly recommended to use the latest official [Python.org](https://www.python.org/downloads/) installation package for your platform, rather than any pre-installed version.

Expand Down
65 changes: 44 additions & 21 deletions README.md

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# PyGPSClient Release Notes

### RELEASE 1.6.0

FIXES:

1. Fix Load Configuration error \#232 `AttributeError: 'tuple' object has no attribute 'upper'`.

ENHANCEMENTS:

1. Add user-selectable Signals widget, displaying individual GNSS PRN / Signal ID levels and (where applicable) correction sources (receiver must support UBX NAV-SIG messages). Provides greater granularity than the existing Levels widget for UBX devices. Signal IDs are shown in RINEX format e.g. "L1_C/A", "E5_aQ", etc.
1. Add user-defined preset import facility to Configuration Load/Save/Record panel (accessed via Menu..Options..Configuration Command Recorder). This allows user to record a sequence of UBX, NMEA or TTY commands as they are sent to the receiver and to import this sequence as a user-defined preset in the PyGPSClient json configuration file. This obviates the need to edit the configuration file manually. Remember to re-save the configuration file to persist the changes.
1. Add Undock/Dock Settings panel facility, via Menu..View..Undock/Dock Settings. Settings panel can now be undocked from the main application window and displayed as a separate Toplevel dialog. If (*and only if*) non-transient (`transient_dialog_b: 0`), the settings panel can be minimized independently of the main window.
1. NTRIP Caster / Socket Server Configuration is now a separate Toplevel dialog panel, accessed through Server Config button on Settings panel or via Menu..Options..Server Configuration. Number of connected clients is now displayed in topmost banner panel.
1. Show "C/No = 0 dbHz" option ("unused satellites") is now accessible through double-right-click on LevelsView and SignalsView widgets; option removed from main Settings panel.
1. Minor cosmetic updates to various panels to improve navigation on smaller / lower resolution screens.

### RELEASE 1.5.23

FIXES:
Expand Down
36 changes: 30 additions & 6 deletions docs/pygpsclient.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ pygpsclient.canvas\_map module
:undoc-members:
:show-inheritance:

pygpsclient.canvas\_plot module
-------------------------------
pygpsclient.canvas\_subclasses module
-------------------------------------

.. automodule:: pygpsclient.canvas_plot
.. automodule:: pygpsclient.canvas_subclasses
:members:
:undoc-members:
:show-inheritance:
Expand Down Expand Up @@ -300,10 +300,26 @@ pygpsclient.serialconfig\_lband\_frame module
:undoc-members:
:show-inheritance:

pygpsclient.serverconfig\_frame module
--------------------------------------
pygpsclient.serverconfig\_dialog module
---------------------------------------

.. automodule:: pygpsclient.serverconfig_dialog
:members:
:undoc-members:
:show-inheritance:

pygpsclient.settings\_child\_frame module
-----------------------------------------

.. automodule:: pygpsclient.settings_child_frame
:members:
:undoc-members:
:show-inheritance:

.. automodule:: pygpsclient.serverconfig_frame
pygpsclient.settings\_dialog module
-----------------------------------

.. automodule:: pygpsclient.settings_dialog
:members:
:undoc-members:
:show-inheritance:
Expand All @@ -316,6 +332,14 @@ pygpsclient.settings\_frame module
:undoc-members:
:show-inheritance:

pygpsclient.signalsview\_frame module
-------------------------------------

.. automodule:: pygpsclient.signalsview_frame
:members:
:undoc-members:
:show-inheritance:

pygpsclient.skyview\_frame module
---------------------------------

Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,12 @@ disable = """
too-many-public-methods,
too-many-locals,
invalid-name,
logging-fstring-interpolation
logging-fstring-interpolation,
"""

[tool.pytest.ini_options]
minversion = "7.0"
addopts = "--cov --cov-report html --cov-fail-under 18"
addopts = "--cov --cov-report html --cov-fail-under 16"
pythonpath = ["src"]
testpaths = ["tests"]

Expand All @@ -145,7 +145,7 @@ source = ["src"]
source = ["src"]

[tool.coverage.report]
fail_under = 18
fail_under = 16

[tool.coverage.html]
directory = "htmlcov"
2 changes: 1 addition & 1 deletion src/pygpsclient/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# pylint: disable=invalid-name

from pygpsclient._version import __version__
from pygpsclient.helpers import nmea2preset, ubx2preset
from pygpsclient.helpers import nmea2preset, tty2preset, ubx2preset
from pygpsclient.sqlite_handler import retrieve_data

version = __version__
10 changes: 10 additions & 0 deletions src/pygpsclient/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,16 @@ def main():
type=int,
default=SUPPRESS,
)
ap.add_argument(
"--tlspempath",
help="Fully qualified path to TLS PEM (private key/certificate) file",
default=SUPPRESS,
)
ap.add_argument(
"--tlscrtpath",
help="Fully qualified path to TLS CRT (certificate) file",
default=SUPPRESS,
)
ap.add_argument(
"--verbosity",
help=(
Expand Down
2 changes: 1 addition & 1 deletion src/pygpsclient/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
:license: BSD 3-Clause
"""

__version__ = "1.5.23"
__version__ = "1.6.0"
5 changes: 1 addition & 4 deletions src/pygpsclient/about_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,6 @@
}


MINDIM = (600, 400)


class AboutDialog(ToplevelDialog):
"""
About dialog box class
Expand All @@ -78,7 +75,7 @@ def __init__(self, app, *args, **kwargs): # pylint: disable=unused-argument
self._checkonstartup.set(self.__app.configuration.get("checkforupdate_b"))
self._updates = []

super().__init__(app, DLGTABOUT, MINDIM)
super().__init__(app, DLGTABOUT)

self._body()
self._do_layout()
Expand Down
Loading