
    }tfVA                        d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZ d	d
lmZmZmZ  G d de      Z G d de      Ze
eef   Z  G d de      Z! G d de      Z"e
eeef   Z# G d de      Z$ G d de      Z% G d de      Z& G d de      Z' G d de      Z( G d de      Z) G d d e      Z* G d! d"e      Z+ G d# d$e      Z, G d% d&e      Z- ed'e.(      Z/ee.ef   Z0ee.ef   Z1ee.ef   Z2 G d) d*e      Z3 G d+ d,eee/         Z4 G d- d.e      Z5ed/   Z6ee6ed0   f   Z7 G d1 d2e4e7   e5      Z8 G d3 d4e4ed5      e5      Z9 G d6 d7e4e6         Z: G d8 d9e4ed:            Z;ee8e;e9e:e4f   Z<e;j{                           ed;e<(      Z>ed<   Z? G d= d>eee>         Z@ G d? d@e      ZA G dA dBe      ZB G dC dDeee>         ZC edEeC(      ZD G dF dGeeeD         ZEdH ZFdI ZGy)J    N)OrderedDict)	AnyDict	GeneratorGenericListOptionalTupleTypeVarUnion)	BaseModel)ExtraField)root_validator)GenericModel)	AnnotatedLiteral	TypedDict   )exclude_properties_titlesget_schema_ofsimplify_enum_schemac                   R     e Zd Z G d d      Zd Zddef fdZddef fdZ xZS )r   c                   "    e Zd ZdZ ed       Zy)BaseModel.ConfigTc                     t        |       S Nr   s_s     _/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/higlass_schema/schema.py<lambda>zBaseModel.Config.<lambda>       1J11M     N__name__
__module____qualname__validate_assignmentstaticmethodschema_extra r%   r"   Configr          "#$MNr%   r.   c                     t        |       S r   iterselfs    r"   __rich_repr__zBaseModel.__rich_repr__!       Dzr%   exclude_nonec                 &    t        |   dd|i|S Nr7   r-   superdictr4   r7   kwargs	__class__s      r"   r<   zBaseModel.dict$       w|@@@@r%   c                 &    t        |   dd|i|S r9   r;   jsonr=   s      r"   rC   zBaseModel.json'   r@   r%   T	r'   r(   r)   r.   r5   boolr<   rC   __classcell__r?   s   @r"   r   r      6    O OA AA A Ar%   r   c                   R     e Zd Z G d d      Zd Zddef fdZddef fdZ xZS )r   c                   "    e Zd ZdZ ed       Zy)GenericModel.ConfigTc                     t        |       S r   r   r   s     r"   r#   zGenericModel.Config.<lambda>1   r$   r%   Nr&   r-   r%   r"   r.   rL   -   r/   r%   r.   c                     t        |       S r   r1   r3   s    r"   r5   zGenericModel.__rich_repr__4   r6   r%   r7   c                 &    t        |   dd|i|S r9   r:   r=   s      r"   r<   zGenericModel.dict7   r@   r%   c                 &    t        |   dd|i|S r9   rB   r=   s      r"   rC   zGenericModel.json:   r@   r%   rD   rE   rH   s   @r"   r   r   ,   rI   r%   r   c                   *   e Zd ZU dZeeee         ed<   dZee	   ed<   dZ
ee   ed<   dZee	   ed<   dZee   ed<   dZee	   ed<   dZee	   ed<   dZeeeee   f      ed	<   dZee   ed
<   dZee	   ed<   dZee	   ed<   dZeeeee   f      ed<   y)OverlayOptionsNextentminWidthfillfillOpacitystrokestrokeOpacitystrokeWidth	strokePosoutlineoutlineOpacityoutlineWidth
outlinePos)r'   r(   r)   rS   r	   r   int__annotations__rT   floatrU   strrV   rW   rX   rY   rZ   r   r[   r\   r]   r^   r-   r%   r"   rR   rR   E   s    (,FHT$s)_%, $Hhuo$D(3-#'K%' FHSM %)M8E?)#'K%'15Ixc49n-.5!GXc]!&*NHUO*$(L(5/(26JsDI~./6r%   rR   c                   x    e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee
e      ed<   dZee   ed<   y)OverlayNtypeuidchromInfoPathincludesoptions)r'   r(   r)   re   r	   rb   r`   rf   rg   rh   r   ri   rR   r-   r%   r"   rd   rd   T   sN    D(3-C##'M8C='$(HhtCy!((,GXn%,r%   rd   c                       e Zd ZU eed<   y)_LockEntryModel__root__N)r'   r(   r)   	LockEntryr`   r-   r%   r"   rk   rk      s    r%   rk   c                        e Zd ZU dZee   ed<    G d d      Zdee	ee
f   ddf   f fdZ ed      d	eeef   fd
       Z xZS )LockNrf   c                   H    e Zd Zej                  Zedeee	f   ddfd       Z
y)Lock.ConfigschemareturnNc                 >    t        |        t        t              | d<   y NadditionalProperties)r   r   rm   rr   r!   s     r"   r,   zLock.Config.schema_extra   s    %f--:9-EF)*r%   r'   r(   r)   r   allowextrar+   r   rb   r   r,   r-   r%   r"   r.   rq      s7    		Fc3h 	Ft 	F 
	Fr%   r.   rs   c              #   d   K   t         |          D ]  \  }}|| j                  vs||f  y wr   r;   __iter__
__fields__r4   keyvalr?   s      r"   r}   zLock.__iter__   7     (* 	HC$//)3h	   #0	0Tprevaluesc                     |D ]8  }|| j                   vst        j                  ||         }|j                  ||<   : |S r   )r~   rk   	parse_objrl   clsr   kmodels       r"   validate_lockszLock.validate_locks   sE     	+A&'11&)<!NNq		+ r%   )r'   r(   r)   rf   r	   rb   r`   r.   r   r
   rm   r}   r   r   r   r   rG   rH   s   @r"   ro   ro      sf    C#F F)E#y.$94$EF  DcN  r%   ro   c                   "    e Zd ZU eed<   eed<   y)ValueScaleLockEntryviewtrackN)r'   r(   r)   rb   r`   r-   r%   r"   r   r      s    
