Domain#

class FortranDomain(env: BuildEnvironment)[source]#

Bases: Domain

Sphinx domain for Fortran entities.

clear_doc(docname: str) None[source]#

Remove traces of a document in the domain-specific inventories.

directives: dict[str, type[Directive]] = {'function': <class 'sphinx_fortran_domain.directives.FortranFunction'>, 'interface': <class 'sphinx_fortran_domain.directives.FortranInterface'>, 'module': <class 'sphinx_fortran_domain.directives.FortranModule'>, 'program': <class 'sphinx_fortran_domain.directives.FortranProgram'>, 'submodule': <class 'sphinx_fortran_domain.directives.FortranSubmodule'>, 'subroutine': <class 'sphinx_fortran_domain.directives.FortranSubroutine'>, 'type': <class 'sphinx_fortran_domain.directives.FortranType'>}#

directive name -> directive class

get_module(name: str) FortranModuleInfo | None[source]#
get_objects() Iterator[Tuple[str, str, str, str, str, int]][source]#

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.

get_program(name: str) FortranProgramInfo | None[source]#
get_submodule(name: str) FortranSubmoduleInfo | None[source]#
initial_data: Dict[str, Dict] = {'objects': {}, 'symbols': {'modules': {}, 'programs': {}, 'submodules': {}}}#

data value for a fresh environment

label = 'Fortran'#

domain label: longer, more descriptive (used in messages)

merge_domaindata(docnames: Iterable[str], otherdata: Dict) None[source]#

Merge in data regarding docnames from a different domaindata inventory (coming from a subprocess in parallel builds).

name = 'f'#

domain name: should be short, but unique

note_object(name: str, objtype: str, anchor: str) None[source]#
object_types: dict[str, ObjType] = {'function': <sphinx.domains.ObjType object>, 'interface': <sphinx.domains.ObjType object>, 'module': <sphinx.domains.ObjType object>, 'program': <sphinx.domains.ObjType object>, 'submodule': <sphinx.domains.ObjType object>, 'subroutine': <sphinx.domains.ObjType object>, 'type': <sphinx.domains.ObjType object>, 'variable': <sphinx.domains.ObjType object>}#

type (usually directive) name -> ObjType instance

resolve_xref(env, fromdocname: str, builder, typ: str, target: str, node: pending_xref, contnode: Element) Element | None[source]#

Resolve cross-reference for a Fortran object.

roles: dict[str, RoleFunction | XRefRole] = {'func': <sphinx.roles.XRefRole object>, 'function': <sphinx.roles.XRefRole object>, 'iface': <sphinx.roles.XRefRole object>, 'interface': <sphinx.roles.XRefRole object>, 'mod': <sphinx.roles.XRefRole object>, 'module': <sphinx.roles.XRefRole object>, 'prog': <sphinx.roles.XRefRole object>, 'program': <sphinx.roles.XRefRole object>, 'submod': <sphinx.roles.XRefRole object>, 'submodule': <sphinx.roles.XRefRole object>, 'subr': <sphinx.roles.XRefRole object>, 'subroutine': <sphinx.roles.XRefRole object>, 'type': <sphinx.roles.XRefRole object>, 'var': <sphinx.roles.XRefRole object>, 'variable': <sphinx.roles.XRefRole object>}#

role name -> role callable

set_parse_result(result: FortranParseResult) None[source]#
class FortranObjectEntry(docname: 'str', anchor: 'str', objtype: 'str')[source]#

Bases: object

anchor: str#
docname: str#
objtype: str#