Files
docs/libs/doc-forge/site/models/index.html
Vishesh 'ironeagle' Bangotra 8701bf92ac
All checks were successful
continuous-integration/drone/push Build is passing
updated doc forge docs
2026-03-07 16:24:14 +05:30

2365 lines
63 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="prev" href="../loaders/griffe_loader/">
<link rel="next" href="module/">
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.23">
<title>Models - docforge</title>
<link rel="stylesheet" href="../assets/stylesheets/main.84d31ad4.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Inter";--md-code-font:"JetBrains Mono"}</style>
<link rel="stylesheet" href="../assets/_mkdocstrings.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="cyan">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#models" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
docforge
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Models
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="cyan" aria-hidden="true" type="radio" name="__palette" id="__palette_0">
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
docforge
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__container">
<a href="../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
Loaders
</span>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Loaders
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../loaders/griffe_loader/" class="md-nav__link">
<span class="md-ellipsis">
Griffe Loader
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<div class="md-nav__link md-nav__container">
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Models
</span>
</a>
<label class="md-nav__link md-nav__link--active" for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Models
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="module/" class="md-nav__link">
<span class="md-ellipsis">
Module
</span>
</a>
</li>
<li class="md-nav__item">
<a href="object/" class="md-nav__link">
<span class="md-ellipsis">
Object
</span>
</a>
</li>
<li class="md-nav__item">
<a href="project/" class="md-nav__link">
<span class="md-ellipsis">
Project
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<div class="md-nav__link md-nav__container">
<a href="../nav/" class="md-nav__link ">
<span class="md-ellipsis">
Navigation
</span>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Navigation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../nav/spec/" class="md-nav__link">
<span class="md-ellipsis">
Spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nav/resolver/" class="md-nav__link">
<span class="md-ellipsis">
Resolver
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nav/mkdocs/" class="md-nav__link">
<span class="md-ellipsis">
Mkdocs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<div class="md-nav__link md-nav__container">
<a href="../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
Renderers
</span>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Renderers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../renderers/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../renderers/mkdocs_renderer/" class="md-nav__link">
<span class="md-ellipsis">
Mkdocs Renderer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../renderers/mcp_renderer/" class="md-nav__link">
<span class="md-ellipsis">
Mcp Renderer
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<div class="md-nav__link md-nav__container">
<a href="../cli/" class="md-nav__link ">
<span class="md-ellipsis">
CLI
</span>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
CLI
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../cli/main/" class="md-nav__link">
<span class="md-ellipsis">
Main
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cli/commands/" class="md-nav__link">
<span class="md-ellipsis">
Commands
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cli/mcp_utils/" class="md-nav__link">
<span class="md-ellipsis">
Mcp Utils
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cli/mkdocs_utils/" class="md-nav__link">
<span class="md-ellipsis">
Mkdocs Utils
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#docforge.models" class="md-nav__link">
<span class="md-ellipsis">
models
</span>
</a>
<nav class="md-nav" aria-label="models">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models--overview" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.DocObject" class="md-nav__link">
<span class="md-ellipsis">
DocObject
</span>
</a>
<nav class="md-nav" aria-label="DocObject">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.DocObject-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.DocObject.add_member" class="md-nav__link">
<span class="md-ellipsis">
add_member
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.DocObject.get_all_members" class="md-nav__link">
<span class="md-ellipsis">
get_all_members
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.DocObject.get_member" class="md-nav__link">
<span class="md-ellipsis">
get_member
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Module" class="md-nav__link">
<span class="md-ellipsis">
Module
</span>
</a>
<nav class="md-nav" aria-label="Module">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.Module-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.Module.add_object" class="md-nav__link">
<span class="md-ellipsis">
add_object
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Module.get_all_objects" class="md-nav__link">
<span class="md-ellipsis">
get_all_objects
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Module.get_object" class="md-nav__link">
<span class="md-ellipsis">
get_object
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Project" class="md-nav__link">
<span class="md-ellipsis">
Project
</span>
</a>
<nav class="md-nav" aria-label="Project">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.Project-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.Project.add_module" class="md-nav__link">
<span class="md-ellipsis">
add_module
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Project.get_all_modules" class="md-nav__link">
<span class="md-ellipsis">
get_all_modules
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Project.get_module" class="md-nav__link">
<span class="md-ellipsis">
get_module
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.models.Project.get_module_list" class="md-nav__link">
<span class="md-ellipsis">
get_module_list
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="models">Models</h1>
<div class="doc doc-object doc-module">
<h2 id="docforge.models" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.models</span>
</h2>
<div class="doc doc-contents first">
<p>Model layer for doc-forge.</p>
<p>The <code>docforge.models</code> package defines the core data structures used to
represent Python source code as a structured documentation model.</p>
<hr />
<h4 id="docforge.models--overview">Overview</h4>
<p>The model layer forms the central intermediate representation used throughout
doc-forge. Python modules and objects discovered during introspection are
converted into a hierarchy of documentation models that can later be rendered
into different documentation formats.</p>
<p>Key components:</p>
<ul>
<li><strong>Project</strong> Root container representing an entire documented codebase.</li>
<li><strong>Module</strong> Representation of a Python module or package containing
documented members.</li>
<li><strong>DocObject</strong> Recursive structure representing Python objects such as
classes, functions, methods, and attributes.</li>
</ul>
<p>These models are intentionally <strong>renderer-agnostic</strong>, allowing the same
documentation structure to be transformed into multiple output formats
(e.g., MkDocs, MCP, or other renderers).</p>
<hr />
<div class="doc doc-children">
<h3 id="docforge.models-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h4 id="docforge.models.DocObject" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">DocObject</span>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">DocObject</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">signature</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">docstring</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Representation of a documented Python object.</p>
<p>A <code>DocObject</code> models a single Python entity discovered during
introspection. Objects may contain nested members, allowing the structure
of modules, classes, and other containers to be represented recursively.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="docforge.models.DocObject.name">name</span></code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Local name of the object.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.DocObject.kind">kind</span></code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Type of object (for example <code>class</code>, <code>function</code>,
<code>method</code>, or <code>attribute</code>).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.DocObject.path">path</span></code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Fully qualified dotted path to the object.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.DocObject.signature">signature</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>Callable signature if the object represents a callable.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.DocObject.docstring">docstring</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>Raw docstring text extracted from the source code.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.DocObject.members">members</span></code></td>
<td>
<code><span title="typing.Dict">Dict</span>[str, <a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Mapping of member names to child <code>DocObject</code> instances.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a DocObject instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>name</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Local name of the object.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td><code>kind</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Object type identifier (for example <code>class</code> or <code>function</code>).</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td><code>path</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Fully qualified dotted path of the object.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td><code>signature</code></td>
<td>
<code><span title="typing.Optional">Optional</span>[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>Callable signature if applicable.</p>
</div>
</td>
<td>
<code>None</code>
</td>
</tr>
<tr class="doc-section-item">
<td><code>docstring</code></td>
<td>
<code><span title="typing.Optional">Optional</span>[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>Documentation string associated with the object.</p>
</div>
</td>
<td>
<code>None</code>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
<h5 id="docforge.models.DocObject-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.DocObject.add_member" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add_member</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">add_member</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">DocObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Add a child documentation object.</p>
<p>This is typically used when attaching methods to classes or
nested objects to their parent containers.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>obj</code></td>
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Documentation object to add as a member.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.DocObject.get_all_members" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_all_members</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_all_members</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">DocObject</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Return all child members of the object.</p>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="typing.Iterable">Iterable</span>[<a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>An iterable of <code>DocObject</code> instances representing nested members.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.DocObject.get_member" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_member</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_member</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DocObject</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Retrieve a member object by name.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>name</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Name of the member to retrieve.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a></code>
</td>
<td>
<div class="doc-md-description">
<p>The corresponding <code>DocObject</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>KeyError</code>
</td>
<td>
<div class="doc-md-description">
<p>If the member does not exist.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="docforge.models.Module" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Module</span>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">Module</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docstring</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Representation of a documented Python module or package.</p>
<p>A <code>Module</code> stores metadata about the module itself and maintains a
collection of top-level documentation objects discovered during
introspection.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="docforge.models.Module.path">path</span></code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Dotted import path of the module.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.Module.docstring">docstring</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>Module-level documentation string, if present.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.Module.members">members</span></code></td>
<td>
<code><span title="typing.Dict">Dict</span>[str, <a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Mapping of object names to their corresponding
<code>DocObject</code> representations.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a Module instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>path</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Dotted import path identifying the module.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td><code>docstring</code></td>
<td>
<code><span title="typing.Optional">Optional</span>[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>Module-level documentation text, if available.</p>
</div>
</td>
<td>
<code>None</code>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
<h5 id="docforge.models.Module-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Module.add_object" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add_object</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">add_object</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">DocObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Add a documented object to the module.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>obj</code></td>
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Documentation object to register as a top-level
member of the module.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Module.get_all_objects" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_all_objects</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_all_objects</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">DocObject</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Return all top-level documentation objects in the module.</p>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="typing.Iterable">Iterable</span>[<a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>An iterable of <code>DocObject</code> instances representing the</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td>
<code><span title="typing.Iterable">Iterable</span>[<a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>module's public members.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Module.get_object" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_object</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_object</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DocObject</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Retrieve a documented object by name.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>name</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Name of the object to retrieve.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="object/#docforge.models.object.DocObject">DocObject</a></code>
</td>
<td>
<div class="doc-md-description">
<p>The corresponding <code>DocObject</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>KeyError</code>
</td>
<td>
<div class="doc-md-description">
<p>If no object with the given name exists.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="docforge.models.Project" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Project</span>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">Project</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Representation of a documentation project.</p>
<p>A <code>Project</code> serves as the root container for all modules discovered during
introspection. Each module is stored by its dotted import path.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="docforge.models.Project.name">name</span></code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Name of the project.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.models.Project.modules">modules</span></code></td>
<td>
<code><span title="typing.Dict">Dict</span>[str, <a class="autorefs autorefs-internal" title="docforge.models.module.Module" href="module/#docforge.models.module.Module">Module</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Mapping of module paths to <code>Module</code> instances.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a Project instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>name</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Name used to identify the documentation project.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
<h5 id="docforge.models.Project-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Project.add_module" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add_module</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">add_module</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="n">Module</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Register a module in the project.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>module</code></td>
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.module.Module" href="module/#docforge.models.module.Module">Module</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Module instance to add to the project.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Project.get_all_modules" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_all_modules</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_all_modules</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Module</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Return all modules contained in the project.</p>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="typing.Iterable">Iterable</span>[<a class="autorefs autorefs-internal" title="docforge.models.module.Module" href="module/#docforge.models.module.Module">Module</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>An iterable of <code>Module</code> instances.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Project.get_module" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_module</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_module</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Module</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Retrieve a module by its dotted path.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>path</code></td>
<td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>Fully qualified dotted module path (for example <code>pkg.module</code>).</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.module.Module" href="module/#docforge.models.module.Module">Module</a></code>
</td>
<td>
<div class="doc-md-description">
<p>The corresponding <code>Module</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>KeyError</code>
</td>
<td>
<div class="doc-md-description">
<p>If the module does not exist in the project.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.models.Project.get_module_list" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_module_list</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_module_list</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Return the list of module import paths.</p>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>list[str]</code>
</td>
<td>
<div class="doc-md-description">
<p>A list containing the dotted paths of all modules in the project.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../assets/javascripts/bundle.f55a23d4.min.js"></script>
</body>
</html>