Skip to content

chore(deps-dev): bump nodeenv from 1.9.1 to 1.10.0#103

Open
dependabot[bot] wants to merge 49 commits intomainfrom
dependabot/pip/nodeenv-1.10.0
Open

chore(deps-dev): bump nodeenv from 1.9.1 to 1.10.0#103
dependabot[bot] wants to merge 49 commits intomainfrom
dependabot/pip/nodeenv-1.10.0

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 23, 2026

Bumps nodeenv from 1.9.1 to 1.10.0.

Release notes

Sourced from nodeenv's releases.

1.10.0 - drop

What's Changed

Fixed bugs 🐛

Improvements 🛠

Other Changes

New Contributors

Full Changelog: ekalinin/nodeenv@1.9.1...1.10.0

Commits
  • 9dee547 chore: bump nodeenv version to 1.10.0
  • d45aabb chore: add pyright ignore comments for compatibility
  • 55d6c21 chore: update AUTHORS
  • 5f694e6 test: update test test_node_system_creates_shim
  • fa3fdfb Merge branch 'master' of github.com:ekalinin/nodeenv
  • e868dbe Replace additional use of which(1) with shutil.which() (#355)
  • b4cd00d test: enhance activation tests for nodeenv with custom prompts and file handling
  • 0b5ea9d refactor(tests): improve readability of mock patches in nodeenv tests
  • 37c0c30 ci: add GH workflow for testing and coverage in PR
  • 326a7a4 test: add comprehensive tests for install_npm and install_npm_win functions
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

dependabot bot and others added 30 commits January 5, 2026 22:30
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](dependabot/fetch-metadata@v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…dabot/fetch-metadata-2.5.0

Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0
Bumps the dev-dependencies group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.4.2 to 9.0.2
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@8.4.2...9.0.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.0 to 2.6.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](urllib3/urllib3@2.6.0...2.6.3)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
When parallel requests share a client via get_all_data(), one request
failing can destroy the shared client while others are in-flight. Those
requests then fail with ReadError, WriteError, or CloseError (all
subclasses of NetworkError) which were not being caught by the retry
logic.

This fix extends the exception handling in _retry_with_backoff() to
catch these network errors alongside RemoteProtocolError, applying the
same immediate retry with client recreation strategy.

