python-openevse-http 1.0.2__tar.gz → 1.2.0__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 (70) hide show
  1. {python_openevse_http-1.0.2/python_openevse_http.egg-info → python_openevse_http-1.2.0}/PKG-INFO +1 -1
  2. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/utils.py +3 -1
  3. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0/python_openevse_http.egg-info}/PKG-INFO +1 -1
  4. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/requirements_lint.txt +1 -1
  5. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_client.py +17 -1
  6. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/dependabot.yml +0 -0
  7. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/release-drafter.yml +0 -0
  8. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/workflows/autolabeler.yml +0 -0
  9. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/workflows/links.yml +0 -0
  10. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/workflows/publish-to-pypi.yml +0 -0
  11. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/workflows/release-drafter.yml +0 -0
  12. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.github/workflows/test.yml +0 -0
  13. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.gitignore +0 -0
  14. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.pre-commit-config.yaml +0 -0
  15. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/.yamllint +0 -0
  16. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/EXTERNAL_SESSION.md +0 -0
  17. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/LICENSE +0 -0
  18. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/README.md +0 -0
  19. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/codecov.yml +0 -0
  20. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/example_external_session.py +0 -0
  21. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/__init__.py +0 -0
  22. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/__main__.py +0 -0
  23. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/client.py +0 -0
  24. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/commands.py +0 -0
  25. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/const.py +0 -0
  26. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/exceptions.py +0 -0
  27. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/managers.py +0 -0
  28. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/properties.py +0 -0
  29. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/py.typed +0 -0
  30. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/sensors.py +0 -0
  31. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/openevsehttp/websocket.py +0 -0
  32. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/pyproject.toml +0 -0
  33. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/python_openevse_http.egg-info/SOURCES.txt +0 -0
  34. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/python_openevse_http.egg-info/dependency_links.txt +0 -0
  35. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/python_openevse_http.egg-info/not-zip-safe +0 -0
  36. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/python_openevse_http.egg-info/requires.txt +0 -0
  37. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/python_openevse_http.egg-info/top_level.txt +0 -0
  38. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/requirements.txt +0 -0
  39. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/requirements_test.txt +0 -0
  40. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/setup.cfg +0 -0
  41. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/setup.py +0 -0
  42. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/__init__.py +0 -0
  43. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/common.py +0 -0
  44. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/conftest.py +0 -0
  45. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/github_v2.json +0 -0
  46. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/github_v4.json +0 -0
  47. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v2_json/config.json +0 -0
  48. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v2_json/status.json +0 -0
  49. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config-broken-semver.json +0 -0
  50. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config-broken.json +0 -0
  51. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config-dev.json +0 -0
  52. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config-extra-version.json +0 -0
  53. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config-new.json +0 -0
  54. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config-unknown-semver.json +0 -0
  55. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/config.json +0 -0
  56. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/schedule.json +0 -0
  57. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/status-broken.json +0 -0
  58. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/status-new.json +0 -0
  59. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/v4_json/status.json +0 -0
  60. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/fixtures/websocket.json +0 -0
  61. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_commands.py +0 -0
  62. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_external_session.py +0 -0
  63. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_main_edge_cases.py +0 -0
  64. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_managers.py +0 -0
  65. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_mixins.py +0 -0
  66. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_properties.py +0 -0
  67. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_sensors.py +0 -0
  68. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_shaper.py +0 -0
  69. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tests/test_websocket.py +0 -0
  70. {python_openevse_http-1.0.2 → python_openevse_http-1.2.0}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python_openevse_http
3
- Version: 1.0.2
3
+ Version: 1.2.0
4
4
  Summary: Python wrapper for OpenEVSE HTTP API
5
5
  Home-page: https://github.com/firstof9/python-openevse-http
6
6
  Download-URL: https://github.com/firstof9/python-openevse-http
@@ -32,7 +32,9 @@ def get_awesome_version(version: str) -> AwesomeVersion:
32
32
  # We use custom word boundary checks to avoid false positives like 'domain' matching 'main'
33
33
  # or 'webmaster' matching 'master'.
34
34
  is_dev = False
35
- if re.search(
35
+ if re.search(r"_modified$", version, re.IGNORECASE):
36
+ is_dev = True
37
+ elif re.search(
36
38
  r"(?:^|[^a-zA-Z0-9])(master|main)(?:[^a-zA-Z0-9]|$)", version, re.IGNORECASE
37
39
  ):
38
40
  is_dev = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python_openevse_http
3
- Version: 1.0.2
3
+ Version: 1.2.0
4
4
  Summary: Python wrapper for OpenEVSE HTTP API
5
5
  Home-page: https://github.com/firstof9/python-openevse-http
6
6
  Download-URL: https://github.com/firstof9/python-openevse-http
@@ -1,4 +1,4 @@
1
1
  -r requirements.txt
2
2
  prek==0.4.4
3
- ruff==0.15.16
3
+ ruff==0.15.17
4
4
  mypy==2.1.0
@@ -671,14 +671,30 @@ async def test_version_check_dev_branches():
671
671
  charger._config = {"version": "feature_1A2B3C"}
672
672
  assert charger._version_check("2.0.0") is True
673
673
 
674
+ # Suffix matching for _modified - treated as dev, returns True
675
+ charger._config = {
676
+ "version": "local_feature/gui-nightshift-default_2bcdf1d0_modified"
677
+ }
678
+ assert charger._version_check("2.0.0") is True
679
+
680
+ charger._config = {"version": "custom_branch/my-feature_abc123_modified"}
681
+ assert charger._version_check("2.0.0") is True
682
+
683
+ charger._config = {"version": "main_modified"}
684
+ assert charger._version_check("2.0.0") is True
685
+
674
686
  # False positives containing 'main' or 'master' but not at word boundaries,
675
- # or ending in 6-char hashes without dev keywords should fail version check
687
+ # ending in 6-char hashes without dev keywords, or other non-matching modified strings
688
+ # — should fail version check
676
689
  charger._config = {"version": "domain_abc123"}
677
690
  assert charger._version_check("2.0.0") is False
678
691
 
679
692
  charger._config = {"version": "webmaster_def456"}
680
693
  assert charger._version_check("2.0.0") is False
681
694
 
695
+ charger._config = {"version": "unmodified"}
696
+ assert charger._version_check("2.0.0") is False
697
+
682
698
  # Pre-release (rc) version — should fail when checking against a newer target
683
699
  charger._config = {"version": "4.1.2_rc1"}
684
700
  assert charger._version_check("5.0.0") is False