-
Notifications
You must be signed in to change notification settings - Fork 179
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
modernization of proselint #1361
Closed
+8,283
−7,197
Closed
Changes from 115 commits
Commits
Show all changes
249 commits
Select commit
Hold shift + click to select a range
140b3e0
added check for punctuation spacing. Issue #1342
arostkowycz15 451801f
Added clichés from Nigel Rees' book
mdgjohnny 67be7fc
Tests for Nigel's clichés
mdgjohnny 9db9d31
fix file endings and remove not needed spaces
orgua 8defcc4
raise min py-version to 3.8 and remove future
orgua 237ff5e
update deps
orgua 98ce3d2
py: add commas
orgua 9083fef
clean imports
orgua 623d684
lint code
orgua f7d62d8
fix programming error
orgua fe731d0
chore(deps): bump ruby/setup-ruby from 1.95.0 to 1.163.0
dependabot[bot] e07daf6
chore(deps): bump codecov/codecov-action from 2.1.0 to 3.1.4
dependabot[bot] 6ffbff7
chore(deps): bump actions/setup-python from 2 to 5
dependabot[bot] 24e4032
chore(deps): bump actions/cache from 2 to 3
dependabot[bot] ac146da
chore(deps-dev): bump pytest from 6.2.5 to 7.4.3
dependabot[bot] 0dc599c
Merge pull request #5 from orgua/dependabot/github_actions/actions/ca…
orgua d1ec014
Merge pull request #4 from orgua/dependabot/github_actions/actions/se…
orgua f3ab5cc
Merge pull request #6 from orgua/dependabot/pip/pytest-7.4.3
orgua 791fbd7
chore(deps): bump actions/checkout from 2 to 4
dependabot[bot] 53fe09f
Merge pull request #2 from orgua/dependabot/github_actions/actions/ch…
orgua f28b461
Merge pull request #1 from orgua/dependabot/github_actions/ruby/setup…
orgua 2ef0a38
Merge pull request #3 from orgua/dependabot/github_actions/codecov/co…
orgua 4aaeea6
do not pin package-versions if not needed
orgua 62cbc93
clean up usage of paths
orgua 873014f
remove legacy-code
orgua dbae823
avoid shadowing a Python builtins
orgua 1e39e4d
sort imports
orgua b2ab749
add typehinting
orgua b24f5b1
format with black-style, ruff
orgua 21947b0
add proper logging capability
orgua 1af69f2
refactor internal paths
orgua 64d4d6d
refactor cache
orgua 147aee1
lint
orgua f2b91d6
refactor cache
orgua dd5a0f0
add chromalog and update deps
orgua 54668e0
refactor logger
orgua c66ef43
various refactoring
orgua 873022e
allow benchmarking & fix bugs
orgua 5d8638a
small bugfixes
orgua 8722878
chore(deps): bump ruby/setup-ruby from 1.163.0 to 1.165.1
dependabot[bot] 6cbd9fe
chore(deps): bump crazy-max/ghaction-github-labeler from 3 to 5
dependabot[bot] f364082
replace memoiziation, improve code around it
orgua 87f5832
consider age of cache-entries
orgua 52f574e
optimize slowest funcs
orgua 8fea336
remove tests for compiled-file-deletion
orgua c8368e7
refactor for modularity
orgua 17fd756
last transformations to list comprehensions
orgua c24211b
Update poetry.lock
orgua 2e468c7
refactor unittests (wip)
orgua bd5a3d1
remove duplicates
orgua 458aacc
reformat
orgua 625349c
Update config_default.py
orgua 9f73969
refactor unittests
orgua ada3e7b
move tests for checks in separate folder
orgua 666be5a
allow disabling cache
orgua 3163e3c
small renaming & formatting
orgua 567a517
extending sys.path not needed
orgua b33bc8f
propagate module-path
orgua 69ffeab
refactor web-scripts
orgua 8930e92
refactor new scripts
orgua 644382a
refactor and reformat scripts
orgua 45f657b
add cache-tests
orgua dae83c8
add config-tests
orgua f2dd797
add note to benchmark
orgua 0c6ac6f
add printer for invoke()
orgua ce47da9
revert renaming txt-file for tests
orgua af65ec7
update configs in sync to available tests
orgua 4d35420
fix tests
orgua 2055bec
catch missing modules, make ppm-wrapper nicer
orgua 7dc2f58
add exithandler and return number of results as exit-code
orgua 4943d6d
Update test_cache_function.py
orgua ebef8e0
Update test_config_default.py
orgua 2e5c2f4
workflows make version to string
orgua 12e68ba
Merge pull request #12 from orgua/dependabot/github_actions/crazy-max…
orgua 5f86848
Merge pull request #11 from orgua/dependabot/github_actions/ruby/setu…
orgua fb72dd6
sort dev-deps, also include pre-commit and remove packages covered by…
orgua 1d69912
Update ci-lint-test.yml
orgua a67a7f4
Merge branch 'main' of https://github.com/orgua/proselint-modernized
orgua 59d1eec
add multiprocessing for checks
orgua fb09191
ditch chromalog-package
orgua 1bc6276
parallelize lint()
orgua e45b917
remove memoizer for checks
orgua a3b78a1
extend benchmark scripts
orgua 82f671c
extend cache to handle const-properties
orgua 44bfd7e
refactor sexism-check and extend unittests
orgua edb8b5f
minor fixes
orgua d2fa1b8
refactor more checks and tests
orgua 4a845b2
fix check_option join & require_padding
orgua 4bfb81a
even out load of checks for extreme cases
orgua 471b241
add pytest-cov dependency
orgua efeb957
fix check-tests
orgua 956f943
fix test for caching
orgua b87d194
remove const-cache after benchmarking
orgua 201d7ee
refactor all multiprocessed code into submodule
orgua 769123f
clean up from latest debug session
orgua 7ef28ce
change config
orgua 464f41b
fix unittests
orgua ccb6c8a
linting
orgua ccbcf7a
cache is now a singleton
orgua 4cb1813
Update tools.py
orgua dc4da55
Update test_hyperlinks_on_shell.py
orgua f4a9fc2
add padding to text - guard against edge-cases
orgua 8a78b9c
rename lint_cache
orgua f764def
force single-line imports
orgua 7a5e4c3
add global executor and optimize memoizer
orgua 560eabd
optimize check-message
orgua 1de71f7
lint code
orgua 0d87b24
add current ruff-config
orgua 92d72f4
overhaul output-format system
orgua 741639d
store filename in error-list
orgua 7bd74e0
fix bug in memoizer
orgua 87c23a6
improve memoizer
orgua 8a4aa20
fix padding in some checks
orgua 6ef3a1a
improve commercialese
orgua f3d3657
improve memoizer
orgua 52e445a
Update score.py
orgua ceb06ee
add weasel words
orgua e72d054
fix unittests
orgua 2632d2b
speed up scripts
orgua a3e9af2
move printing out of linter
orgua e49149e
Merge branch 'pr/1356'
orgua 413cf62
Update test_cliches.py
orgua 5a552be
fix code
orgua 4b09ec2
fix unittests and lint
orgua ac40919
bump version
orgua 7548c80
Merge branch 'main' into main
Nytelife26 3fbaaef
ci(lint-test): fix pytest
Nytelife26 d3213d6
fix file endings and remove not needed spaces
orgua 6eb6949
raise min py-version to 3.8 and remove future
orgua a04b80b
update deps
orgua b552b74
py: add commas
orgua 691a145
clean imports
orgua 4c155b1
lint code
orgua 1434a98
fix programming error
orgua 912e965
chore(deps): bump actions/cache from 2 to 3
dependabot[bot] f14ce3a
chore(deps): bump actions/setup-python from 4 to 5
dependabot[bot] 6d6d995
chore(deps-dev): bump pytest from 6.2.5 to 7.4.3
dependabot[bot] a0f8bc7
chore(deps): bump actions/checkout from 2 to 4
dependabot[bot] eefe9f1
chore(deps): bump ruby/setup-ruby from 1.95.0 to 1.163.0
dependabot[bot] 03b91ab
do not pin package-versions if not needed
orgua 75cd2b7
clean up usage of paths
orgua 41ac3bd
remove legacy-code
orgua a0e43e8
avoid shadowing a Python builtins
orgua 4b1e5c7
sort imports
orgua 3988867
add typehinting
orgua 18d22c0
format with black-style, ruff
orgua c4fdcfa
add proper logging capability
orgua 391bafb
refactor internal paths
orgua 938f157
refactor cache
orgua 31cc235
lint
orgua ce94896
refactor cache
orgua 2e74b61
add chromalog and update deps
orgua fa9f6cd
refactor logger
orgua a07fa34
various refactoring
orgua 12bd14a
allow benchmarking & fix bugs
orgua d97811a
small bugfixes
orgua 7e62d8b
replace memoiziation, improve code around it
orgua d41ca24
consider age of cache-entries
orgua 3b51220
optimize slowest funcs
orgua fcc7d29
remove tests for compiled-file-deletion
orgua f0dc9cf
refactor for modularity
orgua b58f140
last transformations to list comprehensions
orgua 6cffecf
refactor unittests (wip)
orgua 457c832
remove duplicates
orgua 3da41d8
reformat
orgua 74a726c
Update config_default.py
orgua 58b7a42
refactor unittests
orgua b32d853
move tests for checks in separate folder
orgua c1bfeea
allow disabling cache
orgua b8e7048
small renaming & formatting
orgua 870671e
extending sys.path not needed
orgua fc8a356
propagate module-path
orgua 7bb9d3e
refactor web-scripts
orgua f7fa09f
refactor new scripts
orgua 4e4a596
refactor and reformat scripts
orgua 9e0307e
add cache-tests
orgua 54631fb
add config-tests
orgua cb23bb9
add note to benchmark
orgua 05871d9
add printer for invoke()
orgua ffecc43
revert renaming txt-file for tests
orgua 53dc973
update configs in sync to available tests
orgua 5828288
fix tests
orgua 14beecb
catch missing modules, make ppm-wrapper nicer
orgua f53c55e
add exithandler and return number of results as exit-code
orgua a13cc04
Update test_cache_function.py
orgua c1db241
Update test_config_default.py
orgua ac334fa
workflows make version to string
orgua f81bf0b
sort dev-deps, also include pre-commit and remove packages covered by…
orgua dd86494
Update ci-lint-test.yml
orgua 0e7d620
chore(deps): bump crazy-max/ghaction-github-labeler from 3 to 5
dependabot[bot] 1829d4b
chore(deps): bump ruby/setup-ruby from 1.163.0 to 1.165.1
dependabot[bot] 66ab691
add multiprocessing for checks
orgua e7d70b2
ditch chromalog-package
orgua 7ef4d60
parallelize lint()
orgua fd96434
remove memoizer for checks
orgua 1ae3926
extend benchmark scripts
orgua 9d677fe
extend cache to handle const-properties
orgua cf6384f
refactor sexism-check and extend unittests
orgua 25e1a9d
minor fixes
orgua 98a7980
refactor more checks and tests
orgua cae7728
fix check_option join & require_padding
orgua 22bf2fc
even out load of checks for extreme cases
orgua 5eab18c
add pytest-cov dependency
orgua f323c5d
fix check-tests
orgua 1768bb5
fix test for caching
orgua 78a703f
remove const-cache after benchmarking
orgua c177a65
refactor all multiprocessed code into submodule
orgua d9cdfd3
clean up from latest debug session
orgua 521b076
change config
orgua a302e4c
fix unittests
orgua aaba845
linting
orgua e3b7b02
cache is now a singleton
orgua 998d0f5
Update tools.py
orgua 6744baf
Update test_hyperlinks_on_shell.py
orgua e4535c1
add padding to text - guard against edge-cases
orgua b03c870
rename lint_cache
orgua 23a54f4
force single-line imports
orgua e294602
add global executor and optimize memoizer
orgua c4ecb77
optimize check-message
orgua 4c1016e
lint code
orgua 5e2ea1b
add current ruff-config
orgua 3c44e3b
overhaul output-format system
orgua 0a32450
store filename in error-list
orgua 771788d
fix bug in memoizer
orgua f53a531
improve memoizer
orgua d7d78f6
fix padding in some checks
orgua 529efbe
improve commercialese
orgua 5ef1d75
improve memoizer
orgua 52da9f3
Update score.py
orgua 94956d5
add weasel words
orgua 7b1a232
fix unittests
orgua a2c2d48
speed up scripts
orgua d4bf985
move printing out of linter
orgua a8af783
Added clichés from Nigel Rees' book
mdgjohnny 185c344
Tests for Nigel's clichés
orgua c1d67df
added check for punctuation spacing. Issue #1342
arostkowycz15 a60cc86
fix unittests and lint
orgua 84a40ab
bump version
orgua b3ebed3
ci(lint-test): fix pytest
Nytelife26 90d610f
chore: fix merge differences
Nytelife26 2104094
chore: resolve rebase issues
Nytelife26 64bb526
chore(deps): add ruff
Nytelife26 fc5e10a
lint: fix ruff suggestions
Nytelife26 30f1972
ci(lint-test): lint with ruff
Nytelife26 cefb7a3
chore: fix lint issues
Nytelife26 c1cc4db
Merge branch 'main' of https://github.com/orgua/proselint-modernized
orgua ee7dbf4
Update tests/check.py
orgua fa9b0cd
implement comments
orgua eb414d1
Merge branch 'main' of https://github.com/orgua/proselint-modernized
orgua File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,19 +11,19 @@ jobs: | |
shell: bash | ||
strategy: | ||
matrix: | ||
python: [3.9] | ||
python: ["3.10"] | ||
steps: | ||
- name: "[INIT] Checkout repository" | ||
uses: actions/checkout@v2 | ||
uses: actions/checkout@v4 | ||
- name: "[INIT] Install Python ${{ matrix.python }}" | ||
uses: actions/setup-python@v2 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python }} | ||
- name: "[INIT] Install Poetry" | ||
uses: snok/[email protected] | ||
- name: "[INIT] Restore dependency cache" | ||
id: cache-restore | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cache/pip | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,9 +13,9 @@ jobs: | |
python: ["3.10"] | ||
steps: | ||
- name: "[INIT] Checkout repository" | ||
uses: actions/checkout@v3 | ||
uses: actions/checkout@v4 | ||
- name: "[INIT] Install Python ${{ matrix.python }}" | ||
uses: actions/setup-python@v4 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python }} | ||
- name: "[INIT] Install Poetry" | ||
|
@@ -30,9 +30,12 @@ jobs: | |
key: ${{ runner.os }}-py${{ matrix.python }}-${{ hashFiles('**/poetry.lock') }} | ||
- name: "[INIT] Install dependencies" | ||
if: ${{ !steps.cache-restore.outputs.cache-hit }} | ||
run: pip install poetry && poetry install | ||
- name: "[EXEC] Lint" | ||
run: ./utils ci lint | ||
run: poetry install | ||
# - name: "[EXEC] Lint" | ||
# run: ./utils ci lint | ||
# - name: Run Pre-Commit Tests 🧪 | ||
# uses: pre-commit/[email protected] | ||
|
||
test-cover: | ||
name: Test & Cover | ||
if: "!(contains(github.event.head_commit.message, '[skip_ci]'))" | ||
|
@@ -42,13 +45,14 @@ jobs: | |
shell: bash | ||
strategy: | ||
matrix: | ||
python: ["3.8", "3.9", "3.10", "pypy3.9", "pypy3.10"] | ||
# 5 versions / years of coverage | ||
python: ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3.9", "pypy3.10"] | ||
os: [ubuntu-latest, macos-latest, windows-latest] | ||
steps: | ||
- name: "[INIT] Checkout repository" | ||
uses: actions/checkout@v3 | ||
uses: actions/checkout@v4 | ||
- name: "[INIT] Install Python ${{ matrix.python }}" | ||
uses: actions/setup-python@v4 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python }} | ||
- name: "[INIT] Install Poetry" | ||
|
@@ -64,10 +68,14 @@ jobs: | |
- name: "[INIT] Install dependencies" | ||
if: ${{ !steps.cache-restore.outputs.cache-hit }} | ||
run: pip install poetry && poetry install | ||
- name: "[EXEC] Test" | ||
run: ./utils ci test --coverage | ||
- name: "[EXEC] Upload coverage to Codecov" | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
fail_ci_if_error: true | ||
flags: ${{ matrix.os }},py${{ matrix.python }} | ||
- name: "[EXEC] Test build package" | ||
run: poetry build | ||
- name: "[EXEC] Unit test" | ||
run: poetry run pytest | ||
# - name: "[EXEC] Test" | ||
# run: ./utils ci test --coverage | ||
# - name: "[EXEC] Upload coverage to Codecov" | ||
# uses: codecov/[email protected] # TODO: maybe not on every py-ver? | ||
# with: | ||
# fail_ci_if_error: true | ||
# flags: ${{ matrix.os }},py${{ matrix.python }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,75 @@ | ||||||
|
||||||
line-length = 80 | ||||||
target-version = "py38" | ||||||
|
||||||
[lint] | ||||||
select = [ | ||||||
"A", # flake8-builtins | ||||||
# "ANN", # flake8-annotations TODO activate | ||||||
# "ARG", # flake8-unused-arguments | ||||||
"B", # Bugbear | ||||||
"C", | ||||||
"COM", # flake8-commas | ||||||
# "CPY", # flake8-copyright | ||||||
"C4", # flake8-comprehensions | ||||||
"DTZ", # flake8-datetimez | ||||||
# "D", # pydocstyle, TODO: activate | ||||||
"E", # pycodestyle errors | ||||||
# "ERA", # eradicate commented out code | ||||||
"F", # pyflakes | ||||||
"FA", # flake8-future-annotations | ||||||
# "FBT", # boolean traps | ||||||
"FLY", # flynt | ||||||
"FURB", # refurb | ||||||
"G", # flake8-logging-format | ||||||
"I", # incomplete isort | ||||||
"INP", # flake8-no-pep420 | ||||||
"LOG", # flake8-logging | ||||||
# "N", # naming | ||||||
"NPY", # NumPy-specific rules | ||||||
"PD", # pandas-vet | ||||||
"PERF", # Perflint | ||||||
"PL", # Pylint | ||||||
"PTH", # flake8-use-pathlib | ||||||
"PYI", # flake8-pyi | ||||||
"RET", # flake8-return | ||||||
"RUF", # Ruff-specific rules | ||||||
"S", # bandit, security | ||||||
"SLF", # flake8-self | ||||||
"SIM", # flake8-simplify | ||||||
"TID", # flake8-tidy-imports | ||||||
"TCH", # flake8-type-checking | ||||||
"T10", # flake8-print | ||||||
"UP", # pyupgrade | ||||||
"W", # pycodestyle warnings | ||||||
"YTT", # flake8-2020 | ||||||
] | ||||||
ignore = [ | ||||||
"PLR2004", # magic values | ||||||
"COM812", # trailing comma -> done by formatter | ||||||
# TODO: below is temporary | ||||||
|
||||||
] | ||||||
preview = true | ||||||
|
||||||
[lint.per-file-ignores] | ||||||
"tests/**" = ["S", "N8", "SLF001", "PLR2004"] | ||||||
"proselint/checks/**" = ["RUF001", "RUF002", "RUF003", "TID252"] | ||||||
"scripts/**" = ["E501"] | ||||||
|
||||||
"plugins/**" = ["INP001", "RUF012"] | ||||||
"scripts_web/**" = ["S1", "SIM", "RET", "TCH"] | ||||||
|
||||||
[lint.mccabe] | ||||||
# Unlike Flake8, default to a complexity level of 10. | ||||||
max-complexity = 11 | ||||||
|
||||||
[lint.isort] | ||||||
force-single-line = true | ||||||
Comment on lines
+67
to
+68
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
I think this should be removed. It makes imports unwieldy. |
||||||
|
||||||
[lint.pyupgrade] | ||||||
keep-runtime-typing = true | ||||||
|
||||||
[format] | ||||||
# per default like Black | ||||||
#preview = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,131 @@ | ||
# Change Log | ||
|
||
## [[email protected]](https://github.com/amperser/proselint/compare/0.13.0...0.15.0) | ||
|
||
### Biggest Changes | ||
|
||
- featureset of py38 | ||
- cleaner and faster code | ||
- fixed bugs, undefined behavior, broken legacy code | ||
- some checks did not work as intended | ||
- multiprocessed parallelization and other optimizations | ||
|
||
### Benchmark-Comparison | ||
|
||
- custom set of files, same hardware | ||
|
||
#### Windows | ||
|
||
Proselint-main (uncached & cached) | ||
|
||
- Found 104 lint-warnings in 47.579 s | ||
- Found 104 lint-warnings in 0.878 s | ||
|
||
Proselint-modernized | ||
|
||
- Found 108 lint-warnings in 39.930 s (12 files, 617.45 kiByte) -> serialized | ||
- Found 108 lint-warnings in 13.164 s (12 files, 617.45 kiByte) -> serial files, parallel checks | ||
- Found 108 lint-warnings in 9.931 s (12 files, 617.45 kiByte) -> global check-executor | ||
- Found 108 lint-warnings in 0.011 s (12 files, 617.45 kiByte) -> cached | ||
|
||
#### Linux / WSL | ||
|
||
Proselint-main (uncached & cached) | ||
|
||
- Found 104 lint-warnings in 37.041 s | ||
- Found 104 lint-warnings in 0.771 s | ||
|
||
Proselint-modernized | ||
|
||
- Found 108 lint-warnings in 34.521 s (12 files, 617.45 kiByte) | ||
- Found 108 lint-warnings in 8.248 s (12 files, 617.45 kiByte) | ||
- Found 108 lint-warnings in 6.098 s (12 files, 617.45 kiByte) | ||
- Found 108 lint-warnings in 0.044 s (12 files, 617.45 kiByte) | ||
|
||
### Breaking changes | ||
|
||
- cli arg `--time` -> `--benchmark`, `-b` | ||
- cli arg `--debug` -> `--verbose`, `-v` | ||
- exit code now returns number of errors | ||
- cli arg `--output-format` controls old flags json, compact | ||
- py >= 3.8 | ||
- api-changes -> web_scripts & plugins untested | ||
- config adjustments (1 test removed, 1 added) | ||
- "misc.metaconcepts": False, # TODO: remove, was duplicate of scare_quotes | ||
|
||
### Whats broken / untested | ||
|
||
- web_scripts | ||
- plugins | ||
- Github action | ||
|
||
|
||
### Detailed Changelog | ||
|
||
- featureset of py38 | ||
- use pathlib instead of string based paths | ||
- add type-hinting | ||
- replaced memoizer, short-comings: | ||
- shelves have a good interface but are slow | ||
- cache-init and -closing was a mess | ||
- clearing cache resulted in broken states | ||
- memoize-wrapper was wasting resources (hash of text recalc for every check, ..) | ||
- age of cache-entries was not considered | ||
- every cached fn had its own file-cache | ||
- cache migration was done on every memoize-decoration | ||
- cache | ||
- hash test beforehand only once | ||
- consider age of items | ||
- memoize lint() instead of checks | ||
- fix bugs related to: | ||
- overshadowing builtin names (list, ...) | ||
- string based path-traversal | ||
- mix of relative and absolute paths (also relics that deleted file somewhere) | ||
- varius small bugs (ie. missing comma in element lists) | ||
- cache was not cleaned up by fn (as it should) | ||
- lots of modernization from old codebase | ||
- latest python versions had trouble with proselint | ||
- update deps | ||
- reformat using black-style, done by ruff | ||
- linted codebase with ruff | ||
- add logger and refactor print-output | ||
- linter informs about duration | ||
- results include link to file | ||
- inform about duration, files scanned and text-size | ||
- refactor unittest | ||
- remove classes / boilerplate | ||
- move tests for checks into separate dir | ||
- more helpful error-messages | ||
- remove duplicates | ||
- repair broken tests | ||
- lower complexity of tests (each test should only test for one thing) | ||
- add unittests | ||
- detect missing check-flags in default-config | ||
- find unavaible checks for default-config-flags | ||
- don't fail on wrong config-flags | ||
- check working cache, speed-test | ||
- check working cache, same results | ||
- minimal changes to outer api | ||
- config | ||
- correctness of default-config is tested | ||
- don't fail on faulty config-flags | ||
- checks | ||
- remove duplicates | ||
- fix padding for checks using regex | ||
- existence_check() - join and padding -> cleared up | ||
- join is always done | ||
- padding can be selected py Enum, defaults to separate in text | ||
- fix checks accordingly | ||
- put root-scripts into sep dir | ||
- exithandler for more graceful ctrl+c | ||
- ppm-wrapper is now more forgiving with small sample-sizes | ||
- add parallelization | ||
- checks() are run multiprocessed | ||
- one global executioner collects tasks for all files to analyze | ||
- break up the slowest checks to balance the load | ||
- optimizations were done with profiling and benchmarking | ||
- overhaul controling output-format by cli | ||
|
||
## [[email protected]](https://github.com/amperser/proselint/compare/0.12.0...0.13.0) | ||
|
||
### Bug Fixes | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
include README.md LICENSE.md CHANGELOG.md tests/illegal-chars.txt tests/*.py tests/test_gmeu/*.py | ||
include README.md LICENSE.md CHANGELOG.md tests/illegal-chars.txt tests/*.py tests/test_gmeu/*.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
web: gunicorn app:app --log-file=- | ||
worker: python worker.py | ||
clock: python clock.py | ||
worker: python scripts/worker.py | ||
clock: python scripts/clock.py |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we at least compromise on 88 chars, as it is widely used by black? 80 chars are a relic from the 80's a bit of from the current sweetspot.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
88 is a non-standard line length. Sure, 80 characters is an old requirement, but I find you can pretty much always achieve what you need to and it forces you to keep things clean.
It's personal preference, I suppose, but since I refactored proselint the first time it has used 80 character line lengths.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
black is the current standard (as it is widely used) in python world - even ruff adopted it and formats the same :)
but ok
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Black's completely arbitrary, sarcastically-justified 88-character line length is one of its more controversial "opinions", though.
Particularly as it violates PEP8 — an actual standard, not (at best) a "de facto standard" like Black. (Though PEP8 admittedly did itself no favors by specifying 79 characters instead of 80, something that was met with almost immediate, near-universal rejection.)
IIRC line length was also the very first configuration option Black gained, once its original vision of being completely non-configurable collided headfirst with reality.