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

v6.0.0 #105

Merged
merged 81 commits into from
Jan 14, 2024
Merged

v6.0.0 #105

merged 81 commits into from
Jan 14, 2024

Conversation

Paebbels
Copy link
Member

@Paebbels Paebbels commented Jul 9, 2023

New Features

  • Integrated package pyAttributes v2.5.9 as pyTooling.Attributes.
    • Replaced AttributeHelperMixin mixin-class by meta-class features provided by ExtendedType.
    • Completely reworked pyTooling.Attributes.ArgParse.
    • Improvements to Attribute class:
      • 🔥🔥🔥
    • Improvements to ExtendedType meta-class:
      • 🔥🔥🔥
    • Reworked ...ArgParse
      • 🔥🔥🔥
  • Integrated namespace package pyTooling.CLIAbstraction v0.4.1 into this package to minimize maintenance efforts.
    • Implemented firstElement and lastElement.
  • Implemented firstItem and lastItem.
  • Added bind function to bind normal functions as methods.
  • Added Cygwin to Platform.
  • Added issue tracker URL support to TerminalUI.

Changes

  • Bumped dependencies.
  • Removed Python 3.7 code and workarounds.
  • Adjustments for Python 3.12
  • 🔥Renamed ...... to TerminalApplication.
  • Renamed firstItem to firstPair.
  • Renamed SemVersion to SemanticVersion and CalVersion to ``.
  • Applied @readonly decorator for read-only properties instead of @property.
  • Improved exception printing and exception messages.
  • Improved type hints.
    • Added return type hint for __init__() methods.
    • Added hints for *args and **kwargs.

Bug Fixes

  • tbd

Documentation

  • Switched from BuildTheDocs theme to ReadTheDocs theme
    • Manual CSS overrides extracted from BuildTheDocs modifications
    • Extra adjustments for sphinx{design}.
  • Removed sphinx_inline_tabs.
  • Removed sphinx_fontawesome
  • Added tabs and grids via sphinx{design}.
    • Display description side-by-side with example code.
    • Use tabs to switch between Linux, Windows, ... or JSON, YAML, XML, ...
  • Widened design to support up to 1600px.
  • Integrated documentation of pyAttributes.
  • Integrated documentation of pyTooling.CLIAbstraction.
  • Added News chapter.
  • Improved doc-strings.
  • Fixed external links dictionary extlinks.

Test Cases

  • Reworked tests for Attributes (pyTooling.Attributes).
  • Reworked tests for ArgParse (pyTooling.Attributes.ArgParse).
  • Added packaging tests.
  • Added tests for ExitOnPreviousErrors and ExitOnPreviousWarnings.
  • More unit tests for TerminalUI classes.

Others

  • Updated copyright note
  • Tested comparability to Python 3.12
  • Using new code coverage features in GitHub Action pipeline.
  • Updated package keywords after merging CLIAbstraction and pyAttributes into pyTooling.
  • Added JSON and XML sections in pyproject.toml file.
  • Added no cover to certain exceptions in platforms.
  • Removed redundant parenthesis from code.

Related Issues

TODO

@codecov
Copy link

codecov bot commented Jul 13, 2023

Codecov Report

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

Comparison is base (e5d47d3) 79.78% compared to head (c123317) 42.04%.
Report is 1 commits behind head on main.

❗ Current head c123317 differs from pull request most recent head 6b7514e. Consider uploading reports for the commit 6b7514e to get more accurate results

Files Patch % Lines
pyTooling/TerminalUI/__init__.py 40.50% 119 Missing ⚠️
pyTooling/CLIAbstraction/__init__.py 40.72% 115 Missing ⚠️
pyTooling/Attributes/__init__.py 30.40% 101 Missing and 2 partials ⚠️
pyTooling/CLIAbstraction/Argument.py 58.85% 86 Missing ⚠️
pyTooling/Attributes/ArgParse/__init__.py 47.54% 64 Missing ⚠️
pyTooling/CallByRef/__init__.py 7.01% 53 Missing ⚠️
pyTooling/CLIAbstraction/KeyValueFlag.py 41.17% 40 Missing ⚠️
pyTooling/CLIAbstraction/ValuedFlagList.py 50.00% 31 Missing ⚠️
pyTooling/CLIAbstraction/BooleanFlag.py 50.84% 29 Missing ⚠️
pyTooling/CLIAbstraction/OptionalValuedFlag.py 52.45% 29 Missing ⚠️
... and 13 more
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #105       +/-   ##
===========================================
- Coverage   79.78%   42.04%   -37.75%     
===========================================
  Files          19       31       +12     
  Lines        4240     5247     +1007     
  Branches     1032     1261      +229     
===========================================
- Hits         3383     2206     -1177     
- Misses        708     3003     +2295     
+ Partials      149       38      -111     
Flag Coverage Δ
unittests 42.04% <43.46%> (-37.75%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

Bumped dependencies.
Fixed some ArgParse tests.
More changes towards fixing Attributes.
Further testcase improvements.
Testing a meta-class.
More tests on methods.
Improved tests for Attributes on methods.
Updated testcases for Attributes on Classes.
Added Attributes on functions test cases.
Updated keywords.
Improved attribute classes.
New ArgParse test case.
Added issue tracker URL.
Some attribute updates.
Added JSON section in pyproject file.
Testing new code coverage pipeline features.
Added return type hint for __init__().
More packaging tests.
Test packaging.
Added no cover to certain exceptions in platforms
Added tests for ExitOnPreviousErrors and ExitOnPreviousWarnings.
testing WriteFault with no exit.
Testcases for stdout and stderr modes.
testing data mode.
Improced exception printing.
More writing tests.
More changes to Terminal classes.
More unit tests for Terminal classes.
Renamed to TerminalApplication
Improved Terminal class. Added Cygwin to Platform.
Added WriteToStdOut and WriteToStdErr.
Renaming to TerminalUI.
Implemented firstItem, lastItem, and renamed firstPair.
Fixed some testcases.
Bumped dependencies.
Added colorama dependency.
Fixed method name.
Added colorama check.
Updated to Sphinx 7.1.
Fixed tables.
Fixes for InterSphinx.
Improvements to argparse.
Improved doc-strings.
Further steps in restructuring former pyAttributes.
@Paebbels Paebbels self-assigned this Nov 19, 2023
@Paebbels Paebbels added Enhancement New feature or request MetaClass Generally about meta-classes. ExtendedType A meta-class extending 'type'. Unit Tests Terminal pyTooling.TerminalUI - Helpers for writing Terminal applications. Attribute pyTooling.Attributes CLIAbstraction pyTooling.CLIAbstraction labels Nov 19, 2023
@Paebbels Paebbels marked this pull request as ready for review January 14, 2024 13:09
@Paebbels Paebbels merged commit c66fbcf into main Jan 14, 2024
26 of 58 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ArgParse ArgParse or pyToolingAttributes.ArgParse related. Attribute pyTooling.Attributes CLIAbstraction pyTooling.CLIAbstraction Enhancement New feature or request ExtendedType A meta-class extending 'type'. MetaClass Generally about meta-classes. Terminal pyTooling.TerminalUI - Helpers for writing Terminal applications. Unit Tests
Projects
None yet
1 participant