Socratic Docs
Automated documentation generation, code extraction, and project management for Python projects.
Overview
Socratic Docs provides a comprehensive toolkit for generating, managing, and organizing project documentation. It automates the tedious process of creating documentation artifacts and managing project structure through git integration.
Features
Core Modules
-
CodeExtractor - Extract and analyze source code
- Parse Python modules and classes
- Extract function signatures and docstrings
- Generate code inventories
- Support for package analysis
-
DocumentationGenerator - Generate comprehensive documentation
- Auto-generate README.md with project overview
- Create API reference documentation
- Generate architecture documentation
- Produce setup and installation guides
-
MultiFileCodeSplitter - Split large codebases into organized files
- Organize code by module/package
- Generate file structure
- Support for custom naming conventions
- Preserve code relationships
-
ProjectTemplateGenerator - Create project scaffolding
- Generate boilerplate project structures
- Create standardized layouts
- Support multiple project types
- Include configuration files
-
ArtifactSaver - Save documentation and artifacts
- Write files to disk
- Organize by directory
- Support multiple formats (markdown, text, code)
- Create index files
-
GitRepositoryManager - Manage git repositories
- Initialize repositories
- Add and commit files
- Track documentation changes
- Integrate with version control
-
GitInitializer - Setup git for projects
- Initialize new repositories
- Configure git settings
- Create initial commits
- Setup .gitignore files
Installation
Basic Installation
pip install socratic-docs
With Optional Dependencies
# With git integration
pip install socratic-docs[all]
Quick Start
Example 1: Extract Code and Generate Documentation
from socratic_docs import CodeExtractor, DocumentationGenerator, ArtifactSaver
# Step 1: Extract code information
extractor = CodeExtractor()
code_info = extractor.extract_from_package("my_package")
# Step 2: Generate documentation
generator = DocumentationGenerator()
docs = generator.generate_all(code_info)
# docs contains README.md, API.md, ARCHITECTURE.md, SETUP.md
# Step 3: Save artifacts
saver = ArtifactSaver(output_dir="./docs_output")
saver.save_documents(docs)
saver.create_index()
Example 2: Generate Project Template
from socratic_docs import ProjectTemplateGenerator
generator = ProjectTemplateGenerator()
template = generator.generate_template(
project_name="my_awesome_project",
project_type="library",
description="An awesome Python library",
author="Your Name"
)
Example 3: Git Integration Workflow
from socratic_docs import (
GitInitializer,
CodeExtractor,
DocumentationGenerator,
GitRepositoryManager,
ArtifactSaver
)
# Initialize a new git repository
git_init = GitInitializer(repo_path="./my_project")
git_init.initialize()
# Extract code and generate docs
extractor = CodeExtractor()
code_info = extractor.extract_from_package("my_package")
generator = DocumentationGenerator()
docs = generator.generate_all(code_info)
# Save and commit
saver = ArtifactSaver(output_dir="./my_project/docs")
saver.save_documents(docs)
git_mgr = GitRepositoryManager(repo_path="./my_project")
git_mgr.add_files("docs/")
git_mgr.commit("docs: Add auto-generated documentation")
Example 4: Split Large Codebase
from socratic_docs import MultiFileCodeSplitter
splitter = MultiFileCodeSplitter()
result = splitter.split_by_module(
input_file="monolithic_app.py",
output_dir="./modular_structure"
)
Use Cases
Documentation for Open Source Projects
- Auto-generate comprehensive README and API docs
- Keep documentation in sync with code
- Generate changelog and architecture guides
- Create installation and setup guides
Internal Documentation
- Document enterprise applications
- Generate code inventories
- Create architecture diagrams
- Track project structure changes
Project Scaffolding
- Quickly bootstrap new projects
- Ensure consistent project structure
- Auto-configure build tools
- Generate config files
Documentation as Code
- Version control documentation with code
- Generate docs from code docstrings
- Automate documentation updates
- Integrate with CI/CD pipelines
Integration with Socratic Ecosystem
- socratic-nexus: Use LLMs to improve documentation generation
- socratic-analyzer: Analyze code quality and document findings
- socratic-workflow: Integrate documentation generation into workflows
- socratic-learning: Track improvements in documentation quality
Architecture
See ARCHITECTURE.md for detailed architecture documentation.
API Reference
See docs/API_REFERENCE.md for complete API documentation.
Examples
See the examples/ directory for complete, runnable examples:
01_extract_and_generate.py- Extract code and generate documentation02_project_templates.py- Generate project scaffolding03_git_workflow.py- Git-based documentation workflow
Contributing
Contributions are welcome!
License
MIT License - see LICENSE for details.
Support
- Documentation: https://github.com/Nireus79/socratic-docs
- Issues: https://github.com/Nireus79/socratic-docs/issues
Release files for socratic-docs 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| socratic_docs-0.2.1.tar.gz | 45.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| socratic_docs-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 94.0 kB
Release files / socratic_docs-0.2.1.tar.gz
| Download URL | socratic_docs-0.2.1.tar.gz |
|---|---|
| Size | 45.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d32e5e28638ba556d01f6d19d67fbdd7466e4fd66460dfea5bdf07d95a41f7c5
|
|
BLAKE2b-256 checksum How to use checksums |
d3663d89a17898d414635f86a6e137cf7422328769d7f580a499fb2e9d1a859e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / socratic_docs-0.2.1-py3-none-any.whl
| Download URL | socratic_docs-0.2.1-py3-none-any.whl |
|---|---|
| Size | 48.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f580c5132f521651412b0feba9499858a5153205f297213793f78af6f398e6b2
|
|
BLAKE2b-256 checksum How to use checksums |
947ecd7435a8cb90432ed94c78fba24c0497d379f382a002809b1d890c29f207
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|