diff -r 2f0fb22c1d63 -r ef75c265ab47 src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Pydantic.PydanticUtils.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Pydantic.PydanticUtils.html Sat Feb 22 18:04:02 2025 +0100 @@ -0,0 +1,461 @@ +<!DOCTYPE html> +<html><head> +<title>eric7.Plugins.CheckerPlugins.CodeStyleChecker.Pydantic.PydanticUtils</title> +<meta charset="UTF-8"> +<link rel="stylesheet" href="styles.css"> +</head> +<body> +<a NAME="top" ID="top"></a> +<h1>eric7.Plugins.CheckerPlugins.CodeStyleChecker.Pydantic.PydanticUtils</h1> +<p> +Module implementing utility functions for the PydanticVisitor class. +</p> + +<h3>Global Attributes</h3> +<table> +<tr><td>PYDANTIC_DECORATORS</td></tr> +<tr><td>PYDANTIC_FIELD_ARGUMENTS</td></tr> +<tr><td>PYDANTIC_METHODS</td></tr> +</table> + +<h3>Classes</h3> +<table> +<tr><td>None</td></tr> +</table> + +<h3>Functions</h3> +<table> +<tr> +<td><a href="#_hasAnnotatedField">_hasAnnotatedField</a></td> +<td>Function to check if the class has a field making use of `Annotated`.</td> +</tr> +<tr> +<td><a href="#_hasFieldFunction">_hasFieldFunction</a></td> +<td>Function to check, if the class has a field defined with the `Field` function.</td> +</tr> +<tr> +<td><a href="#_hasModelConfig">_hasModelConfig</a></td> +<td>Function to check, if the class has a `model_config` attribute set.</td> +</tr> +<tr> +<td><a href="#_hasPydanticDecorator">_hasPydanticDecorator</a></td> +<td>Function to check, if the class makes use of Pydantic decorators, such as `computed_field` or `model_validator`.</td> +</tr> +<tr> +<td><a href="#_hasPydanticMethod">_hasPydanticMethod</a></td> +<td>Function to check, if the class overrides any of the Pydantic methods, such as `model_dump`.</td> +</tr> +<tr> +<td><a href="#_hasPydanticModelBase">_hasPydanticModelBase</a></td> +<td>Function to check, if a class definition inherits from Pydantic model classes.</td> +</tr> +<tr> +<td><a href="#extractAnnotations">extractAnnotations</a></td> +<td>Function to extract the annotations of an expression.</td> +</tr> +<tr> +<td><a href="#getDecoratorNames">getDecoratorNames</a></td> +<td>Function to extract the set of decorator names.</td> +</tr> +<tr> +<td><a href="#isDataclass">isDataclass</a></td> +<td>Function to check, if a class is a dataclass.</td> +</tr> +<tr> +<td><a href="#isFunction">isFunction</a></td> +<td>Function to check, if a function call is referencing a given function name.</td> +</tr> +<tr> +<td><a href="#isName">isName</a></td> +<td>Function to check, if an expression is referencing a given name.</td> +</tr> +<tr> +<td><a href="#isPydanticModel">isPydanticModel</a></td> +<td>Function to determine if a class definition is a Pydantic model.</td> +</tr> +</table> + +<hr /> +<hr /> +<a NAME="_hasAnnotatedField" ID="_hasAnnotatedField"></a> +<h2>_hasAnnotatedField</h2> +<b>_hasAnnotatedField</b>(<i>node</i>) +<p> + Function to check if the class has a field making use of `Annotated`. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the class has a field making use of `Annotated` +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="_hasFieldFunction" ID="_hasFieldFunction"></a> +<h2>_hasFieldFunction</h2> +<b>_hasFieldFunction</b>(<i>node</i>) +<p> + Function to check, if the class has a field defined with the `Field` function. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the class has a field defined with the `Field` function +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="_hasModelConfig" ID="_hasModelConfig"></a> +<h2>_hasModelConfig</h2> +<b>_hasModelConfig</b>(<i>node</i>) +<p> + Function to check, if the class has a `model_config` attribute set. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the class has a `model_config` attribute set +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="_hasPydanticDecorator" ID="_hasPydanticDecorator"></a> +<h2>_hasPydanticDecorator</h2> +<b>_hasPydanticDecorator</b>(<i>node</i>) +<p> + Function to check, if the class makes use of Pydantic decorators, such as + `computed_field` or `model_validator`. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the class makes use of Pydantic decorators, such as + `computed_field` or `model_validator`. +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="_hasPydanticMethod" ID="_hasPydanticMethod"></a> +<h2>_hasPydanticMethod</h2> +<b>_hasPydanticMethod</b>(<i>node: ast.ClassDef</i>) +<p> + Function to check, if the class overrides any of the Pydantic methods, such as + `model_dump`. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that class overrides any of the Pydantic methods, such as + `model_dump` +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="_hasPydanticModelBase" ID="_hasPydanticModelBase"></a> +<h2>_hasPydanticModelBase</h2> +<b>_hasPydanticModelBase</b>(<i>node, *, includeRootModel</i>) +<p> + Function to check, if a class definition inherits from Pydantic model classes. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +<dt><i>includeRootModel=</i> (bool)</dt> +<dd> +flag indicating to include the root model +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the class definition inherits from a Pydantic model + class +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="extractAnnotations" ID="extractAnnotations"></a> +<h2>extractAnnotations</h2> +<b>extractAnnotations</b>(<i>node</i>) +<p> + Function to extract the annotations of an expression. +</p> + +<dl> + +<dt><i>node</i> (ast.expr)</dt> +<dd> +reference to the node to be be processed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +set containing the annotation names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +set[str] +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="getDecoratorNames" ID="getDecoratorNames"></a> +<h2>getDecoratorNames</h2> +<b>getDecoratorNames</b>(<i>decoratorList</i>) +<p> + Function to extract the set of decorator names. +</p> + +<dl> + +<dt><i>decoratorList</i> (list of ast.expr)</dt> +<dd> +list of decorators to be processed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +set containing the decorator names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +set of str +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="isDataclass" ID="isDataclass"></a> +<h2>isDataclass</h2> +<b>isDataclass</b>(<i>node</i>) +<p> + Function to check, if a class is a dataclass. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the class is a dataclass. +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="isFunction" ID="isFunction"></a> +<h2>isFunction</h2> +<b>isFunction</b>(<i>node, functionName</i>) +<p> + Function to check, if a function call is referencing a given function name. +</p> + +<dl> + +<dt><i>node</i> (ast.Call)</dt> +<dd> +reference to the node to be be analyzed +</dd> +<dt><i>functionName</i> (str)</dt> +<dd> +name of the function to check for +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the function call is referencing the given function + name +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="isName" ID="isName"></a> +<h2>isName</h2> +<b>isName</b>(<i>node, name</i>) +<p> + Function to check, if an expression is referencing a given name. +</p> + +<dl> + +<dt><i>node</i> (ast.expr)</dt> +<dd> +reference to the node to be be analyzed +</dd> +<dt><i>name</i> (str)</dt> +<dd> +name to check for +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating that the expression is referencing teh given name +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="isPydanticModel" ID="isPydanticModel"></a> +<h2>isPydanticModel</h2> +<b>isPydanticModel</b>(<i>node, *, includeRootModel=True</i>) +<p> + Function to determine if a class definition is a Pydantic model. +</p> +<p> + Multiple heuristics are use to determine if this is the case: + - The class inherits from `BaseModel` (or `RootModel` if `includeRootModel` is + `True`). + - The class has a `model_config` attribute set. + - The class has a field defined with the `Field` function. + - The class has a field making use of `Annotated`. + - The class makes use of Pydantic decorators, such as `computed_field` or + `model_validator`. + - The class overrides any of the Pydantic methods, such as `model_dump`. +</p> + +<dl> + +<dt><i>node</i> (ast.ClassDef)</dt> +<dd> +reference to the node to be be analyzed +</dd> +<dt><i>includeRootModel=</i> (bool (optional))</dt> +<dd> +flag indicating to include the root model + (defaults to True) +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating a Pydantic model class +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html>