IJr%   r   c                       e Zd ZU eed<   y)_ValueScaleLockEntryModelrl   N)r'   r(   r)   r   r`   r-   r%   r"   r   r      s    !!r%   r   c                        e Zd ZU dZee   ed<   dZee   ed<    G d d      Z	de
eeef   ddf   f fdZ ed	      d
eeef   fd       Z xZS )ValueScaleLockNrf   ignoreOffScreenValuesc                   H    e Zd Zej                  Zedeee	f   ddfd       Z
y)ValueScaleLock.Configrr   rs   Nc                 >    t        |        t        t              | d<   y ru   )r   r   r   rw   s     r"   r,   z"ValueScaleLock.Config.schema_extra   s    %f--:;N-OF)*r%   rx   r-   r%   r"   r.   r      s7    		Pc3h 	Pt 	P 
	Pr%   r.   rs   c              #   d   K   t         |          D ]  \  }}|| j                  vs||f  y wr   r|   r   s      r"   r}   zValueScaleLock.__iter__   r   r   Tr   r   c                     |D ]8  }|| j                   vst        j                  ||         }|j                  ||<   : |S r   )r~   r   r   rl   r   s       r"   r   zValueScaleLock.validate_locks   sE     	+A&1;;F1IF!NNq		+ r%   )r'   r(   r)   rf   r	   rb   r`   r   rF   r.   r   r
   r   r}   r   r   r   r   rG   rH   s   @r"   r   r      sw    C#,08D>0P P)E#/B*B$CT4$OP  DcN  r%   r   c                   <    e Zd ZU  G d d      Zed   ed<   eed<   y)AxisSpecificLockc                   4    e Zd Zedeeef   deddfd       Zy)AxisSpecificLock.Configrr   r!   rs   Nc                 H    t        |        t        | d   d         | d   d<   y )N
propertiesaxisr   r   rw   s     r"   r,   z$AxisSpecificLock.Config.schema_extra   s+    %f-+?|$V,,F< (r%   )r'   r(   r)   r+   r   rb   r   r,   r-   r%   r"   r.   r      s1    		c3h 	C 	D 	 
	r%   r.   )xyr   lockN)r'   r(   r)   r.   r   r`   rb   r-   r%   r"   r   r      s      (

