René's URL Explorer Experiment


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

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

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

Description: The flat usethis._tool.impl module mixed ToolSpec subclasses (declarative metadata) and Tool subclasses (runtime behaviour) in the same files. This splits them into parallel submodule structures to separate concerns. Structure Each tool now has two dedicated modules: usethis._tool.impl.spec.* — ToolSpec subclasses: meta, dev_deps, pre_commit_config, preferred_file_manager, etc. usethis._tool.impl.base.* — Tool subclasses: config_spec, print_how_to_use, get_bitbucket_steps, selected_rules, etc. src/usethis/_tool/impl/ ├── spec/ │ ├── codespell.py # CodespellToolSpec │ ├── ruff.py # RuffToolSpec │ └── ... └── base/ ├── codespell.py # CodespellTool ├── ruff.py # RuffTool └── ... The test directory mirrors the src structure: tests/usethis/_tool/impl/ └── base/ ├── test_codespell.py ├── test_ruff.py └── ... Notable decisions test_deps() moved to base/ for pytest and coverage_py: these methods call .is_used() on sibling Tool instances, making them runtime behaviour rather than declarative spec. Moving them to base/ eliminates the spec → base import cycle and enforces the clean base → spec dependency direction. Import-linter contracts updated: the old tool_impl contract is replaced with three — tool_impl (base above spec), tool_impl_base, and tool_impl_spec — each with the same internal layer ordering as before. All external consumers (_core/, _tool/all_.py, _toolset/, _ui/, tests) updated to the new paths. Test suite restructured: all tests/usethis/_tool/impl/test_*.py files moved to tests/usethis/_tool/impl/base/ to match the src layout. 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 ✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Open Graph Description: The flat usethis._tool.impl module mixed ToolSpec subclasses (declarative metadata) and Tool subclasses (runtime behaviour) in the same files. This splits them into parallel submodule structures to...

