pygnssutils 1.2.7__tar.gz → 1.2.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. {pygnssutils-1.2.7/src/pygnssutils.egg-info → pygnssutils-1.2.8}/PKG-INFO +17 -11
  2. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/README.md +5 -3
  3. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/pyproject.toml +12 -7
  4. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/_version.py +1 -1
  5. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssreader.py +20 -28
  6. {pygnssutils-1.2.7 → pygnssutils-1.2.8/src/pygnssutils.egg-info}/PKG-INFO +17 -11
  7. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils.egg-info/requires.txt +6 -5
  8. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/LICENSE +0 -0
  9. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/setup.cfg +0 -0
  10. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/__init__.py +0 -0
  11. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/exceptions.py +0 -0
  12. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/globals.py +0 -0
  13. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssntripclient.py +0 -0
  14. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssntripclient_cli.py +0 -0
  15. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssserver.py +0 -0
  16. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssserver_cli.py +0 -0
  17. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssstreamer.py +0 -0
  18. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/gnssstreamer_cli.py +0 -0
  19. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/helpers.py +0 -0
  20. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav.py +0 -0
  21. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_reader.py +0 -0
  22. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_bds.py +0 -0
  23. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_gal.py +0 -0
  24. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_glo.py +0 -0
  25. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_gps.py +0 -0
  26. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_irn.py +0 -0
  27. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_qzs.py +0 -0
  28. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rawnav_subframes_sba.py +0 -0
  29. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_conv.py +0 -0
  30. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_conv_cli.py +0 -0
  31. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_conv_met.py +0 -0
  32. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_conv_nav.py +0 -0
  33. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_conv_obs.py +0 -0
  34. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_globals.py +0 -0
  35. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/rinex_helpers.py +0 -0
  36. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils/socket_server.py +0 -0
  37. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils.egg-info/SOURCES.txt +0 -0
  38. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils.egg-info/dependency_links.txt +0 -0
  39. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils.egg-info/entry_points.txt +0 -0
  40. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/src/pygnssutils.egg-info/top_level.txt +0 -0
  41. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_cli.py +0 -0
  42. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_gnssstreamer.py +0 -0
  43. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_rawnav.py +0 -0
  44. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_rinex.py +0 -0
  45. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_rinex_defs.py +0 -0
  46. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_rinex_parse.py +0 -0
  47. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_socketwrapper.py +0 -0
  48. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_sourcetable.py +0 -0
  49. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_static.py +0 -0
  50. {pygnssutils-1.2.7 → pygnssutils-1.2.8}/tests/test_stream.py +0 -0
@@ -1,9 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygnssutils
3
- Version: 1.2.7
3
+ Version: 1.2.8
4
4
  Summary: GNSS Command Line Utilities
5
- Author-email: Steve Smith <semuadmin@semuconsulting.com>
6
- Maintainer-email: Steve Smith <semuadmin@semuconsulting.com>
5
+ Author: Steve Smith
6
+ Author-email: semuadmin@semuconsulting.com
7
+ Maintainer: Steve Smith
8
+ Maintainer-email: semuadmin@semuconsulting.com
7
9
  License-Expression: BSD-3-Clause
8
10
  Project-URL: homepage, https://github.com/semuconsulting/pygnssutils
9
11
  Project-URL: documentation, https://www.semuconsulting.com/pygnssutils/
@@ -24,20 +26,22 @@ Classifier: Programming Language :: Python :: 3.11
24
26
  Classifier: Programming Language :: Python :: 3.12
25
27
  Classifier: Programming Language :: Python :: 3.13
26
28
  Classifier: Programming Language :: Python :: 3.14
29
+ Classifier: Programming Language :: Python :: 3.15
27
30
  Classifier: Topic :: Utilities
28
31
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
32
  Classifier: Topic :: Scientific/Engineering :: GIS
30
33
  Requires-Python: >=3.10
31
34
  Description-Content-Type: text/markdown
32
35
  License-File: LICENSE
33
- Requires-Dist: certifi>=2025.0.0
34
- Requires-Dist: pyserial>=3.5
35
- Requires-Dist: pyspartn>=1.0.8
36
- Requires-Dist: pyubx2>=1.3.6
36
+ Requires-Dist: certifi>=2026.0.0
37
37
  Requires-Dist: pynmeagps>=1.1.7
38
+ Requires-Dist: pyqgc>=1.0.0
39
+ Requires-Dist: pyrtcm>=1.2.0
38
40
  Requires-Dist: pysbf2>=1.0.4