Fixes #89

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Bumps the runtime-dependencies group with 2 updates: [attrs](https://github.com/sponsors/hynek) and [click](https://github.com/pallets/click).


Updates `attrs` from 25.3.0 to 25.4.0
- [Commits](https://github.com/sponsors/hynek/commits)

Updates `click` from 8.2.1 to 8.3.1
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst)
- [Commits](pallets/click@8.2.1...8.3.1)

---
updated-dependencies:
- dependency-name: attrs
  dependency-version: 25.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: runtime-dependencies
- dependency-name: click
  dependency-version: 8.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: runtime-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…cies-692cb036f1

Bump the runtime-dependencies group with 2 updates
Bumps [cffi](https://github.com/python-cffi/cffi) from 1.17.1 to 2.0.0.
- [Release notes](https://github.com/python-cffi/cffi/releases)
- [Commits](python-cffi/cffi@v1.17.1...v2.0.0)

---
updated-dependencies:
- dependency-name: cffi
  dependency-version: 2.0.0
  dependency-type: indirect
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.34.0 to 20.36.1.
- [Release notes](https://github.com/pypa/virtualenv/releases)
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)
- [Commits](pypa/virtualenv@20.34.0...20.36.1)

---
updated-dependencies:
- dependency-name: virtualenv
  dependency-version: 20.36.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.20.1 to 3.20.3.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)
- [Commits](tox-dev/filelock@3.20.1...3.20.3)

---
updated-dependencies:
- dependency-name: filelock
  dependency-version: 3.20.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the dev-dependencies group with 1 update: [bandit](https://github.com/PyCQA/bandit).


Updates `bandit` from 1.9.2 to 1.9.3
- [Release notes](https://github.com/PyCQA/bandit/releases)
- [Commits](PyCQA/bandit@1.9.2...1.9.3)

---
updated-dependencies:
- dependency-name: bandit
  dependency-version: 1.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…-3473c1682a

Bump bandit from 1.9.2 to 1.9.3 in the dev-dependencies group
Bumps [markupsafe](https://github.com/pallets/markupsafe) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](pallets/markupsafe@3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-version: 3.0.3
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…hot models

- Add PanelCapability flags and PanelGeneration enum to models.py
- Add SpanPanelSnapshot / SpanCircuitSnapshot unified data models
- Add SpanPanelClientProtocol + capability mixin Protocols (protocol.py)
- Add SpanGrpcClient Gen3 transport (grpc/client.py, grpc/models.py, grpc/const.py)
- Add create_span_client() factory with auto-detection (factory.py)
- Add SpanPanelGrpcError, SpanPanelGrpcConnectionError to exceptions.py
- Add get_snapshot() / connect() / ping() shims to SpanPanelClient for protocol conformance
- Add grpcio as optional [grpc] dependency; omit grpc/* and factory.py from coverage
- Add design document docs/Dev/grpc-transport-design.md
- Bump version to 1.1.15
…s fields

Add 17 optional Gen2-specific fields to SpanPanelSnapshot so that the HA
integration can derive all domain objects (SpanPanelHardwareStatus,
SpanPanelData, SpanPanelCircuit, SpanPanelStorageBattery) from a single
snapshot. Gen3 clients leave these fields None; Gen2-only entities are
capability-gated in the integration.

Fields added to SpanPanelSnapshot:
- feedthrough_power_w, feedthrough_energy_produced/consumed_wh
- main_meter_energy_produced/consumed_wh
- current_run_config
- hardware_door_state, hardware_uptime, hardware_proximity_proven
- hardware_is_ethernet/wifi/cellular_connected
- hardware_update_status, hardware_env, hardware_manufacturer, hardware_model

Updated SpanPanelClient.get_snapshot() to populate all new fields from
the existing get_status(), get_panel_state(), get_circuits() calls.
The original _parse_instances() computed circuit_id as
instance_id - METRIC_IID_OFFSET (hardcoded 27), reverse-engineered from
one MAIN40 where trait 26 IIDs happened to be 28-52. On the MLO48,
trait 26 IIDs are [2, 35, 36, ...] — the offset differs, so most
computed circuit_ids were out of range and silently discarded, leaving
the panel with no circuits discovered. Reported in PR #169.

Two bugs fixed:

1. Offset-based circuit_id: replaced with positional pairing. Trait 16
   and trait 26 IIDs are now collected independently, sorted,
   deduplicated, and paired by position (circuit_id = idx + 1). Works
   correctly regardless of actual IID values or panel model.

2. GetRevision instance_id: _get_circuit_name() was passing the
   positional circuit_id as the trait 16 instance ID. On the MAIN40
   this accidentally worked (IIDs 1-25 match positions); on the MLO48
   trait 16 IIDs are non-contiguous so names were fetched from wrong
   instances. CircuitInfo now stores name_iid (the actual trait 16 IID)
   and _fetch_circuit_names() uses it directly.

Also adds _metric_iid_to_circuit reverse map built at connect time for
O(1) streaming lookup, replacing the broken IID-offset arithmetic in
_decode_and_store_metric().

Removes METRIC_IID_OFFSET from grpc/const.py — the constant embodied
the incorrect assumption.

Updates grpc-transport-design.md with root cause analysis and fix.
Covers editable install workflow for both local HA core and Docker
container deployments, debug logging config, diagnostic symptom table,
and iteration workflow for protobuf decoder fixes.
Replace positional pairing with Breaker Group (BG) based mapping.
Each BG IID equals its corresponding trait 26 metric IID and contains
an explicit reference to the trait 16 name IID, eliminating fragile
positional assumptions.

Changes:
- Add _fetch_breaker_groups() using trait 15 as authoritative source
- Add _query_breaker_group() to parse single/dual-phase BG instances
- Add _extract_trait_ref_iid() helper for protobuf ref extraction
- Add breaker_position field to CircuitInfo (physical slot 1-48)
- Detect dual-phase circuits (field 11=single, field 13=dual)
- Build _metric_iid_to_circuit reverse map for O(1) stream lookup
- Filter orphan metric IIDs (e.g. 2, 401, 402) automatically
- Fall back to positional pairing if no BG instances available

Validated on MAIN 40 (25 circuits, 4 dual-phase) and MLO 48
(31 circuits, 10 dual-phase) — all correct.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ndling

Handle NetworkError exceptions in retry logic for parallel requests
cayossarian and others added 19 commits February 17, 2026 21:17
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.5 to 46.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@45.0.5...46.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
….0.5

Bump cryptography from 45.0.5 to 46.0.5
Gen3 gRPC does not expose serial/firmware via a dedicated trait yet.
The panel_resource_id (captured during instance discovery) serves as a
unique, stable panel identifier that can be used for entity unique_id
generation in Home Assistant.

Without this fix, serial_number is empty and HA sensors cannot be
registered in the entity registry (no unique_id = no persistent entity).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a check before the deps-installed condition to detect when the
virtual environment has been recreated (e.g. for a new Python version)
but the .deps-installed marker still reflects the old install. Uses
pre_commit importability as the sentinel since it is always a dev
dependency.

Also add exit code checking for `poetry run pre-commit install` so
failures are surfaced rather than silently swallowed.
Home Assistant now requires Python >=3.14.2. Update mypy python_version
from 3.13 to 3.14 so type checking reflects the actual runtime. Update
black target-version from py312 to py313 (py314 not yet supported by
black 25.1.0).
Extract _decode_main_feed_leg() from _decode_main_feed() and
_parse_instance_item() from _parse_instances() to bring both methods
below the complexity threshold flagged by CodeFactor.

- _decode_main_feed: CC 20 -> 7 (D -> B)
- _parse_instances: CC 23 -> 13 (D -> C)

Also fix pre-existing type and attribute issues surfaced by mypy/pylint
when the file was first staged:
- _extract_trait_ref_iid: broaden parameter to ProtobufValue | None and
  fix the return type to always produce int
- _parse_breaker_group: remove unnecessary "or b""" coercions now that
  _extract_trait_ref_iid handles None directly
- Initialize _raw_bg_iids/_raw_name_iids/_raw_metric_iids in __init__
  to satisfy pylint attribute-defined-outside-init
Split the monolithic README into a concise top-level overview with
dedicated detail pages:

- README.md: high-level introduction, quick start via create_span_client,
  Gen2 vs Gen3 capability table, documentation table of contents
- docs/gen2-client.md: connection patterns, auth, full API reference,
  timeout/retry/caching, Home Assistant integration, simulation mode
- docs/gen3-client.md: gRPC usage, streaming callbacks, snapshot model,
  low-level PanelData access, error handling
- docs/error-handling.md: exception hierarchy, HTTP to exception mapping,
  retry configuration, Gen3 gRPC errors
- docs/development.md: setup, test/lint commands, project structure,
  OpenAPI client regeneration, Gen3 internals, contributing guide
Bumps [nodeenv](https://github.com/ekalinin/nodeenv) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/ekalinin/nodeenv/releases)
- [Changelog](https://github.com/ekalinin/nodeenv/blob/master/CHANGES)
- [Commits](ekalinin/nodeenv@1.9.1...1.10.0)

---
updated-dependencies:
- dependency-name: nodeenv
  dependency-version: 1.10.0
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Feb 23, 2026
@github-actions github-actions bot enabled auto-merge February 23, 2026 23:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants