← GDG /

#074 gdtest_many_big_classes

#074 gdtest_many_big_classes OK INIT
Five big classes with 6+ methods each
Five big classes each with 6+ methods: Processor, Transformer, Validator, Formatter, Exporter. On the Reference page you should see 'Classes' plus FIVE separate method subsections. Key test: multiple big classes coexist without section name collisions.
View Site → Build Log ๐Ÿงช Test Coverage

Build Mode

○ No great-docs.yml

This package has no pre-supplied config. It tests the full great-docs initgreat-docs build pipeline from scratch, relying entirely on auto-detection of the package layout, docstring style, and exports.

Dimensions

A1 B1 C3 D1 E6 F6 G1 H7
A1Flat layoutlayout
B1Explicit __all__exports
C3Big class (>5)objects
D1NumPydocstrings
E6No directivesdirectives
F6No user guideuser_guide
G1README.mdlanding
H7No extrasextras

Source Files

๐Ÿ“ gdtest_many_big_classes/
๐Ÿ“„ __init__.py
"""Package with five big classes."""

__version__ = "0.1.0"
__all__ = [
    "Processor",
    "Transformer",
    "Validator",
    "Formatter",
    "Exporter",
]


class Processor:
    """
    Data processor with many operations.

    Parameters
    ----------
    source
        Data source path.
    """

    def __init__(self, source: str):
        self.source = source

    def load(self) -> list:
        """Load data."""
        return []

    def filter(self, pred) -> list:
        """Filter data by predicate."""
        return []

    def sort(self, key: str) -> list:
        """Sort data by key."""
        return []

    def group(self, key: str) -> dict:
        """Group data by key."""
        return {}

    def merge(self, other: list) -> list:
        """Merge with other data."""
        return []

    def deduplicate(self) -> list:
        """Remove duplicates."""
        return []


class Transformer:
    """
    Data transformer with many conversions.

    Parameters
    ----------
    config
        Transformation config.
    """

    def __init__(self, config: dict):
        self.config = config

    def to_json(self, data) -> str:
        """Convert to JSON."""
        return ""

    def to_csv(self, data) -> str:
        """Convert to CSV."""
        return ""

    def to_xml(self, data) -> str:
        """Convert to XML."""
        return ""

    def from_json(self, text: str) -> dict:
        """Parse from JSON."""
        return {}

    def from_csv(self, text: str) -> list:
        """Parse from CSV."""
        return []

    def normalize(self, data) -> dict:
        """Normalize data structure."""
        return {}


class Validator:
    """
    Data validator with many checks.

    Parameters
    ----------
    schema
        Validation schema.
    """

    def __init__(self, schema: dict):
        self.schema = schema

    def check_types(self, data: dict) -> bool:
        """Check value types."""
        return True

    def check_required(self, data: dict) -> bool:
        """Check required fields."""
        return True

    def check_ranges(self, data: dict) -> bool:
        """Check numeric ranges."""
        return True

    def check_patterns(self, data: dict) -> bool:
        """Check string patterns."""
        return True

    def check_uniqueness(self, data: list) -> bool:
        """Check uniqueness constraints."""
        return True

    def validate_all(self, data) -> dict:
        """Run all validations."""
        return {"valid": True}


class Formatter:
    """
    Output formatter with many styles.

    Parameters
    ----------
    style
        Format style name.
    """

    def __init__(self, style: str = "default"):
        self.style = style

    def as_table(self, data: list) -> str:
        """Format as ASCII table."""
        return ""

    def as_markdown(self, data: list) -> str:
        """Format as Markdown."""
        return ""

    def as_html(self, data: list) -> str:
        """Format as HTML."""
        return ""

    def as_latex(self, data: list) -> str:
        """Format as LaTeX."""
        return ""

    def as_plain(self, data: list) -> str:
        """Format as plain text."""
        return ""

    def set_style(self, style: str) -> None:
        """Change the format style."""
        self.style = style


class Exporter:
    """
    Data exporter with many targets.

    Parameters
    ----------
    destination
        Export destination path.
    """

    def __init__(self, destination: str):
        self.destination = destination

    def to_file(self, data, path: str) -> None:
        """Export to a file."""
        pass

    def to_database(self, data, conn_str: str) -> None:
        """Export to a database."""
        pass

    def to_api(self, data, endpoint: str) -> dict:
        """Export via API call."""
        return {}

    def to_stream(self, data) -> bytes:
        """Export as byte stream."""
        return b""

    def to_clipboard(self, data) -> None:
        """Export to clipboard."""
        pass

    def to_email(self, data, recipient: str) -> None:
        """Export via email."""
        pass
