Skip to content

Commit 77332b1

Browse files
Add module docstrings and set up automated export of docs/module-tree.txt. (#1579)
1 parent 06a5fed commit 77332b1

181 files changed

Lines changed: 700 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.pre-commit-config.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,16 @@ repos:
7878
always_run: true
7979
pass_filenames: false
8080
priority: 0
81+
- repo: local
82+
hooks:
83+
- id: export-module-tree
84+
name: export-module-tree
85+
entry: uv run --frozen --offline hooks/export-module-tree.py
86+
args: ["--source-root=src/usethis", "--output-file=docs/module-tree.txt", "--strict"]
87+
language: system
88+
always_run: true
89+
pass_filenames: false
90+
priority: 0
8191
- repo: local
8292
hooks:
8393
- id: deptry

docs/module-tree.txt

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
usethis # usethis: Automate Python project setup and development tasks that are otherwise performed manually.
2+
├── __main__ # The CLI application for usethis.
3+
├── _config # Global configuration state for usethis.
4+
├── _config_file # Context managers for coordinated configuration file I/O.
5+
├── _console # Console output helpers for styled and structured printing.
6+
├── _deps # Dependency management operations for project dependency groups.
7+
├── _fallback # Central module for hard-coded fallback version constants.
8+
├── _init # Project initialization and build system setup.
9+
├── _subprocess # Subprocess invocation utilities.
10+
├── _test # Test utilities and fixtures for the usethis test suite.
11+
├── errors # Custom errors for the usethis package.
12+
├── _backend # Backend dispatch and tool-specific backend implementations.
13+
│ ├── dispatch # Backend selection and dispatch logic.
14+
│ ├── poetry # Poetry backend implementation.
15+
│ │ └── detect # Detection of Poetry usage in a project.
16+
│ └── uv # uv backend implementation.
17+
│ ├── available # Check whether the uv CLI is available.
18+
│ ├── call # Subprocess wrappers for invoking uv commands.
19+
│ ├── deps # Dependency group operations via the uv backend.
20+
│ ├── detect # Detection of uv usage in a project.
21+
│ ├── errors # Error types for the uv backend.
22+
│ ├── init # Project initialization via uv.
23+
│ ├── link_mode # Symlink link-mode configuration for uv.
24+
│ ├── lockfile # Lock file creation and management for uv.
25+
│ ├── python # Python version queries via uv.
26+
│ ├── toml # Manager for the uv.toml configuration file.
27+
│ └── version # Retrieve the installed uv version.
28+
├── _core # Core business logic for usethis commands.
29+
│ ├── author # Author metadata management for pyproject.toml.
30+
│ ├── badge # README badge generation and management.
31+
│ ├── browse # Open project-related URLs in a browser.
32+
│ ├── docstyle # Docstring style configuration.
33+
│ ├── list # List tools and their usage status.
34+
│ ├── readme # README file creation and management.
35+
│ ├── rule # Linter rule selection and configuration.
36+
│ ├── show # Display project information.
37+
│ ├── status # Development status classifier management.
38+
│ └── tool # Tool functions to add/remove tools to/from the project.
39+
├── _detect # The detections module.
40+
│ ├── pre_commit # Detection of pre-commit usage in a project.
41+
│ └── readme # Detection of README file presence.
42+
├── _file # Configuration file reading, writing, and merging.
43+
│ ├── dir # Project directory name utilities.
44+
│ ├── manager # Base file manager classes for configuration file I/O.
45+
│ ├── merge # Deep merge utilities for nested mappings.
46+
│ ├── print_ # Pretty-printing helpers for configuration file keys.
47+
│ ├── types_ # Shared type aliases for file operations.
48+
│ ├── ini # INI file reading and writing.
49+
│ │ ├── errors # Error types for INI file operations.
50+
│ │ └── io_ # INI file I/O manager.
51+
│ ├── pyproject_toml # pyproject.toml file reading and writing.
52+
│ │ ├── errors # Error types for pyproject.toml operations.
53+
│ │ ├── io_ # pyproject.toml file I/O manager.
54+
│ │ ├── name # Project name and description extraction from pyproject.toml.
55+
│ │ ├── project # Access the [project] section of pyproject.toml.
56+
│ │ ├── remove # Removal of the pyproject.toml file.
57+
│ │ ├── requires_python # Python version requirement queries from pyproject.toml.
58+
│ │ └── valid # Validation and repair of pyproject.toml structure.
59+
│ ├── setup_cfg # setup.cfg file reading and writing.
60+
│ │ ├── errors # Error types for setup.cfg operations.
61+
│ │ └── io_ # setup.cfg file I/O manager.
62+
│ ├── toml # TOML file reading and writing.
63+
│ │ ├── errors # Error types for TOML file operations.
64+
│ │ └── io_ # TOML file I/O manager.
65+
│ └── yaml # YAML file reading and writing.
66+
│ ├── errors # Error types for YAML file operations.
67+
│ ├── io_ # YAML file I/O manager.
68+
│ ├── typing_ # Type aliases for YAML document values.
69+
│ └── update # Smart update strategies for YAML sequences and mappings.
70+
├── _integrations # Third-party tool integrations.
71+
│ ├── ci # CI platform integrations.
72+
│ │ └── github # GitHub CI integration.
73+
│ │ ├── errors # Error types for GitHub CI operations.
74+
│ │ └── tags # GitHub repository tag fetching.
75+
│ ├── environ # Environment detection utilities.
76+
│ │ └── python # Python version environment queries.
77+
│ ├── mkdocs # MkDocs documentation integration.
78+
│ │ └── core # MkDocs project setup and configuration.
79+
│ ├── pre_commit # Pre-commit hook framework integration.
80+
│ │ ├── cmd_ # Pre-commit command constants.
81+
│ │ ├── core # Core pre-commit setup and teardown operations.
82+
│ │ ├── errors # Error types for pre-commit operations.
83+
│ │ ├── hooks # Pre-commit hook addition and removal.
84+
│ │ ├── init # Initialization of the pre-commit configuration file.
85+
│ │ ├── language # Pre-commit language keyword resolution.
86+
│ │ ├── schema # Pydantic models for the pre-commit configuration schema.
87+
│ │ ├── version # Pre-commit version inference.
88+
│ │ └── yaml # YAML file manager for the pre-commit configuration.
89+
│ ├── project # Project structure and metadata integration.
90+
│ │ ├── build # Build system detection for the project.
91+
│ │ ├── errors # Error types for project integration operations.
92+
│ │ ├── imports # Import graph analysis for the project.
93+
│ │ ├── layout # Project source directory layout detection.
94+
│ │ ├── name # Project name resolution with fallback heuristics.
95+
│ │ └── packages # Importable package discovery.
96+
│ ├── pydantic # Pydantic model utilities.
97+
│ │ ├── dump # Pydantic model serialization helpers.
98+
│ │ └── typing_ # Type aliases for Pydantic model representations.
99+
│ ├── pytest # pytest test framework integration.
100+
│ │ └── core # pytest directory and configuration setup.
101+
│ ├── readme # README file integration.
102+
│ │ └── path # README file path resolution.
103+
│ └── sonarqube # SonarQube integration.
104+
│ ├── config # SonarQube project configuration management.
105+
│ └── errors # Error types for SonarQube operations.
106+
├── _pipeweld # Pipeline welding algorithm for dependency-aware ordering.
107+
│ ├── containers # Container data structures for pipeline compositions.
108+
│ ├── func # Pipeline welding functions.
109+
│ ├── ops # Operation and instruction types for pipeline welding.
110+
│ └── result # Result types for pipeline welding.
111+
├── _python # Python language utilities.
112+
│ └── version # Utilities for Python version information.
113+
├── _tool # Tool management framework.
114+
│ ├── all_ # Registry of all available tools.
115+
│ ├── base # Base classes for tool implementations.
116+
│ ├── config # Configuration specification types for tools.
117+
│ ├── heuristics # Heuristic fallbacks for tool configuration.
118+
│ ├── pre_commit # Pre-commit hook specification types for tools.
119+
│ ├── rule # Lint rule specification types for tools.
120+
│ ├── spec # Abstract tool specification base classes.
121+
│ └── impl # Concrete tool implementations.
122+
│ ├── base # Tool base implementations with side effects.
123+
│ │ ├── codespell # Codespell tool implementation.
124+
│ │ ├── coverage_py # Coverage.py tool implementation.
125+
│ │ ├── deptry # deptry tool implementation.
126+
│ │ ├── import_linter # Import Linter tool implementation.
127+
│ │ ├── mkdocs # MkDocs tool implementation.
128+
│ │ ├── pre_commit # pre-commit tool implementation.
129+
│ │ ├── pyproject_fmt # pyproject-fmt tool implementation.
130+
│ │ ├── pyproject_toml # pyproject.toml as a managed tool.
131+
│ │ ├── pytest # pytest tool implementation.
132+
│ │ ├── requirements_txt # requirements.txt tool implementation.
133+
│ │ ├── ruff # Ruff tool implementation.
134+
│ │ └── ty # ty tool implementation.
135+
│ └── spec # Tool specification implementations.
136+
│ ├── codespell # Codespell tool specification.
137+
│ ├── coverage_py # Coverage.py tool specification.
138+
│ ├── deptry # deptry tool specification.
139+
│ ├── import_linter # Import Linter tool specification.
140+
│ ├── mkdocs # MkDocs tool specification.
141+
│ ├── pre_commit # pre-commit tool specification.
142+
│ ├── pyproject_fmt # pyproject-fmt tool specification.
143+
│ ├── pyproject_toml # pyproject.toml tool specification.
144+
│ ├── pytest # pytest tool specification.
145+
│ ├── requirements_txt # requirements.txt tool specification.
146+
│ ├── ruff # Ruff tool specification.
147+
│ └── ty # ty tool specification.
148+
├── _toolset # Predefined groups of related tools.
149+
│ ├── arch # Architecture enforcement toolset.
150+
│ ├── doc # Documentation toolset.
151+
│ ├── format_ # Code formatting toolset.
152+
│ ├── hook # Git hook framework toolset.
153+
│ ├── lint # Linting toolset.
154+
│ ├── spellcheck # Spell checking toolset.
155+
│ ├── test # Testing toolset.
156+
│ └── typecheck # Type checking toolset.
157+
├── _types # Shared type definitions and enumerations.
158+
│ ├── backend # Backend enumeration for package manager selection.
159+
│ ├── build_backend # Build backend enumeration for packaging tool selection.
160+
│ ├── deps # Dependency model definitions.
161+
│ ├── docstyle # Docstring style enumeration.
162+
│ └── status # Development status enumeration for classifiers.
163+
└── _ui # User interface layer for the CLI.
164+
├── app # The Typer application for usethis.
165+
├── options # Shared Typer option definitions.
166+
└── interface # Typer command interface modules.
167+
├── arch # CLI commands for architecture enforcement tools.
168+
├── author # CLI commands for managing project authors.
169+
├── badge # CLI commands for managing README badges.
170+
├── browse # CLI commands for browsing project resources.
171+
├── doc # CLI commands for documentation tools.
172+
├── docstyle # CLI commands for docstring style configuration.
173+
├── format_ # CLI commands for code formatting tools.
174+
├── hook # CLI commands for git hook framework tools.
175+
├── init # CLI commands for project initialization.
176+
├── lint # CLI commands for linting tools.
177+
├── list # CLI commands for showing out the full usage table.
178+
├── readme # CLI commands for README management.
179+
├── rule # CLI commands for linter rule management.
180+
├── show # CLI commands for showing project information.
181+
├── spellcheck # CLI commands for spell checking tools.
182+
├── status # CLI commands for development status configuration.
183+
├── test # CLI commands for testing tools.
184+
├── tool # CLI commands for individual tool management.
185+
├── typecheck # CLI commands for type checking tools.
186+
└── version # CLI commands for displaying version information.

0 commit comments

Comments
 (0)