python-bsblan 5.1.0__tar.gz → 5.1.2__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 (106) hide show
  1. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/codeql.yaml +2 -2
  2. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/linting.yaml +1 -1
  3. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/tests.yaml +14 -5
  4. python_bsblan-5.1.2/.nvmrc +1 -0
  5. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/PKG-INFO +2 -2
  6. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/README.md +1 -1
  7. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/examples/fetch_param.py +1 -1
  8. python_bsblan-5.1.2/examples/speed_test.py +776 -0
  9. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/pyproject.toml +5 -5
  10. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/bsblan.py +46 -6
  11. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/constants.py +11 -0
  12. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/models.py +1 -1
  13. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_circuit.py +171 -4
  14. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_entity_info.py +11 -3
  15. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/uv.lock +299 -274
  16. python_bsblan-5.1.0/.nvmrc +0 -1
  17. python_bsblan-5.1.0/examples/speed_test.py +0 -382
  18. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.editorconfig +0 -0
  19. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.gitattributes +0 -0
  20. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/CODE_OF_CONDUCT.md +0 -0
  21. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/CONTRIBUTING.md +0 -0
  22. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md +0 -0
  23. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  24. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  25. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/copilot-instructions.md +0 -0
  26. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/labels.yml +0 -0
  27. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/prompts/add-parameter.prompt.md +0 -0
  28. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/prompts/code-review.prompt.md +0 -0
  29. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/release-drafter.yml +0 -0
  30. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/renovate.json +0 -0
  31. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/skills/bsblan-parameters/SKILL.md +0 -0
  32. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/skills/bsblan-testing/SKILL.md +0 -0
  33. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/auto-approve-renovate.yml +0 -0
  34. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/labels.yaml +0 -0
  35. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/lock.yaml +0 -0
  36. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/pr-labels.yaml +0 -0
  37. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/release-drafter.yaml +0 -0
  38. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/release.yaml +0 -0
  39. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.github/workflows/stale.yaml +0 -0
  40. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.gitignore +0 -0
  41. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.pre-commit-config.yaml +0 -0
  42. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.prettierignore +0 -0
  43. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/.yamllint +0 -0
  44. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/AGENTS.md +0 -0
  45. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/CLAUDE.md +0 -0
  46. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/LICENSE.md +0 -0
  47. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/examples/control.py +0 -0
  48. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/examples/discovery.py +0 -0
  49. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/examples/profile_init.py +0 -0
  50. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/examples/ruff.toml +0 -0
  51. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/package-lock.json +0 -0
  52. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/package.json +0 -0
  53. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/sonar-project.properties +0 -0
  54. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/__init__.py +0 -0
  55. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/exceptions.py +0 -0
  56. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/py.typed +0 -0
  57. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/src/bsblan/utility.py +0 -0
  58. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/__init__.py +0 -0
  59. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/conftest.py +0 -0
  60. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/device.json +0 -0
  61. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/dict_version.json +0 -0
  62. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/hot_water_state.json +0 -0
  63. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/info.json +0 -0
  64. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/password.txt +0 -0
  65. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/sensor.json +0 -0
  66. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/state.json +0 -0
  67. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/state_circuit2.json +0 -0
  68. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/static_state.json +0 -0
  69. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/static_state_circuit2.json +0 -0
  70. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/thermostat_hvac.json +0 -0
  71. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/thermostat_temp.json +0 -0
  72. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/fixtures/time.json +0 -0
  73. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/ruff.toml +0 -0
  74. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_api_initialization.py +0 -0
  75. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_api_validation.py +0 -0
  76. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_auth.py +0 -0
  77. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_backoff_retry.py +0 -0
  78. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_bsblan.py +0 -0
  79. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_bsblan_edge_cases.py +0 -0
  80. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_configuration.py +0 -0
  81. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_constants.py +0 -0
  82. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_context_manager.py +0 -0
  83. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_device.py +0 -0
  84. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_dhw_time_switch.py +0 -0
  85. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_entity_info_ha.py +0 -0
  86. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_hot_water_additional.py +0 -0
  87. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_hotwater_state.py +0 -0
  88. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_include_parameter.py +0 -0
  89. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_info.py +0 -0
  90. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_initialization.py +0 -0
  91. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_read_parameters.py +0 -0
  92. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_reset_validation.py +0 -0
  93. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_schedule_models.py +0 -0
  94. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_sensor.py +0 -0
  95. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_set_hot_water_schedule.py +0 -0
  96. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_set_hotwater.py +0 -0
  97. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_state.py +0 -0
  98. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_static_state.py +0 -0
  99. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_temperature_unit.py +0 -0
  100. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_temperature_validation.py +0 -0
  101. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_thermostat.py +0 -0
  102. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_time.py +0 -0
  103. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_utility.py +0 -0
  104. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_utility_additional.py +0 -0
  105. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_utility_edge_cases.py +0 -0
  106. {python_bsblan-5.1.0 → python_bsblan-5.1.2}/tests/test_version_errors.py +0 -0
@@ -24,6 +24,6 @@ jobs:
24
24
  - name: ⤵️ Check out code from GitHub
