Rules
digraph inheritancecf74e4e3a3 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "BaseModel" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Usage docs: https://docs.pydantic.dev/2.10/concepts/models/"]; "Comparable" [URL="https://nettlesome.readthedocs.io/en/latest/api/comparable.html#nettlesome.terms.Comparable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Objects that can be compared for implication, same meaning, contradiction, and consistency."]; "ABC" -> "Comparable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Rule" [URL="#authorityspoke.rules.Rule",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A statement of a legal doctrine about a :class:`.Procedure` for litigation."]; "Comparable" -> "Rule" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseModel" -> "Rule" [arrowsize=0.5,style="setlinewidth(0.5)"]; }- class authorityspoke.rules.Rule(**data)
A statement of a legal doctrine about a
Procedurefor litigation.May decide some aspect of current litigation, and also potentially may be cited and reused by future courts. When
Rules appear as judicial holdings they are often hypothetical and don’t necessarily imply that the court accepts theFactassertions or otherFactors that make up the inputs or outputs of theProcedurementioned in theRule.- Parameters:
procedure – a
Procedurecontaining the inputs, and despiteFactors and resulting outputs when this rule is triggered.enactments – the
Enactments cited as authority for invoking theprocedure.enactments_despite – the
Enactments specifically cited as failing to preclude application of theprocedure.mandatory – whether the
procedureis mandatory for the court to apply whenever theRuleis properly invoked.Falsemeans that theprocedureis “discretionary”.universal –
Trueif theprocedureis applicable whenever its inputs are present.Falsemeans that theprocedureis applicable in “some” situation where the inputs are present.generic – whether the
Ruleis being mentioned in a generic context. e.g., if theRuleis being mentioned in anArgumentobject merely as an example of the kind ofRulethat might be mentioned in such anArgument.name – an identifier used to retrieve this
Rulewhen needed for the composition of anotherFactorobject.
- classmethod validate_enactment_groups(v)
Convert EnactmentPassage to EnactmentGroup.
- Return type:
- classmethod select_enactment_text(v)
For Enactments with no text selection, select all text.
- Return type:
- property despite
Get despite Factors as a FactorGroup.
- property inputs
Get input Factors as a FactorGroup.
- property outputs
Get output Factors as a FactorGroup.
- add(other, context=None)
Create new Rule by using the outputs of self as inputs of other.
- __add__(other)
Create new
Ruleifselfcan satisfy theinputsofother.If both
selfandotherhave False foruniversal, then returnsNone. Otherwise:If the union of the
inputsandoutputsofselfwould triggerother, then return a new version ofselfwith the outputFactors ofotheras well as the outputs ofself.The new
universalandmandatoryvalues are the lesser of the old values for each.Does not test whether
selfcould be triggered by the outputs of other. Useother + selffor that.
- get_contrapositives()
Make contrapositive forms of this
Rule.Used when converting from JSON input containing the entry
"exclusive": True, which means the specifiedinputs`are the only way to reach the specified output. When that happens, it can be inferred that in the absence of any of the inputs, the output must also be absent. (Multipleoutputsare not allowed when theexclusiveflag isTrue.) So, this generator will yield one newRulefor each input.
- property terms: TermSequence
Call
Procedure’sterms()method.- Returns:
terms from
self’sProcedure
- generic_terms_by_str()
Get
Factors that can be replaced without changingselfs meaning.- Return type:
- Returns:
generic
Factors fromself’sProcedure
- add_enactment(incoming)
Add Enactment and sort self’s Enactments.
- add_enactment_despite(incoming)
Add “despite” Enactment and sort self’s “despite” Enactments.
- with_enactment(incoming)
Create new Rule with added Enactment.
- with_enactment_despite(incoming)
Create new Rule with added “despite” Enactment.
- add_factor(incoming)
Add a
Factorto self.inputs.
- with_factor(incoming)
Make new version of
selfwith an added inputFactor.
- comparable_with(other)
Check if other can be compared to self for implication or contradiction.
- Return type:
- contradicts(other, context=None)
Test if
selfcontradictsother.
- explanations_contradiction(other, context=None)
Find context matches that would result in a contradiction with other.
- Return type:
- needs_subset_of_enactments(other)
Test whether
self'sEnactmentsupport is a subset ofother's.A
Rulemakes a more powerful statement if it relies on fewerEnactments (or applies despite moreEnactments).So this method must return
Trueforselfto implyother.- Return type:
- explanations_implication(other, context=None)
Find context matches that would result in self implying other.
- Return type:
- implies(other, context=None)
Test if
selfimpliesotherif posited in valid and decidedHoldings.If
selfrelies for support on someEnactmenttext thatotherdoesn’t, thenselfdoesn’t implyother.Also, if
otherspecifies that it applies notwithstanding someEnactmentnot mentioned byself, thenselfdoesn’t implyother.This will be called as part of the
Holding.__ge__()implication function.
- __ge__(other)
Call
implies()as an alias.- Return type:
- Returns:
bool indicating whether
selfimpliesother
- __len__()
Count generic
Factors needed as context for thisRule.- Returns:
the number of generic
Factors needed for self’sProcedure.
- has_all_same_enactments(other)
Test if
selfhasEnactments with same meanings asother's.
- explanations_same_meaning(other, context=None)
Find context matches that would result in self and other meaning the same.
- Return type:
- means(other, context=None)
Test whether
otherhas the same meaning asself.
- union(other, context=None)
Get new Rule with all the Factors of self and other.
- __or__(other)
Create new
Ruleshowing combined effect of all inputs ofselfandother.This operation is destructive in the sense that the new
Rulemay not contain all the information that was available inselfandother.This seems to work differently when one Rule implies the other. That could mean there is a union to return even when both Rules are SOME rules. Or it could mean an ALL rule should be returned even though
impliedis SOME, because implied contributes no information that wasn’t already ingreater.
- set_enactments(enactments)
Set the list of Enactments cited as the basis for this Rule.
Any prior enactments are replaced.
- Return type:
- set_enactments_despite(enactments)
Set the list of Enactments known not to preclude application of this Rule.
Any prior despite enactments are replaced.
- Return type:
- __str__()
Return str(self).
- __class_vars__: ClassVar[set[str]] = {'context_factor_names', 'enactment_attr_names'}
The names of the class variables defined on the model.
- __private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}
Metadata about the private attributes of the model.
- __pydantic_complete__: ClassVar[bool] = True
Whether model building is completed, or if there are still undefined fields.
- __pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
- __pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'nettlesome.predicates.Predicate'>, 'config': {'extra_fields_behavior': 'forbid', 'title': 'Predicate'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'nettlesome.predicates.Predicate'>>]}, 'ref': 'nettlesome.predicates.Predicate:96271533766672', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'content': {'metadata': {}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'truth': {'metadata': {}, 'schema': {'default': True, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Predicate', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'nettlesome.quantities.Comparison'>, 'config': {'title': 'Comparison'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'nettlesome.quantities.Comparison'>>]}, 'ref': 'nettlesome.quantities.Comparison:96271546375360', 'root_model': False, 'schema': {'function': {'function': <bound method Comparison.set_quantity_range of <class 'nettlesome.quantities.Comparison'>>, 'type': 'no-info'}, 'schema': {'computed_fields': [], 'fields': {'content': {'metadata': {}, 'schema': {'function': {'function': <bound method Comparison.content_ends_with_was of <class 'nettlesome.quantities.Comparison'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'quantity_range': {'metadata': {}, 'schema': {'choices': [{'schema_ref': 'nettlesome.quantities.DecimalRange:96271546368928', 'type': 'definition-ref'}, {'schema_ref': 'nettlesome.quantities.UnitRange:96271546289072', 'type': 'definition-ref'}, {'schema_ref': 'nettlesome.quantities.DateRange:96271534566352', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'model-field'}, 'truth': {'metadata': {}, 'schema': {'default': True, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Comparison', 'type': 'model-fields'}, 'type': 'function-before'}, 'type': 'model'}, {'cls': <class 'nettlesome.entities.Entity'>, 'config': {'extra_fields_behavior': 'forbid', 'title': 'Entity'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'nettlesome.entities.Entity'>>]}, 'ref': 'nettlesome.entities.Entity:96271533697616', 'root_model': False, 'schema': {'function': {'function': <bound method Entity.validate_type of <class 'nettlesome.entities.Entity'>>, 'type': 'no-info'}, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': True, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': '', 'schema': {'type': 'str'}, 'type': 'default'}, 'type': 'model-field'}, 'plural': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Entity', 'type': 'model-fields'}, 'type': 'function-before'}, 'type': 'model'}, {'cls': <class 'nettlesome.quantities.DecimalRange'>, 'config': {'title': 'DecimalRange'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'nettlesome.quantities.DecimalRange'>>]}, 'ref': 'nettlesome.quantities.DecimalRange:96271546368928', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'include_negatives': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'quantity': {'metadata': {}, 'schema': {'type': 'decimal'}, 'type': 'model-field'}, 'sign': {'metadata': {}, 'schema': {'default': '==', 'schema': {'function': {'function': <bound method QuantityRange.check_sign of <class 'nettlesome.quantities.DecimalRange'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'DecimalRange', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'nettlesome.quantities.UnitRange'>, 'config': {'title': 'UnitRange'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'nettlesome.quantities.UnitRange'>>]}, 'ref': 'nettlesome.quantities.UnitRange:96271546289072', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'include_negatives': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'quantity_magnitude': {'metadata': {}, 'schema': {'type': 'decimal'}, 'type': 'model-field'}, 'quantity_units': {'metadata': {}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'sign': {'metadata': {}, 'schema': {'default': '==', 'schema': {'function': {'function': <bound method QuantityRange.check_sign of <class 'nettlesome.quantities.UnitRange'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'UnitRange', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'nettlesome.quantities.DateRange'>, 'config': {'title': 'DateRange'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'nettlesome.quantities.DateRange'>>]}, 'ref': 'nettlesome.quantities.DateRange:96271534566352', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'include_negatives': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'bool'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'quantity': {'metadata': {}, 'schema': {'type': 'date'}, 'type': 'model-field'}, 'sign': {'metadata': {}, 'schema': {'default': '==', 'schema': {'function': {'function': <bound method QuantityRange.check_sign of <class 'nettlesome.quantities.DateRange'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'DateRange', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'authorityspoke.facts.Pleading'>, 'config': {'title': 'Pleading'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.facts.Pleading'>>]}, 'ref': 'authorityspoke.facts.Pleading:96271546737760', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'filer': {'metadata': {}, 'schema': {'schema_ref': 'nettlesome.entities.Entity:96271533697616', 'type': 'definition-ref'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Pleading', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'authorityspoke.facts.Exhibit'>, 'config': {'title': 'Exhibit'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.facts.Exhibit'>>]}, 'ref': 'authorityspoke.facts.Exhibit:96271546734272', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'form': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'offered_by': {'metadata': {}, 'schema': {'schema_ref': 'nettlesome.entities.Entity:96271533697616', 'type': 'definition-ref'}, 'type': 'model-field'}, 'statement': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'statement_attribution': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'nettlesome.entities.Entity:96271533697616', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Exhibit', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'authorityspoke.facts.Evidence'>, 'config': {'extra_fields_behavior': 'forbid', 'title': 'Evidence'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.facts.Evidence'>>]}, 'ref': 'authorityspoke.facts.Evidence:96271546736768', 'root_model': False, 'schema': {'function': {'function': <bound method Evidence.check_type_field of <class 'authorityspoke.facts.Evidence'>>, 'type': 'no-info'}, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'exhibit': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'authorityspoke.facts.Exhibit:96271546734272', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'to_effect': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Evidence', 'type': 'model-fields'}, 'type': 'function-before'}, 'type': 'model'}, {'cls': <class 'authorityspoke.facts.Fact'>, 'config': {'extra_fields_behavior': 'forbid', 'title': 'Fact'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.facts.Fact'>>]}, 'ref': 'authorityspoke.facts.Fact:96271546644960', 'root_model': False, 'schema': {'function': {'function': <bound method Fact.nest_predicate_fields of <class 'authorityspoke.facts.Fact'>>, 'type': 'no-info'}, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': '', 'schema': {'type': 'str'}, 'type': 'default'}, 'type': 'model-field'}, 'predicate': {'metadata': {}, 'schema': {'choices': [{'schema_ref': 'nettlesome.predicates.Predicate:96271533766672', 'type': 'definition-ref'}, {'schema_ref': 'nettlesome.quantities.Comparison:96271546375360', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'model-field'}, 'standard_of_proof': {'metadata': {}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method Fact.validate_standard_of_proof of <class 'authorityspoke.facts.Fact'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'terms': {'metadata': {}, 'schema': {'default': [], 'schema': {'function': {'field_name': 'terms', 'function': <bound method Fact._validate_terms of <class 'authorityspoke.facts.Fact'>>, 'type': 'with-info'}, 'schema': {'function': {'field_name': 'terms', 'function': <bound method Fact.terms_as_sequence of <class 'authorityspoke.facts.Fact'>>, 'type': 'with-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'nettlesome.entities.Entity:96271533697616', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Allegation:96271546728512', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Pleading:96271546737760', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Exhibit:96271546734272', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Evidence:96271546736768', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Fact', 'type': 'model-fields'}, 'type': 'function-before'}, 'type': 'model'}, {'cls': <class 'authorityspoke.facts.Allegation'>, 'config': {'title': 'Allegation'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.facts.Allegation'>>]}, 'ref': 'authorityspoke.facts.Allegation:96271546728512', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'fact': {'metadata': {}, 'schema': {'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'pleading': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'schema_ref': 'authorityspoke.facts.Pleading:96271546737760', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Allegation', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'legislice.enactments.TextVersion'>, 'config': {'title': 'TextVersion'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'legislice.enactments.TextVersion'>>]}, 'ref': 'legislice.enactments.TextVersion:96271533242160', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'content': {'metadata': {}, 'schema': {'function': {'function': <bound method TextVersion.content_exists of <class 'legislice.enactments.TextVersion'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'id': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'url': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'TextVersion', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'anchorpoint.textselectors.TextPositionSet'>, 'config': {'title': 'TextPositionSet'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'anchorpoint.textselectors.TextPositionSet'>>]}, 'ref': 'anchorpoint.textselectors.TextPositionSet:96271532400848', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'positions': {'metadata': {}, 'schema': {'default': [], 'schema': {'function': {'function': <bound method TextPositionSet.order_of_selectors of <class 'anchorpoint.textselectors.TextPositionSet'>>, 'type': 'no-info'}, 'schema': {'function': {'function': <bound method TextPositionSet.is_sequence of <class 'anchorpoint.textselectors.TextPositionSet'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'schema_ref': 'anchorpoint.textselectors.TextPositionSelector:96271532389520', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'quotes': {'metadata': {}, 'schema': {'default': [], 'schema': {'function': {'function': <bound method TextPositionSet.quote_selectors_are_in_list of <class 'anchorpoint.textselectors.TextPositionSet'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'schema_ref': 'anchorpoint.textselectors.TextQuoteSelector:96271532375040', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'TextPositionSet', 'type': 'model-fields'}, 'type': 'model'}, {'function': {'function': <function TextPositionSelector.start_less_than_end>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'anchorpoint.textselectors.TextPositionSelector'>>]}, 'ref': 'anchorpoint.textselectors.TextPositionSelector:96271532389520', 'schema': {'cls': <class 'anchorpoint.textselectors.TextPositionSelector'>, 'config': {'title': 'TextPositionSelector'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'end': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'start': {'metadata': {}, 'schema': {'default': 0, 'schema': {'function': {'function': <bound method TextPositionSelector.start_not_negative of <class 'anchorpoint.textselectors.TextPositionSelector'>>, 'type': 'no-info'}, 'schema': {'type': 'int'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'TextPositionSelector', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}, {'cls': <class 'anchorpoint.textselectors.TextQuoteSelector'>, 'config': {'title': 'TextQuoteSelector'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'anchorpoint.textselectors.TextQuoteSelector'>>]}, 'ref': 'anchorpoint.textselectors.TextQuoteSelector:96271532375040', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'exact': {'metadata': {}, 'schema': {'default': '', 'schema': {'function': {'function': <bound method TextQuoteSelector.no_none_for_prefix of <class 'anchorpoint.textselectors.TextQuoteSelector'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}, 'prefix': {'metadata': {}, 'schema': {'default': '', 'schema': {'function': {'function': <bound method TextQuoteSelector.no_none_for_prefix of <class 'anchorpoint.textselectors.TextQuoteSelector'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}, 'suffix': {'metadata': {}, 'schema': {'default': '', 'schema': {'function': {'function': <bound method TextQuoteSelector.no_none_for_prefix of <class 'anchorpoint.textselectors.TextQuoteSelector'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'TextQuoteSelector', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'legislice.enactments.CrossReference'>, 'config': {'title': 'CrossReference'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'legislice.enactments.CrossReference'>>]}, 'ref': 'legislice.enactments.CrossReference:96271522451392', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'reference_text': {'metadata': {}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'target_node': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'target_uri': {'metadata': {}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'target_url': {'metadata': {}, 'schema': {'type': 'str'}, 'type': 'model-field'}}, 'model_name': 'CrossReference', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'legislice.enactments.Enactment'>, 'config': {'title': 'Enactment'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'legislice.enactments.Enactment'>>]}, 'ref': 'legislice.enactments.Enactment:96271533270272', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'anchors': {'metadata': {}, 'schema': {'default': [], 'schema': {'choices': [{'schema_ref': 'anchorpoint.textselectors.TextPositionSet:96271532400848', 'type': 'definition-ref'}, {'items_schema': {'choices': [{'schema_ref': 'anchorpoint.textselectors.TextPositionSelector:96271532389520', 'type': 'definition-ref'}, {'schema_ref': 'anchorpoint.textselectors.TextQuoteSelector:96271532375040', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}], 'type': 'union'}, 'type': 'default'}, 'type': 'model-field'}, 'children': {'metadata': {}, 'schema': {'default': [], 'schema': {'choices': [{'items_schema': {'schema_ref': 'legislice.enactments.Enactment:96271533270272', 'type': 'definition-ref'}, 'type': 'list'}, {'items_schema': {'type': 'str'}, 'type': 'list'}], 'type': 'union'}, 'type': 'default'}, 'type': 'model-field'}, 'citations': {'metadata': {}, 'schema': {'default': [], 'schema': {'items_schema': {'schema_ref': 'legislice.enactments.CrossReference:96271522451392', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'default'}, 'type': 'model-field'}, 'earliest_in_db': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'date'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'end_date': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'date'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'first_published': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'date'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'heading': {'metadata': {}, 'schema': {'default': '', 'schema': {'type': 'str'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': '', 'schema': {'type': 'str'}, 'type': 'default'}, 'type': 'model-field'}, 'node': {'metadata': {}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'start_date': {'metadata': {}, 'schema': {'type': 'date'}, 'type': 'model-field'}, 'text_version': {'metadata': {}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method Enactment.make_text_version_from_str of <class 'legislice.enactments.Enactment'>>, 'type': 'no-info'}, 'schema': {'schema': {'schema_ref': 'legislice.enactments.TextVersion:96271533242160', 'type': 'definition-ref'}, 'type': 'nullable'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Enactment', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'legislice.groups.EnactmentGroup'>, 'config': {'title': 'EnactmentGroup'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'legislice.groups.EnactmentGroup'>>]}, 'ref': 'legislice.groups.EnactmentGroup:96271533573280', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'passages': {'metadata': {}, 'schema': {'default': [], 'schema': {'function': {'function': <bound method EnactmentGroup.sort_passages of <class 'legislice.groups.EnactmentGroup'>>, 'type': 'no-info'}, 'schema': {'function': {'function': <bound method EnactmentGroup.consolidate_passages of <class 'legislice.groups.EnactmentGroup'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'schema_ref': 'legislice.enactments.EnactmentPassage:96271533361456', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'EnactmentGroup', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'legislice.enactments.EnactmentPassage'>, 'config': {'title': 'EnactmentPassage'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'legislice.enactments.EnactmentPassage'>>]}, 'ref': 'legislice.enactments.EnactmentPassage:96271533361456', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'enactment': {'metadata': {}, 'schema': {'schema_ref': 'legislice.enactments.Enactment:96271533270272', 'type': 'definition-ref'}, 'type': 'model-field'}, 'selection': {'metadata': {}, 'schema': {'default': TextPositionSet(positions=[TextPositionSelector(start=0, end=None)], quotes=[]), 'schema': {'schema_ref': 'anchorpoint.textselectors.TextPositionSet:96271532400848', 'type': 'definition-ref'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'EnactmentPassage', 'type': 'model-fields'}, 'type': 'model'}], 'schema': {'cls': <class 'authorityspoke.rules.Rule'>, 'config': {'title': 'Rule'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.rules.Rule'>>]}, 'ref': 'authorityspoke.rules.Rule:96271548281184', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'absent': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'enactments': {'metadata': {}, 'schema': {'default': EnactmentGroup([]), 'schema': {'function': {'function': <bound method Rule.select_enactment_text of <class 'authorityspoke.rules.Rule'>>, 'type': 'no-info'}, 'schema': {'function': {'function': <bound method Rule.validate_enactment_groups of <class 'authorityspoke.rules.Rule'>>, 'type': 'no-info'}, 'schema': {'schema_ref': 'legislice.groups.EnactmentGroup:96271533573280', 'type': 'definition-ref'}, 'type': 'function-before'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'enactments_despite': {'metadata': {}, 'schema': {'default': EnactmentGroup([]), 'schema': {'function': {'function': <bound method Rule.select_enactment_text of <class 'authorityspoke.rules.Rule'>>, 'type': 'no-info'}, 'schema': {'function': {'function': <bound method Rule.validate_enactment_groups of <class 'authorityspoke.rules.Rule'>>, 'type': 'no-info'}, 'schema': {'schema_ref': 'legislice.groups.EnactmentGroup:96271533573280', 'type': 'definition-ref'}, 'type': 'function-before'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'generic': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'mandatory': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'procedure': {'metadata': {}, 'schema': {'cls': <class 'authorityspoke.procedures.Procedure'>, 'config': {'title': 'Procedure'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'authorityspoke.procedures.Procedure'>>]}, 'ref': 'authorityspoke.procedures.Procedure:96271547885440', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'despite': {'metadata': {}, 'schema': {'default': [], 'schema': {'function': {'function': <bound method Procedure._validate_factor_groups of <class 'authorityspoke.procedures.Procedure'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Allegation:96271546728512', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Pleading:96271546737760', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Exhibit:96271546734272', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Evidence:96271546736768', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}, 'inputs': {'metadata': {}, 'schema': {'default': [], 'schema': {'function': {'function': <bound method Procedure._validate_factor_groups of <class 'authorityspoke.procedures.Procedure'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Allegation:96271546728512', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Pleading:96271546737760', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Exhibit:96271546734272', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Evidence:96271546736768', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {}, 'schema': {'default': '', 'schema': {'type': 'str'}, 'type': 'default'}, 'type': 'model-field'}, 'outputs': {'metadata': {}, 'schema': {'function': {'function': <bound method Procedure._validate_outputs of <class 'authorityspoke.procedures.Procedure'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'authorityspoke.facts.Fact:96271546644960', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Allegation:96271546728512', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Pleading:96271546737760', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Exhibit:96271546734272', 'type': 'definition-ref'}, {'schema_ref': 'authorityspoke.facts.Evidence:96271546736768', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-before'}, 'type': 'model-field'}}, 'model_name': 'Procedure', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'model-field'}, 'universal': {'metadata': {}, 'schema': {'default': False, 'schema': {'type': 'bool'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'Rule', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}
The core schema of the model.
- __pydantic_custom_init__: ClassVar[bool] = False
Whether the model has a custom __init__ method.
- __pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_enactment_groups': Decorator(cls_ref='authorityspoke.rules.Rule:96271548281184', cls_var_name='validate_enactment_groups', func=<bound method Rule.validate_enactment_groups of <class 'authorityspoke.rules.Rule'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('enactments', 'enactments_despite'), mode='before', check_fields=None, json_schema_input_type=PydanticUndefined)), 'select_enactment_text': Decorator(cls_ref='authorityspoke.rules.Rule:96271548281184', cls_var_name='select_enactment_text', func=<bound method Rule.select_enactment_text of <class 'authorityspoke.rules.Rule'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('enactments', 'enactments_despite'), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})
Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.
- __pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'absent': FieldInfo(annotation=bool, required=False, default=False), 'enactments': FieldInfo(annotation=EnactmentGroup, required=False, default=EnactmentGroup([])), 'enactments_despite': FieldInfo(annotation=EnactmentGroup, required=False, default=EnactmentGroup([])), 'generic': FieldInfo(annotation=bool, required=False, default=False), 'mandatory': FieldInfo(annotation=bool, required=False, default=False), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'procedure': FieldInfo(annotation=Procedure, required=True), 'universal': FieldInfo(annotation=bool, required=False, default=False)}
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.
- __pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}
Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
- __pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None
Parent namespace of the model, used for automatic rebuilding of models.
- __pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None
The name of the post-init method for the model, if defined.
- __pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model( ModelSerializer { class: Py( 0x0000578ef76ff160, ), serializer: Fields( GeneralFieldsSerializer { fields: { "procedure": SerField { key_py: Py( 0x00007ea2de97adb0, ), alias: None, alias_py: None, serializer: Some( Model( ModelSerializer { class: Py( 0x0000578ef769e780, ), serializer: Fields( GeneralFieldsSerializer { fields: { "inputs": SerField { key_py: Py( 0x00007ea2d5f58c60, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2c2d141c0, ), ), serializer: List( ListSerializer { item_serializer: Union( UnionSerializer { choices: [ Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), ], name: "Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]", }, ), filter: SchemaFilter { include: None, exclude: None, }, name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]]", }, ), }, ), ), required: true, }, "despite": SerField { key_py: Py( 0x00007ea2c3240ba0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2c2d14200, ), ), serializer: List( ListSerializer { item_serializer: Union( UnionSerializer { choices: [ Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), ], name: "Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]", }, ), filter: SchemaFilter { include: None, exclude: None, }, name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]]", }, ), }, ), ), required: true, }, "outputs": SerField { key_py: Py( 0x00007ea2c2e9bea0, ), alias: None, alias_py: None, serializer: Some( List( ListSerializer { item_serializer: Union( UnionSerializer { choices: [ Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), ], name: "Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]", }, ), filter: SchemaFilter { include: None, exclude: None, }, name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]]", }, ), ), required: true, }, "name": SerField { key_py: Py( 0x00007ea2e081aa68, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2e0814230, ), ), serializer: Str( StrSerializer, ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 4, }, ), has_extra: false, root_model: false, name: "Procedure", }, ), ), required: true, }, "absent": SerField { key_py: Py( 0x00007ea2deb1c6c0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2e07110e0, ), ), serializer: Bool( BoolSerializer, ), }, ), ), required: true, }, "generic": SerField { key_py: Py( 0x00007ea2debabcc0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2e07110e0, ), ), serializer: Bool( BoolSerializer, ), }, ), ), required: true, }, "mandatory": SerField { key_py: Py( 0x00007ea2dfc269b0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2e07110e0, ), ), serializer: Bool( BoolSerializer, ), }, ), ), required: true, }, "universal": SerField { key_py: Py( 0x00007ea2df9ed070, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2e07110e0, ), ), serializer: Bool( BoolSerializer, ), }, ), ), required: true, }, "enactments": SerField { key_py: Py( 0x00007ea2d479eb70, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2c2da4730, ), ), serializer: Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), }, ), ), required: true, }, "enactments_despite": SerField { key_py: Py( 0x00007ea2c2ed2030, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2c35a4e60, ), ), serializer: Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: true, }, ), }, ), ), required: true, }, "name": SerField { key_py: Py( 0x00007ea2e081aa68, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007ea2e07274c0, ), ), serializer: Nullable( NullableSerializer { serializer: Str( StrSerializer, ), }, ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 8, }, ), has_extra: false, root_model: false, name: "Rule", }, ), definitions=[Model(ModelSerializer { class: Py(0x578ef7586080), serializer: Fields(GeneralFieldsSerializer { fields: {"generic": SerField { key_py: Py(0x7ea2debabcc0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "absent": SerField { key_py: Py(0x7ea2deb1c6c0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "exhibit": SerField { key_py: Py(0x7ea2c2e9a0d0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) }) })), required: true }, "to_effect": SerField { key_py: Py(0x7ea2c2d51630), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) }) })), required: true }, "name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 5 }), has_extra: false, root_model: false, name: "Evidence" }), Model(ModelSerializer { class: Py(0x578ef756f9e0), serializer: Fields(GeneralFieldsSerializer { fields: {"absent": SerField { key_py: Py(0x7ea2deb1c6c0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }, "predicate": SerField { key_py: Py(0x7ea2dfb1b3b0), alias: None, alias_py: None, serializer: Some(Union(UnionSerializer { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })], name: "Union[definition-ref, definition-ref]" })), required: true }, "generic": SerField { key_py: Py(0x7ea2debabcc0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "terms": SerField { key_py: Py(0x7ea2de7547b0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2c2d37e00)), serializer: List(ListSerializer { item_serializer: Union(UnionSerializer { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })], name: "Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]" }), filter: SchemaFilter { include: None, exclude: None }, name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref, definition-ref, definition-ref]]" }) })), required: true }, "standard_of_proof": SerField { key_py: Py(0x7ea2c2d25df0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 6 }), has_extra: false, root_model: false, name: "Fact" }), Model(ModelSerializer { class: Py(0x578ef67d3c00), serializer: Fields(GeneralFieldsSerializer { fields: {"exact": SerField { key_py: Py(0x7ea2dfb975a0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }, "prefix": SerField { key_py: Py(0x7ea2e07d1300), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }, "suffix": SerField { key_py: Py(0x7ea2e07dd240), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "TextQuoteSelector" }), Model(ModelSerializer { class: Py(0x578ef67d7490), serializer: Fields(GeneralFieldsSerializer { fields: {"start": SerField { key_py: Py(0x7ea2e081c3c8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e080ef28)), serializer: Int(IntSerializer) })), required: true }, "end": SerField { key_py: Py(0x7ea2e0818a48), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Int(IntSerializer) }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "TextPositionSelector" }), Model(ModelSerializer { class: Py(0x578ef7584040), serializer: Fields(GeneralFieldsSerializer { fields: {"pleading": SerField { key_py: Py(0x7ea2c2d51970), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) }) })), required: true }, "fact": SerField { key_py: Py(0x7ea2d44c0600), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }, "absent": SerField { key_py: Py(0x7ea2deb1c6c0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }, "generic": SerField { key_py: Py(0x7ea2debabcc0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 5 }), has_extra: false, root_model: false, name: "Allegation" }), Model(ModelSerializer { class: Py(0x578ef68f84a0), serializer: Fields(GeneralFieldsSerializer { fields: {"passages": SerField { key_py: Py(0x7ea2d46720b0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d4765580)), serializer: List(ListSerializer { item_serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), filter: SchemaFilter { include: None, exclude: None }, name: "list[definition-ref]" }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 1 }), has_extra: false, root_model: false, name: "EnactmentGroup" }), Model(ModelSerializer { class: Py(0x578ef6927810), serializer: Fields(GeneralFieldsSerializer { fields: {"content": SerField { key_py: Py(0x7ea2dfb24f00), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "truth": SerField { key_py: Py(0x7ea2dfc2da40), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110c0)), serializer: Nullable(NullableSerializer { serializer: Bool(BoolSerializer) }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "Predicate" }), Model(ModelSerializer { class: Py(0x578ef752dcc0), serializer: Fields(GeneralFieldsSerializer { fields: {"content": SerField { key_py: Py(0x7ea2dfb24f00), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "truth": SerField { key_py: Py(0x7ea2dfc2da40), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110c0)), serializer: Nullable(NullableSerializer { serializer: Bool(BoolSerializer) }) })), required: true }, "quantity_range": SerField { key_py: Py(0x7ea2d4622af0), alias: None, alias_py: None, serializer: Some(Union(UnionSerializer { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })], name: "Union[definition-ref, definition-ref, definition-ref]" })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "Comparison" }), Model(ModelSerializer { class: Py(0x578ef5e5cfc0), serializer: Fields(GeneralFieldsSerializer { fields: {"target_uri": SerField { key_py: Py(0x7ea2d47a5470), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "target_node": SerField { key_py: Py(0x7ea2de752f30), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Int(IntSerializer) }) })), required: true }, "reference_text": SerField { key_py: Py(0x7ea2d47a53f0), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "target_url": SerField { key_py: Py(0x7ea2d47a5430), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 4 }), has_extra: false, root_model: false, name: "CrossReference" }), Model(ModelSerializer { class: Py(0x578ef75856c0), serializer: Fields(GeneralFieldsSerializer { fields: {"statement_attribution": SerField { key_py: Py(0x7ea2c2d510b0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) }) })), required: true }, "name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }, "generic": SerField { key_py: Py(0x7ea2debabcc0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "form": SerField { key_py: Py(0x7ea2de307960), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }, "absent": SerField { key_py: Py(0x7ea2deb1c6c0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "offered_by": SerField { key_py: Py(0x7ea2c2d34db0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }, "statement": SerField { key_py: Py(0x7ea2e081c3f8), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 7 }), has_extra: false, root_model: false, name: "Exhibit" }), Model(ModelSerializer { class: Py(0x578ef69eabd0), serializer: Fields(GeneralFieldsSerializer { fields: {"sign": SerField { key_py: Py(0x7ea2dfc1aca0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d463e760)), serializer: Str(StrSerializer) })), required: true }, "include_negatives": SerField { key_py: Py(0x7ea2d4623eb0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Bool(BoolSerializer) }) })), required: true }, "quantity": SerField { key_py: Py(0x7ea2d4623630), alias: None, alias_py: None, serializer: Some(Date(DateSerializer)), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "DateRange" }), Model(ModelSerializer { class: Py(0x578ef7518bb0), serializer: Fields(GeneralFieldsSerializer { fields: {"include_negatives": SerField { key_py: Py(0x7ea2d4623eb0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Bool(BoolSerializer) }) })), required: true }, "quantity_units": SerField { key_py: Py(0x7ea2d4623770), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "quantity_magnitude": SerField { key_py: Py(0x7ea2d46237b0), alias: None, alias_py: None, serializer: Some(Decimal(DecimalSerializer)), required: true }, "sign": SerField { key_py: Py(0x7ea2dfc1aca0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d463e760)), serializer: Str(StrSerializer) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 4 }), has_extra: false, root_model: false, name: "UnitRange" }), Model(ModelSerializer { class: Py(0x578ef752c3a0), serializer: Fields(GeneralFieldsSerializer { fields: {"include_negatives": SerField { key_py: Py(0x7ea2d4623eb0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Bool(BoolSerializer) }) })), required: true }, "sign": SerField { key_py: Py(0x7ea2dfc1aca0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d463e760)), serializer: Str(StrSerializer) })), required: true }, "quantity": SerField { key_py: Py(0x7ea2d4623630), alias: None, alias_py: None, serializer: Some(Decimal(DecimalSerializer)), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "DecimalRange" }), Model(ModelSerializer { class: Py(0x578ef68a7730), serializer: Fields(GeneralFieldsSerializer { fields: {"content": SerField { key_py: Py(0x7ea2dfb24f00), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "id": SerField { key_py: Py(0x7ea2e08197d0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Int(IntSerializer) }) })), required: true }, "url": SerField { key_py: Py(0x7ea2df904180), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 3 }), has_extra: false, root_model: false, name: "TextVersion" }), Model(ModelSerializer { class: Py(0x578ef68ae500), serializer: Fields(GeneralFieldsSerializer { fields: {"name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }, "citations": SerField { key_py: Py(0x7ea2df771130), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d4789780)), serializer: List(ListSerializer { item_serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), filter: SchemaFilter { include: None, exclude: None }, name: "list[definition-ref]" }) })), required: true }, "heading": SerField { key_py: Py(0x7ea2dfc9b600), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }, "first_published": SerField { key_py: Py(0x7ea2d47a4f30), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Date(DateSerializer) }) })), required: true }, "node": SerField { key_py: Py(0x7ea2dfb25260), alias: None, alias_py: None, serializer: Some(Str(StrSerializer)), required: true }, "end_date": SerField { key_py: Py(0x7ea2dd70c270), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Date(DateSerializer) }) })), required: true }, "children": SerField { key_py: Py(0x7ea2dfd957f0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d4777340)), serializer: Union(UnionSerializer { choices: [List(ListSerializer { item_serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), filter: SchemaFilter { include: None, exclude: None }, name: "list[definition-ref]" }), List(ListSerializer { item_serializer: Str(StrSerializer), filter: SchemaFilter { include: None, exclude: None }, name: "list[str]" })], name: "Union[list[definition-ref], list[str]]" }) })), required: true }, "anchors": SerField { key_py: Py(0x7ea2df828e70), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d478b2c0)), serializer: Union(UnionSerializer { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), List(ListSerializer { item_serializer: Union(UnionSerializer { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })], name: "Union[definition-ref, definition-ref]" }), filter: SchemaFilter { include: None, exclude: None }, name: "list[Union[definition-ref, definition-ref]]" })], name: "Union[definition-ref, list[Union[definition-ref, definition-ref]]]" }) })), required: true }, "earliest_in_db": SerField { key_py: Py(0x7ea2d47a4ef0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Date(DateSerializer) }) })), required: true }, "text_version": SerField { key_py: Py(0x7ea2d47a4f70), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) }) })), required: true }, "start_date": SerField { key_py: Py(0x7ea2d47a52b0), alias: None, alias_py: None, serializer: Some(Date(DateSerializer)), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 11 }), has_extra: false, root_model: false, name: "Enactment" }), Model(ModelSerializer { class: Py(0x578ef68c4930), serializer: Fields(GeneralFieldsSerializer { fields: {"enactment": SerField { key_py: Py(0x7ea2d479ffb0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }, "selection": SerField { key_py: Py(0x7ea2d467e330), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d589c0f0)), serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "EnactmentPassage" }), Model(ModelSerializer { class: Py(0x578ef7586460), serializer: Fields(GeneralFieldsSerializer { fields: {"name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07274c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true }, "absent": SerField { key_py: Py(0x7ea2deb1c6c0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "generic": SerField { key_py: Py(0x7ea2debabcc0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "filer": SerField { key_py: Py(0x7ea2c2e9bdb0), alias: None, alias_py: None, serializer: Some(Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 4 }), has_extra: false, root_model: false, name: "Pleading" }), Model(ModelSerializer { class: Py(0x578ef6916a50), serializer: Fields(GeneralFieldsSerializer { fields: {"generic": SerField { key_py: Py(0x7ea2debabcc0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110c0)), serializer: Bool(BoolSerializer) })), required: true }, "absent": SerField { key_py: Py(0x7ea2deb1c6c0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "plural": SerField { key_py: Py(0x7ea2dfcc6460), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e07110e0)), serializer: Bool(BoolSerializer) })), required: true }, "name": SerField { key_py: Py(0x7ea2e081aa68), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2e0814230)), serializer: Str(StrSerializer) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 4 }), has_extra: false, root_model: false, name: "Entity" }), Model(ModelSerializer { class: Py(0x578ef67da0d0), serializer: Fields(GeneralFieldsSerializer { fields: {"positions": SerField { key_py: Py(0x7ea2dfb31b30), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d473b4c0)), serializer: List(ListSerializer { item_serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), filter: SchemaFilter { include: None, exclude: None }, name: "list[definition-ref]" }) })), required: true }, "quotes": SerField { key_py: Py(0x7ea2df7b13e0), alias: None, alias_py: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7ea2d5814500)), serializer: List(ListSerializer { item_serializer: Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), filter: SchemaFilter { include: None, exclude: None }, name: "list[definition-ref]" }) })), required: true }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 2 }), has_extra: false, root_model: false, name: "TextPositionSet" })])
The pydantic-core SchemaSerializer used to dump instances of the model.
- __pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="Rule", validator=Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py( 0x00007ea2c2d012f0, ), path: LookupPath( [ S( "generic", Py( 0x00007ea2c2d01320, ), ), ], ), }, name_py: Py( 0x00007ea2debabcc0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2e07110e0, ), ), on_error: Raise, validator: Bool( BoolValidator { strict: false, }, ), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py( 0x00007ea2c2d01350, ), path: LookupPath( [ S( "absent", Py( 0x00007ea2c2d01380, ), ), ], ), }, name_py: Py( 0x00007ea2deb1c6c0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2e07110e0, ), ), on_error: Raise, validator: Bool( BoolValidator { strict: false, }, ), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "procedure", lookup_key: Simple { key: "procedure", py_key: Py( 0x00007ea2c2d90bf0, ), path: LookupPath( [ S( "procedure", Py( 0x00007ea2c2d908f0, ), ), ], ), }, name_py: Py( 0x00007ea2de97adb0, ), validator: Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "outputs", lookup_key: Simple { key: "outputs", py_key: Py( 0x00007ea2c2d013b0, ), path: LookupPath( [ S( "outputs", Py( 0x00007ea2c2d013e0, ), ), ], ), }, name_py: Py( 0x00007ea2c2e9bea0, ), validator: FunctionBefore( FunctionBeforeValidator { validator: List( ListValidator { strict: false, item_validator: Some( Union( UnionValidator { mode: Smart, choices: [ ( DefinitionRef( DefinitionRefValidator { definition: "Fact", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Allegation", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Pleading", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Exhibit", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Evidence", }, ), None, ), ], custom_error: None, strict: false, name: "union[Fact,Allegation,Pleading,Exhibit,Evidence]", }, ), ), min_length: None, max_length: None, name: OnceLock( "list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]", ), fail_fast: false, }, ), func: Py( 0x00007ea2c3649540, ), config: Py( 0x00007ea2c2d80640, ), name: "function-before[_validate_outputs(), list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]]", field_name: None, info_arg: false, }, ), frozen: false, }, Field { name: "inputs", lookup_key: Simple { key: "inputs", py_key: Py( 0x00007ea2c2d01410, ), path: LookupPath( [ S( "inputs", Py( 0x00007ea2c2d01440, ), ), ], ), }, name_py: Py( 0x00007ea2d5f58c60, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2c2d141c0, ), ), on_error: Raise, validator: FunctionBefore( FunctionBeforeValidator { validator: List( ListValidator { strict: false, item_validator: Some( Union( UnionValidator { mode: Smart, choices: [ ( DefinitionRef( DefinitionRefValidator { definition: "Fact", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Allegation", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Pleading", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Exhibit", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Evidence", }, ), None, ), ], custom_error: None, strict: false, name: "union[Fact,Allegation,Pleading,Exhibit,Evidence]", }, ), ), min_length: None, max_length: None, name: OnceLock( "list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]", ), fail_fast: false, }, ), func: Py( 0x00007ea2c38396c0, ), config: Py( 0x00007ea2c2d80640, ), name: "function-before[_validate_factor_groups(), list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]]", field_name: None, info_arg: false, }, ), validate_default: false, copy_default: true, name: "default[function-before[_validate_factor_groups(), list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]]]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "despite", lookup_key: Simple { key: "despite", py_key: Py( 0x00007ea2c2d01470, ), path: LookupPath( [ S( "despite", Py( 0x00007ea2c2d014a0, ), ), ], ), }, name_py: Py( 0x00007ea2c3240ba0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2c2d14200, ), ), on_error: Raise, validator: FunctionBefore( FunctionBeforeValidator { validator: List( ListValidator { strict: false, item_validator: Some( Union( UnionValidator { mode: Smart, choices: [ ( DefinitionRef( DefinitionRefValidator { definition: "Fact", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Allegation", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Pleading", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Exhibit", }, ), None, ), ( DefinitionRef( DefinitionRefValidator { definition: "Evidence", }, ), None, ), ], custom_error: None, strict: false, name: "union[Fact,Allegation,Pleading,Exhibit,Evidence]", }, ), ), min_length: None, max_length: None, name: OnceLock( "list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]", ), fail_fast: false, }, ), func: Py( 0x00007ea2c38396c0, ), config: Py( 0x00007ea2c2d80640, ), name: "function-before[_validate_factor_groups(), list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]]", field_name: None, info_arg: false, }, ), validate_default: false, copy_default: true, name: "default[function-before[_validate_factor_groups(), list[union[Fact,Allegation,Pleading,Exhibit,Evidence]]]]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py( 0x00007ea2c2d014d0, ), path: LookupPath( [ S( "name", Py( 0x00007ea2c2d01500, ), ), ], ), }, name_py: Py( 0x00007ea2e081aa68, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2e0814230, ), ), on_error: Raise, validator: Str( StrValidator { strict: false, coerce_numbers_to_str: false, }, ), validate_default: false, copy_default: false, name: "default[str]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, ], model_name: "Procedure", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000578ef769e780, ), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007ea2d5547da0, ), name: "Procedure", }, ), frozen: false, }, Field { name: "enactments", lookup_key: Simple { key: "enactments", py_key: Py( 0x00007ea2c2d910b0, ), path: LookupPath( [ S( "enactments", Py( 0x00007ea2c2d911f0, ), ), ], ), }, name_py: Py( 0x00007ea2d479eb70, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2c2da4730, ), ), on_error: Raise, validator: FunctionAfter( FunctionAfterValidator { validator: FunctionBefore( FunctionBeforeValidator { validator: DefinitionRef( DefinitionRefValidator { definition: "EnactmentGroup", }, ), func: Py( 0x00007ea2c3a568c0, ), config: Py( 0x00007ea2c2d7b140, ), name: "function-before[validate_enactment_groups(), EnactmentGroup]", field_name: None, info_arg: false, }, ), func: Py( 0x00007ea2c2d93f00, ), config: Py( 0x00007ea2c2d7b140, ), name: "function-after[select_enactment_text(), function-before[validate_enactment_groups(), EnactmentGroup]]", field_name: None, info_arg: false, }, ), validate_default: false, copy_default: true, name: "default[function-after[select_enactment_text(), function-before[validate_enactment_groups(), EnactmentGroup]]]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "enactments_despite", lookup_key: Simple { key: "enactments_despite", py_key: Py( 0x00007ea2c2d912b0, ), path: LookupPath( [ S( "enactments_despite", Py( 0x00007ea2c2d90fb0, ), ), ], ), }, name_py: Py( 0x00007ea2c2ed2030, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2c35a4e60, ), ), on_error: Raise, validator: FunctionAfter( FunctionAfterValidator { validator: FunctionBefore( FunctionBeforeValidator { validator: DefinitionRef( DefinitionRefValidator { definition: "EnactmentGroup", }, ), func: Py( 0x00007ea2c3a568c0, ), config: Py( 0x00007ea2c2d7b140, ), name: "function-before[validate_enactment_groups(), EnactmentGroup]", field_name: None, info_arg: false, }, ), func: Py( 0x00007ea2c2d93f00, ), config: Py( 0x00007ea2c2d7b140, ), name: "function-after[select_enactment_text(), function-before[validate_enactment_groups(), EnactmentGroup]]", field_name: None, info_arg: false, }, ), validate_default: false, copy_default: true, name: "default[function-after[select_enactment_text(), function-before[validate_enactment_groups(), EnactmentGroup]]]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "mandatory", lookup_key: Simple { key: "mandatory", py_key: Py( 0x00007ea2c2d90db0, ), path: LookupPath( [ S( "mandatory", Py( 0x00007ea2c2d91330, ), ), ], ), }, name_py: Py( 0x00007ea2dfc269b0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2e07110e0, ), ), on_error: Raise, validator: Bool( BoolValidator { strict: false, }, ), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "universal", lookup_key: Simple { key: "universal", py_key: Py( 0x00007ea2c2d910f0, ), path: LookupPath( [ S( "universal", Py( 0x00007ea2c2d90ff0, ), ), ], ), }, name_py: Py( 0x00007ea2df9ed070, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2e07110e0, ), ), on_error: Raise, validator: Bool( BoolValidator { strict: false, }, ), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py( 0x00007ea2c2d01530, ), path: LookupPath( [ S( "name", Py( 0x00007ea2c2d01560, ), ), ], ), }, name_py: Py( 0x00007ea2e081aa68, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007ea2e07274c0, ), ), on_error: Raise, validator: Nullable( NullableValidator { validator: Str( StrValidator { strict: false, coerce_numbers_to_str: false, }, ), name: "nullable[str]", }, ), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py( 0x00007ea2d5547da0, ), }, ), frozen: false, }, ], model_name: "Rule", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000578ef76ff160, ), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007ea2d5547da0, ), name: "Rule", }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py(0x7ea2c2d00690), path: LookupPath([S("generic", Py(0x7ea2c2d006c0))]) }, name_py: Py(0x7ea2debabcc0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py(0x7ea2c2d00570), path: LookupPath([S("absent", Py(0x7ea2c2d00480))]) }, name_py: Py(0x7ea2deb1c6c0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "filer", lookup_key: Simple { key: "filer", py_key: Py(0x7ea2c2d005d0), path: LookupPath([S("filer", Py(0x7ea2c2d00780))]) }, name_py: Py(0x7ea2c2e9bdb0), validator: DefinitionRef(DefinitionRefValidator { definition: "Entity" }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d007b0), path: LookupPath([S("name", Py(0x7ea2c2d007e0))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Pleading", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef7586460), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Pleading" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py(0x7ea2c2d00810), path: LookupPath([S("generic", Py(0x7ea2c2d00840))]) }, name_py: Py(0x7ea2debabcc0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py(0x7ea2c2d00870), path: LookupPath([S("absent", Py(0x7ea2c2d008a0))]) }, name_py: Py(0x7ea2deb1c6c0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "offered_by", lookup_key: Simple { key: "offered_by", py_key: Py(0x7ea2c2ed2fb0), path: LookupPath([S("offered_by", Py(0x7ea2c2ed31b0))]) }, name_py: Py(0x7ea2c2d34db0), validator: DefinitionRef(DefinitionRefValidator { definition: "Entity" }), frozen: false }, Field { name: "form", lookup_key: Simple { key: "form", py_key: Py(0x7ea2c2d008d0), path: LookupPath([S("form", Py(0x7ea2c2d00900))]) }, name_py: Py(0x7ea2de307960), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "statement", lookup_key: Simple { key: "statement", py_key: Py(0x7ea2c2ed2f70), path: LookupPath([S("statement", Py(0x7ea2c2ed2e70))]) }, name_py: Py(0x7ea2e081c3f8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: DefinitionRef(DefinitionRefValidator { definition: "Fact" }), name: "nullable[...]" }), validate_default: false, copy_default: false, name: "default[nullable[...]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "statement_attribution", lookup_key: Simple { key: "statement_attribution", py_key: Py(0x7ea2c2ed3830), path: LookupPath([S("statement_attribution", Py(0x7ea2c2ed2ff0))]) }, name_py: Py(0x7ea2c2d510b0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: DefinitionRef(DefinitionRefValidator { definition: "Entity" }), name: "nullable[Entity]" }), validate_default: false, copy_default: false, name: "default[nullable[Entity]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d00930), path: LookupPath([S("name", Py(0x7ea2c2d00960))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Exhibit", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef75856c0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Exhibit" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py(0x7ea2c2d00c90), path: LookupPath([S("generic", Py(0x7ea2c2d00cc0))]) }, name_py: Py(0x7ea2debabcc0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py(0x7ea2c2d00cf0), path: LookupPath([S("absent", Py(0x7ea2c2d00d20))]) }, name_py: Py(0x7ea2deb1c6c0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "fact", lookup_key: Simple { key: "fact", py_key: Py(0x7ea2c2d00d50), path: LookupPath([S("fact", Py(0x7ea2c2d00d80))]) }, name_py: Py(0x7ea2d44c0600), validator: DefinitionRef(DefinitionRefValidator { definition: "Fact" }), frozen: false }, Field { name: "pleading", lookup_key: Simple { key: "pleading", py_key: Py(0x7ea2c2d92730), path: LookupPath([S("pleading", Py(0x7ea2c2d90830))]) }, name_py: Py(0x7ea2c2d51970), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: DefinitionRef(DefinitionRefValidator { definition: "Pleading" }), name: "nullable[Pleading]" }), validate_default: false, copy_default: false, name: "default[nullable[Pleading]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d00db0), path: LookupPath([S("name", Py(0x7ea2c2d00de0))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Allegation", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef7584040), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Allegation" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "target_uri", lookup_key: Simple { key: "target_uri", py_key: Py(0x7ea2c2d90270), path: LookupPath([S("target_uri", Py(0x7ea2c2d902f0))]) }, name_py: Py(0x7ea2d47a5470), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "target_url", lookup_key: Simple { key: "target_url", py_key: Py(0x7ea2c2d93eb0), path: LookupPath([S("target_url", Py(0x7ea2c2d93e70))]) }, name_py: Py(0x7ea2d47a5430), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "reference_text", lookup_key: Simple { key: "reference_text", py_key: Py(0x7ea2c2d909b0), path: LookupPath([S("reference_text", Py(0x7ea2c2d90970))]) }, name_py: Py(0x7ea2d47a53f0), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "target_node", lookup_key: Simple { key: "target_node", py_key: Py(0x7ea2c2d90b70), path: LookupPath([S("target_node", Py(0x7ea2c2d908b0))]) }, name_py: Py(0x7ea2de752f30), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Int(IntValidator { strict: false }), name: "nullable[int]" }), validate_default: false, copy_default: false, name: "default[nullable[int]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "CrossReference", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef5e5cfc0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "CrossReference" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "positions", lookup_key: Simple { key: "positions", py_key: Py(0x7ea2c2d90670), path: LookupPath([S("positions", Py(0x7ea2c2d904b0))]) }, name_py: Py(0x7ea2dfb31b30), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d473b4c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: FunctionBefore(FunctionBeforeValidator { validator: List(ListValidator { strict: false, item_validator: Some(DefinitionRef(DefinitionRefValidator { definition: "function-after[start_less_than_end(), TextPositionSelector]" })), min_length: None, max_length: None, name: OnceLock(<uninit>), fail_fast: false }), func: Py(0x7ea2d4739a40), config: Py(0x7ea2c2d53080), name: "function-before[is_sequence(), list[...]]", field_name: None, info_arg: false }), func: Py(0x7ea2d4739a00), config: Py(0x7ea2c2d53080), name: "function-after[order_of_selectors(), function-before[is_sequence(), list[...]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: true, name: "default[function-after[order_of_selectors(), function-before[is_sequence(), list[...]]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "quotes", lookup_key: Simple { key: "quotes", py_key: Py(0x7ea2c2d00f30), path: LookupPath([S("quotes", Py(0x7ea2c2d00f60))]) }, name_py: Py(0x7ea2df7b13e0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d5814500)), on_error: Raise, validator: FunctionBefore(FunctionBeforeValidator { validator: List(ListValidator { strict: false, item_validator: Some(DefinitionRef(DefinitionRefValidator { definition: "TextQuoteSelector" })), min_length: None, max_length: None, name: OnceLock(<uninit>), fail_fast: false }), func: Py(0x7ea2d4739a80), config: Py(0x7ea2c2d53080), name: "function-before[quote_selectors_are_in_list(), list[...]]", field_name: None, info_arg: false }), validate_default: false, copy_default: true, name: "default[function-before[quote_selectors_are_in_list(), list[...]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "TextPositionSet", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef67da0d0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "TextPositionSet" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "exact", lookup_key: Simple { key: "exact", py_key: Py(0x7ea2c2d01050), path: LookupPath([S("exact", Py(0x7ea2c2d01080))]) }, name_py: Py(0x7ea2dfb975a0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: FunctionBefore(FunctionBeforeValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2d4744780), config: Py(0x7ea2c2d52340), name: "function-before[no_none_for_prefix(), str]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-before[no_none_for_prefix(), str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "prefix", lookup_key: Simple { key: "prefix", py_key: Py(0x7ea2c2d010b0), path: LookupPath([S("prefix", Py(0x7ea2c2d010e0))]) }, name_py: Py(0x7ea2e07d1300), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: FunctionBefore(FunctionBeforeValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2d4744780), config: Py(0x7ea2c2d52340), name: "function-before[no_none_for_prefix(), str]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-before[no_none_for_prefix(), str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "suffix", lookup_key: Simple { key: "suffix", py_key: Py(0x7ea2c2d01110), path: LookupPath([S("suffix", Py(0x7ea2c2d01140))]) }, name_py: Py(0x7ea2e07dd240), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: FunctionBefore(FunctionBeforeValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2d4744780), config: Py(0x7ea2c2d52340), name: "function-before[no_none_for_prefix(), str]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-before[no_none_for_prefix(), str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "TextQuoteSelector", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef67d3c00), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "TextQuoteSelector" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "content", lookup_key: Simple { key: "content", py_key: Py(0x7ea2c2d00e10), path: LookupPath([S("content", Py(0x7ea2c2d00e40))]) }, name_py: Py(0x7ea2dfb24f00), validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2d4777700), config: Py(0x7ea2c2d535c0), name: "function-after[content_exists(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "url", lookup_key: Simple { key: "url", py_key: Py(0x7ea2c2d00e70), path: LookupPath([S("url", Py(0x7ea2c2d00ea0))]) }, name_py: Py(0x7ea2df904180), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "id", lookup_key: Simple { key: "id", py_key: Py(0x7ea2c2d00ed0), path: LookupPath([S("id", Py(0x7ea2c2d00f00))]) }, name_py: Py(0x7ea2e08197d0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Int(IntValidator { strict: false }), name: "nullable[int]" }), validate_default: false, copy_default: false, name: "default[nullable[int]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "TextVersion", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef68a7730), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "TextVersion" }), Model(ModelValidator { revalidate: Never, validator: FunctionBefore(FunctionBeforeValidator { validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py(0x7ea2c2d00990), path: LookupPath([S("generic", Py(0x7ea2c2d009c0))]) }, name_py: Py(0x7ea2debabcc0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py(0x7ea2c2d009f0), path: LookupPath([S("absent", Py(0x7ea2c2d00a20))]) }, name_py: Py(0x7ea2deb1c6c0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "exhibit", lookup_key: Simple { key: "exhibit", py_key: Py(0x7ea2c2d00a50), path: LookupPath([S("exhibit", Py(0x7ea2c2d00a80))]) }, name_py: Py(0x7ea2c2e9a0d0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: DefinitionRef(DefinitionRefValidator { definition: "Exhibit" }), name: "nullable[Exhibit]" }), validate_default: false, copy_default: false, name: "default[nullable[Exhibit]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "to_effect", lookup_key: Simple { key: "to_effect", py_key: Py(0x7ea2c2d38070), path: LookupPath([S("to_effect", Py(0x7ea2c2d3b7f0))]) }, name_py: Py(0x7ea2c2d51630), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: DefinitionRef(DefinitionRefValidator { definition: "Fact" }), name: "nullable[...]" }), validate_default: false, copy_default: false, name: "default[nullable[...]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d00ab0), path: LookupPath([S("name", Py(0x7ea2c2d00ae0))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Evidence", extra_behavior: Forbid, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), func: Py(0x7ea2c2d37080), config: Py(0x7ea2c2d78a40), name: "function-before[check_type_field(), model-fields]", field_name: None, info_arg: false }), class: Py(0x578ef7586080), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Evidence" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "sign", lookup_key: Simple { key: "sign", py_key: Py(0x7ea2c2d00450), path: LookupPath([S("sign", Py(0x7ea2c2d00510))]) }, name_py: Py(0x7ea2dfc1aca0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d463e760)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2d42cca00), config: Py(0x7ea2c2d7a000), name: "function-after[check_sign(), str]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[check_sign(), str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "include_negatives", lookup_key: Simple { key: "include_negatives", py_key: Py(0x7ea2c2ef19f0), path: LookupPath([S("include_negatives", Py(0x7ea2c2ef2030))]) }, name_py: Py(0x7ea2d4623eb0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Bool(BoolValidator { strict: false }), name: "nullable[bool]" }), validate_default: false, copy_default: false, name: "default[nullable[bool]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "quantity", lookup_key: Simple { key: "quantity", py_key: Py(0x7ea2c2ef0df0), path: LookupPath([S("quantity", Py(0x7ea2c2ef1ab0))]) }, name_py: Py(0x7ea2d4623630), validator: Date(DateValidator { strict: false, constraints: None }), frozen: false }], model_name: "DateRange", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef69eabd0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "DateRange" }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "start", lookup_key: Simple { key: "start", py_key: Py(0x7ea2c2d00f90), path: LookupPath([S("start", Py(0x7ea2c2d00fc0))]) }, name_py: Py(0x7ea2e081c3c8), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e080ef28)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Int(IntValidator { strict: false }), func: Py(0x7ea2d473b100), config: Py(0x7ea2c2d52900), name: "function-after[start_not_negative(), int]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[start_not_negative(), int]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "end", lookup_key: Simple { key: "end", py_key: Py(0x7ea2c2d00ff0), path: LookupPath([S("end", Py(0x7ea2c2d01020))]) }, name_py: Py(0x7ea2e0818a48), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Int(IntValidator { strict: false }), name: "nullable[int]" }), validate_default: false, copy_default: false, name: "default[nullable[int]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "TextPositionSelector", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef67d7490), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "TextPositionSelector" }), func: Py(0x7ea2d470a2a0), config: Py(0x7ea2c2d90500), name: "function-after[start_less_than_end(), TextPositionSelector]", field_name: None, info_arg: false }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "enactment", lookup_key: Simple { key: "enactment", py_key: Py(0x7ea2c2d90bb0), path: LookupPath([S("enactment", Py(0x7ea2c2d90ab0))]) }, name_py: Py(0x7ea2d479ffb0), validator: DefinitionRef(DefinitionRefValidator { definition: "..." }), frozen: false }, Field { name: "selection", lookup_key: Simple { key: "selection", py_key: Py(0x7ea2c2d90cb0), path: LookupPath([S("selection", Py(0x7ea2c2d90d30))]) }, name_py: Py(0x7ea2d467e330), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d589c0f0)), on_error: Raise, validator: DefinitionRef(DefinitionRefValidator { definition: "TextPositionSet" }), validate_default: false, copy_default: true, name: "default[TextPositionSet]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "EnactmentPassage", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef68c4930), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "EnactmentPassage" }), Model(ModelValidator { revalidate: Never, validator: FunctionBefore(FunctionBeforeValidator { validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "content", lookup_key: Simple { key: "content", py_key: Py(0x7ea2c2d00210), path: LookupPath([S("content", Py(0x7ea2c2d004b0))]) }, name_py: Py(0x7ea2dfb24f00), validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2c3a1ce00), config: Py(0x7ea2c2d7b740), name: "function-after[content_ends_with_was(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "truth", lookup_key: Simple { key: "truth", py_key: Py(0x7ea2c2d000f0), path: LookupPath([S("truth", Py(0x7ea2c2d002d0))]) }, name_py: Py(0x7ea2dfc2da40), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Bool(BoolValidator { strict: false }), name: "nullable[bool]" }), validate_default: false, copy_default: false, name: "default[nullable[bool]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "quantity_range", lookup_key: Simple { key: "quantity_range", py_key: Py(0x7ea2c2ef1b30), path: LookupPath([S("quantity_range", Py(0x7ea2c2ef1b70))]) }, name_py: Py(0x7ea2d4622af0), validator: Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None)], custom_error: None, strict: false, name: "union[...,...,...]" }), frozen: false }], model_name: "Comparison", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), func: Py(0x7ea2c3b8cf40), config: Py(0x7ea2c2d7b740), name: "function-before[set_quantity_range(), model-fields]", field_name: None, info_arg: false }), class: Py(0x578ef752dcc0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Comparison" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "node", lookup_key: Simple { key: "node", py_key: Py(0x7ea2c2d01170), path: LookupPath([S("node", Py(0x7ea2c2d011a0))]) }, name_py: Py(0x7ea2dfb25260), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "start_date", lookup_key: Simple { key: "start_date", py_key: Py(0x7ea2c2d90a30), path: LookupPath([S("start_date", Py(0x7ea2c2d90930))]) }, name_py: Py(0x7ea2d47a52b0), validator: Date(DateValidator { strict: false, constraints: None }), frozen: false }, Field { name: "heading", lookup_key: Simple { key: "heading", py_key: Py(0x7ea2c2d011d0), path: LookupPath([S("heading", Py(0x7ea2c2d01200))]) }, name_py: Py(0x7ea2dfc9b600), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), validate_default: false, copy_default: false, name: "default[str]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "text_version", lookup_key: Simple { key: "text_version", py_key: Py(0x7ea2c2d90470), path: LookupPath([S("text_version", Py(0x7ea2c2d907b0))]) }, name_py: Py(0x7ea2d47a4f70), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: FunctionBefore(FunctionBeforeValidator { validator: Nullable(NullableValidator { validator: DefinitionRef(DefinitionRefValidator { definition: "TextVersion" }), name: "nullable[TextVersion]" }), func: Py(0x7ea2d4776680), config: Py(0x7ea2c2d50cc0), name: "function-before[make_text_version_from_str(), nullable[TextVersion]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-before[make_text_version_from_str(), nullable[TextVersion]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "end_date", lookup_key: Simple { key: "end_date", py_key: Py(0x7ea2c2d909f0), path: LookupPath([S("end_date", Py(0x7ea2c2d93e30))]) }, name_py: Py(0x7ea2dd70c270), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Date(DateValidator { strict: false, constraints: None }), name: "nullable[date]" }), validate_default: false, copy_default: false, name: "default[nullable[date]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "first_published", lookup_key: Simple { key: "first_published", py_key: Py(0x7ea2c2d90870), path: LookupPath([S("first_published", Py(0x7ea2c2d907f0))]) }, name_py: Py(0x7ea2d47a4f30), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Date(DateValidator { strict: false, constraints: None }), name: "nullable[date]" }), validate_default: false, copy_default: false, name: "default[nullable[date]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "earliest_in_db", lookup_key: Simple { key: "earliest_in_db", py_key: Py(0x7ea2c2d90430), path: LookupPath([S("earliest_in_db", Py(0x7ea2c2d93df0))]) }, name_py: Py(0x7ea2d47a4ef0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Date(DateValidator { strict: false, constraints: None }), name: "nullable[date]" }), validate_default: false, copy_default: false, name: "default[nullable[date]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "anchors", lookup_key: Simple { key: "anchors", py_key: Py(0x7ea2c2d01230), path: LookupPath([S("anchors", Py(0x7ea2c2d01260))]) }, name_py: Py(0x7ea2df828e70), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d478b2c0)), on_error: Raise, validator: Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "TextPositionSet" }), None), (List(ListValidator { strict: false, item_validator: Some(Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "function-after[start_less_than_end(), TextPositionSelector]" }), None), (DefinitionRef(DefinitionRefValidator { definition: "TextQuoteSelector" }), None)], custom_error: None, strict: false, name: "union[function-after[start_less_than_end(), TextPositionSelector],TextQuoteSelector]" })), min_length: None, max_length: None, name: OnceLock("list[union[function-after[start_less_than_end(), TextPositionSelector],TextQuoteSelector]]"), fail_fast: false }), None)], custom_error: None, strict: false, name: "union[TextPositionSet,list[union[function-after[start_less_than_end(), TextPositionSelector],TextQuoteSelector]]]" }), validate_default: false, copy_default: true, name: "default[union[TextPositionSet,list[union[function-after[start_less_than_end(), TextPositionSelector],TextQuoteSelector]]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "citations", lookup_key: Simple { key: "citations", py_key: Py(0x7ea2c2d90af0), path: LookupPath([S("citations", Py(0x7ea2c2d90c70))]) }, name_py: Py(0x7ea2df771130), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d4789780)), on_error: Raise, validator: List(ListValidator { strict: false, item_validator: Some(DefinitionRef(DefinitionRefValidator { definition: "CrossReference" })), min_length: None, max_length: None, name: OnceLock("list[CrossReference]"), fail_fast: false }), validate_default: false, copy_default: true, name: "default[list[CrossReference]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d01290), path: LookupPath([S("name", Py(0x7ea2c2d012c0))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), validate_default: false, copy_default: false, name: "default[str]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "children", lookup_key: Simple { key: "children", py_key: Py(0x7ea2c2d90a70), path: LookupPath([S("children", Py(0x7ea2c2d90cf0))]) }, name_py: Py(0x7ea2dfd957f0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d4777340)), on_error: Raise, validator: Union(UnionValidator { mode: Smart, choices: [(List(ListValidator { strict: false, item_validator: Some(DefinitionRef(DefinitionRefValidator { definition: "..." })), min_length: None, max_length: None, name: OnceLock(<uninit>), fail_fast: false }), None), (List(ListValidator { strict: false, item_validator: Some(Str(StrValidator { strict: false, coerce_numbers_to_str: false })), min_length: None, max_length: None, name: OnceLock("list[str]"), fail_fast: false }), None)], custom_error: None, strict: false, name: "union[list[...],list[str]]" }), validate_default: false, copy_default: true, name: "default[union[list[...],list[str]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Enactment", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef68ae500), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Enactment" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "content", lookup_key: Simple { key: "content", py_key: Py(0x7ea2c2d00600), path: LookupPath([S("content", Py(0x7ea2c2d00750))]) }, name_py: Py(0x7ea2dfb24f00), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "truth", lookup_key: Simple { key: "truth", py_key: Py(0x7ea2c2d002a0), path: LookupPath([S("truth", Py(0x7ea2c2d00360))]) }, name_py: Py(0x7ea2dfc2da40), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Bool(BoolValidator { strict: false }), name: "nullable[bool]" }), validate_default: false, copy_default: false, name: "default[nullable[bool]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Predicate", extra_behavior: Forbid, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef6927810), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Predicate" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "sign", lookup_key: Simple { key: "sign", py_key: Py(0x7ea2c2d006f0), path: LookupPath([S("sign", Py(0x7ea2c2d00720))]) }, name_py: Py(0x7ea2dfc1aca0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d463e760)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2c35a8f40), config: Py(0x7ea2c2d7aa40), name: "function-after[check_sign(), str]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[check_sign(), str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "include_negatives", lookup_key: Simple { key: "include_negatives", py_key: Py(0x7ea2c2ef1bb0), path: LookupPath([S("include_negatives", Py(0x7ea2c2ef1db0))]) }, name_py: Py(0x7ea2d4623eb0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Bool(BoolValidator { strict: false }), name: "nullable[bool]" }), validate_default: false, copy_default: false, name: "default[nullable[bool]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "quantity", lookup_key: Simple { key: "quantity", py_key: Py(0x7ea2c2ef1c30), path: LookupPath([S("quantity", Py(0x7ea2c2ef13f0))]) }, name_py: Py(0x7ea2d4623630), validator: Decimal(DecimalValidator { strict: false, allow_inf_nan: false, check_digits: false, multiple_of: None, le: None, lt: None, ge: None, gt: None, max_digits: None, decimal_places: None }), frozen: false }], model_name: "DecimalRange", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef752c3a0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "DecimalRange" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "sign", lookup_key: Simple { key: "sign", py_key: Py(0x7ea2c2d00660), path: LookupPath([S("sign", Py(0x7ea2c2d00270))]) }, name_py: Py(0x7ea2dfc1aca0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d463e760)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7ea2c3a6ed40), config: Py(0x7ea2c2d7a4c0), name: "function-after[check_sign(), str]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[check_sign(), str]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "include_negatives", lookup_key: Simple { key: "include_negatives", py_key: Py(0x7ea2c2ef1a30), path: LookupPath([S("include_negatives", Py(0x7ea2c2ef18f0))]) }, name_py: Py(0x7ea2d4623eb0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Bool(BoolValidator { strict: false }), name: "nullable[bool]" }), validate_default: false, copy_default: false, name: "default[nullable[bool]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "quantity_magnitude", lookup_key: Simple { key: "quantity_magnitude", py_key: Py(0x7ea2c2ef1130), path: LookupPath([S("quantity_magnitude", Py(0x7ea2c2ef0fb0))]) }, name_py: Py(0x7ea2d46237b0), validator: Decimal(DecimalValidator { strict: false, allow_inf_nan: false, check_digits: false, multiple_of: None, le: None, lt: None, ge: None, gt: None, max_digits: None, decimal_places: None }), frozen: false }, Field { name: "quantity_units", lookup_key: Simple { key: "quantity_units", py_key: Py(0x7ea2c2ef1170), path: LookupPath([S("quantity_units", Py(0x7ea2c2ef1cb0))]) }, name_py: Py(0x7ea2d4623770), validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }], model_name: "UnitRange", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef7518bb0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "UnitRange" }), Model(ModelValidator { revalidate: Never, validator: FunctionBefore(FunctionBeforeValidator { validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py(0x7ea2c2d00b10), path: LookupPath([S("generic", Py(0x7ea2c2d00b40))]) }, name_py: Py(0x7ea2debabcc0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py(0x7ea2c2d00b70), path: LookupPath([S("absent", Py(0x7ea2c2d00ba0))]) }, name_py: Py(0x7ea2deb1c6c0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "predicate", lookup_key: Simple { key: "predicate", py_key: Py(0x7ea2c2d380f0), path: LookupPath([S("predicate", Py(0x7ea2c2d3bcb0))]) }, name_py: Py(0x7ea2dfb1b3b0), validator: Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "Predicate" }), None), (DefinitionRef(DefinitionRefValidator { definition: "Comparison" }), None)], custom_error: None, strict: false, name: "union[Predicate,Comparison]" }), frozen: false }, Field { name: "terms", lookup_key: Simple { key: "terms", py_key: Py(0x7ea2c2d00bd0), path: LookupPath([S("terms", Py(0x7ea2c2d00c00))]) }, name_py: Py(0x7ea2de7547b0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2c2d37e00)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: FunctionBefore(FunctionBeforeValidator { validator: List(ListValidator { strict: false, item_validator: Some(Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "Entity" }), None), (DefinitionRef(DefinitionRefValidator { definition: "Fact" }), None), (DefinitionRef(DefinitionRefValidator { definition: "Allegation" }), None), (DefinitionRef(DefinitionRefValidator { definition: "Pleading" }), None), (DefinitionRef(DefinitionRefValidator { definition: "Exhibit" }), None), (DefinitionRef(DefinitionRefValidator { definition: "Evidence" }), None)], custom_error: None, strict: false, name: "union[Entity,...,...,Pleading,Exhibit,Evidence]" })), min_length: None, max_length: None, name: OnceLock("list[union[Entity,...,...,Pleading,Exhibit,Evidence]]"), fail_fast: false }), func: Py(0x7ea2c2d34a40), config: Py(0x7ea2c2d52dc0), name: "function-before[terms_as_sequence(), list[union[Entity,...,...,Pleading,Exhibit,Evidence]]]", field_name: Some(Py(0x7ea2de7547b0)), info_arg: true }), func: Py(0x7ea2c2d34e40), config: Py(0x7ea2c2d52dc0), name: "function-after[_validate_terms(), function-before[terms_as_sequence(), list[union[Entity,...,...,Pleading,Exhibit,Evidence]]]]", field_name: Some(Py(0x7ea2de7547b0)), info_arg: true }), validate_default: false, copy_default: true, name: "default[function-after[_validate_terms(), function-before[terms_as_sequence(), list[union[Entity,...,...,Pleading,Exhibit,Evidence]]]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d00c30), path: LookupPath([S("name", Py(0x7ea2c2d00c60))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), validate_default: false, copy_default: false, name: "default[str]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "standard_of_proof", lookup_key: Simple { key: "standard_of_proof", py_key: Py(0x7ea2c2d38570), path: LookupPath([S("standard_of_proof", Py(0x7ea2c2d38730))]) }, name_py: Py(0x7ea2c2d25df0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07274c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), func: Py(0x7ea2c2d34c80), config: Py(0x7ea2c2d52dc0), name: "function-after[validate_standard_of_proof(), nullable[str]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_standard_of_proof(), nullable[str]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Fact", extra_behavior: Forbid, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), func: Py(0x7ea2c390bcc0), config: Py(0x7ea2c2d52dc0), name: "function-before[nest_predicate_fields(), model-fields]", field_name: None, info_arg: false }), class: Py(0x578ef756f9e0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Fact" }), Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "passages", lookup_key: Simple { key: "passages", py_key: Py(0x7ea2c2d90c30), path: LookupPath([S("passages", Py(0x7ea2c2d90e30))]) }, name_py: Py(0x7ea2d46720b0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2d4765580)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: FunctionBefore(FunctionBeforeValidator { validator: List(ListValidator { strict: false, item_validator: Some(DefinitionRef(DefinitionRefValidator { definition: "..." })), min_length: None, max_length: None, name: OnceLock(<uninit>), fail_fast: false }), func: Py(0x7ea2d4774540), config: Py(0x7ea2c2d51040), name: "function-before[consolidate_passages(), list[...]]", field_name: None, info_arg: false }), func: Py(0x7ea2d4776740), config: Py(0x7ea2c2d51040), name: "function-after[sort_passages(), function-before[consolidate_passages(), list[...]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: true, name: "default[function-after[sort_passages(), function-before[consolidate_passages(), list[...]]]]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "EnactmentGroup", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), class: Py(0x578ef68f84a0), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "EnactmentGroup" }), Model(ModelValidator { revalidate: Never, validator: FunctionBefore(FunctionBeforeValidator { validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "generic", lookup_key: Simple { key: "generic", py_key: Py(0x7ea2c2d001b0), path: LookupPath([S("generic", Py(0x7ea2c2d00240))]) }, name_py: Py(0x7ea2debabcc0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110c0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "absent", lookup_key: Simple { key: "absent", py_key: Py(0x7ea2c2d00120), path: LookupPath([S("absent", Py(0x7ea2c2d003c0))]) }, name_py: Py(0x7ea2deb1c6c0), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py(0x7ea2c2d000c0), path: LookupPath([S("name", Py(0x7ea2c2d004e0))]) }, name_py: Py(0x7ea2e081aa68), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e0814230)), on_error: Raise, validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), validate_default: false, copy_default: false, name: "default[str]", undefined: Py(0x7ea2d5547da0) }), frozen: false }, Field { name: "plural", lookup_key: Simple { key: "plural", py_key: Py(0x7ea2c2d00630), path: LookupPath([S("plural", Py(0x7ea2c2d005a0))]) }, name_py: Py(0x7ea2dfcc6460), validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7ea2e07110e0)), on_error: Raise, validator: Bool(BoolValidator { strict: false }), validate_default: false, copy_default: false, name: "default[bool]", undefined: Py(0x7ea2d5547da0) }), frozen: false }], model_name: "Entity", extra_behavior: Forbid, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true }), func: Py(0x7ea2d469fc00), config: Py(0x7ea2c2d7af00), name: "function-before[validate_type(), model-fields]", field_name: None, info_arg: false }), class: Py(0x578ef6916a50), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7ea2d5547da0), name: "Entity" })], cache_strings=True)
The pydantic-core SchemaValidator used to validate instances of the model.
- __signature__: ClassVar[Signature] = <Signature (*, generic: bool = False, absent: bool = False, procedure: authorityspoke.procedures.Procedure, enactments: legislice.groups.EnactmentGroup = EnactmentGroup([]), enactments_despite: legislice.groups.EnactmentGroup = EnactmentGroup([]), mandatory: bool = False, universal: bool = False, name: Optional[str] = None) -> None>
The synthesized __init__ [Signature][inspect.Signature] of the model.
- __weakref__
list of weak references to the object
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].