X Description: The flat usethis._tool.impl module mixed ToolSpec subclasses (declarative metadata) and Tool subclasses (runtime behaviour) in the same files. This splits them into parallel submodule structures to...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:690f5a5d-9887-9b26-9603-74d4f3f00736
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idDB58:F61E5:F34FEF:15037D1:6A4DD17D
html-safe-nonce46db63a089a4c200b8de3715a9adabe0ba14b6591972da19136bf2a23d8eb381
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQjU4OkY2MUU1OkYzNEZFRjoxNTAzN0QxOjZBNEREMTdEIiwidmlzaXRvcl9pZCI6Ijc3NzY5MzMxNjkxMDI0NDI4NzciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac320e6debfe3b57f8b9a0146206fbd5d3363fc08c58d1c03bf6225cb41954dbab
hovercard-subject-tagpull_request:3381773059
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/1373/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:altThe flat usethis._tool.impl module mixed ToolSpec subclasses (declarative metadata) and Tool subclasses (runtime behaviour) in the same files. This splits them into parallel submodule structures to...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33
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
release1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/usethis-python/usethis-python/pull/1373/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%2F1373%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/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/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/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%2F1373%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/1373/files
Reloadhttps://github.com/usethis-python/usethis-python/pull/1373/files
Reloadhttps://github.com/usethis-python/usethis-python/pull/1373/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1373/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
nathanjmcdougallhttps://github.com/nathanjmcdougall
mainhttps://github.com/usethis-python/usethis-python/tree/main
copilot/split-usethis-tool-implhttps://github.com/usethis-python/usethis-python/tree/copilot/split-usethis-tool-impl
Conversation 5 https://github.com/usethis-python/usethis-python/pull/1373
Commits 5 https://github.com/usethis-python/usethis-python/pull/1373/commits
Checks 20 https://github.com/usethis-python/usethis-python/pull/1373/checks
Files changed https://github.com/usethis-python/usethis-python/pull/1373/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1373/files
Split usethis._tool.impl into impl/spec and impl/base submodules https://github.com/usethis-python/usethis-python/pull/1373/files#top
Show all changes 5 commits https://github.com/usethis-python/usethis-python/pull/1373/files
d910f7f Initial plan Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1373/commits/d910f7f38b4b95de02c7ec3f8ca23d5c0d5d729a
bdbc308 Split usethis._tool.impl into impl/spec and impl/base submodules Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1373/commits/bdbc3084bee2e9f9d88a7ba4977e561c9b1fe66c
384974e Fix: move test_deps to base classes, fix test_pytest.py module refere… Copilot Mar 11, 2026 https://github.com/usethis-python/usethis-python/pull/1373/commits/384974e6dc0f78e90fc428811366867d07d53da1
4248b03 Merge branch 'main' into copilot/split-usethis-tool-impl nathanjmcdougall Mar 12, 2026 https://github.com/usethis-python/usethis-python/pull/1373/commits/4248b03f9bfdcc69723e9d9ec4aa129c5a6bd942
320fbd9 Move impl test files to tests/usethis/_tool/impl/base/ to match src s… Copilot Mar 12, 2026 https://github.com/usethis-python/usethis-python/pull/1373/commits/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f
Clear filters https://github.com/usethis-python/usethis-python/pull/1373/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1373/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1373/files
.importlinter https://github.com/usethis-python/usethis-python/pull/1373/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
ci.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
docstyle.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
list.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
rule.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-4e0b1cd192f6877fd97a52e38f0217d3c1d6e973c52ffdafa8563b4ac1924b92
tool.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
all_.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
__init__.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-67bdad0119b0a64bb4fc44f6fe03de6ae730b4d169d076b7ed3301d9c66497d2
codespell.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-2c508995bfb9de0ede70c5e43e113b8b0d4683ee30b8a36e9235ca6028bd6f3b
coverage_py.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
deptry.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
import_linter.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-6ca11bc8f278f4995bf365615eb576f64691764451781845c2d4b427be888a3c
mkdocs.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-0e02d4ab7cc8a05a6bf3c8ca0729756c3f489d619a9b5c3996d91d5d63d6a9e8
pre_commit.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-20b3c611e71da1840b5abf201d52fdf2a829cdf72b51659b644d995f15904c15
pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-d72e733ecca831b754150d974e21a436ae3c86b63b86ae3ea9cc94209f8b2a13
pyproject_toml.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-a5a4c0d92fde324e9063db93969cfe686b26a120d94c1cd5c89418204bf1346e
pytest.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-09b48febb397590425581a9d904aaf9cac2fba2a1144b5038989209b47a4c45a
requirements_txt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-fffa3e7b03e160877d878c051d85eadf0726cce607b1f4e02a72f3f344803690
ruff.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-1207f8995d85f8d91f298b914c3395c8b8b8e35075e3937f007c3dda4c5180b5
pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-9d1669a8085dbc449b13766d39205b2a8c08549be9454c2e633ca67f25cba154
__init__.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-41cdb1a478e868497fd562821f2ca7cb713a089bb401bb73d69d176d77de8087
codespell.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-ed73f0c95021a8313c3623115d8b8fa6bc8577c010ed2b6d9e87a2ed8cf2ac9e
coverage_py.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-7995205d5609b5236348f760417b536539fe8d849c13cf8e70f0c7dfbb954ef6
deptry.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-a45bc47a5a667207144f963aa8ca348d76e45d2bcb40cf3d6840793e0774e6d0
import_linter.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-6ae3109858d54e24b0823c4ea22e36b476a7c96fe808145d4b0e0c753c577032
mkdocs.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-b712ea311fa1e8c17ca0e553b9926e1365428ef95f57f61872fe844fb0c5e02f
pre_commit.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-d22e7f3a244576a7322132c7efc824b48207352b43371c75028ef4b00f334d3c
pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-460517a7eb293c349b78e7fb8a08c56cb398b264ab33d60203636422ca7fbd35
pyproject_toml.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-9d2923fed0e9789eb9c576ac42a40743a85b29f7b8911b074cd4687802c3ca3a
pytest.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-3b22f93fd1fdd8d1d78ccf452544a92c25dacb8eda68f0e38b6b94e1d9e43eb6
requirements_txt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-111b379f288d32f80e38203243e7538e8873e1f7133dfdc15b019f1eb9fa4119
ruff.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-43f848038b3175f428e92bde90aa7646d31c63c81a352d457278007ca2bca5ba
format_.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-586ce9db35e5fd27bf2dd1be114268ca4dc36ee3a2050014d36630669edae6f8
readme.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-74b82df7d5370ea862dd117bef49f3099d87bca2a698bb00e7b66145bd216c90
conftest.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-e52e4ddd58b7ef887ab03c04116e676f6280b824ab7469d5d3080e5cba4f2128
test_core_tool.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-ebc73c512a65745bdcc2bd242acbe30cee0360d3fd14694b4cd01f64e3520ff7
test_rule.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-a5a4c230b80f1b00420d8dee2e8d06a5db362ac996040991b47041eb543b2de5
test_codespell.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-82e0f38e6ca5ce4bea84c13f5289982c31f85d5a4bf9105cb8f5c4a4f742633c
test_coverage_py.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-41ad8424ffefb982d2269b662eede49dbf222af5ae1a52874aaefeb87d5925fc
test_deptry.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-b15c47cabb926ac2d7462218cd48a621c1c1cacb256b8a9a0a26d424bac8e27e
test_import_linter.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-7cb40234e4b40a77334ed291d56e3b29ed15dd348db43021de8bdfbb1210f783
test_mkdocs.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-89b257c9bc7146cc4bbc5690fdda8bf43d29c8ea6332b8ec3ba04d2e62a2a1cd
test_pre_commit.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-435524e18287d84acd6c2e1a7d9b560f834dc95087aa59533689a2ebb6a8cac9
test_pyproject_fmt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-cc6f3be8088f9aea4a73dccf85353cf4c408adbc5ba519cec466a4b8faf4f37d
test_pyproject_toml.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-90f90d83408174947fa27781bb6b28a977b993c83cafdb668529c255a8860f64
test_pytest.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-229e44a015e2fab93306ad36fe7aa88729ac872e1ef1f57b9ce174b631577c91
test_requirements_txt.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-9740936fcb44f35de9c23e21d3bee66d48d84f0247aebc76fd3d306ba1b2aa4f
test_ruff.py https://github.com/usethis-python/usethis-python/pull/1373/files#diff-b2f7ed409e59821eda2a702039dbd41d3cdf664c804e1e392db2b28031c4b391
.importlinterhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/.importlinter
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-ba59e14253ea8411c0f2b62487cba8b57d8439ee0603b439210a584c10402e0e
src/usethis/_core/ci.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/src/usethis/_core/ci.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-d8dd731faf60404b6b864f30bc9f2c86b98daa3f0414bc059febda8c517e89dd
src/usethis/_core/docstyle.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/src/usethis/_core/docstyle.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-6d32e5122e2ed3eeaffb83c464203cbde9bc5a6e1591bfef06bcc7c54472db81
src/usethis/_core/list.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/src/usethis/_core/list.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-401d42b89bc5faee560f2d51e6973f7ef7698e899ad4bceb643d8ef45825643e
src/usethis/_core/rule.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-4e0b1cd192f6877fd97a52e38f0217d3c1d6e973c52ffdafa8563b4ac1924b92
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/src/usethis/_core/rule.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-4e0b1cd192f6877fd97a52e38f0217d3c1d6e973c52ffdafa8563b4ac1924b92
src/usethis/_core/tool.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/src/usethis/_core/tool.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-78b8483ccaa00acbf58cc4cc949f2d2a1d563b79959e292c0ab24ab15b00cc12
src/usethis/_tool/all_.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/src/usethis/_tool/all_.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/usethis-python/usethis-python/pull/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-585fe6a3590d9d4ef704fc9cb558cd850f64bf02355a49cf57f95c548ac8a3e4
src/usethis/_tool/impl/base/__init__.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-67bdad0119b0a64bb4fc44f6fe03de6ae730b4d169d076b7ed3301d9c66497d2
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/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/1373/files#diff-2c508995bfb9de0ede70c5e43e113b8b0d4683ee30b8a36e9235ca6028bd6f3b
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/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/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/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/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/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/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-71c45ebe1da4d81e2b771fc8db25e0701e17b1bd012c2c9045330c9fada012cd
src/usethis/_tool/impl/deptry.py → src/usethis/_tool/impl/base/deptry.pyhttps://github.com/usethis-python/usethis-python/pull/1373/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
View file https://github.com/usethis-python/usethis-python/blob/320fbd910f9dc74c497a5cbcfaf132f3c8f3a90f/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/1373/{{ revealButtonHref }}
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
https://github.com/usethis-python/usethis-python/pull/1373/files#diff-be005d8a688a12ad7d84e9d6feb7a4e401a76fad1c47b6cf9d80d537797bda65
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1373/files
Please reload this pagehttps://github.com/usethis-python/usethis-python/pull/1373/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.