Ir%   r   c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)AxisSpecificLocksNr   r   )r'   r(   r)   r   r	   r   r`   r   r-   r%   r"   r   r      s"    $(Ax !($(Ax !(r%   r   c                   d    e Zd ZU  ee      Zeeeee	f   f   e
d<    ee      Zeeef   e
d<   y)LocationLocksdefault_factorylocksByViewUid	locksDictN)r'   r(   r)   r   r<   r   r   rb   r   r   r`   r   ro   r-   r%   r"   r   r      sE    ?D@NDeC):$:;;<  "'t!<ItCI<r%   r   c                   n    e Zd ZU  G d d      Z ee      Zeeef   e	d<    ee      Z
eeef   e	d<   y)	ZoomLocksc                   $    e Zd Zej                  Zy)ZoomLocks.ConfigNr'   r(   r)   r   forbidrz   r-   r%   r"   r.   r          r%   r.   r   r   r   N)r'   r(   r)   r.   r   r<   r   r   rb   r`   r   ro   r-   r%   r"   r   r      s<      &+4%@NDcN@!&t!<ItCI<r%   r   c                   n    e Zd ZU  G d d      Z ee      Zeeef   e	d<    ee      Z
eeef   e	d<   y)ValueScaleLocksc                   $    e Zd Zej                  Zy)ValueScaleLocks.ConfigNr   r-   r%   r"   r.   r      r   r%   r.   r   r   r   N)r'   r(   r)   r.   r   r<   r   r   rb   r`   r   r   r-   r%   r"   r   r      s>      &+4%@NDcN@+0+FItC'(Fr%   r   
TrackTypeT)boundc                       e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   y)	DataNre   urlserverfiletypechildrentilesetInfotiles)r'   r(   r)   re   r	   rb   r`   r   r   r   r   r   r   TilesetInfor   Tiler-   r%   r"   r   r     se    D(3-C# FHSM "Hhsm"#Hhtn#)-K+&- E8D> r%   r   c                   |    e Zd ZU  G d d      Zeed<   dZee   ed<   dZ	ee
   ed<   dZee
   ed<   dZee   ed<   y)		BaseTrackc                   L    e Zd Zej                  Zedeee	f   de	ddfd       Z
y)BaseTrack.Configrr   r!   rs   Nc                 d    t        |        | d   }d|d   v sd|d   v rt        |d         |d<   y y )Nr   enumre   allOfr   )rr   r!   propss      r"   r,   zBaseTrack.Config.schema_extra  sC    %f-<(Ev&'U6]*B 4U6] Cf +Cr%   rx   r-   r%   r"   r.   r     s?    		Dc3h 	DC 	DD 	D 
	Dr%   r.   re   Nrf   widthheightri   )r'   r(   r)   r.   r   r`   rf   r	   rb   r   r_   r   ri   TrackOptionsr-   r%   r"   r   r     sO    D D C#E8C= FHSM &*GXl#*r%   r   c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)TilesetN