25
25
  uses: actions/checkout@v6.0.2
26
26
  - name: 🏗 Initialize CodeQL
27
- uses: github/codeql-action/init@v4.32.4
27
+ uses: github/codeql-action/init@v4.32.5
28
28
  - name: 🚀 Perform CodeQL Analysis
29
- uses: github/codeql-action/analyze@v4.32.4
29
+ uses: github/codeql-action/analyze@v4.32.5
@@ -56,7 +56,7 @@ jobs:
56
56
  - name: 🏗 Install Python dependencies
57
57
  run: uv sync --dev
58
58
  - name: 🏗 Set up Node.js
59
- uses: actions/setup-node@v6.2.0
59
+ uses: actions/setup-node@v6.3.0
60
60
  with:
61
61
  node-version-file: ".nvmrc"
62
62
  cache: "npm"
@@ -16,6 +16,8 @@ permissions:
16
16
 
17
17
  env:
18
18
  DEFAULT_PYTHON: "3.13"
19
+ HAS_CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN != '' }}
20
+ HAS_SONAR_TOKEN: ${{ secrets.SONAR_TOKEN != '' }}
19
21
 
20
22
  jobs:
21
23
  pytest:
@@ -41,7 +43,7 @@ jobs:
41
43
  - name: 🚀 Run pytest
42
44
  run: uv run pytest --cov=bsblan tests
43
45
  - name: ⬆️ Upload coverage artifact
44
- uses: actions/upload-artifact@v6.0.0
46
+ uses: actions/upload-artifact@v7.0.0
45
47
  with:
46
48
  name: coverage-${{ matrix.python }}
47
49
  include-hidden-files: true
@@ -56,7 +58,7 @@ jobs:
56
58
  with:
57
59
  fetch-depth: 0
58
60
  - name: ⬇️ Download coverage data
59
- uses: actions/download-artifact@v7.0.0
61
+ uses: actions/download-artifact@v8.0.0
60
62
  - name: 🏗 Set up uv
61
63
  uses: astral-sh/setup-uv@v7
62
64
  with:
@@ -70,15 +72,22 @@ jobs:
70
72
  run: uv sync --dev
71
73
  - name: 🚀 Process coverage results
72
74
  run: |
73
- uv run coverage combine coverage*/.coverage*
74
- uv run coverage xml -i
75
+ uv run python -m coverage combine coverage*/.coverage*
76
+ uv run python -m coverage xml -i
75
77
  - name: 🚀 Upload coverage report
78
+ if: env.HAS_CODECOV_TOKEN == 'true'
76
79
  uses: codecov/codecov-action@v5.5.2
77
80
  with:
78
81
  token: ${{ secrets.CODECOV_TOKEN }}
82
+ - name: ℹ️ Skip Codecov upload (missing token)
83
+ if: env.HAS_CODECOV_TOKEN != 'true'
84
+ run: echo "CODECOV_TOKEN is not set; skipping Codecov upload."
79
85
  - name: SonarCloud Scan
80
- if: github.event.pull_request.head.repo.fork == false
86
+ if: env.HAS_SONAR_TOKEN == 'true' && (github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
81
87
  uses: SonarSource/sonarcloud-github-action@v5.0.0
82
88
  env:
83
89
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
84
90
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
91
+ - name: ℹ️ Skip SonarCloud scan (missing token)
92
+ if: env.HAS_SONAR_TOKEN != 'true'
93
+ run: echo "SONAR_TOKEN is not set; skipping SonarCloud scan."
@@ -0,0 +1 @@
1
+ 24.14.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-bsblan
3
- Version: 5.1.0
3
+ Version: 5.1.2
4
4
  Summary: Asynchronous Python client for BSBLAN API
5
5
  Project-URL: Homepage, https://github.com/liudger/python-bsblan
6
6
  Project-URL: Repository, https://github.com/liudger/python-bsblan
@@ -105,7 +105,7 @@ async def main() -> None:
105
105
  """
106
106
  # Create a configuration object
107
107
  config = BSBLANConfig(
108
- host="10.0.2.60",
108
+ host="192.0.2.1",
109
109
  passkey=None,
110
110
  username=os.getenv("USERNAME"), # Compliant
111
111
  password=os.getenv("PASSWORD"), # Compliant
@@ -73,7 +73,7 @@ async def main() -> None:
73
73
  """
74
74
  # Create a configuration object
75
75
  config = BSBLANConfig(
76
- host="10.0.2.60",
76
+ host="192.0.2.1",
77
77
  passkey=None,
78
78
  username=os.getenv("USERNAME"), # Compliant
79
79
  password=os.getenv("PASSWORD"), # Compliant
@@ -1,7 +1,7 @@
1
1
  """Fetch one or more BSB-LAN parameters and print the raw API response.
2
2
 
3
3
  Usage:
4
- export BSBLAN_HOST=10.0.2.60
4
+ export BSBLAN_HOST=192.0.2.1
5
5
  export BSBLAN_PASSKEY=your_passkey # if needed
6
6
 
7
7
  # Single parameter