ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
    • Supported Driver Versions
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Ask AI
ScyllaDB Docs ScyllaDB Sphinx Theme Examples API Documentation Python

Python¶

The sphinx.ext.autodoc extension generates documentation from Python docstrings.

Basic usage¶

Document a module¶

.. automodule:: examples._sample_module
   :members:

Sample module for demonstrating autodoc functionality.

This module provides a simple database connection class and utility functions for demonstrating how API documentation is generated with sphinx.ext.autodoc.

class DatabaseConnection(host, port=9042, username=None)¶

Manages connections to a database.

This class provides methods for connecting to, querying, and disconnecting from a database. It’s designed to demonstrate autodoc’s ability to generate documentation from Python docstrings.

Parameters:
  • host (str) – The database host address

  • port (int) – The port number (default: 9042)

  • username (str or None) – Optional username for authentication

connect()¶

Establish a connection to the database.

Returns:

True if connection was successful

Return type:

bool

Raises:

ConnectionError – If connection fails

execute(query)¶

Execute a query on the database.

Parameters:

query (str) – The query string to execute

Returns:

Query results

Return type:

list

Raises:

RuntimeError – If not connected to database

disconnect()¶

Close the database connection.

format_query(query, indent=4)¶

Format a database query for better readability.

This function takes a query string and formats it with proper indentation and line breaks for improved readability in logs or documentation.

Parameters:
  • query (str) – The query string to format

  • indent (int) – Number of spaces for indentation (default: 4)

Returns:

The formatted query string

Return type:

str

Example:

>>> format_query("SELECT * FROM users")
'SELECT * FROM users'
validate_connection_params(host, port)¶

Validate database connection parameters.

Parameters:
  • host (str) – The database host address

  • port (int) – The port number

Returns:

True if parameters are valid, False otherwise

Return type:

bool

DEFAULT_TIMEOUT = 30¶

Default connection timeout in seconds

MAX_RETRIES = 3¶

Maximum number of connection retry attempts

Document a class¶

.. autoclass:: examples._sample_module.DatabaseConnection
   :members:
class DatabaseConnection(host, port=9042, username=None)

Manages connections to a database.

This class provides methods for connecting to, querying, and disconnecting from a database. It’s designed to demonstrate autodoc’s ability to generate documentation from Python docstrings.

Parameters:
  • host (str) – The database host address

  • port (int) – The port number (default: 9042)

  • username (str or None) – Optional username for authentication

connect()

Establish a connection to the database.

Returns:

True if connection was successful

Return type:

bool

Raises:

ConnectionError – If connection fails

execute(query)

Execute a query on the database.

Parameters:

query (str) – The query string to execute

Returns:

Query results

Return type:

list

Raises:

RuntimeError – If not connected to database

disconnect()

Close the database connection.

Document a function¶

.. autofunction:: examples._sample_module.format_query
format_query(query, indent=4)

Format a database query for better readability.

This function takes a query string and formats it with proper indentation and line breaks for improved readability in logs or documentation.

Parameters:
  • query (str) – The query string to format

  • indent (int) – Number of spaces for indentation (default: 4)

Returns:

The formatted query string

Return type:

str

Example:

>>> format_query("SELECT * FROM users")
'SELECT * FROM users'

Common options¶

Select specific members¶

.. autoclass:: examples._sample_module.DatabaseConnection
   :members: connect, disconnect

Include special methods¶

.. autoclass:: examples._sample_module.DatabaseConnection
   :members:
   :special-members: __init__

Include private members¶

.. autoclass:: examples._sample_module.DatabaseConnection
   :members:
   :private-members:

Include undocumented members¶

.. automodule:: examples._sample_module
   :members:
   :undoc-members:

Exclude members¶

.. autoclass:: examples._sample_module.DatabaseConnection
   :members:
   :exclude-members: disconnect

Configuration¶

Set defaults in conf.py:

autodoc_default_options = {
    'members': True,
    'member-order': 'bysource',
    'special-members': '__init__',
}

autodoc_typehints = 'signature'  # 'signature', 'description', 'none', 'both'
autodoc_member_order = 'bysource'  # 'alphabetical', 'bysource', 'groupwise'

Related extensions¶

  • sphinx.ext.napoleon - Google and NumPy docstring styles

  • sphinx.ext.autosummary - Summary tables

  • sphinx.ext.viewcode - Source code links

Was this page helpful?

PREVIOUS
API Documentation
NEXT
Doxygen
  • Create an issue
  • Edit this page

On this page

  • Python
    • Basic usage
      • Document a module
        • DatabaseConnection
          • DatabaseConnection.connect()
          • DatabaseConnection.execute()
          • DatabaseConnection.disconnect()
        • format_query()
        • validate_connection_params()
        • DEFAULT_TIMEOUT
        • MAX_RETRIES
      • Document a class
      • Document a function
    • Common options
      • Select specific members
      • Include special methods
      • Include private members
      • Include undocumented members
      • Exclude members
    • Configuration
    • Related extensions
ScyllaDB Sphinx Theme
  • 1.8
    • 1.8
    • 1.7
    • 1.6
    • 1.5
    • 1.4
    • 1.3
    • 1.2
    • 1.1
  • Getting started
    • Toolchain
    • Installation
    • Quickstart
  • Configuration
    • Template options
    • Page options
    • Multiversion options
    • Markdown support
    • Redirects support
    • AI chatbot support (beta)
    • Search support
    • Dependabot support
  • Commands
  • Deployment
    • Production deployment
    • Pull requests previews
    • Centralized publication
  • Examples
    • Admonitions
    • Alert
    • API Documentation
      • Python
      • Doxygen
      • REST API (Redocly)
    • Collapse
    • Code blocks
    • Diagrams
    • Grid
    • Glossary
    • Headings
    • Hero box
    • Icons
    • Images
    • Includes
    • Labels
    • Links
    • Lists
    • Mascots
    • Panel box
    • Substitutions
    • Tables
    • Tabs
    • Text
    • TOC
    • Tooltips
    • Topic box
    • Versions
    • Videos
  • Upgrade guides
    • Upgrading from 1.7 to 1.8
    • Upgrading from 1.6 to 1.7
    • Upgrading from 1.5 to 1.6
    • Upgrading from 1.4 to 1.5
    • Upgrading from 1.3 to 1.4
    • Upgrading from 1.2 to 1.3
    • Upgrading from 1.1 to 1.2
    • Upgrading from 1.0 to 1.1
    • Upgrading from 0.x to 1.0
    • Changelog
  • Contribute
    • Contribute to the documentation
    • Contribute to the theme
    • Source Code
Docs Tutorials University Contact Us About Us
© 2025 ScyllaDB | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 24 Nov 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.9
Ask AI