tilesetUidr   )r'   r(   r)   r   r	   rb   r`   r   r-   r%   r"   r   r   #  s     $J$ FHSM r%   r   )zviewport-projection-centerzviewport-projection-verticalzviewport-projection-horizontal)Amultivecz
1d-heatmaplinepointbarzdivergent-barzstacked-intervalzgene-annotationszlinear-2d-rectangle-domainszchromosome-labelszlinear-heatmapz1d-value-intervalz2d-annotationsz2d-chromosome-annotationsz2d-chromosome-gridz2d-chromosome-labelsz2d-rectangle-domainsz2d-tileszarrowhead-domainsbedlikez
cross-ruledummyzhorizontal-1d-annotationszhorizontal-1d-heatmapzhorizontal-1d-tileszhorizontal-1d-value-intervalzhorizontal-2d-rectangle-domainszhorizontal-barzhorizontal-chromosome-gridzhorizontal-chromosome-labelszhorizontal-divergent-barzhorizontal-gene-annotationszhorizontal-heatmapzhorizontal-linezhorizontal-multiveczhorizontal-pointzhorizontal-rulezhorizontal-vector-heatmapzimage-tilesz	left-axiszleft-stacked-intervalzmapbox-tileszosm-2d-tile-idsz	osm-tileszraster-tilesz
simple-svgzsquare-markersztop-axisztop-stacked-intervalzvertical-1d-annotationszvertical-1d-heatmapzvertical-1d-tileszvertical-1d-value-intervalzvertical-2d-rectangle-domainszvertical-barzvertical-bedlikezvertical-chromosome-gridzvertical-chromosome-labelszvertical-gene-annotationszvertical-heatmapzvertical-linezvertical-multiveczvertical-pointzvertical-rulezvertical-vector-heatmapc                       e Zd ZU  G d d      ZdZee   ed<   dZee	   ed<   dZ
ee	   ed<   dZee   ed<   dZee   ed<   y)		EnumTrackc                   $    e Zd Zej                  Zy)EnumTrack.ConfigNr'   r(   r)   r   ignorerz   r-   r%   r"   r.   r   w  r   r%   r.   Ndatarg   fromViewUidr   r   )r'   r(   r)   r.   r   r	   r   r`   rg   rb   r   r   ra   r   r-   r%   r"   r   r   v  sT       D(4.#'M8C='!%K#%AxAxr%   r   c                   ^    e Zd ZU  G d d      ZdZee   ed<   dZee	   ed<   dZ
ee   ed<   y)HeatmapTrackc                   $    e Zd Zej                  Zy)HeatmapTrack.ConfigNr   r-   r%   r"   r.   r     r   r%   r.   Nr   position
transforms)r'   r(   r)   r.   r   r	   r   r`   r   rb   r   r   r-   r%   r"   r   r     s8       D(4."Hhsm"!%J%r%   r   heatmapc                       e Zd ZU  G d d      ZdZded<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed	<   y)
"IndependentViewportProjectionTrackc                   $    e Zd Zej                  Zy))IndependentViewportProjectionTrack.ConfigNr   r-   r%   r"   r.   r     r   r%   r.   Nr   projectionXDomainprojectionYDomainr   r   r   )r'   r(   r)   r.   r   r`   r   r	   Domainr   r   r   r   ra   r   r-   r%   r"   r   r     sb      K*.x'.*.x'.!%J%AxAxr%   r   c                   F    e Zd ZU  G d d      Zed   ed<   dZee   ed<   y)CombinedTrackc                   $    e Zd Zej                  Zy)CombinedTrack.ConfigNr   r-   r%   r"   r.   r     r   r%   r.   TrackcontentsNr   )	r'   r(   r)   r.   r   r`   r   r	   rb   r-   r%   r"   r   r     s&      7m"Hhsm"r%   r   combinedTrackT)leftrighttopbottomcenterwholegalleryc                   
    e Zd ZU dZ G d d      ZdZeee      e	d<   dZ
eee      e	d<   dZeee      e	d<   dZeee      e	d<   dZeee      e	d	<   dZeee      e	d
<   dZeee      e	d<   deeeef   ddf   f fdZ xZS )TrackszTrack layout within a View.c                   $    e Zd Zej                  Zy)Tracks.ConfigNr   r-   r%   r"   r.   r    r   r%   r.   Nr   r   r   r   r   r   r   rs   c              #   Z   K   t         |          D ]  \  }}|	|D ]  }||f 
  y wr   )r;   r}   )r4   postlistr   r?   s       r"   r}   zTracks.__iter__  sC     '*, 	!JC} !5j !	!s   (+)r'   r(   r)   __doc__r.   r   r	   r   r   r`   r   r   r   r   r   r   r   r
   TrackPositionr}   rG   rH   s   @r"   r   r     s    %  $(D(4<
 '$(E8DL!("&C$v,	&%)FHT&\")%)FHT&\")$(E8DL!(&*GXd6l#*!)E-*?$@$$LM ! !r%   r   c                       e Zd ZU dZ G d d      Z edd      Zeed<    edd      Z	eed	<    ed
d      Z
eed<    ed
d      Zeed<   dZee   ed<   dZee   ed<   y)LayoutzSize and position of a View.c                   $    e Zd Zej                  Zy)Layout.ConfigNr   r-   r%   r"   r.   r    r   r%   r.   r   zThe X Positiondefaultdescriptionr   zThe Y Positionr      WidthwHeighthNmovedstatic)r'   r(   r)   r  r.   r   r   r_   r`   r   r  r  r  r	   rF   r  r-   r%   r"   r	  r	    ss    &  1*:;As;1*:;As;273As3284As4 E8D> !FHTN!r%   r	  c                       e Zd ZU dZ eddgd      Zee   ed<    eddgd      Z	ee   ed	<    eddgd
      Z
