Skip to content

Dependencies update#853

Open
lindsay-stevens wants to merge 16 commits into
XLSForm:masterfrom
lindsay-stevens:deps-update
Open

Dependencies update#853
lindsay-stevens wants to merge 16 commits into
XLSForm:masterfrom
lindsay-stevens:deps-update

Conversation

@lindsay-stevens

Copy link
Copy Markdown
Contributor

Why is this the best possible solution? Were any other approaches considered?

That time of year again for moving up python versions and doing some housekeeping. Due to the ruff rule changes it'd be easier to review per-commit.

  • Move python support window from 3.10 to 3.13 to 3.11 to 3.14. Python 3.10 is fully EOL on 2026-10-31, and 3.14 would be stable now having been first released 2025-10-07.
    • There is a backwards incompatible change in f2171c0 but since .xls support will probably be removed with the next release it'll probably be a new major version for pyxform anyway.
  • Update project dependencies and GitHub workflow actions versions to latest available.
    • There is a xlrd==2.0.2 with a minor fix but this dependency is due to be removed soon as noted above.
  • Update / apply ruff rules.
    • There are many more rules that might be useful, but basically I was looking for rules that seemed worthwhile and could be applied reasonably cleanly in the space of a couple of hours.
  • Converted readme to markdown to simplify maintenance.

Considered adding test matrix runs for windows and linux arm64 since these platforms are probably becoming more popular. But the GitHub runners currently don't have a ubuntu-latest-arm option so it'd be something else to maintain, and the macOS build is already testing arm64 to some extent, and there's already 13 jobs in the verify.yml workflow run on every push. Maybe it'd make sense to add as a pre-release check at some point.

What are the regression risks?

As noted above.

Does this change require updates to documentation? If so, please file an issue here and include the link below.

No, the relevant docs are updated in this PR.

Before submitting this PR, please make sure you have:

  • included test cases for core behavior and edge cases in tests
  • run python -m unittest and verified all tests pass
  • run ruff format pyxform tests and ruff check pyxform tests to lint code
  • verified that any code or assets from external sources are properly credited in comments

- resolve new warnings on RUF059 (unused vars) and B017 (broad err).
- re-checked commented out rules with ruff version markers, and the
  noted issues are still present, so updated the noted version.
- removes strenum copy which is only present in py3.11+ so that change
  is not backwards compatible. However, ruff warns that keeping it no
  good either since StrEnum exists in py311.
- refurb "A tool for refurbishing and modernizing Python codebases."
- the full pydocstyle ruleset has many changes so enabling some of them
  individually to keep the diffs manageable.
- the full pydocstyle ruleset has many changes so enabling some of them
  individually to keep the diffs manageable.
- the full pydocstyle ruleset has many changes so enabling some of them
  individually to keep the diffs manageable.
- the full pydocstyle ruleset has many changes so enabling some of them
  individually to keep the diffs manageable.
- D415 is a bit strange when it comes to indented inline code blocks,
  so added backticks for those cases as well as URLs.
- the full pydocstyle ruleset has many changes so enabling some of them
  individually to keep the diffs manageable.
- the full pydocstyle ruleset has many changes so enabling some of them
  individually to keep the diffs manageable.
- The previous few commits selectively enabled the pydocstyle rules that
  resulted in changes that seemed reasonable to accept now.
- The rules now in the ignore list are ones that would require a lot of
  manual rewrites (most of them have dozens of hits).
- So this rearrangement enables other potentially useful pydocstyle
  rules that aren't currently triggering changes or warnings.
- `flynt is a command line tool to automatically convert a project's
   Python code from old "%-formatted" and .format(...) strings into
   Python 3.6+'s "f-strings".`
- conversion result in next commit so that file history is kept.
- used `pandoc --wrap=preserve -f rst -t gfm README.rst -o README.md`
  - markdown easier to remember and maintain
- fixed grammatical error L112 "in a easily navigable format"
- removed badges since this info is available on the same page as the
  readme (either GitHub or PyPI) and so one less thing to update.
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.

1 participant