Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disconnect stream writer without closing the transport #58

Merged
merged 5 commits into from
Jan 3, 2024

Conversation

puddly
Copy link
Collaborator

@puddly puddly commented Jan 3, 2024

Fixes #57.

CPython changed the functionality of StreamWriter.__del__ to automatically close the underlying transport when the writer object is deleted: python/cpython#109321.

This behavior silently closed the serial port upon completion of the XMODEM transfer on newer CPython patch releases, something that did not happen earlier. I only caught it by swapping in https://github.com/puddly/serialpy with debug logging.

The alternative to this PR (that does not rely on private attribute access) is to keep all StreamWriter objects around in a global graveyard list after use.

@codecov-commenter
Copy link

codecov-commenter commented Jan 3, 2024

Codecov Report

Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (4f7fff0) 60.67% compared to head (7822f53) 60.62%.

Files Patch % Lines
universal_silabs_flasher/xmodemcrc.py 33.33% 2 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev      #58      +/-   ##
==========================================
- Coverage   60.67%   60.62%   -0.05%     
==========================================
  Files          14       14              
  Lines        1653     1656       +3     
==========================================
+ Hits         1003     1004       +1     
- Misses        650      652       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@puddly puddly merged commit a4429df into NabuCasa:dev Jan 3, 2024
12 checks passed
robarnold referenced this pull request in marinatedconcrete/config Jan 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[universal-silabs-flasher](https://togithub.com/NabuCasa/universal-silabs-flasher)
| `==0.0.15` -> `==0.0.16` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/universal-silabs-flasher/0.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/universal-silabs-flasher/0.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/universal-silabs-flasher/0.0.15/0.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/universal-silabs-flasher/0.0.15/0.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>NabuCasa/universal-silabs-flasher
(universal-silabs-flasher)</summary>

###
[`v0.0.16`](https://togithub.com/NabuCasa/universal-silabs-flasher/releases/tag/v0.0.16)

[Compare
Source](https://togithub.com/NabuCasa/universal-silabs-flasher/compare/v0.0.15...v0.0.16)

#### What's Changed

- Compatibility with gpiod 2.x by
[@&#8203;puddly](https://togithub.com/puddly) in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/50](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/50)
- Migrate to zigpy CI and pre-commit hooks by
[@&#8203;puddly](https://togithub.com/puddly) in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/53](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/53)
- Bootloader reset improvements by
[@&#8203;darkxst](https://togithub.com/darkxst) in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/51](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/51)
- Disconnect stream writer without closing the transport by
[@&#8203;puddly](https://togithub.com/puddly) in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/58](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/58)
- EBL parsing by [@&#8203;puddly](https://togithub.com/puddly) in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/11](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/11)
- Update README.md with bootloader reset option by
[@&#8203;darkxst](https://togithub.com/darkxst) in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/54](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/54)
- Run `isort` to fix CI by [@&#8203;puddly](https://togithub.com/puddly)
in
[https://github.com/NabuCasa/universal-silabs-flasher/pull/59](https://togithub.com/NabuCasa/universal-silabs-flasher/pull/59)

**Full Changelog**:
NabuCasa/universal-silabs-flasher@v0.0.15...v0.0.16

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/marinatedconcrete/config).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Progress stalled after upload
2 participants