ee   ed<    eddgd      Zee   ed<    edd      Zee   ed<   y)GenomePositionSearchBoxz"Locations to search within a View.Nz//higlass.io/api/v1zThe Autocomplete Server URL)r  examplesr  autocompleteServerOHJakQICQD6gTD7skx4EWAzThe Autocomplete IDautocompleteIdzThe Chrominfo Server URLchromInfoServerhg19zThe Chromosome Info IDchromInfoIdzThe Visible Schemar  visible)r'   r(   r)   r  r   r  r	   rb   r`   r  r  r  r  rF   r-   r%   r"   r  r    s    ,(-'(1) 
 %**+)%NHSM 
 &+'(.&OXc] 
 "',"K# 
 $(GXd^ r%   r  c                   ,   e Zd ZU dZ G d d      Zeed<   ee   ed<   dZ	e
e   ed<   dZe
e   ed<   dZe
e   ed	<   dZe
e   ed
<   dZe
e   ed<   dZe
e   ed<   dZe
e   ed<   dZe
ee      ed<   dZe
e   ed<   dZe
e   ed<   dZeee
e   f   ed<   y)Viewz9An arrangment of Tracks to display within a given Layout.c                   $    e Zd Zej                  Zy)View.ConfigNr   r-   r%   r"   r.   r#    r   r%   r.   layouttracksNrf   autocompleteSourcerg   genomePositionSearchBoxgenomePositionSearchBoxVisibleinitialXDomaininitialYDomainoverlaysselectionView	zoomFixed)r   N
zoomLimits)r'   r(   r)   r  r.   r	  r`   r   r   rf   r	   rb   r&  rg   r'  r  r(  rF   r)  r   r*  r+  r   rd   r,  r-  r.  r
   ra   r-   r%   r"   r!  r!    s    C  N6NC#(,,#'M8C='AEX&=>E59"HTN9'+NHV$+'+NHV$+(,HhtG}%,$(M8D>( $Ix~$09JeXe_,-9r%   r!  ViewTc                   :   e Zd ZU dZ G d d      ZdZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZeee      ed<   dZeeee    ed      f      ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   y)Viewconfz/Root object describing a HiGlass visualization.c                   L    e Zd Zej                  ZdZedee	e
f   ddfd       Zy)Viewconf.ConfigzHiGlass viewconfrr   rs   Nc                 >    t        |        dD ]  }d| d   |   d<    y )N)viewsr   r   minItemsr   )rr   r!   props      r"   r,   zViewconf.Config.schema_extra  s/    %f- " ;9:|$T*:6;r%   )r'   r(   r)   r   r   rz   titler+   r   rb   r   r,   r-   r%   r"   r.   r3    s8    "		;c3h 	;t 	; 
	;r%   r.   TeditableviewEditabletracksEditableNr-  compactLayoutexportViewUrltrackSourceServersr   )	min_itemsr5  	zoomLockslocationLocksvalueScaleLocksrg   )r'   r(   r)   r  r.   r9  r	   rF   r`   r:  r;  r-  r<  r=  rb   r>  r   r5  r   r/  r   r@  r   rA  r   rB  r   rg   r-   r%   r"   r1  r1    s    9; ;  $Hhtn##'L(4.'%)NHTN) $Ix~$$(M8D>(#'M8C='.2c+2BFE8Id5k51+==>?F%)Ix	")-1M8M*115OXo.5#'M8C='r%   r1  c                      t         j                         } | d   j                         D ]  }|j                  dd         t	        ddg| j                               }t        |      S )Ndefinitionsr8  )z$schemaz'http://json-schema.org/draft-07/schema#)z$idzhttps://higlass.io/#viewconf)r1  rr   r   popr   itemsr<   )rootdordered_roots      r"   rr   rr   /  so    ??D - '') 	gt B3	
 ZZ\	
L r%   c                  >    t        j                  t               fi | S r   )rC   dumpsrr   )r>   s    r"   schema_jsonrL  B  s    ::fh)&))r%   )HrC   collectionsr   typingr   r   r   r   r   r	   r
   r   r   pydanticr   PydanticBaseModelr   r   pydantic.class_validatorsr   pydantic.genericsr   PydanticGenericModeltyping_extensionsr   r   r   utilsr   r   r   ra   r   rR   rd   rm   rk   ro   r   r   r   r   r   r   r   r   rb   r   r   r   r   r   r   r   ViewportProjectionTrackTypeEnumTrackTyper   r   r   r   r   update_forward_refsr   r  r   r	  r  r!  r/  r1  rr   rL  r-   r%   r"   <module>rY     s    #
 
 
 4 ! 4 B ; ; Q QA! A&A' A, 
ue|	7Y 7-i -h %%&	i 9 8) 
"	 "Y :
y 
)	 )
=I ==	 =Gi G \-
CH~38nCH~!9 !+gj1 +$!i !
 &&  @	#BCEP	-(' &9WY/0' &	3N)O 	#Igj12 # 	&		  ! ! # 
	'VW!\76? !,"Y "i ::< :2 	t$(|WU^ (<&*r%   