bluetooth-data-tools 1.28.2__tar.gz → 1.28.4__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 (18) hide show
  1. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/PKG-INFO +5 -4
  2. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/pyproject.toml +3 -3
  3. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/setup.py +1 -1
  4. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/__init__.py +1 -1
  5. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/gap.py +8 -8
  6. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/LICENSE +0 -0
  7. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/README.md +0 -0
  8. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/build_ext.py +0 -0
  9. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/_time_impl.pyx +0 -0
  10. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/_utils_impl.pyx +0 -0
  11. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/distance.py +0 -0
  12. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/gap.pxd +0 -0
  13. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/privacy.py +0 -0
  14. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/py.typed +0 -0
  15. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/time.py +0 -0
  16. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/utils.pxd +0 -0
  17. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/utils.py +0 -0
  18. {bluetooth_data_tools-1.28.2 → bluetooth_data_tools-1.28.4}/src/bluetooth_data_tools/utils_wrapper.h +0 -0
@@ -1,14 +1,14 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: bluetooth-data-tools
3
- Version: 1.28.2
3
+ Version: 1.28.4
4
4
  Summary: Tools for converting bluetooth data and packets
5
- License: Apache-2.0
5
+ License-Expression: Apache-2.0
6
+ License-File: LICENSE
6
7
  Author: J. Nick Koston
7
8
  Author-email: nick@koston.org
8
9
  Requires-Python: >=3.10
9
10
  Classifier: Development Status :: 5 - Production/Stable
10
11
  Classifier: Intended Audience :: Developers
11
- Classifier: License :: OSI Approved :: Apache Software License
12
12
  Classifier: Natural Language :: English
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python :: 3
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
19
20
  Classifier: Topic :: Software Development :: Libraries
20
21
  Provides-Extra: docs
21
22
  Requires-Dist: Sphinx (>=5,<9) ; extra == "docs"
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "bluetooth-data-tools"
7
- version = "1.28.2"
7
+ version = "1.28.4"
8
8
  license = "Apache-2.0"
9
9
  description = "Tools for converting bluetooth data and packets"
10
10
  authors = [{ name = "J. Nick Koston", email = "nick@koston.org" }]
