Skip to content

Conversation

@tony
Copy link
Member

@tony tony commented Jan 4, 2025

Changes

chore: Support PEP 563 from __future__ import annotations

Using PEP 563's deferred resolution of annotations avoids the computation cost of symbols we imported solely used for type-checking.

Ruff:

PEP 563: https://peps.python.org/pep-0563/

@codecov
Copy link

codecov bot commented Jan 4, 2025

Codecov Report

Attention: Patch coverage is 94.35897% with 11 lines in your changes missing coverage. Please review.

Project coverage is 63.24%. Comparing base (d286f51) to head (969dc1c).
Report is 7 commits behind head on master.

Files with missing lines Patch % Lines
tests/url/test_hg.py 0.00% 2 Missing and 1 partial ⚠️
src/libvcs/_internal/run.py 77.77% 2 Missing ⚠️
tests/url/test_git.py 33.33% 1 Missing and 1 partial ⚠️
tests/url/test_svn.py 0.00% 1 Missing and 1 partial ⚠️
src/libvcs/_internal/subprocess.py 97.22% 1 Missing ⚠️
src/libvcs/cmd/git.py 92.30% 1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@ ## master #483 +/- ## ========================================== - Coverage 63.78% 63.24% -0.54%  ========================================== Files 40 40 Lines 3628 3635 +7 Branches 775 793 +18 ========================================== - Hits 2314 2299 -15  - Misses 780 784 +4  - Partials 534 552 +18 

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