41
+ Requires-Dist: pyserial>=3.5
42
+ Requires-Dist: pyspartn>=1.0.8
43
+ Requires-Dist: pyubx2>=1.3.7
39
44
  Requires-Dist: pyubxutils>=1.0.6
40
- Requires-Dist: pyqgc>=1.0.0
41
45
  Requires-Dist: pyunigps>=1.0.0
42
46
  Dynamic: license-file
43
47
 
@@ -92,18 +96,18 @@ The pygnssutils homepage is located at [https://github.com/semuconsulting/pygnss
92
96
 
93
97
  Sphinx API Documentation in HTML format is available at [https://www.semuconsulting.com/pygnssutils](https://www.semuconsulting.com/pygnssutils).
94
98
 
95
- Contributions **_from human beings_** welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/pygnssutils/blob/main/CONTRIBUTING.md).
99
+ Contributions _**from human beings**_ welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/pygnssutils/blob/main/CONTRIBUTING.md).
96
100
 
97
101
  [Bug reports](https://github.com/semuconsulting/pygnssutils/blob/main/.github/ISSUE_TEMPLATE/bug_report.md) and [Feature requests](https://github.com/semuconsulting/pygnssutils/blob/main/.github/ISSUE_TEMPLATE/feature_request.md) - please use the templates provided. For general queries and advice, post a message to one of the [pygnssutils Discussions](https://github.com/semuconsulting/pygnssutils/discussions) channels.
98
102
 
99
- ![No Copilot](https://github.com/semuconsulting/PyGPSClient/blob/master/images/nocopilot100.png?raw=true)
103
+ ![No Copilot](https://github.com/semuconsulting/PyGPSClient/blob/main/images/nocopilot100.png?raw=true)
100
104
 
101
105
  ---
102
106
  ## <a name="installation">Installation</a>
103
107
 
104
108
  ![Python version](https://img.shields.io/pypi/pyversions/pygnssutils.svg?style=flat)
105
109
  [![PyPI version](https://img.shields.io/pypi/v/pygnssutils.svg?style=flat)](https://pypi.org/project/pygnssutils/)
106
- [![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/master/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
110
+ [![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/main/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
107
111
 
108
112
  `pygnssutils` is compatible with Python>=3.10.
109
113
 
@@ -630,6 +634,8 @@ semuadmin@semuconsulting.com
630
634
 
631
635
  ![License](https://img.shields.io/github/license/semuconsulting/pygnssutils.svg)
632
636
 
637
+ [![ORCID iD icon](https://orcid.org/sites/default/files/images/orcid_16x16.png) https://orcid.org/0009-0002-5751-8719](https://orcid.org/0009-0002-5751-8719)
638
+
633
639
  `pygnssutils` is maintained entirely by unpaid volunteers. It receives no funding from advertising or corporate sponsorship. If you find the utility useful, please consider sponsoring the project with the price of a coffee...
634
640
 
635
641
  [![Sponsor](https://github.com/semuconsulting/pyubx2/blob/master/images/sponsor.png?raw=true)](https://buymeacoffee.com/semuconsulting)
@@ -49,18 +49,18 @@ The pygnssutils homepage is located at [https://github.com/semuconsulting/pygnss
49
49
 
50
50
  Sphinx API Documentation in HTML format is available at [https://www.semuconsulting.com/pygnssutils](https://www.semuconsulting.com/pygnssutils).
51
51
 
52
- Contributions **_from human beings_** welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/pygnssutils/blob/main/CONTRIBUTING.md).
52
+ Contributions _**from human beings**_ welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/pygnssutils/blob/main/CONTRIBUTING.md).
53
53
 
54
54
  [Bug reports](https://github.com/semuconsulting/pygnssutils/blob/main/.github/ISSUE_TEMPLATE/bug_report.md) and [Feature requests](https://github.com/semuconsulting/pygnssutils/blob/main/.github/ISSUE_TEMPLATE/feature_request.md) - please use the templates provided. For general queries and advice, post a message to one of the [pygnssutils Discussions](https://github.com/semuconsulting/pygnssutils/discussions) channels.
55
55
 
56
- ![No Copilot](https://github.com/semuconsulting/PyGPSClient/blob/master/images/nocopilot100.png?raw=true)
56
+ ![No Copilot](https://github.com/semuconsulting/PyGPSClient/blob/main/images/nocopilot100.png?raw=true)
57
57
 
58
58
  ---
59
59
  ## <a name="installation">Installation</a>
60
60
 
61
61
  ![Python version](https://img.shields.io/pypi/pyversions/pygnssutils.svg?style=flat)
62
62
  [![PyPI version](https://img.shields.io/pypi/v/pygnssutils.svg?style=flat)](https://pypi.org/project/pygnssutils/)
63
- [![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/master/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
63
+ [![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/main/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
64
64
 
65
65
  `pygnssutils` is compatible with Python>=3.10.
66
66
 
@@ -587,6 +587,8 @@ semuadmin@semuconsulting.com
587
587
 
588
588
  ![License](https://img.shields.io/github/license/semuconsulting/pygnssutils.svg)
589
589
 
590
+ [![ORCID iD icon](https://orcid.org/sites/default/files/images/orcid_16x16.png) https://orcid.org/0009-0002-5751-8719](https://orcid.org/0009-0002-5751-8719)
591
+
590
592
  `pygnssutils` is maintained entirely by unpaid volunteers. It receives no funding from advertising or corporate sponsorship. If you find the utility useful, please consider sponsoring the project with the price of a coffee...
591
593
 
592
594
  [![Sponsor](https://github.com/semuconsulting/pyubx2/blob/master/images/sponsor.png?raw=true)](https://buymeacoffee.com/semuconsulting)
@@ -5,8 +5,11 @@ build-backend = "setuptools.build_meta:__legacy__"
5
5
  [project]
6
6
  name = "pygnssutils"
7
7
  dynamic = ["version"]
8
- authors = [{ name = "Steve Smith", email = "semuadmin@semuconsulting.com" }]
9
- maintainers = [{ name = "Steve Smith", email = "semuadmin@semuconsulting.com" }]
8
+ authors = [{ name = "Steve Smith" }, { email = "semuadmin@semuconsulting.com" }]
9
+ maintainers = [
10
+ { name = "Steve Smith" },
11
+ { email = "semuadmin@semuconsulting.com" },
12
+ ]
10
13
  description = "GNSS Command Line Utilities"
11
14
  license = "BSD-3-Clause"
12
15
  license-files = ["LICENSE"]
@@ -28,20 +31,22 @@ classifiers = [
28
31
  "Programming Language :: Python :: 3.12",
29
32
  "Programming Language :: Python :: 3.13",
30
33
  "Programming Language :: Python :: 3.14",
34
+ "Programming Language :: Python :: 3.15",
31
35
  "Topic :: Utilities",
32
36
  "Topic :: Software Development :: Libraries :: Python Modules",
33
37
  "Topic :: Scientific/Engineering :: GIS",
34
38
  ]
35
39
 
36
40
  dependencies = [
37
- "certifi>=2025.0.0",
38
- "pyserial>=3.5",
39
- "pyspartn>=1.0.8",
40
- "pyubx2>=1.3.6",
41
+ "certifi>=2026.0.0",
41
42
  "pynmeagps>=1.1.7",
43
+ "pyqgc>=1.0.0",
44
+ "pyrtcm>=1.2.0",
42
45
  "pysbf2>=1.0.4",
46
+ "pyserial>=3.5",
47
+ "pyspartn>=1.0.8",
48
+ "pyubx2>=1.3.7",
43
49
  "pyubxutils>=1.0.6",
44
- "pyqgc>=1.0.0",
45
50
  "pyunigps>=1.0.0",
46
51
  ]
47
52
 
@@ -8,4 +8,4 @@ Created on 2 Oct 2020
8
8
  :license: BSD 3-Clause
9
9
  """
10
10
 
11
- __version__ = "1.2.7"
11
+ __version__ = "1.2.8"
@@ -13,7 +13,7 @@ Returns both the raw binary data (as bytes) and the parsed data.
13
13
 
14
14
  - 'protfilter' governs which protocols (NMEA, UBX, SBF, QGC, UNI or RTCM3) are processed.
15
15
  - 'msgfilter' governs which individual message types are processed.
16
- - `parsing` governs whether payloads are fully or partially parsed.
16
+ - `parsing` governs whether individual payloads are parsed.
17
17
  - 'quitonerror' governs how errors are handled.
18
18
  - 'msgmode' indicates the type of UBX datastream (output GET, input SET, query POLL).
19
19
  If msgmode is set to SETPOLL, input/query mode will be automatically detected by parser.
@@ -318,8 +318,7 @@ class GNSSReader:
318
318
 
319
319
  raw_data = None
320
320
  parsed_data = None
321
- parsing = True
322
- while parsing: # loop until end of valid message or EOF
321
+ while True: # loop until end of valid message or EOF
323
322
  try:
324
323
 
325
324
  raw_data = None
@@ -336,38 +335,34 @@ class GNSSReader:
336
335
  # if protocol filter passes UBX, return message,
337
336
  # otherwise discard and continue
338
337
  if self._protfilter & UBX_PROTOCOL:
339
- parsing = False
340
- else:
341
- continue
338
+ break
339
+ continue
342
340
  # if it's an NMEA message (b'\x24\x..)
343
- elif bytehdr in NMEA_HDR:
341
+ if bytehdr in NMEA_HDR:
344
342
  raw_data, parsed_data = self._parse_nmea(bytehdr)
345
343
  # if protocol filter passes NMEA, return message,
346
344
  # otherwise discard and continue
347
345
  if self._protfilter & NMEA_PROTOCOL:
348
- parsing = False
349
- else:
350
- continue
346
+ break
347
+ continue
351
348
  # if it's an SBF message (b'\x24\x40')
352
- elif bytehdr in SBF_HDR:
349
+ if bytehdr in SBF_HDR:
353
350
  raw_data, parsed_data = self._parse_sbf(bytehdr)
354
351
  # if protocol filter passes SBF, return message,
355
352
  # otherwise discard and continue
356
353
  if self._protfilter & SBF_PROTOCOL:
357
- parsing = False
358
- else:
359
- continue
354
+ break
355
+ continue
360
356
  # if it's an QGCmessage (b'\x51\x47')
361
- elif bytehdr in QGC_HDR:
357
+ if bytehdr in QGC_HDR:
362
358
  raw_data, parsed_data = self._parse_qgc(bytehdr)
363
359
  # if protocol filter passes QGC, return message,
364
360
  # otherwise discard and continue
365
361
  if self._protfilter & QGC_PROTOCOL:
366
- parsing = False
367
- else:
368
- continue
362
+ break
363
+ continue
369
364
  # if it's an UNImessage (b'\xaa\x44\xb5')
370
- elif bytehdr in UNI_HDR[:2]:
365
+ if bytehdr in UNI_HDR[:2]:
371
366
  byte3 = self._read_bytes(1)
372
367
  bytehdr += byte3
373
368
  if bytehdr != UNI_HDR:
@@ -376,21 +371,18 @@ class GNSSReader:
376
371
  # if protocol filter passes UNI, return message,
377
372
  # otherwise discard and continue
378
373
  if self._protfilter & UNI_PROTOCOL:
379
- parsing = False
380
- else:
381
- continue
374
+ break
375
+ continue
382
376
  # if it's a RTCM3 message
383
377
  # (byte1 = 0xd3; byte2 = 0b000000**)
384
- elif byte1 == b"\xd3" and (byte2[0] & ~0x03) == 0:
378
+ if byte1 == b"\xd3" and (byte2[0] & ~0x03) == 0:
385
379
  raw_data, parsed_data = self._parse_rtcm3(bytehdr)
386
380
  # if protocol filter passes RTCM, return message,
387
381
  # otherwise discard and continue
388
382
  if self._protfilter & RTCM3_PROTOCOL:
389
- parsing = False
390
- else:
391
- continue
392
- else:
393
- raise GNSSStreamError(f"Unknown protocol header {bytehdr}.")
383
+ break
384
+ continue
385
+ raise GNSSStreamError(f"Unknown protocol header {bytehdr}.")
394
386
 
395
387
  except EOFError:
396
388
  return (None, None)
@@ -1,9 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygnssutils
3
- Version: 1.2.7
3
+ Version: 1.2.8
4
4
  Summary: GNSS Command Line Utilities
5
- Author-email: Steve Smith <semuadmin@semuconsulting.com>
6
- Maintainer-email: Steve Smith <semuadmin@semuconsulting.com>
5
+ Author: Steve Smith
6
+ Author-email: semuadmin@semuconsulting.com
7
+ Maintainer: Steve Smith
8
+ Maintainer-email: semuadmin@semuconsulting.com
7
9
  License-Expression: BSD-3-Clause
8
10
  Project-URL: homepage, https://github.com/semuconsulting/pygnssutils
9
11
  Project-URL: documentation, https://www.semuconsulting.com/pygnssutils/
@@ -24,20 +26,22 @@ Classifier: Programming Language :: Python :: 3.11
24
26
  Classifier: Programming Language :: Python :: 3.12
25
27
  Classifier: Programming Language :: Python :: 3.13
26
28
  Classifier: Programming Language :: Python :: 3.14
29
+ Classifier: Programming Language :: Python :: 3.15
27
30
  Classifier: Topic :: Utilities
28
31
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
32
  Classifier: Topic :: Scientific/Engineering :: GIS
30
33
  Requires-Python: >=3.10
31
34
  Description-Content-Type: text/markdown
32
35
  License-File: LICENSE
33
- Requires-Dist: certifi>=2025.0.0
34
- Requires-Dist: pyserial>=3.5
35
- Requires-Dist: pyspartn>=1.0.8
36
- Requires-Dist: pyubx2>=1.3.6
36
+ Requires-Dist: certifi>=2026.0.0
37
37
  Requires-Dist: pynmeagps>=1.1.7
38
+ Requires-Dist: pyqgc>=1.0.0
39
+ Requires-Dist: pyrtcm>=1.2.0
38
40
  Requires-Dist: pysbf2>=1.0.4
41
+ Requires-Dist: pyserial>=3.5
42
+ Requires-Dist: pyspartn>=1.0.8
43
+ Requires-Dist: pyubx2>=1.3.7
39
44
  Requires-Dist: pyubxutils>=1.0.6
40
- Requires-Dist: pyqgc>=1.0.0
41
45
  Requires-Dist: pyunigps>=1.0.0
42
46
  Dynamic: license-file
43
47
 
@@ -92,18 +96,18 @@ The pygnssutils homepage is located at [https://github.com/semuconsulting/pygnss
92
96
 
93
97
  Sphinx API Documentation in HTML format is available at [https://www.semuconsulting.com/pygnssutils](https://www.semuconsulting.com/pygnssutils).
94
98
 
95
- Contributions **_from human beings_** welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/pygnssutils/blob/main/CONTRIBUTING.md).
99
+ Contributions _**from human beings**_ welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/pygnssutils/blob/main/CONTRIBUTING.md).
96
100
 
97
101
  [Bug reports](https://github.com/semuconsulting/pygnssutils/blob/main/.github/ISSUE_TEMPLATE/bug_report.md) and [Feature requests](https://github.com/semuconsulting/pygnssutils/blob/main/.github/ISSUE_TEMPLATE/feature_request.md) - please use the templates provided. For general queries and advice, post a message to one of the [pygnssutils Discussions](https://github.com/semuconsulting/pygnssutils/discussions) channels.
98
102
 
99
- ![No Copilot](https://github.com/semuconsulting/PyGPSClient/blob/master/images/nocopilot100.png?raw=true)
103
+ ![No Copilot](https://github.com/semuconsulting/PyGPSClient/blob/main/images/nocopilot100.png?raw=true)
100
104
 
101
105
  ---
102
106
  ## <a name="installation">Installation</a>
103
107
 
104
108
  ![Python version](https://img.shields.io/pypi/pyversions/pygnssutils.svg?style=flat)
105
109
  [![PyPI version](https://img.shields.io/pypi/v/pygnssutils.svg?style=flat)](https://pypi.org/project/pygnssutils/)
106
- [![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/master/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
110
+ [![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/main/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
107
111
 
108
112
  `pygnssutils` is compatible with Python>=3.10.
109
113
 
@@ -630,6 +634,8 @@ semuadmin@semuconsulting.com
630
634
 
631
635
  ![License](https://img.shields.io/github/license/semuconsulting/pygnssutils.svg)
632
636
 
637
+ [![ORCID iD icon](https://orcid.org/sites/default/files/images/orcid_16x16.png) https://orcid.org/0009-0002-5751-8719](https://orcid.org/0009-0002-5751-8719)
638
+
633
639
  `pygnssutils` is maintained entirely by unpaid volunteers. It receives no funding from advertising or corporate sponsorship. If you find the utility useful, please consider sponsoring the project with the price of a coffee...
634
640
 
635
641
  [![Sponsor](https://github.com/semuconsulting/pyubx2/blob/master/images/sponsor.png?raw=true)](https://buymeacoffee.com/semuconsulting)
@@ -1,9 +1,10 @@
1
- certifi>=2025.0.0
2
- pyserial>=3.5
3
- pyspartn>=1.0.8
4
- pyubx2>=1.3.6
1
+ certifi>=2026.0.0
5
2
  pynmeagps>=1.1.7
3
+ pyqgc>=1.0.0
4
+ pyrtcm>=1.2.0
6
5
  pysbf2>=1.0.4
6
+ pyserial>=3.5
7
+ pyspartn>=1.0.8
8
+ pyubx2>=1.3.7
7
9
  pyubxutils>=1.0.6
8
- pyqgc>=1.0.0
9
10
  pyunigps>=1.0.0
File without changes
File without changes