René's URL Explorer Experiment


Title: Split `usethis._tool.impl` into `spec/` and `base/` submodules by Copilot · Pull Request #1357 · usethis-python/usethis-python · GitHub

Open Graph Title: Split `usethis._tool.impl` into `spec/` and `base/` submodules by Copilot · Pull Request #1357 · usethis-python/usethis-python

X Title: Split `usethis._tool.impl` into `spec/` and `base/` submodules by Copilot · Pull Request #1357 · usethis-python/usethis-python

Description: Each module in usethis._tool.impl contained both a *ToolSpec class (static metadata, deps, pre-commit config) and a *Tool class (runtime behavior). This PR splits them into parallel submodules and removes the original flat modules. Changes New impl/spec/ — one file per tool, containing only *ToolSpec subclasses and their supporting constants/helpers (e.g. _RUFF_VERSION, _importlinter_warn_no_packages_found) New impl/base/ — one file per tool, containing only *Tool subclasses; each imports its *ToolSpec from spec/ Original impl/*.py flat modules removed — all imports across the codebase updated to use the new spec/ or base/ paths directly .importlinter updated — new contracts for usethis._tool.impl, usethis._tool.impl.spec, and usethis._tool.impl.base reflecting the clean layered architecture (base strictly above spec) New import paths # Tool classes (runtime behavior) from usethis._tool.impl.base.ruff import RuffTool # ToolSpec classes (static metadata/config) from usethis._tool.impl.spec.ruff import RuffToolSpec Original prompt This section details on the original issue you should resolve Split the usethis._tool.impl layer into usethis._tool.impl.spec and usethis._tool.impl.base layers Current dir structure looks like this: src\usethis_tool\impl src\usethis_tool\impl_init_.py src\usethis_tool\impl\codespell.py src\usethis_tool\impl\coverage_py.py src\usethis_tool\impl\deptry.py src\usethis_tool\impl\import_linter.py src\usethis_tool\impl\mkdocs.py src\usethis_tool\impl\pre_commit.py src\usethis_tool\impl\pyproject_fmt.py src\usethis_tool\impl\pyproject_toml.py src\usethis_tool\impl\pytest.py src\usethis_tool\impl\requirements_txt.py src\usethis_tool\impl\ruff.py Each module contains the implementation for a ToolSpec and a Tool subclass. We should create a submodule in the impl module for spec and base separately with parallel submodule structures. This helps us work toward #1311 Comments on the Issue (you are @copilot in this section) Fixes #1356 💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Open Graph Description: Each module in usethis._tool.impl contained both a *ToolSpec class (static metadata, deps, pre-commit config) and a *Tool class (runtime behavior). This PR splits them into parallel submodules and ...

X Description: Each module in usethis._tool.impl contained both a *ToolSpec class (static metadata, deps, pre-commit config) and a *Tool class (runtime behavior). This PR splits them into parallel submodules and ...

Opengraph URL: https://github.com/usethis-python/usethis-python/pull/1357

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:80d3c98e-00a2-ce9a-6d0f-1650298aac84
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idADD2:3E6EAA:2EEC0DF:40FB14E:6A4F15CE
html-safe-nonce4b12d70e31bfd20f57791e44b6902f92f9f97602988be299b595a384dad77028
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBREQyOjNFNkVBQToyRUVDMERGOjQwRkIxNEU6NkE0RjE1Q0UiLCJ2aXNpdG9yX2lkIjoiMzM5MzYxMjU0OTI0NTU1NzI3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmaca1e425f5bea51cbc5f6f925b7dec4c995ed8fa0a537f65b98448cbb89fe9c8aa
hovercard-subject-tagpull_request:3381341174
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/usethis-python/usethis-python/pull/1357/files
twitter:imagehttps://avatars.githubusercontent.com/in/1143301?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/in/1143301?s=400&v=4
og:image:altEach module in usethis._tool.impl contained both a *ToolSpec class (static metadata, deps, pre-commit config) and a *Tool class (runtime behavior). This PR splits them into parallel submodules and ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/usethis-python/usethis-python git https://github.com/usethis-python/usethis-python.git
octolytics-dimension-user_id216362695
octolytics-dimension-user_loginusethis-python
octolytics-dimension-repository_id842189705
octolytics-dimension-repository_nwousethis-python/usethis-python
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id842189705
octolytics-dimension-repository_network_root_nwousethis-python/usethis-python
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release2b8f23afb982271f1b22258a94aede67a6b77760
ui-targetcanary-1
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/usethis-python/usethis-python/pull/1357/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fusethis-python%2Fusethis-python%2Fpull%2F1357%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fusethis-python%2Fusethis-python%2Fpull%2F1357%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=usethis-python%2Fusethis-python
Reloadhttps://github.com/usethis-python/usethis-python/pull/1357/files
Reloadhttps://github.com/usethis-python/usethis-python/pull/1357/files
Reloadhttps://github.com/usethis-python/usethis-python/pull/1357/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1357/files
usethis-python https://github.com/usethis-python
usethis-pythonhttps://github.com/usethis-python/usethis-python
Notifications https://github.com/login?return_to=%2Fusethis-python%2Fusethis-python
Fork 5 https://github.com/login?return_to=%2Fusethis-python%2Fusethis-python
Star 19 https://github.com/login?return_to=%2Fusethis-python%2Fusethis-python
Code https://github.com/usethis-python/usethis-python
Issues 163 https://github.com/usethis-python/usethis-python/issues
Pull requests 4 https://github.com/usethis-python/usethis-python/pulls
Actions https://github.com/usethis-python/usethis-python/actions
Security and quality 0 https://github.com/usethis-python/usethis-python/security
Insights https://github.com/usethis-python/usethis-python/pulse
Code https://github.com/usethis-python/usethis-python
Issues https://github.com/usethis-python/usethis-python/issues
Pull requests https://github.com/usethis-python/usethis-python/pulls
Actions https://github.com/usethis-python/usethis-python/actions
Security and quality https://github.com/usethis-python/usethis-python/security
Insights https://github.com/usethis-python/usethis-python/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fusethis-python%2Fusethis-python%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fusethis-python%2Fusethis-python%2Fissues%2Fnew%2Fchoose
Copilothttps://github.com/apps/copilot-swe-agent
mainhttps://github.com/usethis-python/usethis-python/tree/main
copilot/split-tool-impl-layershttps://github.com/usethis-python/usethis-python/tree/copilot/split-tool-impl-layers
Conversation 3 https://github.com/usethis-python/usethis-python/pull/1357
Commits 6 https://github.com/usethis-python/usethis-python/pull/1357/commits
Checks 18 https://github.com/usethis-python/usethis-python/pull/1357/checks
Files changed https://github.com/usethis-python/usethis-python/pull/1357/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1357/files
Split usethis._tool.impl into spec/ and base/ submodules https://github.com/usethis-python/usethis-python/pull/1357/files#top
Show all changes 6 commits https://github.com/usethis-python/usethis-python/pull/1357/files
c035e28 Initial plan Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1357/commits/c035e2837d6a4c26152db9866b84251778a34f0e
767edb2 Refactor: split _tool/impl/ into spec/ and base/ submodules Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1357/commits/767edb224e6e94f0bbd32491488d18db67cdf0e6
c9edb46 Address code review: fix SetupCFGManager import and comment style Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1357/commits/c9edb4669ae12bec428d363104298aae390ec772
6cd27c2 Standardize comment style in circular import annotations Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1357/commits/6cd27c26caf3cece32a55682071aae1674058cc3
d10ccca Merge branch 'main' into copilot/split-tool-impl-layers nathanjmcdougall Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1357/commits/d10cccafd89d1c575235136d2ee83cace826f038
a6332af Split `usethis._tool.impl` into `spec/` and `base/` submodules Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1357/commits/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f
Clear filters https://github.com/usethis-python/usethis-python/pull/1357/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1357/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1357/files
.importlinter https://github.com/usethis-python/usethis-python/pull/1357/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
ci.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
docstyle.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
list.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
rule.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-4e0b1cd192f6877fd97a52e38f0217d3c1d6e973c52ffdafa8563b4ac1924b92
tool.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
all_.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
__init__.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-67bdad0119b0a64bb4fc44f6fe03de6ae730b4d169d076b7ed3301d9c66497d2
codespell.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-2c508995bfb9de0ede70c5e43e113b8b0d4683ee30b8a36e9235ca6028bd6f3b
coverage_py.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
deptry.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
import_linter.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-6ca11bc8f278f4995bf365615eb576f64691764451781845c2d4b427be888a3c
mkdocs.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-0e02d4ab7cc8a05a6bf3c8ca0729756c3f489d619a9b5c3996d91d5d63d6a9e8
pre_commit.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-20b3c611e71da1840b5abf201d52fdf2a829cdf72b51659b644d995f15904c15
pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-d72e733ecca831b754150d974e21a436ae3c86b63b86ae3ea9cc94209f8b2a13
pyproject_toml.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-a5a4c0d92fde324e9063db93969cfe686b26a120d94c1cd5c89418204bf1346e
pytest.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-09b48febb397590425581a9d904aaf9cac2fba2a1144b5038989209b47a4c45a
requirements_txt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-fffa3e7b03e160877d878c051d85eadf0726cce607b1f4e02a72f3f344803690
ruff.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-1207f8995d85f8d91f298b914c3395c8b8b8e35075e3937f007c3dda4c5180b5
pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-9d1669a8085dbc449b13766d39205b2a8c08549be9454c2e633ca67f25cba154
__init__.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-41cdb1a478e868497fd562821f2ca7cb713a089bb401bb73d69d176d77de8087
codespell.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-ed73f0c95021a8313c3623115d8b8fa6bc8577c010ed2b6d9e87a2ed8cf2ac9e
coverage_py.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-7995205d5609b5236348f760417b536539fe8d849c13cf8e70f0c7dfbb954ef6
deptry.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-a45bc47a5a667207144f963aa8ca348d76e45d2bcb40cf3d6840793e0774e6d0
import_linter.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-6ae3109858d54e24b0823c4ea22e36b476a7c96fe808145d4b0e0c753c577032
mkdocs.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-b712ea311fa1e8c17ca0e553b9926e1365428ef95f57f61872fe844fb0c5e02f
pre_commit.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-d22e7f3a244576a7322132c7efc824b48207352b43371c75028ef4b00f334d3c
pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-460517a7eb293c349b78e7fb8a08c56cb398b264ab33d60203636422ca7fbd35
pyproject_toml.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-9d2923fed0e9789eb9c576ac42a40743a85b29f7b8911b074cd4687802c3ca3a
pytest.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-3b22f93fd1fdd8d1d78ccf452544a92c25dacb8eda68f0e38b6b94e1d9e43eb6
requirements_txt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-111b379f288d32f80e38203243e7538e8873e1f7133dfdc15b019f1eb9fa4119
ruff.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-43f848038b3175f428e92bde90aa7646d31c63c81a352d457278007ca2bca5ba
format_.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-586ce9db35e5fd27bf2dd1be114268ca4dc36ee3a2050014d36630669edae6f8
readme.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-74b82df7d5370ea862dd117bef49f3099d87bca2a698bb00e7b66145bd216c90
conftest.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-e52e4ddd58b7ef887ab03c04116e676f6280b824ab7469d5d3080e5cba4f2128
test_core_tool.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-ebc73c512a65745bdcc2bd242acbe30cee0360d3fd14694b4cd01f64e3520ff7
test_rule.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-a5a4c230b80f1b00420d8dee2e8d06a5db362ac996040991b47041eb543b2de5
test_codespell.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-e48bcb97bb38374dd946bc3cfaf7876d75d9422e353e49cb0a0f8f683155b735
test_coverage_py.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-a41d774efae0ae78d4e1b67d3ea984f76dbb526845549cd9839c1e90672b688a
test_deptry.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-5e1c7594c1c6cf7c77b7848e91a679a6266ec47b651cc6b72fae5b2b4cd86334
test_import_linter.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-830cc0a31bedc0c0ff5d0a933a559d194cdc806b19200882287dfad6fa6f4940
test_mkdocs.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-95020ba3c28d9881a43ae2463960d0ac8233fed635e8c6bbda2b2070c3649b77
test_pre_commit.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-a8a66ac4bc542b19854244e134034e7c7066a257f58876a43a7af2b0030fc823
test_pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-7088c7843b60a0b0d2f22a5badfd88a4c10a384f3ac1d4a1d4f83d1802e2372a
test_pyproject_toml.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-d1b3910915d8610435d84fbe93b46c9a07b721f0650acfe82f298ad78cef4a2e
test_pytest.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-8d10513eecca04fb6838fe0877688207406880583f2c2496159c5863db5dab8e
test_requirements_txt.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-43a74aafc5befa26cad34d0c0113d96272d667be2f91b2e5184c75c765b95048
test_ruff.py https://github.com/usethis-python/usethis-python/pull/1357/files#diff-81cd43314ec01b082164964df1e010cfde9e2d023172cb0a1c1d080988827317
.importlinterhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/.importlinter
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
src/usethis/_core/ci.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_core/ci.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
src/usethis/_core/docstyle.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_core/docstyle.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
src/usethis/_core/list.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_core/list.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
src/usethis/_core/rule.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-4e0b1cd192f6877fd97a52e38f0217d3c1d6e973c52ffdafa8563b4ac1924b92
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_core/rule.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-4e0b1cd192f6877fd97a52e38f0217d3c1d6e973c52ffdafa8563b4ac1924b92
src/usethis/_core/tool.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_core/tool.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
src/usethis/_tool/all_.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_tool/all_.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
src/usethis/_tool/impl/base/__init__.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-67bdad0119b0a64bb4fc44f6fe03de6ae730b4d169d076b7ed3301d9c66497d2
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_tool/impl/base/__init__.py
Open in desktop https://desktop.github.com
src/usethis/_tool/impl/codespell.py → src/usethis/_tool/impl/base/codespell.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-2c508995bfb9de0ede70c5e43e113b8b0d4683ee30b8a36e9235ca6028bd6f3b
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_tool/impl/base/codespell.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-2c508995bfb9de0ede70c5e43e113b8b0d4683ee30b8a36e9235ca6028bd6f3b
src/usethis/_tool/impl/coverage_py.py → src/usethis/_tool/impl/base/coverage_py.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_tool/impl/base/coverage_py.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
src/usethis/_tool/impl/deptry.py → src/usethis/_tool/impl/base/deptry.pyhttps://github.com/usethis-python/usethis-python/pull/1357/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
View file https://github.com/usethis-python/usethis-python/blob/a6332af5ae63aaf9f0bcb54339ee6516ca17e09f/src/usethis/_tool/impl/base/deptry.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1357/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
https://github.com/usethis-python/usethis-python/pull/1357/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1357/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1357/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.