@tony tony force-pushed the future-annotations branch from b749682 to 8bdfe7e Compare January 4, 2025 13:53
tony added 3 commits January 4, 2025 07:53
Fixed 1002 errors: - conftest.py: 1 × TC003 (typing-only-standard-library-import) 1 × I002 (missing-required-import) - docs/conf.py: 2 × UP007 (non-pep604-annotation) 2 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - src/libvcs/__about__.py: 1 × I002 (missing-required-import) - src/libvcs/__init__.py: 1 × I002 (missing-required-import) - src/libvcs/_internal/dataclasses.py: 1 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - src/libvcs/_internal/module_loading.py: 1 × I001 (unsorted-imports) 1 × I002 (missing-required-import) - src/libvcs/_internal/query_list.py: 37 × UP007 (non-pep604-annotation) 2 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - src/libvcs/_internal/run.py: 18 × UP007 (non-pep604-annotation) 3 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - src/libvcs/_internal/shortcuts.py: 6 × UP007 (non-pep604-annotation) 3 × TC001 (typing-only-first-party-import) 1 × F401 (unused-import) 1 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) 1 × I001 (unsorted-imports) - src/libvcs/_internal/subprocess.py: 79 × UP007 (non-pep604-annotation) 5 × UP037 (quoted-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - src/libvcs/_internal/types.py: 2 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - src/libvcs/cmd/git.py: 518 × UP007 (non-pep604-annotation) 3 × UP037 (quoted-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - src/libvcs/cmd/hg.py: 38 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - src/libvcs/cmd/svn.py: 83 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - src/libvcs/exc.py: 3 × UP007 (non-pep604-annotation) 2 × F401 (unused-import) 1 × I002 (missing-required-import) 1 × I001 (unsorted-imports) - src/libvcs/pytest_plugin.py: 13 × UP007 (non-pep604-annotation) 9 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - src/libvcs/sync/base.py: 3 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) 1 × I001 (unsorted-imports) - src/libvcs/sync/constants.py: 1 × I002 (missing-required-import) - src/libvcs/sync/git.py: 7 × UP007 (non-pep604-annotation) 2 × UP037 (quoted-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) 1 × I001 (unsorted-imports) - src/libvcs/sync/hg.py: 1 × I001 (unsorted-imports) 1 × TC001 (typing-only-first-party-import) 1 × I002 (missing-required-import) - src/libvcs/sync/svn.py: 4 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × TC001 (typing-only-first-party-import) 1 × I002 (missing-required-import) 1 × I001 (unsorted-imports) - src/libvcs/url/base.py: 2 × TC003 (typing-only-standard-library-import) 1 × F401 (unused-import) 1 × UP037 (quoted-annotation) 1 × UP007 (non-pep604-annotation) 1 × I002 (missing-required-import) 1 × I001 (unsorted-imports) - src/libvcs/url/constants.py: 1 × I002 (missing-required-import) - src/libvcs/url/git.py: 14 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - src/libvcs/url/hg.py: 10 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - src/libvcs/url/registry.py: 4 × UP037 (quoted-annotation) 2 × I001 (unsorted-imports) 1 × UP007 (non-pep604-annotation) 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) - src/libvcs/url/svn.py: 9 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - tests/_internal/subprocess/test_SubprocessCommand.py: 1 × I001 (unsorted-imports) 1 × TC003 (typing-only-standard-library-import) 1 × I002 (missing-required-import) - tests/_internal/test_query_list.py: 3 × UP007 (non-pep604-annotation) 1 × I002 (missing-required-import) 1 × I001 (unsorted-imports) 1 × TC003 (typing-only-standard-library-import) - tests/cmd/test_git.py: 1 × UP007 (non-pep604-annotation) 1 × F401 (unused-import) 1 × I002 (missing-required-import) - tests/sync/test_base.py: 3 × I001 (unsorted-imports) 1 × I002 (missing-required-import) 1 × TC003 (typing-only-standard-library-import) 1 × TC002 (typing-only-third-party-import) - tests/sync/test_git.py: 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) 1 × TC002 (typing-only-third-party-import) 1 × I001 (unsorted-imports) - tests/sync/test_hg.py: 1 × I002 (missing-required-import) - tests/sync/test_svn.py: 2 × I001 (unsorted-imports) 1 × TC003 (typing-only-standard-library-import) 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) - tests/test_exc.py: 1 × I002 (missing-required-import) - tests/test_pytest_plugin.py: 2 × I001 (unsorted-imports) 1 × TC003 (typing-only-standard-library-import) 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) - tests/test_shortcuts.py: 4 × UP007 (non-pep604-annotation) 2 × F401 (unused-import) 2 × I001 (unsorted-imports) 2 × TC001 (typing-only-first-party-import) 1 × TC003 (typing-only-standard-library-import) 1 × I002 (missing-required-import) - tests/url/test_git.py: 1 × UP007 (non-pep604-annotation) 1 × I002 (missing-required-import) 1 × TC001 (typing-only-first-party-import) - tests/url/test_hg.py: 1 × I002 (missing-required-import) 1 × TC003 (typing-only-standard-library-import) 1 × TC001 (typing-only-first-party-import) 1 × I001 (unsorted-imports) - tests/url/test_registry.py: 2 × UP037 (quoted-annotation) 1 × I002 (missing-required-import) - tests/url/test_svn.py: 1 × TC001 (typing-only-first-party-import) 1 × I002 (missing-required-import) Found 2057 errors (1002 fixed, 1055 remaining). 39 files reformatted, 12 files left unchanged uv run ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; uv run ruff format .
@tony tony force-pushed the future-annotations branch from 8bdfe7e to 9e08301 Compare January 4, 2025 13:53
tony added 2 commits January 4, 2025 08:40
Fixed 3 errors: - src/libvcs/_internal/run.py: 1 × COM812 (missing-trailing-comma) - src/libvcs/sync/git.py: 1 × COM812 (missing-trailing-comma) - tests/_internal/subprocess/test_SubprocessCommand.py: 1 × COM812 (missing-trailing-comma) Found 1052 errors (3 fixed, 1049 remaining). 3 files reformatted, 48 files left unchanged uv run ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; uv run ruff format .
@tony tony force-pushed the future-annotations branch from bbb90fd to 9e58565 Compare January 4, 2025 14:40
@tony tony force-pushed the future-annotations branch from 9e58565 to 969dc1c Compare January 4, 2025 15:25
@tony tony merged commit e147713 into master Jan 4, 2025
7 checks passed
@tony tony deleted the future-annotations branch January 4, 2025 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants