Skip to content

Enhancement Proposal: Modernizing pySerialTransfer Python Client for Improved Code Quality and Practices #74

@robberwick

Description

@robberwick

Firstly, I want to express my gratitude for the continuous maintenance of pySerialTransfer (and serialTransfer). Over the years, I've extensively utilized them and even contributed in the past. I really appreciate that they provide a straightforward solution for packetized data transfer.

Recently, I've been contemplating whether the Python client could benefit from some modernization in terms of code style and practices. I believe updating it to leverage modern Python language features and best practices could enhance its usability and maintainability.

Areas for Improvement:

Language Additions:
Incorporating features like type hinting, enums, and utilizing match instead of multiple if...else blocks.
Code Formatting:
Enforcing PEP8 compliance throughout the codebase, utilizing tools like Black or Darker for consistent code styling, and optimizing imports with isort.
Packaging:
Transitioning to using pyproject.toml for packaging instead of the older setup.py.
Testing:
Adding pytest-based unit tests to ensure the project's functionality and provide confidence to potential users.

This inquiry isn't a formal issue but rather an exploration of the project's roadmap and the community's interest in such development work. I'm willing to contribute by submitting pull requests, but I wanted to gauge the community's receptiveness and identify the lowest supported version of Python (presumably at least 3.8, considering 3.7's EOL) for tailoring the changes accordingly.

Your feedback and guidance on this proposal would be highly appreciated. Thank you for considering these potential enhancements to pySerialTransfer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions