nwp500-python 9.12.2__tar.gz → 9.13.1__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.
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.github/copilot-instructions.md +3 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.github/workflows/ci.yml +11 -11
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.github/workflows/release.yml +7 -7
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/CHANGELOG.rst +1370 -0
- {nwp500_python-9.12.2/src/nwp500_python.egg-info → nwp500_python-9.13.1}/PKG-INFO +2 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/draws.rst +82 -124
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/heating-elements.rst +6 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/index.rst +1 -0
- nwp500_python-9.13.1/docs/explanation/recovery-speed.rst +534 -0
- nwp500_python-9.13.1/docs/explanation/simulator-methodology.rst +955 -0
- nwp500_python-9.13.1/docs/explanation/simulator-tried.rst +1600 -0
- nwp500_python-9.13.1/docs/explanation/simulator.rst +1472 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/standby-loss.rst +112 -78
- nwp500_python-9.13.1/docs/how-to/calibrate-simulator.rst +687 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/diagnose-mqtt.rst +42 -9
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/simulate-heater.rst +514 -316
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/configuration.rst +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/installation.rst +3 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/mqtt_protocol.rst +4 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/sim.rst +88 -79
- nwp500_python-9.13.1/docs/reference/simulator-inputs.rst +1344 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/pyproject.toml +6 -5
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/setup.cfg +11 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/__init__.py +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/ble/mqtt_adapter.py +13 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/__main__.py +65 -16
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/calibration.py +147 -18
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/handlers.py +48 -7
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/simulate.py +48 -45
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/converters.py +39 -5
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/device_capabilities.py +6 -4
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/feature.py +9 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/status.py +27 -12
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/_device_subscriptions.py +13 -13
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/client.py +25 -22
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/connection.py +137 -30
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/control.py +17 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/periodic.py +28 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/subscriptions.py +371 -150
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/utils.py +153 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/__init__.py +18 -8
- nwp500_python-9.13.1/src/nwp500/sim/api.py +2513 -0
- nwp500_python-9.13.1/src/nwp500/sim/calibration.py +1682 -0
- nwp500_python-9.13.1/src/nwp500/sim/carry.py +492 -0
- nwp500_python-9.13.1/src/nwp500/sim/circulation.py +116 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/codec.py +15 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/cold_supply.py +61 -17
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/controller.py +516 -89
- nwp500_python-9.13.1/src/nwp500/sim/decay.py +335 -0
- nwp500_python-9.13.1/src/nwp500/sim/defaults.py +417 -0
- nwp500_python-9.13.1/src/nwp500/sim/delivery.py +394 -0
- nwp500_python-9.13.1/src/nwp500/sim/draw_ensemble.py +406 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/draw_forecast.py +15 -10
- nwp500_python-9.13.1/src/nwp500/sim/engine.py +2111 -0
- nwp500_python-9.13.1/src/nwp500/sim/extensions.py +25 -0
- nwp500_python-9.13.1/src/nwp500/sim/heat_pump_fit.py +1016 -0
- nwp500_python-9.13.1/src/nwp500/sim/heat_pump_recovery.py +120 -0
- nwp500_python-9.13.1/src/nwp500/sim/heating_trajectory.py +97 -0
- nwp500_python-9.13.1/src/nwp500/sim/history.py +249 -0
- nwp500_python-9.13.1/src/nwp500/sim/history_frame.py +97 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/inputs.py +67 -9
- nwp500_python-9.13.1/src/nwp500/sim/margins.py +272 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/params.py +601 -545
- nwp500_python-9.13.1/src/nwp500/sim/physics/__init__.py +3 -0
- nwp500_python-9.13.1/src/nwp500/sim/physics/draw.py +135 -0
- nwp500_python-9.13.1/src/nwp500/sim/physics/element.py +159 -0
- nwp500_python-9.13.1/src/nwp500/sim/physics/heat_pump.py +182 -0
- nwp500_python-9.13.1/src/nwp500/sim/physics/stratified.py +1440 -0
- nwp500_python-9.13.1/src/nwp500/sim/physics/water.py +86 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/profile.py +2 -3
- nwp500_python-9.13.1/src/nwp500/sim/ready.py +387 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/record.py +22 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/result.py +74 -21
- nwp500_python-9.13.1/src/nwp500/sim/tank_fit.py +898 -0
- nwp500_python-9.13.1/src/nwp500/sim/tank_physics.py +891 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/units.py +3 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim_adapters.py +219 -273
- nwp500_python-9.13.1/src/nwp500/sim_calibrate.py +1579 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim_home_assistant.py +155 -141
- nwp500_python-9.13.1/src/nwp500/sim_score.py +2017 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1/src/nwp500_python.egg-info}/PKG-INFO +2 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/SOURCES.txt +43 -13
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/requires.txt +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/scm_file_list.json +42 -12
- nwp500_python-9.13.1/src/nwp500_python.egg-info/scm_version.json +8 -0
- nwp500_python-9.13.1/tests/fixtures/sim/circulation_run_2026-10-29.json +3484 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/fixtures/sim/engine_golden.json +65 -65
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/fixtures/sim/heater_params.json +43 -34
- nwp500_python-9.13.1/tests/fixtures/sim/heater_params_fitted.json +118 -0
- nwp500_python-9.13.1/tests/fixtures/sim/heater_params_two_zone.json +264 -0
- nwp500_python-9.13.1/tests/sim_cases.py +186 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_api_endpoints_201.py +1 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_app_queries.py +24 -14
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_auth.py +2 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_ble_mqtt_adapter.py +5 -5
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_ble_protocol.py +4 -7
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_cli_calibrate.py +167 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_cli_commands.py +19 -6
- nwp500_python-9.13.1/tests/test_cli_reply_cleanup.py +139 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_cli_simulate.py +107 -55
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_cli_tristate_presentation.py +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_command_decorators.py +3 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_device_capabilities.py +4 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_model_converters.py +19 -4
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_models.py +16 -16
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_clean_session_resume.py +2 -1
- nwp500_python-9.13.1/tests/test_mqtt_connection_builder.py +114 -0
- nwp500_python-9.13.1/tests/test_mqtt_connection_robustness.py +446 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_control_fail.py +11 -9
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_last_will.py +16 -21
- nwp500_python-9.13.1/tests/test_mqtt_parse_once.py +502 -0
- nwp500_python-9.13.1/tests/test_mqtt_payload_log.py +305 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_reconnection_storm.py +5 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_navilink_201_enums.py +18 -10
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_protocol_correctness.py +19 -6
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_api.py +444 -122
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_calibrate.py +588 -645
- nwp500_python-9.13.1/tests/test_sim_calibration.py +487 -0
- nwp500_python-9.13.1/tests/test_sim_carry.py +978 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_change_history.py +263 -284
- nwp500_python-9.13.1/tests/test_sim_circulation.py +715 -0
- nwp500_python-9.13.1/tests/test_sim_cold_supply.py +384 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_controller.py +129 -13
- nwp500_python-9.13.1/tests/test_sim_correction_top.py +83 -0
- nwp500_python-9.13.1/tests/test_sim_defaults.py +313 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_documents.py +2 -8
- nwp500_python-9.13.1/tests/test_sim_draw.py +72 -0
- nwp500_python-9.13.1/tests/test_sim_draw_duration.py +199 -0
- nwp500_python-9.13.1/tests/test_sim_draw_ensemble.py +404 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_draw_forecast.py +4 -2
- nwp500_python-9.13.1/tests/test_sim_electric.py +505 -0
- nwp500_python-9.13.1/tests/test_sim_element.py +774 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_element_fit.py +10 -14
- nwp500_python-9.13.1/tests/test_sim_envelope.py +938 -0
- nwp500_python-9.13.1/tests/test_sim_fast_draws.py +112 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_forecast.py +68 -24
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_golden.py +93 -15
- nwp500_python-9.13.1/tests/test_sim_heat_pump.py +355 -0
- nwp500_python-9.13.1/tests/test_sim_heat_pump_fit.py +680 -0
- nwp500_python-9.13.1/tests/test_sim_history.py +237 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_home_assistant.py +5 -1
- nwp500_python-9.13.1/tests/test_sim_hot_water.py +583 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_import_contract.py +9 -15
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_live.py +2 -2
- nwp500_python-9.13.1/tests/test_sim_margins.py +396 -0
- nwp500_python-9.13.1/tests/test_sim_meter_reads.py +386 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_overlay.py +2 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_profile.py +6 -5
- nwp500_python-9.13.1/tests/test_sim_readiness.py +278 -0
- nwp500_python-9.13.1/tests/test_sim_ready.py +231 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_ready_api.py +266 -196
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_replay.py +2 -15
- nwp500_python-9.13.1/tests/test_sim_resume.py +815 -0
- nwp500_python-9.13.1/tests/test_sim_score.py +716 -0
- nwp500_python-9.13.1/tests/test_sim_score_days.py +568 -0
- nwp500_python-9.13.1/tests/test_sim_stratified.py +1135 -0
- nwp500_python-9.13.1/tests/test_sim_tank_fit.py +715 -0
- nwp500_python-9.13.1/tests/test_sim_tank_physics.py +510 -0
- nwp500_python-9.13.1/tests/test_sim_undiluted_share.py +202 -0
- nwp500_python-9.13.1/tests/test_sim_walk_cost.py +300 -0
- nwp500_python-9.13.1/tests/test_sim_water.py +54 -0
- nwp500_python-9.13.1/tests/test_unknown_enum_values.py +143 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tox.ini +2 -1
- nwp500_python-9.12.2/docs/explanation/recovery-speed.rst +0 -339
- nwp500_python-9.12.2/docs/explanation/simulator-methodology.rst +0 -726
- nwp500_python-9.12.2/docs/explanation/simulator.rst +0 -422
- nwp500_python-9.12.2/docs/how-to/calibrate-simulator.rst +0 -515
- nwp500_python-9.12.2/docs/reference/simulator-inputs.rst +0 -1263
- nwp500_python-9.12.2/src/nwp500/sim/api.py +0 -1948
- nwp500_python-9.12.2/src/nwp500/sim/book.py +0 -1262
- nwp500_python-9.12.2/src/nwp500/sim/calibration.py +0 -4002
- nwp500_python-9.12.2/src/nwp500/sim/circulation.py +0 -315
- nwp500_python-9.12.2/src/nwp500/sim/decay.py +0 -1122
- nwp500_python-9.12.2/src/nwp500/sim/defaults.py +0 -228
- nwp500_python-9.12.2/src/nwp500/sim/delivery.py +0 -639
- nwp500_python-9.12.2/src/nwp500/sim/engine.py +0 -1954
- nwp500_python-9.12.2/src/nwp500/sim/extensions.py +0 -187
- nwp500_python-9.12.2/src/nwp500/sim/heat_pump_recovery.py +0 -270
- nwp500_python-9.12.2/src/nwp500/sim/heating_trajectory.py +0 -344
- nwp500_python-9.12.2/src/nwp500/sim/physics/__init__.py +0 -2
- nwp500_python-9.12.2/src/nwp500/sim/physics/compressor.py +0 -485
- nwp500_python-9.12.2/src/nwp500/sim/physics/draw.py +0 -506
- nwp500_python-9.12.2/src/nwp500/sim/physics/element.py +0 -623
- nwp500_python-9.12.2/src/nwp500/sim/physics/refrigerant.py +0 -177
- nwp500_python-9.12.2/src/nwp500/sim/physics/tank.py +0 -140
- nwp500_python-9.12.2/src/nwp500/sim/ready.py +0 -685
- nwp500_python-9.12.2/src/nwp500/sim/tank_physics.py +0 -503
- nwp500_python-9.12.2/src/nwp500/sim_calibrate.py +0 -1823
- nwp500_python-9.12.2/src/nwp500_python.egg-info/scm_version.json +0 -8
- nwp500_python-9.12.2/tests/_sim_site.py +0 -124
- nwp500_python-9.12.2/tests/fixtures/sim/heater_params_fitted.json +0 -71
- nwp500_python-9.12.2/tests/test_sim_book.py +0 -598
- nwp500_python-9.12.2/tests/test_sim_book_history.py +0 -1289
- nwp500_python-9.12.2/tests/test_sim_bottom_loss.py +0 -678
- nwp500_python-9.12.2/tests/test_sim_calibration.py +0 -888
- nwp500_python-9.12.2/tests/test_sim_circulation.py +0 -550
- nwp500_python-9.12.2/tests/test_sim_cold_supply.py +0 -122
- nwp500_python-9.12.2/tests/test_sim_defaults.py +0 -206
- nwp500_python-9.12.2/tests/test_sim_draw_loss.py +0 -337
- nwp500_python-9.12.2/tests/test_sim_element.py +0 -869
- nwp500_python-9.12.2/tests/test_sim_evaporator.py +0 -59
- nwp500_python-9.12.2/tests/test_sim_fit_book.py +0 -757
- nwp500_python-9.12.2/tests/test_sim_hot_water.py +0 -706
- nwp500_python-9.12.2/tests/test_sim_readiness.py +0 -692
- nwp500_python-9.12.2/tests/test_sim_readiness_fit.py +0 -334
- nwp500_python-9.12.2/tests/test_sim_ready.py +0 -424
- nwp500_python-9.12.2/tests/test_sim_tank_physics.py +0 -184
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.coveragerc +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.github/RESOLVING_PR_COMMENTS.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.gitignore +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.pre-commit-config.yaml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/.readthedocs.yml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/AUTHORS.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/CONTRIBUTING.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/LICENSE.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/Makefile +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/README.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/RELEASE.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/Makefile +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/_static/.gitignore +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/_static/light-page.js +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/conf.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/architecture.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/tank-energy.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/tou-recovery-cap.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/unknown-values.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/explanation/what-starts-a-recovery.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/authenticate.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/auto-recovery.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/bluetooth.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/home-assistant.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/index.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/maintenance.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/manage-units.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/monitor-status.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/optimize-tou.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/queue-commands.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/schedule-operation.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/how-to/track-energy.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/index.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/openapi.yaml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/project/authors.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/project/changelog.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/project/contributing.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/project/history.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/project/license.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/enumerations.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/index.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/data_conversions.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/device_features.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/device_status.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/error_codes.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/quick_reference.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/protocol/rest_api.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/api_client.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/auth_client.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/cli.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/events.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/exceptions.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/models.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/reference/python_api/mqtt_client.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/requirements.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/docs/tutorials/getting-started.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/.ruff.toml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/README.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/air_filter_reset.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/anti_legionella.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/auto_recovery.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/combined_callbacks.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/demand_response.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/device_capabilities.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/device_status_debug.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/energy_analytics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/error_code_demo.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/firmware_payload_capture.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/mqtt_diagnostics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/power_control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/recirculation_control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/reconnection_demo.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/reservation_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/simple_auto_recovery.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/token_restoration.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/tou_openei.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/tou_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/advanced/water_reservation.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/beginner/01_authentication.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/beginner/02_list_devices.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/beginner/03_get_status.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/beginner/04_set_temperature.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/advanced_auth_patterns.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/command_queue.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/device_status_callback.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/error_handling.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/event_driven_control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/improved_auth.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/legacy_auth_constructor.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/mqtt_realtime_monitoring.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/periodic_requests.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/set_mode.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/intermediate/vacation_mode.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/mask.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/simulator/lower-setpoint.json +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/simulator/plan.json +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/simulator/scenario.json +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/testing/periodic_device_info.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/testing/simple_periodic_info.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/testing/test_api_client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/testing/test_mqtt_connection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/testing/test_mqtt_messaging.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/examples/testing/test_periodic_minimal.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/README.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/bump_version.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/diagnose_mqtt_connection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/extract_changelog.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/format.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/lint.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/setup-dev.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/scripts/validate_version.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/_base.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/api_client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/auth.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/ble/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/ble/__main__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/ble/client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/ble/protocol.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/ble_backend.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/monitoring.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/output_formatters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/presentation.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/recording.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/rich_output.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/cli/token_storage.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/command_decorators.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/config.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/device_info_cache.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/encoding.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/enums.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/exceptions.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/factory.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/field_factory.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/_converters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/account.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/device.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/diagnostics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/energy.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/firmware.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/maintenance.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/mqtt_models.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/models/tou.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/_control_commands.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/command_queue.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/diagnostics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/reconnection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/state_tracker.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt/types.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/mqtt_events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/openei.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/py.typed +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/reservations.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/attribution.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/location_air.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/observed.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/schedules.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim/tou_triggers.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/sim_live.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/status_history.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/temperature.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/topic_builder.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/tou_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/unit_system.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500/utils.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/dependency_links.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/entry_points.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/not-zip-safe +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/src/nwp500_python.egg-info/top_level.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/conftest.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_api_helpers.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_auth_session_lifecycle.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_auth_session_refresh.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_bug_fixes.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_canonical_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_cli_basic.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_command_queue.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_device_info_cache.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_device_rest_models.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_exceptions.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_client_init.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_hypothesis.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_reconnection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_mqtt_reliability.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_multi_device.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_openei.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_public_api.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_reservation_validation.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_reservations.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_adapters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_codec.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_location_air.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_no_clock_no_state.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_observed.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_sim_schedules.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_status_history.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_temperature_converters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_threading_model.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_token_storage.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_tou_api.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_tou_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_unit_switching.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_unit_system_process_wide.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_utility_modules.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.1}/tests/test_utils.py +0 -0
|
@@ -221,6 +221,9 @@ Removed
|
|
|
221
221
|
- **aiohttp**: Used for async HTTP requests to the Navien API
|
|
222
222
|
- **pydantic**: Used for data validation and models
|
|
223
223
|
|
|
224
|
+
## Simulator Changes Tried and Dropped
|
|
225
|
+
Before changing the simulator's physics or its fitted defaults (`src/nwp500/sim/`), read `docs/explanation/simulator-tried.rst`: the changes already built or measured against the record and not kept (24 layers, a winter heat-map refit, a frost derate, a room node, a running-probe offset, an imposed start hold), what the record said, and where each is written up. When a change you try is not kept, add it there.
|
|
226
|
+
|
|
224
227
|
## Key Files & Directories
|
|
225
228
|
- `src/nwp500/` - Main library code
|
|
226
229
|
- `examples/` - Example scripts for API and MQTT usage
|
|
@@ -13,10 +13,10 @@ jobs:
|
|
|
13
13
|
name: Lint and Format Check
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
17
|
|
|
18
18
|
- name: Set up Python
|
|
19
|
-
uses: actions/setup-python@
|
|
19
|
+
uses: actions/setup-python@v7
|
|
20
20
|
with:
|
|
21
21
|
python-version: '3.14'
|
|
22
22
|
|
|
@@ -32,10 +32,10 @@ jobs:
|
|
|
32
32
|
name: Security Check
|
|
33
33
|
runs-on: ubuntu-latest
|
|
34
34
|
steps:
|
|
35
|
-
- uses: actions/checkout@
|
|
35
|
+
- uses: actions/checkout@v7
|
|
36
36
|
|
|
37
37
|
- name: Set up Python
|
|
38
|
-
uses: actions/setup-python@
|
|
38
|
+
uses: actions/setup-python@v7
|
|
39
39
|
with:
|
|
40
40
|
python-version: '3.14'
|
|
41
41
|
|
|
@@ -55,10 +55,10 @@ jobs:
|
|
|
55
55
|
python-version: ['3.14']
|
|
56
56
|
|
|
57
57
|
steps:
|
|
58
|
-
- uses: actions/checkout@
|
|
58
|
+
- uses: actions/checkout@v7
|
|
59
59
|
|
|
60
60
|
- name: Set up Python ${{ matrix.python-version }}
|
|
61
|
-
uses: actions/setup-python@
|
|
61
|
+
uses: actions/setup-python@v7
|
|
62
62
|
with:
|
|
63
63
|
python-version: ${{ matrix.python-version }}
|
|
64
64
|
|
|
@@ -82,10 +82,10 @@ jobs:
|
|
|
82
82
|
runs-on: ubuntu-latest
|
|
83
83
|
|
|
84
84
|
steps:
|
|
85
|
-
- uses: actions/checkout@
|
|
85
|
+
- uses: actions/checkout@v7
|
|
86
86
|
|
|
87
87
|
- name: Set up Python
|
|
88
|
-
uses: actions/setup-python@
|
|
88
|
+
uses: actions/setup-python@v7
|
|
89
89
|
with:
|
|
90
90
|
python-version: '3.14'
|
|
91
91
|
|
|
@@ -110,12 +110,12 @@ jobs:
|
|
|
110
110
|
needs: [lint, test, test-without-cli-extras]
|
|
111
111
|
|
|
112
112
|
steps:
|
|
113
|
-
- uses: actions/checkout@
|
|
113
|
+
- uses: actions/checkout@v7
|
|
114
114
|
with:
|
|
115
115
|
fetch-depth: 0 # Required for setuptools_scm
|
|
116
116
|
|
|
117
117
|
- name: Set up Python
|
|
118
|
-
uses: actions/setup-python@
|
|
118
|
+
uses: actions/setup-python@v7
|
|
119
119
|
with:
|
|
120
120
|
python-version: '3.14'
|
|
121
121
|
|
|
@@ -131,7 +131,7 @@ jobs:
|
|
|
131
131
|
run: twine check dist/*
|
|
132
132
|
|
|
133
133
|
- name: Upload artifacts
|
|
134
|
-
uses: actions/upload-artifact@
|
|
134
|
+
uses: actions/upload-artifact@v7
|
|
135
135
|
with:
|
|
136
136
|
name: dist
|
|
137
137
|
path: dist/
|
|
@@ -13,10 +13,10 @@ jobs:
|
|
|
13
13
|
name: Pre-release Checks
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
17
|
|
|
18
18
|
- name: Set up Python
|
|
19
|
-
uses: actions/setup-python@
|
|
19
|
+
uses: actions/setup-python@v7
|
|
20
20
|
with:
|
|
21
21
|
python-version: '3.14'
|
|
22
22
|
|
|
@@ -46,12 +46,12 @@ jobs:
|
|
|
46
46
|
id-token: write # Required for trusted publishing
|
|
47
47
|
|
|
48
48
|
steps:
|
|
49
|
-
- uses: actions/checkout@
|
|
49
|
+
- uses: actions/checkout@v7
|
|
50
50
|
with:
|
|
51
51
|
fetch-depth: 0 # Required for setuptools_scm
|
|
52
52
|
|
|
53
53
|
- name: Set up Python
|
|
54
|
-
uses: actions/setup-python@
|
|
54
|
+
uses: actions/setup-python@v7
|
|
55
55
|
with:
|
|
56
56
|
python-version: '3.14'
|
|
57
57
|
|
|
@@ -75,10 +75,10 @@ jobs:
|
|
|
75
75
|
needs: build-and-publish
|
|
76
76
|
|
|
77
77
|
steps:
|
|
78
|
-
- uses: actions/checkout@
|
|
78
|
+
- uses: actions/checkout@v7
|
|
79
79
|
|
|
80
80
|
- name: Set up Python
|
|
81
|
-
uses: actions/setup-python@
|
|
81
|
+
uses: actions/setup-python@v7
|
|
82
82
|
with:
|
|
83
83
|
python-version: '3.14'
|
|
84
84
|
|
|
@@ -93,7 +93,7 @@ jobs:
|
|
|
93
93
|
echo "EOF" >> $GITHUB_OUTPUT
|
|
94
94
|
|
|
95
95
|
- name: Create Release
|
|
96
|
-
uses: softprops/action-gh-release@
|
|
96
|
+
uses: softprops/action-gh-release@v3
|
|
97
97
|
with:
|
|
98
98
|
body: ${{ steps.changelog.outputs.notes }}
|
|
99
99
|
draft: false
|