
    h                         S SK Jr  S SKJrJrJrJr   S SKJrJ	r	J
r
  S SKJrJrJr   " S S\5      r " S S\5      r " S	 S
\5      rS\\\4   S\\   4S jrg! \ a    S SKJrJ	r	J
r
  S SKJrJrJr   NOf = f)    )defaultdict)AnyDictListUnion)	BaseModelFieldValidationError)
StrictBool	StrictInt	StrictStrc                       \ rS rSr% \" SSS9r\\S'   \" SSS9r\\S'   \" SSS9r	\\S	'   \" SS
S9r
\\S'    " S S5      rSrg)MatchNodeSchema   .zPrefix lengthtitle
prefix_lenzSuffix length
suffix_lenzPrefix treeprefix_treezSuffix treesuffix_treec                       \ rS rSrSrSrg)MatchNodeSchema.Config   forbid N__name__
__module____qualname____firstlineno__extra__static_attributes__r       e/home/james-whalen/.local/lib/python3.13/site-packages/spacy/pipeline/_edit_tree_internals/schemas.pyConfigr          r#   r%   r   N)r   r   r   r    r	   r   r   __annotations__r   r   r   r%   r"   r   r#   r$   r   r      sP    !#_=J	=!#_=J	="3m<K<"3m<K< r#   r   c                   n    \ rS rSr% \" SSS9r\\\4   \	S'   \" SSS9r
\\\4   \	S'    " S S	5      rS
rg)SubstNodeSchema   .zOriginal substringr   origzReplacement substringsubstc                       \ rS rSrSrSrg)SubstNodeSchema.Config   r   r   Nr   r   r#   r$   r%   r.      r&   r#   r%   r   N)r   r   r   r    r	   r+   r   intr   r'   r,   r%   r"   r   r#   r$   r)   r)      sB    "'3G"HD%Y
H#(4K#LE5i L r#   r)   c                   *    \ rS rSr% \\\4   \S'   Srg)EditTreeSchema   __root__r   N)	r   r   r   r    r   r   r)   r'   r"   r   r#   r$   r2   r2      s    O_455r#   r2   objreturnc                     [         R                  U 5        / $ ! [         a  nUR                  5       n[	        [
        5      nU Hf  nSR                  UR                  S/ 5       Vs/ s H  n[        U5      PM     Os  snf sn5      nX6   R                  UR                  S5      5        Mh     UR                  5        VVs/ s H  u  pxSU SSR                  U5       3PM     Os  snnf snns SnA$ SnAff = f)zValidate edit tree.

obj (Dict[str, Any]): JSON-serializable data to validate.
RETURNS (List[str]): A list of error messages, if available.
z -> locmsg[z] z, N)r2   	parse_objr
   errorsr   listjoingetstrappenditems)	r5   er<   dataerrorperr_locr8   r9   s	            r$   validate_edit_treerH   "   s    	J  %	 J4 Ekk599UB3G"H3Ga3q63G"HIGM  5!12  =AJJLIL!C5499S>*+LIIJs4    
C9AC4&A<;AC4#C%$
C4.C94C9N)collectionsr   typingr   r   r   r   pydantic.v1r   r	   r
   pydantic.v1.typesr   r   r   ImportErrorpydanticpydantic.typesr   r)   r2   r@   rH   r   r#   r$   <module>rP      s    # ) )@==BBi i 6Y 6JDcN JtCy J7  @::??@s   A A87A8