@@ -53,9 +53,9 @@ docs = [
53
53
  pytest-benchmark = ">=4,<6"
54
54
 
55
55
  [tool.poetry.group.dev.dependencies]
56
- pytest-codspeed = "^3.1.2"
56
+ pytest-codspeed = "^4.2.0"
57
57
  pytest = "^8.4"
58
- pytest-cov = "^6.2"
58
+ pytest-cov = "^7.0"
59
59
 
60
60
  [tool.poetry.group.docs]
61
61
  optional = true
@@ -18,7 +18,7 @@ extras_require = \
18
18
 
19
19
  setup_kwargs = {
20
20
  'name': 'bluetooth-data-tools',
21
- 'version': '1.28.2',
21
+ 'version': '1.28.4',
22
22
  'description': 'Tools for converting bluetooth data and packets',
23
23
  'long_description': '# Bluetooth Data Tools\n\n<p align="center">\n <a href="https://github.com/bluetooth-devices/bluetooth-data-tools/actions/workflows/ci.yml?query=branch%3Amain">\n <img src="https://img.shields.io/github/actions/workflow/status/bluetooth-devices/bluetooth-data-tools/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >\n </a>\n <a href="https://bluetooth-data-tools.readthedocs.io">\n <img src="https://img.shields.io/readthedocs/bluetooth-data-tools.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">\n </a>\n <a href="https://codecov.io/gh/Bluetooth-Devices/bluetooth-data-tools">\n <img src="https://img.shields.io/codecov/c/github/Bluetooth-Devices/bluetooth-data-tools.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">\n </a>\n <a href="https://codspeed.io/Bluetooth-Devices/bluetooth-data-tools"><img src="https://img.shields.io/endpoint?url=https://codspeed.io/badge.json" alt="CodSpeed Badge"/></a>\n</p>\n<p align="center">\n <a href="https://python-poetry.org/">\n <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">\n </a>\n <a href="https://github.com/ambv/black">\n <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">\n </a>\n <a href="https://github.com/pre-commit/pre-commit">\n <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">\n </a>\n</p>\n<p align="center">\n <a href="https://pypi.org/project/bluetooth-data-tools/">\n <img src="https://img.shields.io/pypi/v/bluetooth-data-tools.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">\n </a>\n <img src="https://img.shields.io/pypi/pyversions/bluetooth-data-tools.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">\n <img src="https://img.shields.io/pypi/l/bluetooth-data-tools.svg?style=flat-square" alt="License">\n</p>\n\nTools for converting bluetooth data and packets\n\n## Installation\n\nInstall this via pip (or your favourite package manager):\n\n`pip install bluetooth-data-tools`\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- prettier-ignore-start -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-enable -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- prettier-ignore-end -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n## Credits\n\nThis package was created with\n[Cookiecutter](https://github.com/audreyr/cookiecutter) and the\n[browniebroke/cookiecutter-pypackage](https://github.com/browniebroke/cookiecutter-pypackage)\nproject template.\n',
24
24
  'author': 'J. Nick Koston',
@@ -22,7 +22,7 @@ from .utils import (
22
22
  short_address,
23
23
  )
24
24
 
25
- __version__ = "1.28.2"
25
+ __version__ = "1.28.4"
26
26
 
27
27
 
28
28
  __all__ = [
@@ -214,8 +214,8 @@ def _uncached_parse_advertisement_bytes(
214
214
  local_name = gap_data[start:end].decode("utf-8", "replace")
215
215
  elif gap_type_num == TYPE_MANUFACTURER_SPECIFIC_DATA:
216
216
  splice_pos = start + 2
217
- if splice_pos >= total_length or splice_pos >= end:
218
- break
217
+ if splice_pos > total_length or splice_pos > end:
218
+ continue
219
219
  if manufacturer_data is _EMPTY_MANUFACTURER_DATA:
220
220
  manufacturer_data = {}
221
221
  manufacturer_data[gap_data[start] | (gap_data[start + 1] << 8)] = gap_data[
@@ -254,8 +254,8 @@ def _uncached_parse_advertisement_bytes(
254
254
  service_uuids.append(_cached_uint128_bytes_as_uuid(gap_data[start:end]))
255
255
  elif gap_type_num == TYPE_SERVICE_DATA:
256
256
  splice_pos = start + 2
257
- if splice_pos >= total_length or splice_pos >= end:
258
- break
257
+ if splice_pos > total_length or splice_pos > end:
258
+ continue
259
259
  if service_data is _EMPTY_SERVICE_DATA:
260
260
  service_data = {}
261
261
  service_data[_cached_uint16_bytes_as_uuid(gap_data[start:splice_pos])] = (
@@ -263,8 +263,8 @@ def _uncached_parse_advertisement_bytes(
263
263
  )
264
264
  elif gap_type_num == TYPE_SERVICE_DATA_32BIT_UUID:
265
265
  splice_pos = start + 4
266
- if splice_pos >= total_length or splice_pos >= end:
267
- break
266
+ if splice_pos > total_length or splice_pos > end:
267
+ continue
268
268
  if service_data is _EMPTY_SERVICE_DATA:
269
269
  service_data = {}
270
270
  service_data[_cached_uint32_bytes_as_uuid(gap_data[start:splice_pos])] = (
@@ -272,8 +272,8 @@ def _uncached_parse_advertisement_bytes(
272
272
  )
273
273
  elif gap_type_num == TYPE_SERVICE_DATA_128BIT_UUID:
274
274
  splice_pos = start + 16
275
- if splice_pos >= total_length or splice_pos >= end:
276
- break
275
+ if splice_pos > total_length or splice_pos > end:
276
+ continue
277
277
  if service_data is _EMPTY_SERVICE_DATA:
278
278
  service_data = {}
279
279
  service_data[_cached_uint128_bytes_as_uuid(gap_data[start:splice_pos])] = (