class documentation

class Domain:

Known subclasses: sphinx.domains.python.PythonDomain, sphinx.domains.c.CDomain, sphinx.domains.changeset.ChangeSetDomain, sphinx.domains.citation.CitationDomain, sphinx.domains.cpp.CPPDomain, sphinx.domains.index.IndexDomain, sphinx.domains.javascript.JavaScriptDomain, sphinx.domains.math.MathDomain, sphinx.domains.rst.ReSTDomain, sphinx.domains.std.StandardDomain, sphinx.ext.duration.DurationDomain, sphinx.ext.todo.TodoDomain

View In Hierarchy

A Domain is meant to be a group of "object" description directives for objects of a similar nature, and corresponding roles to create references to them. Examples would be Python modules, classes, functions etc., elements of a templating language, Sphinx roles and directives, etc.

Each domain has a separate storage for information about existing objects and how to reference them in self.data, which must be a dictionary. It also must implement several functions that expose the object information in a uniform way to parts of Sphinx that allow the user to reference or search for objects in a domain-agnostic way.

About self.data: since all object and cross-referencing information is stored on a BuildEnvironment instance, the domain.data object is also stored in the env.domaindata dict under the key domain.name. Before the build process starts, every active domain is instantiated and given the environment object; the domaindata dict must then either be nonexistent or a dictionary whose 'version' key is equal to the domain class' data_version attribute. Otherwise, OSError is raised and the pickled environment is discarded.

Method add​_object​_type Add an object type.
Method check​_consistency Do consistency checks (experimental).
Method clear​_doc Remove traces of a document in the domain-specific inventories.
Method directive Return a directive adapter class that always gives the registered directive its full name ('domain:name') as self.name.
Method get​_enumerable​_node​_type Get type of enumerable nodes (experimental).
Method get​_full​_qualified​_name Return full qualified name for given node.
Method get​_objects Return an iterable of "object descriptions".
Method get​_type​_name Return full name for given ObjType.
Method merge​_domaindata Merge in data regarding docnames from a different domaindata inventory (coming from a subprocess in parallel builds).
Method process​_doc Process a document after it is read by the environment.
Method process​_field​_xref Process a pending xref created in a doc field. For example, attach information about the current scope.
Method resolve​_any​_xref Resolve the pending_xref node with the given target.
Method resolve​_xref Resolve the pending_xref node with the given typ and target.
Method role Return a role adapter function that always gives the registered role its full name ('domain:name') as the first argument.
Method setup Set up domain object.
Class Variable dangling​_warnings Undocumented
Class Variable data​_version Undocumented
Class Variable enumerable​_nodes Undocumented
Class Variable initial​_data Undocumented
Class Variable label Undocumented
Class Variable name Undocumented
Instance Variable data Undocumented
Instance Variable directives Undocumented
Instance Variable indices Undocumented
Instance Variable object​_types Undocumented
Instance Variable roles Undocumented
Method __init__ Undocumented
Instance Variable ​_directive​_cache Undocumented
Instance Variable ​_role2type Undocumented
Instance Variable ​_role​_cache Undocumented
Instance Variable ​_type2role Undocumented
Instance Variable env Undocumented
Instance Variable objtypes​_for​_role Undocumented
Instance Variable role​_for​_objtype Undocumented
def add_object_type(self, name, objtype):
Add an object type.
Parameters
name:strUndocumented
objtype:ObjTypeUndocumented
def check_consistency(self):
Do consistency checks (experimental).
def directive(self, name):
Return a directive adapter class that always gives the registered directive its full name ('domain:name') as self.name.
Parameters
name:strUndocumented
Returns
Optional[Callable]Undocumented
def get_enumerable_node_type(self, node):
Get type of enumerable nodes (experimental).
Parameters
node:NodeUndocumented
Returns
Optional[str]Undocumented
def get_full_qualified_name(self, node):
Return full qualified name for given node.
Parameters
node:ElementUndocumented
Returns
Optional[str]Undocumented
def get_objects(self):

Return an iterable of "object descriptions".

Object descriptions are tuples with six items:

name
Fully qualified name.
dispname
Name to display when searching/linking.
type
Object type, a key in self.object_types.
docname
The document where it is to be found.
anchor
The anchor name for the object.
priority

How "important" the object is (determines placement in search results). One of:

1
Default priority (placed before full-text matches).
0
Object is important (placed before default-priority objects).
2
Object is unimportant (placed after full-text matches).
-1
Object should not show up in search at all.
Returns
Iterable[Tuple[str, str, str, str, str, int]]Undocumented
def get_type_name(self, type, primary=False):
Return full name for given ObjType.
Parameters
type:ObjTypeUndocumented
primary:boolUndocumented
Returns
strUndocumented
def merge_domaindata(self, docnames, otherdata):
def process_doc(self, env, docname, document):
Process a document after it is read by the environment.
Parameters
env:BuildEnvironmentUndocumented
docname:strUndocumented
document:nodes.documentUndocumented
def process_field_xref(self, pnode):
Process a pending xref created in a doc field. For example, attach information about the current scope.
Parameters
pnode:pending_xrefUndocumented
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):

Resolve the pending_xref node with the given target.

The reference comes from an "any" or similar role, which means that we don't know the type. Otherwise, the arguments are the same as for resolve_xref.

The method must return a list (potentially empty) of tuples ('domain:role', newnode), where 'domain:role' is the name of a role that could have created the same reference, e.g. 'py:func'. newnode is what resolve_xref would return.

New in version 1.3.
Parameters
env:BuildEnvironmentUndocumented
fromdocname:strUndocumented
builder:BuilderUndocumented
target:strUndocumented
node:pending_xrefUndocumented
contnode:ElementUndocumented
Returns
List[Tuple[str, Element]]Undocumented
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):

Resolve the pending_xref node with the given typ and target.

This method should return a new node, to replace the xref node, containing the contnode which is the markup content of the cross-reference.

If no resolution can be found, None can be returned; the xref node will then given to the :event:`missing-reference` event, and if that yields no resolution, replaced by contnode.

The method can also raise sphinx.environment.NoUri to suppress the :event:`missing-reference` event being emitted.

Parameters
env:BuildEnvironmentUndocumented
fromdocname:strUndocumented
builder:BuilderUndocumented
typ:strUndocumented
target:strUndocumented
node:pending_xrefUndocumented
contnode:ElementUndocumented
Returns
Optional[Element]Undocumented
def role(self, name):
Return a role adapter function that always gives the registered role its full name ('domain:name') as the first argument.
Parameters
name:strUndocumented
Returns
Optional[RoleFunction]Undocumented
def setup(self):
Set up domain object.
data_version: int =

Undocumented

enumerable_nodes: Dict[Type[Node], Tuple[str, Callable]] =
data =

Undocumented

indices =

Undocumented

def __init__(self, env):

Undocumented

Parameters
env:BuildEnvironmentUndocumented
_directive_cache: Dict[str, Callable] =

Undocumented

_role2type: Dict[str, List[str]] =

Undocumented

_role_cache: Dict[str, Callable] =

Undocumented

_type2role: Dict[str, str] =

Undocumented

Undocumented

objtypes_for_role: Callable[[str], List[str]] =

Undocumented

role_for_objtype: Callable[[str], str] =

Undocumented