Models¤
Griffe stores information extracted from Python source code into data models.
These models represent trees of objects, starting with modules, and containing classes, functions, attributes, and type aliases.
Modules can have submodules, classes, functions, attributes, and type aliases. Classes can have nested classes, methods, attributes, and type aliases. Functions and attributes do not have any members.
Indirections to objects declared in other modules are represented as "aliases". An alias therefore represents an imported object, and behaves almost exactly like the object it points to: it is a light wrapper around the object, with special methods and properties that allow to access the target's data transparently.
The 6 models:
Model kind enumeration¤
Kind ¤
flowchart TD
griffe.Kind[Kind]
click griffe.Kind href "" "griffe.Kind"
Enumeration of the different object kinds.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API Models
Alias
Attributes:
-
ALIAS–Aliases (imported objects).
-
ATTRIBUTE–Attributes and properties.
-
CLASS–Classes.
-
FUNCTION–Functions and methods.
-
MODULE–Modules.
-
TYPE_ALIAS–Type aliases.
ALIAS class-attribute instance-attribute ¤
ALIAS = 'alias'
Aliases (imported objects).
- Guide User guide Manipulating APIs Navigating APIs Aliases
ATTRIBUTE class-attribute instance-attribute ¤
ATTRIBUTE = 'attribute'
CLASS class-attribute instance-attribute ¤
CLASS = 'class'
FUNCTION class-attribute instance-attribute ¤
FUNCTION = 'function'
MODULE class-attribute instance-attribute ¤
MODULE = 'module'
Model base classes¤
GetMembersMixin ¤
Mixin class to share methods for accessing members.
Methods:
-
__getitem__–Get a member with its name or path.
-
get_member–Get a member with its name or path.
__getitem__ ¤
Get a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Members will be looked up in both declared members and inherited ones, triggering computation of the latter.
Parameters:
Examples:
>>> foo = griffe_object["foo"]
>>> bar = griffe_object["path.to.bar"]
>>> qux = griffe_object[("path", "to", "qux")]
Source code in src/griffe/_internal/mixins.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | |
get_member ¤
Get a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Members will be looked up in declared members only, not inherited ones.
Parameters:
Examples:
>>> foo = griffe_object["foo"]
>>> bar = griffe_object["path.to.bar"]
>>> bar = griffe_object[("path", "to", "bar")]
Source code in src/griffe/_internal/mixins.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
SetMembersMixin ¤
Mixin class to share methods for setting members.
Methods:
-
__setitem__–Set a member with its name or path.
-
set_member–Set a member with its name or path.
__setitem__ ¤
Set a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Parameters:
-
(key¤str | Sequence[str]) –The name or path of the member.
-
(value¤Object | Alias) –The member.
Examples:
>>> griffe_object["foo"] = foo
>>> griffe_object["path.to.bar"] = bar
>>> griffe_object[("path", "to", "qux")] = qux
Source code in src/griffe/_internal/mixins.py
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | |
set_member ¤
Set a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Parameters:
-
(key¤str | Sequence[str]) –The name or path of the member.
-
(value¤Object | Alias) –The member.
Examples:
>>> griffe_object.set_member("foo", foo)
>>> griffe_object.set_member("path.to.bar", bar)
>>> griffe_object.set_member(("path", "to", "qux"), qux)
Source code in src/griffe/_internal/mixins.py
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | |
DelMembersMixin ¤
Mixin class to share methods for deleting members.
Methods:
-
__delitem__–Delete a member with its name or path.
-
del_member–Delete a member with its name or path.
__delitem__ ¤
Delete a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Members will be looked up in both declared members and inherited ones, triggering computation of the latter.
Parameters:
Examples:
>>> del griffe_object["foo"]
>>> del griffe_object["path.to.bar"]
>>> del griffe_object[("path", "to", "qux")]
Source code in src/griffe/_internal/mixins.py
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
del_member ¤
Delete a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Members will be looked up in declared members only, not inherited ones.
Parameters:
Examples:
>>> griffe_object.del_member("foo")
>>> griffe_object.del_member("path.to.bar")
>>> griffe_object.del_member(("path", "to", "qux"))
Source code in src/griffe/_internal/mixins.py
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | |
SerializationMixin ¤
Mixin class to share methods for de/serializing objects.
Methods:
-
as_json–Return this object's data as a JSON string.
-
from_json–Create an instance of this class from a JSON string.
as_json ¤
Return this object's data as a JSON string.
Parameters:
-
(full¤bool, default:False) –Whether to return full info, or just base info.
-
(**kwargs¤Any, default:{}) –Additional serialization options passed to encoder.
Returns:
-
str–A JSON string.
Source code in src/griffe/_internal/mixins.py
215 216 217 218 219 220 221 222 223 224 225 226 227 | |
from_json classmethod ¤
from_json(json_string: str, **kwargs: Any) -> _ObjType
Create an instance of this class from a JSON string.
Parameters:
-
(json_string¤str) –JSON to decode into Object.
-
(**kwargs¤Any, default:{}) –Additional options passed to decoder.
Returns:
-
_ObjType–An Object instance.
Raises:
-
TypeError–When the json_string does not represent and object of the class from which this classmethod has been called.
- Guide User guide Manipulating APIs Serializing APIs Python API
- Reference
Source code in src/griffe/_internal/mixins.py
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | |
ObjectAliasMixin ¤
Bases: GetMembersMixin, SetMembersMixin, DelMembersMixin, SerializationMixin
flowchart TD
griffe.ObjectAliasMixin[ObjectAliasMixin]
griffe._internal.mixins.GetMembersMixin[GetMembersMixin]
griffe._internal.mixins.SetMembersMixin[SetMembersMixin]
griffe._internal.mixins.DelMembersMixin[DelMembersMixin]
griffe._internal.mixins.SerializationMixin[SerializationMixin]
griffe._internal.mixins.GetMembersMixin --> griffe.ObjectAliasMixin
griffe._internal.mixins.SetMembersMixin --> griffe.ObjectAliasMixin
griffe._internal.mixins.DelMembersMixin --> griffe.ObjectAliasMixin
griffe._internal.mixins.SerializationMixin --> griffe.ObjectAliasMixin
click griffe.ObjectAliasMixin href "" "griffe.ObjectAliasMixin"
click griffe._internal.mixins.GetMembersMixin href "" "griffe._internal.mixins.GetMembersMixin"
click griffe._internal.mixins.SetMembersMixin href "" "griffe._internal.mixins.SetMembersMixin"
click griffe._internal.mixins.DelMembersMixin href "" "griffe._internal.mixins.DelMembersMixin"
click griffe._internal.mixins.SerializationMixin href "" "griffe._internal.mixins.SerializationMixin"
Mixin class to share methods that appear both in objects and aliases, unchanged.
Methods:
-
__delitem__–Delete a member with its name or path.
-
__getitem__–Get a member with its name or path.
-
__setitem__–Set a member with its name or path.
-
as_json–Return this object's data as a JSON string.
-
del_member–Delete a member with its name or path.
-
from_json–Create an instance of this class from a JSON string.
-
get_member–Get a member with its name or path.
-
set_member–Set a member with its name or path.
Attributes:
-
all_members(dict[str, Object | Alias]) –All members (declared and inherited).
-
attributes(dict[str, Attribute]) –The attribute members.
-
classes(dict[str, Class]) –The class members.
-
functions(dict[str, Function]) –The function members.
-
is_class_private(bool) –Whether this object/alias is class-private (starts with
__and is a class member). -
is_deprecated(bool) –Whether this object is deprecated.
-
is_exported(bool) –Whether this object/alias is exported (listed in
__all__). -
is_generic(bool) –Whether this object is generic.
-
is_imported(bool) –Whether this object/alias was imported from another module.
-
is_private(bool) –Whether this object/alias is private (starts with
_) but not special. -
is_public(bool) –Whether this object is considered public.
-
is_special(bool) –Whether this object/alias is special ("dunder" attribute/method, starts and end with
__). -
is_wildcard_exposed(bool) –Whether this object/alias is exposed to wildcard imports.
-
modules(dict[str, Module]) –The module members.
-
type_aliases(dict[str, TypeAlias]) –The type alias members.
all_members property ¤
All members (declared and inherited).
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
attributes property ¤
The attribute members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
classes property ¤
The class members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
functions property ¤
The function members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
is_class_private property ¤
is_class_private: bool
Whether this object/alias is class-private (starts with __ and is a class member).
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_deprecated property ¤
is_deprecated: bool
Whether this object is deprecated.
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_exported property ¤
is_exported: bool
Whether this object/alias is exported (listed in __all__).
- Changelog 0.46.0 - 2024-06-16 Deprecations
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
is_imported property ¤
is_imported: bool
Whether this object/alias was imported from another module.
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
- Reference Python API Models
Aliasimports
is_private property ¤
is_private: bool
Whether this object/alias is private (starts with _) but not special.
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_public property ¤
is_public: bool
Whether this object is considered public.
In modules, developers can mark objects as public thanks to the __all__ variable. In classes however, there is no convention or standard to do so.
Therefore, to decide whether an object is public, we follow this algorithm:
- If the object's
publicattribute is set (boolean), return its value. - If the object is listed in its parent's (a module)
__all__attribute, it is public. - If the parent (module) defines
__all__and the object is not listed in, it is private. - If the object has a private name, it is private.
- If the object was imported from another module, it is private.
- Otherwise, the object is public.
- Changelog 0.46.0 - 2024-06-16 Deprecations
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_special property ¤
is_special: bool
Whether this object/alias is special ("dunder" attribute/method, starts and end with __).
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_wildcard_exposed property ¤
is_wildcard_exposed: bool
Whether this object/alias is exposed to wildcard imports.
To be exposed to wildcard imports, an object/alias must:
- be available at runtime
- have a module as parent
- be listed in
__all__if__all__is defined - or not be private (having a name starting with an underscore)
Special case for Griffe trees: a submodule is only exposed if its parent imports it.
Returns:
-
bool–True or False.
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
modules property ¤
The module members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
type_aliases property ¤
The type alias members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
__delitem__ ¤
Delete a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Members will be looked up in both declared members and inherited ones, triggering computation of the latter.
Parameters:
Examples:
>>> del griffe_object["foo"]
>>> del griffe_object["path.to.bar"]
>>> del griffe_object[("path", "to", "qux")]
Source code in src/griffe/_internal/mixins.py
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
__getitem__ ¤
Get a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Members will be looked up in both declared members and inherited ones, triggering computation of the latter.
Parameters:
Examples:
>>> foo = griffe_object["foo"]
>>> bar = griffe_object["path.to.bar"]
>>> qux = griffe_object[("path", "to", "qux")]
Source code in src/griffe/_internal/mixins.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | |
__setitem__ ¤
Set a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Parameters:
-
(key¤str | Sequence[str]) –The name or path of the member.
-
(value¤Object | Alias) –The member.
Examples:
>>> griffe_object["foo"] = foo
>>> griffe_object["path.to.bar"] = bar
>>> griffe_object[("path", "to", "qux")] = qux
Source code in src/griffe/_internal/mixins.py
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | |
as_json ¤
Return this object's data as a JSON string.
Parameters:
-
(full¤bool, default:False) –Whether to return full info, or just base info.
-
(**kwargs¤Any, default:{}) –Additional serialization options passed to encoder.
Returns:
-
str–A JSON string.
Source code in src/griffe/_internal/mixins.py
215 216 217 218 219 220 221 222 223 224 225 226 227 | |
del_member ¤
Delete a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Members will be looked up in declared members only, not inherited ones.
Parameters:
Examples:
>>> griffe_object.del_member("foo")
>>> griffe_object.del_member("path.to.bar")
>>> griffe_object.del_member(("path", "to", "qux"))
Source code in src/griffe/_internal/mixins.py
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | |
from_json classmethod ¤
from_json(json_string: str, **kwargs: Any) -> _ObjType
Create an instance of this class from a JSON string.
Parameters:
-
(json_string¤str) –JSON to decode into Object.
-
(**kwargs¤Any, default:{}) –Additional options passed to decoder.
Returns:
-
_ObjType–An Object instance.
Raises:
-
TypeError–When the json_string does not represent and object of the class from which this classmethod has been called.
- Guide User guide Manipulating APIs Serializing APIs Python API
- Reference
Source code in src/griffe/_internal/mixins.py
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | |
get_member ¤
Get a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Members will be looked up in declared members only, not inherited ones.
Parameters:
Examples:
>>> foo = griffe_object["foo"]
>>> bar = griffe_object["path.to.bar"]
>>> bar = griffe_object[("path", "to", "bar")]
Source code in src/griffe/_internal/mixins.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
set_member ¤
Set a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Parameters:
-
(key¤str | Sequence[str]) –The name or path of the member.
-
(value¤Object | Alias) –The member.
Examples:
>>> griffe_object.set_member("foo", foo)
>>> griffe_object.set_member("path.to.bar", bar)
>>> griffe_object.set_member(("path", "to", "qux"), qux)
Source code in src/griffe/_internal/mixins.py
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | |
Object ¤
Object(
name: str,
*,
lineno: int | None = None,
endlineno: int | None = None,
runtime: bool = True,
docstring: Docstring | None = None,
type_parameters: TypeParameters | None = None,
parent: Module | Class | None = None,
lines_collection: LinesCollection | None = None,
modules_collection: ModulesCollection | None = None,
git_info: GitInfo | None = None,
analysis: Literal["static", "dynamic"] | None = None,
)
Bases: ObjectAliasMixin
flowchart TD
griffe.Object[Object]
griffe._internal.mixins.ObjectAliasMixin[ObjectAliasMixin]
griffe._internal.mixins.GetMembersMixin[GetMembersMixin]
griffe._internal.mixins.SetMembersMixin[SetMembersMixin]
griffe._internal.mixins.DelMembersMixin[DelMembersMixin]
griffe._internal.mixins.SerializationMixin[SerializationMixin]
griffe._internal.mixins.ObjectAliasMixin --> griffe.Object
griffe._internal.mixins.GetMembersMixin --> griffe._internal.mixins.ObjectAliasMixin
griffe._internal.mixins.SetMembersMixin --> griffe._internal.mixins.ObjectAliasMixin
griffe._internal.mixins.DelMembersMixin --> griffe._internal.mixins.ObjectAliasMixin
griffe._internal.mixins.SerializationMixin --> griffe._internal.mixins.ObjectAliasMixin
click griffe.Object href "" "griffe.Object"
click griffe._internal.mixins.ObjectAliasMixin href "" "griffe._internal.mixins.ObjectAliasMixin"
click griffe._internal.mixins.GetMembersMixin href "" "griffe._internal.mixins.GetMembersMixin"
click griffe._internal.mixins.SetMembersMixin href "" "griffe._internal.mixins.SetMembersMixin"
click griffe._internal.mixins.DelMembersMixin href "" "griffe._internal.mixins.DelMembersMixin"
click griffe._internal.mixins.SerializationMixin href "" "griffe._internal.mixins.SerializationMixin"
An abstract class representing a Python object.
Parameters:
-
(name¤str) –The object name, as declared in the code.
-
(lineno¤int | None, default:None) –The object starting line, or None for modules. Lines start at 1.
-
(endlineno¤int | None, default:None) –The object ending line (inclusive), or None for modules.
-
(runtime¤bool, default:True) –Whether this object is present at runtime or not.
-
(docstring¤Docstring | None, default:None) –The object docstring.
-
(type_parameters¤TypeParameters | None, default:None) –The object type parameters, if any.
-
(parent¤Module | Class | None, default:None) –The object parent.
-
(lines_collection¤LinesCollection | None, default:None) –A collection of source code lines.
-
(modules_collection¤ModulesCollection | None, default:None) –A collection of modules.
-
(git_info¤GitInfo | None, default:None) –Git information.
-
(analysis¤Literal['static', 'dynamic'] | None, default:None) –The type of analysis used to load this object. None means the object was created manually.
- Guide User guide Manipulating APIs
- Reference Python API Models
- Reference Python API
- Reference Python API
- API checks
-
AttributeChangedTypeBreakage -
AttributeChangedValueBreakage -
Breakage -
ClassRemovedBaseBreakage -
ObjectChangedKindBreakage -
ObjectRemovedBreakage -
ParameterAddedRequiredBreakage -
ParameterChangedDefaultBreakage -
ParameterChangedKindBreakage -
ParameterChangedRequiredBreakage -
ParameterMovedBreakage -
ParameterRemovedBreakage -
ReturnChangedTypeBreakage -
find_breaking_changes
-
- Docstrings Docstring models
Docstring - Extensions
Extension - Helpers
- Loaders
- Models
- Models
- API checks
Methods:
-
__bool__–An object is always true-ish.
-
__delitem__–Delete a member with its name or path.
-
__getitem__–Get a member with its name or path.
-
__len__–The number of members in this object, recursively.
-
__setitem__–Set a member with its name or path.
-
as_dict–Return this object's data as a dictionary.
-
as_json–Return this object's data as a JSON string.
-
del_member–Delete a member with its name or path.
-
filter_members–Filter and return members based on predicates.
-
from_json–Create an instance of this class from a JSON string.
-
get_member–Get a member with its name or path.
-
has_labels–Tell if this object has all the given labels.
-
is_kind–Tell if this object is of the given kind.
-
resolve–Resolve a name within this object's and parents' scope.
-
set_member–Set a member with its name or path.
Attributes:
-
aliases(dict[str, Alias]) –The aliases pointing to this object.
-
all_members(dict[str, Object | Alias]) –All members (declared and inherited).
-
analysis(Literal['static', 'dynamic'] | None) –The type of analysis used to load this object.
-
attributes(dict[str, Attribute]) –The attribute members.
-
canonical_path(str) –The full dotted path of this object.
-
classes(dict[str, Class]) –The class members.
-
deprecated(bool | str | None) –Whether this object is deprecated (boolean or deprecation message).
-
docstring(Docstring | None) –The object docstring.
-
endlineno(int | None) –The ending line number of the object.
-
exports(list[str | ExprName] | None) –The names of the objects exported by this (module) object through the
__all__variable. -
extra(dict[str, dict[str, Any]]) –Namespaced dictionaries storing extra metadata for this object, used by extensions.
-
filepath(Path | list[Path]) –The file path (or directory list for namespace packages) where this object was defined.
-
functions(dict[str, Function]) –The function members.
-
git_info(GitInfo | None) –Git information for this object, if available.
-
has_docstring(bool) –Whether this object has a docstring (empty or not).
-
has_docstrings(bool) –Whether this object or any of its members has a docstring (empty or not).
-
imports(dict[str, str]) –The other objects imported by this object.
-
inherited(bool) –Always false for objects.
-
inherited_members(dict[str, Alias]) –Members that are inherited from base classes.
-
is_alias(bool) –Always false for objects.
-
is_attribute(bool) –Whether this object is an attribute.
-
is_class(bool) –Whether this object is a class.
-
is_class_private(bool) –Whether this object/alias is class-private (starts with
__and is a class member). -
is_collection(bool) –Always false for objects.
-
is_deprecated(bool) –Whether this object is deprecated.
-
is_exported(bool) –Whether this object/alias is exported (listed in
__all__). -
is_function(bool) –Whether this object is a function.
-
is_generic(bool) –Whether this object is generic.
-
is_imported(bool) –Whether this object/alias was imported from another module.
-
is_init_method(bool) –Whether this function is an
__init__method. -
is_init_module(bool) –Whether this object is an
__init__.pymodule. -
is_module(bool) –Whether this object is a module.
-
is_namespace_package(bool) –Whether this object is a namespace package (top folder, no
__init__.py). -
is_namespace_subpackage(bool) –Whether this object is a namespace subpackage.
-
is_package(bool) –Whether this object is a package (top module).
-
is_private(bool) –Whether this object/alias is private (starts with
_) but not special. -
is_public(bool) –Whether this object is considered public.
-
is_special(bool) –Whether this object/alias is special ("dunder" attribute/method, starts and end with
__). -
is_subpackage(bool) –Whether this object is a subpackage.
-
is_type_alias(bool) –Whether this object is a type alias.
-
is_wildcard_exposed(bool) –Whether this object/alias is exposed to wildcard imports.
-
kind(Kind) –The object kind.
-
labels(set[str]) –The object labels (
property,dataclass, etc.). -
lineno(int | None) –The starting line number of the object.
-
lines(list[str]) –The lines containing the source of this object.
-
lines_collection(LinesCollection) –The lines collection attached to this object or its parents.
-
members(dict[str, Object | Alias]) –The object members (modules, classes, functions, attributes, type aliases).
-
module(Module) –The parent module of this object.
-
modules(dict[str, Module]) –The module members.
-
modules_collection(ModulesCollection) –The modules collection attached to this object or its parents.
-
name(str) –The object name.
-
package(Module) –The absolute top module (the package) of this object.
-
parent(Module | Class | None) –The parent of the object (none if top module).
-
path(str) –The dotted path of this object.
-
public(bool | None) –Whether this object is public.
-
relative_filepath(Path) –The file path where this object was defined, relative to the current working directory.
-
relative_package_filepath(Path) –The file path where this object was defined, relative to the top module path.
-
runtime(bool) –Whether this object is available at runtime.
-
source(str) –The source code of this object.
-
source_link(str | None) –Source link for this object, if available.
-
type_aliases(dict[str, TypeAlias]) –The type alias members.
-
type_parameters(TypeParameters) –The object type parameters.
Source code in src/griffe/_internal/models.py
579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 | |
aliases instance-attribute ¤
The aliases pointing to this object.
- Guide User guide Manipulating APIs Navigating APIs
all_members property ¤
All members (declared and inherited).
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
analysis instance-attribute ¤
The type of analysis used to load this object.
None means the object was created manually.
attributes property ¤
The attribute members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
canonical_path property ¤
canonical_path: str
The full dotted path of this object.
The canonical path is the path where the object was defined (not imported).
See also: path.
classes property ¤
The class members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
deprecated instance-attribute ¤
Whether this object is deprecated (boolean or deprecation message).
- Extensions Official griffe-warnings-deprecated
- Guide User guide Manipulating APIs Navigating APIs Object visibility
docstring instance-attribute ¤
The object docstring.
See also: has_docstring, has_docstrings.
- Guide User guide Manipulating APIs Navigating APIs Docstrings
- Reference Python API
endlineno instance-attribute ¤
exports instance-attribute ¤
The names of the objects exported by this (module) object through the __all__ variable.
Exports can contain string (object names) or resolvable names, like other lists of exports coming from submodules:
from .submodule import __all__ as submodule_all
__all__ = ["hello", *submodule_all]
Exports get expanded by the loader before it expands wildcards and resolves aliases.
See also: GriffeLoader.expand_exports.
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
- Reference Python API Loaders
GriffeLoaderexpand_exports
extra instance-attribute ¤
Namespaced dictionaries storing extra metadata for this object, used by extensions.
filepath property ¤
The file path (or directory list for namespace packages) where this object was defined.
See also: relative_filepath, relative_package_filepath.
Examples:
>>> import griffe
>>> markdown = griffe.load("markdown")
>>> markdown.filepath
PosixPath('~/project/.venv/lib/python3.11/site-packages/markdown/__init__.py')
- Guide User guide Manipulating APIs Navigating APIs Object location Source
- Reference Python API
functions property ¤
The function members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
git_info property writable ¤
git_info: GitInfo | None
Git information for this object, if available.
- Guide User guide Manipulating APIs Loading APIs Source information
has_docstring property ¤
has_docstring: bool
Whether this object has a docstring (empty or not).
See also: docstring, has_docstrings.
- Guide User guide Manipulating APIs Navigating APIs Docstrings
- Reference Python API
has_docstrings property ¤
has_docstrings: bool
Whether this object or any of its members has a docstring (empty or not).
Inherited members are not considered. Imported members are not considered, unless they are also public.
See also: docstring, has_docstring.
- Guide User guide Manipulating APIs Navigating APIs Docstrings
- Reference Python API
imports instance-attribute ¤
The other objects imported by this object.
Keys are the names within the object (from ... import ... as AS_NAME), while the values are the actual names of the objects (from ... import REAL_NAME as ...).
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
inherited class-attribute instance-attribute ¤
inherited: bool = False
Always false for objects.
Only aliases can be marked as inherited.
inherited_members property ¤
Members that are inherited from base classes.
This method is part of the consumer API: do not use when producing Griffe trees!
See also: members.
is_alias class-attribute instance-attribute ¤
is_alias: bool = False
Always false for objects.
- Guide User guide Manipulating APIs Navigating APIs
- Reference Python API
is_attribute property ¤
is_attribute: bool
Whether this object is an attribute.
See also: is_module. is_class, is_function, is_type_alias, is_alias, is_kind.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API
is_class property ¤
is_class: bool
Whether this object is a class.
See also: is_module. is_function, is_attribute, is_type_alias, is_alias, is_kind.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API
is_class_private property ¤
is_class_private: bool
Whether this object/alias is class-private (starts with __ and is a class member).
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_collection class-attribute instance-attribute ¤
is_collection: bool = False
Always false for objects.
is_deprecated property ¤
is_deprecated: bool
Whether this object is deprecated.
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_exported property ¤
is_exported: bool
Whether this object/alias is exported (listed in __all__).
- Changelog 0.46.0 - 2024-06-16 Deprecations
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
is_function property ¤
is_function: bool
Whether this object is a function.
See also: is_module. is_class, is_attribute, is_type_alias, is_alias, is_kind.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API
is_imported property ¤
is_imported: bool
Whether this object/alias was imported from another module.
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
- Reference Python API Models
Aliasimports
is_init_module property ¤
is_init_module: bool
is_module property ¤
is_module: bool
Whether this object is a module.
See also: is_init_module. is_class, is_function, is_attribute, is_type_alias, is_alias, is_kind.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API
is_namespace_package property ¤
is_namespace_package: bool
Whether this object is a namespace package (top folder, no __init__.py).
See also: is_namespace_subpackage.
is_namespace_subpackage property ¤
is_namespace_subpackage: bool
Whether this object is a namespace subpackage.
See also: is_namespace_package.
is_package property ¤
is_package: bool
is_private property ¤
is_private: bool
Whether this object/alias is private (starts with _) but not special.
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_public property ¤
is_public: bool
Whether this object is considered public.
In modules, developers can mark objects as public thanks to the __all__ variable. In classes however, there is no convention or standard to do so.
Therefore, to decide whether an object is public, we follow this algorithm:
- If the object's
publicattribute is set (boolean), return its value. - If the object is listed in its parent's (a module)
__all__attribute, it is public. - If the parent (module) defines
__all__and the object is not listed in, it is private. - If the object has a private name, it is private.
- If the object was imported from another module, it is private.
- Otherwise, the object is public.
- Changelog 0.46.0 - 2024-06-16 Deprecations
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_special property ¤
is_special: bool
Whether this object/alias is special ("dunder" attribute/method, starts and end with __).
- Guide User guide Manipulating APIs Navigating APIs Object visibility
is_subpackage property ¤
is_subpackage: bool
is_type_alias property ¤
is_type_alias: bool
Whether this object is a type alias.
See also: is_module. is_class, is_function, is_attribute, is_alias, is_kind.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API
is_wildcard_exposed property ¤
is_wildcard_exposed: bool
Whether this object/alias is exposed to wildcard imports.
To be exposed to wildcard imports, an object/alias must:
- be available at runtime
- have a module as parent
- be listed in
__all__if__all__is defined - or not be private (having a name starting with an underscore)
Special case for Griffe trees: a submodule is only exposed if its parent imports it.
Returns:
-
bool–True or False.
- Guide User guide Manipulating APIs Navigating APIs Imports/exports
kind instance-attribute ¤
kind: Kind
The object kind.
- Guide User guide Manipulating APIs Navigating APIs Object kind
labels instance-attribute ¤
lineno instance-attribute ¤
lines property ¤
The lines containing the source of this object.
See also: lines_collection, source.
- Guide User guide Manipulating APIs Navigating APIs Object location Source
- Reference Python API
lines_collection property ¤
lines_collection: LinesCollection
The lines collection attached to this object or its parents.
Raises:
-
ValueError–When no modules collection can be found in the object or its parents.
members instance-attribute ¤
The object members (modules, classes, functions, attributes, type aliases).
See also: inherited_members, get_member, set_member, filter_members.
- Guide User guide Manipulating APIs Navigating APIs Moving down: members
- Reference Python API
module property ¤
module: Module
The parent module of this object.
See also: package.
Examples:
>>> import griffe
>>> markdown = griffe.load("markdown")
>>> markdown["core.Markdown.references"].module
Module(PosixPath('~/project/.venv/lib/python3.11/site-packages/markdown/core.py'))
>>> # The `module` of a module is itself.
>>> markdown["core"].module
Module(PosixPath('~/project/.venv/lib/python3.11/site-packages/markdown/core.py'))
Raises:
-
ValueError–When the object is not a module and does not have a parent.
modules property ¤
The module members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
modules_collection property ¤
modules_collection: ModulesCollection
The modules collection attached to this object or its parents.
Raises:
-
ValueError–When no modules collection can be found in the object or its parents.
- Guide User guide Manipulating APIs Navigating APIs Moving up: parents
package property ¤
package: Module
The absolute top module (the package) of this object.
See also: module.
Examples:
>>> import griffe
>>> markdown = griffe.load("markdown")
>>> markdown["core.Markdown.references"].package
Module(PosixPath('~/project/.venv/lib/python3.11/site-packages/markdown/__init__.py'))
parent instance-attribute ¤
The parent of the object (none if top module).
- Guide User guide Manipulating APIs Navigating APIs Moving up: parents
path property ¤
path: str
The dotted path of this object.
On regular objects (not aliases), the path is the canonical path.
See also: canonical_path.
Examples:
>>> import griffe
>>> markdown = griffe.load("markdown")
>>> markdown["core.Markdown.references"].path
'markdown.core.Markdown.references'
public instance-attribute ¤
public: bool | None = None
Whether this object is public.
- Guide User guide Manipulating APIs Navigating APIs Object visibility
relative_filepath property ¤
relative_filepath: Path
The file path where this object was defined, relative to the current working directory.
If this object's file path is not relative to the current working directory, return its absolute path.
See also: filepath, relative_package_filepath.
Raises:
-
ValueError–When the relative path could not be computed.
- Guide User guide Manipulating APIs Navigating APIs Object location Source
- Reference Python API
relative_package_filepath property ¤
relative_package_filepath: Path
The file path where this object was defined, relative to the top module path.
See also: filepath, relative_filepath.
Raises:
-
ValueError–When the relative path could not be computed.
- Guide User guide Manipulating APIs Navigating APIs Object location Source
- Reference Python API
runtime instance-attribute ¤
Whether this object is available at runtime.
Typically, type-guarded objects (under an if TYPE_CHECKING condition) are not available at runtime.
source property ¤
source: str
The source code of this object.
See also: lines, lines_collection.
- Guide User guide Manipulating APIs Navigating APIs Object location Source
- Reference Python API
source_link property writable ¤
source_link: str | None
Source link for this object, if available.
- Guide User guide Manipulating APIs Loading APIs Source information
type_aliases property ¤
The type alias members.
This method is part of the consumer API: do not use when producing Griffe trees!
- Guide User guide Manipulating APIs Navigating APIs Moving down: members Inherited members
type_parameters instance-attribute ¤
type_parameters: TypeParameters = (
type_parameters or TypeParameters()
)
The object type parameters.
- Guide User guide Manipulating APIs Navigating APIs Model-specific fields
__bool__ ¤
__bool__() -> bool
An object is always true-ish.
Source code in src/griffe/_internal/models.py
717 718 719 | |
__delitem__ ¤
Delete a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Members will be looked up in both declared members and inherited ones, triggering computation of the latter.
Parameters:
Examples:
>>> del griffe_object["foo"]
>>> del griffe_object["path.to.bar"]
>>> del griffe_object[("path", "to", "qux")]
Source code in src/griffe/_internal/mixins.py
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
__getitem__ ¤
Get a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Members will be looked up in both declared members and inherited ones, triggering computation of the latter.
Parameters:
Examples:
>>> foo = griffe_object["foo"]
>>> bar = griffe_object["path.to.bar"]
>>> qux = griffe_object[("path", "to", "qux")]
Source code in src/griffe/_internal/mixins.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | |
__len__ ¤
__len__() -> int
The number of members in this object, recursively.
Source code in src/griffe/_internal/models.py
721 722 723 | |
__setitem__ ¤
Set a member with its name or path.
This method is part of the consumer API: do not use when producing Griffe trees!
Parameters:
-
(key¤str | Sequence[str]) –The name or path of the member.
-
(value¤Object | Alias) –The member.
Examples:
>>> griffe_object["foo"] = foo
>>> griffe_object["path.to.bar"] = bar
>>> griffe_object[("path", "to", "qux")] = qux
Source code in src/griffe/_internal/mixins.py
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | |
as_dict ¤
Return this object's data as a dictionary.
See also: as_json.
Parameters:
-
(full¤bool, default:False) –Whether to return full info, or just base info.
-
(**kwargs¤Any, default:{}) –Additional serialization options.
Returns:
- Guide User guide Manipulating APIs Serializing APIs Python API
Source code in src/griffe/_internal/models.py
1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 | |
as_json ¤
Return this object's data as a JSON string.
Parameters:
-
(full¤bool, default:False) –Whether to return full info, or just base info.
-
(**kwargs¤Any, default:{}) –Additional serialization options passed to encoder.
Returns:
-
str–A JSON string.
Source code in src/griffe/_internal/mixins.py
215 216 217 218 219 220 221 222 223 224 225 226 227 | |
del_member ¤
Delete a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Members will be looked up in declared members only, not inherited ones.
Parameters:
Examples:
>>> griffe_object.del_member("foo")
>>> griffe_object.del_member("path.to.bar")
>>> griffe_object.del_member(("path", "to", "qux"))
Source code in src/griffe/_internal/mixins.py
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | |
filter_members ¤
Filter and return members based on predicates.
See also: members.
Parameters:
-
(*predicates¤Callable[[Object | Alias], bool], default:()) –A list of predicates, i.e. callables accepting a member as argument and returning a boolean.
Returns:
Source code in src/griffe/_internal/models.py
967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 | |
from_json classmethod ¤
from_json(json_string: str, **kwargs: Any) -> _ObjType
Create an instance of this class from a JSON string.
Parameters:
-
(json_string¤str) –JSON to decode into Object.
-
(**kwargs¤Any, default:{}) –Additional options passed to decoder.
Returns:
-
_ObjType–An Object instance.
Raises:
-
TypeError–When the json_string does not represent and object of the class from which this classmethod has been called.
- Guide User guide Manipulating APIs Serializing APIs Python API
- Reference
Source code in src/griffe/_internal/mixins.py
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | |
get_member ¤
Get a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Members will be looked up in declared members only, not inherited ones.
Parameters:
Examples:
>>> foo = griffe_object["foo"]
>>> bar = griffe_object["path.to.bar"]
>>> bar = griffe_object[("path", "to", "bar")]
Source code in src/griffe/_internal/mixins.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
has_labels ¤
Tell if this object has all the given labels.
See also: labels.
Parameters:
Returns:
-
bool–True or False.
Source code in src/griffe/_internal/models.py
954 955 956 957 958 959 960 961 962 963 964 965 | |
is_kind ¤
Tell if this object is of the given kind.
See also: is_module, is_class, is_function, is_attribute, is_type_alias, is_alias.
Parameters:
Raises:
-
ValueError–When an empty set is given as argument.
Returns:
-
bool–True or False.
- Guide User guide Manipulating APIs Navigating APIs Object kind
- Reference Python API
Source code in src/griffe/_internal/models.py
793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 | |
resolve ¤
Resolve a name within this object's and parents' scope.
Parameters:
Raises:
-
NameResolutionError–When the name could not be resolved.
Returns:
-
str–The resolved name.
Source code in src/griffe/_internal/models.py
1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 | |
set_member ¤
Set a member with its name or path.
This method is part of the producer API: you can use it safely while building Griffe trees (for example in Griffe extensions).
Parameters:
-
(key¤str | Sequence[str]) –The name or path of the member.
-
(value¤Object | Alias) –The member.
Examples:
>>> griffe_object.set_member("foo", foo)
>>> griffe_object.set_member("path.to.bar", bar)
>>> griffe_object.set_member(("path", "to", "qux"), qux)
Source code in src/griffe/_internal/mixins.py
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | |
Type parameters¤
TypeParameters ¤
TypeParameters(*type_parameters: TypeParameter)
This class is a container for type parameters.
It allows to get type parameters using their position (index) or their name:
>>> type_parameters = TypeParameters(TypeParameter("hello"), kind=TypeParameterKind.type_var)
>>> type_parameters[0] is type_parameters["hello"]
True
Parameters:
-
(*type_parameters¤TypeParameter, default:()) –The initial type parameters to add to the container.
- Guide User guide Manipulating APIs Navigating APIs Model-specific fields
Methods:
-
__contains__–Whether a type parameter with the given name is present.
-
__delitem__–Delete a type parameter by index or name.
-
__getitem__–Get a type parameter by index or name.
-
__iter__–Iterate over the type parameters, in order.
-
__len__–The number of type parameters.
-
__setitem__–Set a type parameter by index or name.
-
add–Add a type parameter to the container.
Source code in src/griffe/_internal/models.py
488 489 490 491 492 493 494 | |
__contains__ ¤
__contains__(type_param_name: str)
Whether a type parameter with the given name is present.
Source code in src/griffe/_internal/models.py
542 543 544 545 546 547 548 | |
__delitem__ ¤
Delete a type parameter by index or name.
Source code in src/griffe/_internal/models.py
522 523 524 525 526 527 528 529 530 531 532 | |
__getitem__ ¤
__getitem__(name_or_index: int | str) -> TypeParameter
Get a type parameter by index or name.
Source code in src/griffe/_internal/models.py
499 500 501 502 503 504 505 506 507 | |
__iter__ ¤
__iter__()
Iterate over the type parameters, in order.
Source code in src/griffe/_internal/models.py
538 539 540 | |
__len__ ¤
__len__()
The number of type parameters.
Source code in src/griffe/_internal/models.py
534 535 536 | |
__setitem__ ¤
__setitem__(
name_or_index: int | str, type_parameter: TypeParameter
) -> None
Set a type parameter by index or name.
Source code in src/griffe/_internal/models.py
509 510 511 512 513 514 515 516 517 518 519 520 | |
add ¤
add(type_parameter: TypeParameter) -> None
Add a type parameter to the container.
Parameters:
-
(type_parameter¤TypeParameter) –The function parameter to add.
Raises:
-
ValueError–When a type parameter with the same name is already present.
Source code in src/griffe/_internal/models.py
550 551 552 553 554 555 556 557 558 559 560 561 | |
TypeParameter ¤
TypeParameter(
name: str,
*,
kind: TypeParameterKind,
bound: str | Expr | None = None,
constraints: Sequence[str | Expr] | None = None,
default: str | Expr | None = None,
)
This class represents a type parameter.
Parameters:
-
(name¤str) –The type parameter name, without leading stars (
*or**). -
(kind¤TypeParameterKind) –The type parameter kind.
-
(bound¤str | Expr | None, default:None) –The type parameter bound, if any. Mutually exclusive with
constraints. -
(constraints¤Sequence[str | Expr] | None, default:None) –The type parameter constraints, if any. Mutually exclusive with
bound. -
(default¤str | Expr | None, default:None) –The type parameter default, if any.
Raises:
-
ValueError–When more than one of
boundandconstraintsis set.
Methods:
-
as_dict–Return this type parameter's data as a dictionary.
Attributes:
-
annotation(str | Expr | None) –The type parameter bound or constraints.
-
bound(str | Expr | None) –The type parameter bound.
-
constraints(tuple[str | Expr, ...] | None) –The type parameter constraints.
-
default(str | Expr | None) –The type parameter default value.
-
kind(TypeParameterKind) –The type parameter kind.
-
name(str) –The type parameter name.
Source code in src/griffe/_internal/models.py
387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 | |
annotation instance-attribute ¤
The type parameter bound or constraints.
constraints property writable ¤
The type parameter constraints.
as_dict ¤
Return this type parameter's data as a dictionary.
Parameters:
Returns:
Source code in src/griffe/_internal/models.py
458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 | |
TypeParameterKind ¤
flowchart TD
griffe.TypeParameterKind[TypeParameterKind]
click griffe.TypeParameterKind href "" "griffe.TypeParameterKind"
Enumeration of the different type parameter kinds.
Attributes:
-
param_spec–Parameter specification variable.
-
type_var–Type variable.
-
type_var_tuple–Type variable tuple.
Git information¤
KnownGitService module-attribute ¤
KnownGitService = Literal[
"github",
"gitlab",
"sourcehut",
"gitea",
"gogs",
"forgejo",
"codeberg",
"radicle",
]
Known Git hosting services.
- Guide User guide Manipulating APIs Loading APIs Source information
GitInfo dataclass ¤
GitInfo(
repository: Path,
service: KnownGitService,
remote_url: str,
commit_hash: str,
)
Information about a Git repository.
Methods:
-
from_package–Create a GitInfo instance from a Griffe package.
-
get_source_link–Get the source link for the file at the given line numbers.
Attributes:
-
commit_hash(str) –A commit hash (usually the current checked-out one).
-
remote_url(str) –The remote URL of the Git repository.
-
repository(Path) –The path to the Git repository.
-
service(KnownGitService) –The Git hosting service (used to build the right URLs).
commit_hash instance-attribute ¤
commit_hash: str
A commit hash (usually the current checked-out one).
service instance-attribute ¤
service: KnownGitService
The Git hosting service (used to build the right URLs).
from_package classmethod ¤
Create a GitInfo instance from a Griffe package.
Returns:
-
GitInfo | None–The GitInfo instance, or None if unknown.
Source code in src/griffe/_internal/git.py
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 | |
get_source_link ¤
Get the source link for the file at the given line numbers.
Returns:
-
str | None–The source link, or None if unknown.
Source code in src/griffe/_internal/git.py
265 266 267 268 269 270 271 | |