Skip to main content

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

  1. CodeExtractor - Extract and analyze source code

    • Parse Python modules and classes
    • Extract function signatures and docstrings
    • Generate code inventories
    • Support for package analysis
  2. DocumentationGenerator - Generate comprehensive documentation

    • Auto-generate README.md with project overview
    • Create API reference documentation
    • Generate architecture documentation
    • Produce setup and installation guides
  3. MultiFileCodeSplitter - Split large codebases into organized files

    • Organize code by module/package
    • Generate file structure
    • Support for custom naming conventions
    • Preserve code relationships
  4. ProjectTemplateGenerator - Create project scaffolding

    • Generate boilerplate project structures
    • Create standardized layouts
    • Support multiple project types
    • Include configuration files
  5. ArtifactSaver - Save documentation and artifacts

    • Write files to disk
    • Organize by directory
    • Support multiple formats (markdown, text, code)
    • Create index files
  6. GitRepositoryManager - Manage git repositories

    • Initialize repositories
    • Add and commit files
    • Track documentation changes
    • Integrate with version control
  7. 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 documentation
  • 02_project_templates.py - Generate project scaffolding
  • 03_git_workflow.py - Git-based documentation workflow

Contributing

Contributions are welcome!

License

MIT License - see LICENSE for details.

Support

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

socratic_docs-0.2.1.tar.gz (45.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

socratic_docs-0.2.1-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

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

Hashes for socratic_docs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d32e5e28638ba556d01f6d19d67fbdd7466e4fd66460dfea5bdf07d95a41f7c5
MD5 d3c9073f5ca256bc0f9160bf2261b7c2
BLAKE2b-256 d3663d89a17898d414635f86a6e137cf7422328769d7f580a499fb2e9d1a859e

See more details on using hashes here.

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

Hashes for socratic_docs-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f580c5132f521651412b0feba9499858a5153205f297213793f78af6f398e6b2
MD5 219c70402119cfad4d776f748514b6f5
BLAKE2b-256 947ecd7435a8cb90432ed94c78fba24c0497d379f382a002809b1d890c29f207

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page