๐Ÿ“„ README.md
# gdtest-many-big-classes

Tests five big classes in one module, each with its own method section.
๐Ÿ“„ great-docs.yml generated
# Great Docs Configuration
# See https://posit-dev.github.io/great-docs/user-guide/configuration.html

# Module Name (optional)
# ----------------------
# Set this if your importable module name differs from the project name.
# Example: project 'py-yaml12' with module name 'yaml12'
# module: yaml12

# Docstring Parser
# ----------------
# The docstring format used in your package (numpy, google, or sphinx)
parser: numpy

# Dynamic Introspection
# ---------------------
# Use runtime introspection for more accurate documentation (default: true)
# Set to false if your package has cyclic alias issues (e.g., PyO3/Rust bindings)
dynamic: true

# API Discovery Settings
# ----------------------
# Exclude items from auto-documentation
# exclude:
#   - InternalClass
#   - helper_function

# Logo & Favicon
# ---------------
# Point to a single logo file (replaces the text title in the navbar):
# logo: assets/logo.svg
#
# For light/dark variants:
# logo:
#   light: assets/logo-light.svg
#   dark: assets/logo-dark.svg
#
# To show the text title alongside the logo, add: show_title: true

# Funding / Copyright Holder
# --------------------------
# Credit the organization that funds or holds copyright for this package.
# Displays in sidebar and footer. Homepage and ROR provide links.
# funding:
#   name: "Posit Software, PBC"
#   roles:
#     - Copyright holder
#     - funder
#   homepage: https://posit.co
#   ror: https://ror.org/03wc8by49

# API Reference Structure
# -----------------------
# Customize the sections below to organize your API documentation.
# - Reorder items within a section to change their display order
# - Move items between sections or create new sections
# - Use 'members: false' to exclude methods from documentation
# - Add 'desc:' to sections for descriptions

reference:
  - title: Classes
    desc: Main classes provided by the package
    contents:
      - name: Exporter
        members: false  # 6 methods listed below
      - name: Formatter
        members: false  # 6 methods listed below
      - name: Processor
        members: false  # 6 methods listed below
      - name: Transformer
        members: false  # 6 methods listed below
      - name: Validator
        members: false  # 6 methods listed below

  - title: Exporter Methods
    desc: Methods for the Exporter class
    contents:
      - Exporter.to_file
      - Exporter.to_database
      - Exporter.to_api
      - Exporter.to_stream
      - Exporter.to_clipboard
      - Exporter.to_email

  - title: Formatter Methods
    desc: Methods for the Formatter class
    contents:
      - Formatter.as_table
      - Formatter.as_markdown
      - Formatter.as_html
      - Formatter.as_latex
      - Formatter.as_plain
      - Formatter.set_style

  - title: Processor Methods
    desc: Methods for the Processor class
    contents:
      - Processor.load
      - Processor.filter
      - Processor.sort
      - Processor.group
      - Processor.merge
      - Processor.deduplicate

  - title: Transformer Methods
    desc: Methods for the Transformer class
    contents:
      - Transformer.to_json
      - Transformer.to_csv
      - Transformer.to_xml
      - Transformer.from_json
      - Transformer.from_csv
      - Transformer.normalize

  - title: Validator Methods
    desc: Methods for the Validator class
    contents:
      - Validator.check_types
      - Validator.check_required
      - Validator.check_ranges
      - Validator.check_patterns
      - Validator.check_uniqueness
      - Validator.validate_all

# Site URL
# --------
# Canonical address of the deployed documentation site.
# Required for subdirectory deployments, skills page install commands,
# .well-known/ discovery, and sitemaps.
# site_url: "https://your-org.github.io/your-package/"

# Site Settings
# -------------
# site:
#   theme: flatly              # Quarto theme (default: flatly)
#   toc: true                  # Show table of contents (default: true)
#   toc-depth: 2               # TOC heading depth (default: 2)
#   toc-title: On this page    # TOC title (default: "On this page")

# Jupyter Kernel
# --------------
# Jupyter kernel to use for executing code cells in .qmd files.
# This is set at the project level so it applies to all pages, including
# auto-generated API reference pages. Can be overridden in individual .qmd
# file frontmatter if needed for special cases.
jupyter: python3

# CLI Documentation
# -----------------
# cli:
#   enabled: true              # Enable CLI documentation
#   module: my_package.cli     # Module containing Click commands
#   name: cli                  # Name of the Click command object