Automated documentation generation for projects
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file socratic_docs-0.2.1.tar.gz.
File metadata
- Download URL: socratic_docs-0.2.1.tar.gz
- Upload date:
- Size: 45.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d32e5e28638ba556d01f6d19d67fbdd7466e4fd66460dfea5bdf07d95a41f7c5
|
|
| MD5 |
d3c9073f5ca256bc0f9160bf2261b7c2
|
|
| BLAKE2b-256 |
d3663d89a17898d414635f86a6e137cf7422328769d7f580a499fb2e9d1a859e
|
File details
Details for the file socratic_docs-0.2.1-py3-none-any.whl.
File metadata
- Download URL: socratic_docs-0.2.1-py3-none-any.whl
- Upload date:
- Size: 48.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f580c5132f521651412b0feba9499858a5153205f297213793f78af6f398e6b2
|
|
| MD5 |
219c70402119cfad4d776f748514b6f5
|
|
| BLAKE2b-256 |
947ecd7435a8cb90432ed94c78fba24c0497d379f382a002809b1d890c29f207
|