
    h3,                       S SK Jr  S SKJrJrJrJrJrJr  S SK	J
r
Jr  S SKrS SKJrJrJrJr  S SKJr  S SKJrJr  \(       a  S SKJr  S S	KJr  \R6                  " S
5      r0 S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ S Q_S!/ S"Q_S#/ S$Q_S%/ S&Q_S'/ S(Q_S)/ S*Q_S+/ S,Q_0 S-/ S.Q_S// S0Q_S1/ S2Q_S3/ S4Q_S5/ S6Q_S7/ S8Q_S9/ S:Q_S;/ S<Q_S=/ S>Q_S?/ S@Q_SA/ SBQ_SC/ SDQ_SE/ SFQ_SG/ SHQ_SI/ SJQ_SK/ SLQ_SM/ SNQ_E0 SO/ SPQ_SQ/ SRQ_SS/ STQ_SU/ SVQ_SW/ SXQ_SY/ SZQ_S[/ S\Q_S]/ S^Q_S_/ S`Q_Sa/ SbQ_Sc/ SdQ_Se/ SfQ_Sg/ ShQ_Si/ SjQ_Sk/ SlQ_Sm/ SnQ_So/ SpQ_ESq/ SrQ0Er/ SsQr/ StQr\\\\0r  " Su Sv5      r!g)w    )annotations)TYPE_CHECKINGIteratorIterableUnioncastOptional)CounterOrderedDictN)DXFStructureErrorDXF2004DXF2000DXFKeyError)DXFClass)	DXFEntityDXFTagStorage)Drawing)AbstractTagWriterezdxfACDBDICTIONARYWDFLT)AcDbDictionaryWithDefaultObjectDBX Classesr   r   r   SUN)AcDbSunSCENEOE  r   r   DICTIONARYVAR)AcDbDictionaryVarr   r   r   r   
TABLESTYLE)AcDbTableStyler     r   r   MATERIAL)AcDbMaterialr   r   r   r   VISUALSTYLE)AcDbVisualStyler   r!   r   r   SCALE)	AcDbScaler   r   r   r   MLEADERSTYLE)AcDbMLeaderStyleACDB_MLEADERSTYLE_CLASSr!   r   r   MLEADER)AcDbMLeaderACDB_MLEADER_CLASSi  r      MPOLYGON)AcDbMPolygonAcMPolygonObj15  r   r.   CELLSTYLEMAP)AcDbCellStyleMapr     r   r   EXACXREFPANELOBJECT)ExAcXREFPanelObjectEXAC_ESWr2   r   r   NPOCOLLECTION)%AcDbImpNonPersistentObjectsCollectionr   r   r   r   LAYER_INDEX)AcDbLayerIndexr   r   r   r   SPATIAL_INDEX)AcDbSpatialIndexr   r   r   r   IDBUFFER)AcDbIdBufferr   r   r   r   DIMASSOC)AcDbDimAssocrB   r   r   r   ACDBSECTIONVIEWSTYLE)AcDbSectionViewStyler   r2   r   r   ACDBDETAILVIEWSTYLE)AcDbDetailViewStyler   r2   r   r   IMAGEDEF)AcDbRasterImageDefISMr   r   r   RASTERVARIABLES)AcDbRasterVariablesrI   r   r   r   IMAGEDEF_REACTOR)AcDbRasterImageDefReactorrI   r.   r   r   IMAGE)AcDbRasterImagerI   i  r   r.   PDFDEFINITION)AcDbPdfDefinitionr   r   r   r   PDFUNDERLAY)AcDbPdfReferencer   r!   r   r.   DWFDEFINITION)AcDbDwfDefinitionr   r   r   r   DWFUNDERLAY)AcDbDwfReferencer   r   r   r.   DGNDEFINITION)AcDbDgnDefinitionr   r   r   r   DGNUNDERLAY)AcDbDgnReferencer   r   r   r.   MENTALRAYRENDERSETTINGS)AcDbMentalRayRenderSettingsr   i   r   r   ACDBPLACEHOLDER)AcDbPlaceHolderr   r   r   r   LAYOUT)
AcDbLayoutr   r   r   r   SURFACE)AcDbSurfacer   r!   r   r.   EXTRUDEDSURFACE)AcDbExtrudedSurfacer   r!   r   r.   LOFTEDSURFACE)AcDbLoftedSurfacer   r   r   r.   REVOLVEDSURFACE)AcDbRevolvedSurfacer   r   r   r.   SWEPTSURFACE)AcDbSweptSurfacer   r   r   r.   PLANESURFACE)AcDbPlaneSurfacer   r!   r   r.   NURBSSURFACE)AcDbNurbSurfacer   r!   r   r.   "ACDBASSOCEXTRUDEDSURFACEACTIONBODY)"AcDbAssocExtrudedSurfaceActionBodyr   r2   r   r    ACDBASSOCLOFTEDSURFACEACTIONBODY) AcDbAssocLoftedSurfaceActionBodyr   r2   r   r   "ACDBASSOCREVOLVEDSURFACEACTIONBODY)"AcDbAssocRevolvedSurfaceActionBodyr   r2   r   r   ACDBASSOCSWEPTSURFACEACTIONBODY)AcDbAssocSweptSurfaceActionBodyr   r2   r   r   HELIX)	AcDbHelixr   r!   r   r.   WIPEOUT)AcDbWipeoutWipeOut   r   r.   WIPEOUTVARIABLES)AcDbWipeoutVariablesr|   r   r   r   	FIELDLIST)AcDbFieldListr   r5   r   r   GEODATA)AcDbGeoDatar   r!   r   r   SORTENTSTABLE)AcDbSortentsTabler   r   r   r   
ACAD_TABLE)	AcDbTabler   r2   r   r.   ARC_DIMENSION)AcDbArcDimensionr   r2   r   r.   LARGE_RADIAL_DIMENSION)AcDbRadialDimensionLarger   r2   r   r.   )r   r   r$   r"   r&   r   r(   r   r3   r\   rE   rC   rJ   r^   r`   )r   r   r$   r"   r&   r   r(   r   r3   r\   rE   rC   rJ   c                      \ rS rSr  S   SS jjrSS jrSS jr S   SS jjrSS jrSS jr	SS	 jr
SS
 jrSS jrSrg)ClassesSection   Nc                j    [        5       U l        Xl        Ub  U R                  [	        U5      5        g g N)r   classesdocloaditer)selfr   entitiess      H/var/www/html/env/lib/python3.13/site-packages/ezdxf/sections/classes.py__init__ClassesSection.__init__   s.     9DIId8n%      c                D    S U R                   R                  5        5       $ )Nc              3  $   #    U  H  ov   M     g 7fr    ).0clss     r   	<genexpr>*ClassesSection.__iter__.<locals>.<genexpr>   s     544s   )r   values)r   s    r   __iter__ClassesSection.__iter__   s    5t||22455r   c                J   [        [        [        U5      5      nUR                  5       S:w  d  UR                  S   S:w  a  [        S5      eU HR  n[        U[        5      (       a  U R                  U5        M+  [        R                  SUR                  5        S35        MT     g )NSECTIONr.   )   CLASSESz,Critical structure error in CLASSES section.z!Ignored invalid DXF entity type 'z' in section CLASSES.)r   r   nextdxftype
base_classr   
isinstancer   registerloggerwarning)r   r   section_head
cls_entitys       r   r   ClassesSection.load   s    M4>:!Y.,2I2I!2L Q
 3
 $$RSS"J*h//j)7
8J8J8L7M N+ ,	 #r   c                    Uc  g [        U[        5      (       a  U4nU H.  nUR                  nX0R                  ;  d  M   X R                  U'   M0     g r   )r   r   keyr   )r   r   dxfclassr   s       r   r   ClassesSection.register   sI     ?gx((jGH,,C,,&$,S!  r   c           	         U[         ;  a  g[         U   n[        R                  " U R                  S9nUu  pEpgnUR	                  UUUUUUS.5        U R                  U5        g)z!Register a known class by `name`.N)r   )namecpp_class_nameapp_nameflagswas_a_proxyis_an_entity)CLASS_DEFINITIONSr   newr   update_dxf_attribsr   )	r   r   cls_datar   cppappr   proxyentitys	            r   	add_classClassesSection.add_class   si    (($T*lltxx()1&%"%$ &		
 	cr   c                    U R                   R                  5        H!  nUR                  R                  U:X  d  M  Us  $    [	        U5      e)zReturns the first class matching `name`.

Storage key is the ``(name, cpp_class_name)`` tuple, because there are
some classes with the same :attr:`name` but different
:attr:`cpp_class_names`.

)r   r   dxfr   r   )r   r   r   s      r   getClassesSection.get   s=     <<&&(Cww||t#
 ) $r   c                   [         R                  U[        5      nU H  nU R                  U5        M     U R                  c  gU R                  R
                  R                  5       nSU;   a3  U R                  S5        U R                  S5        U R                  S5        SU;   a"  U R                  S5        U R                  S5        SU;   a"  U R                  S5        U R                  S5        S	U;   a"  U R                  S
5        U R                  S	5        SU;   a"  U R                  S5        U R                  S5        SU;   a"  U R                  S5        U R                  S5        SU;   a"  U R                  S5        U R                  S5        SU;   a"  U R                  S5        U R                  S5        U H  nU R                  U5        M     g)zAAdd all required CLASS definitions for the specified DXF version.NrN   rG   rL   rR   rP   rV   rT   rZ   rX   rd   rp   rf   rr   rh   rt   rj   rv   )REQUIRED_CLASSESr   	REQ_R2004r   r   entitydbdxf_types_in_use)r   
dxfversionnamesr   r   r   s         r   add_required_classes#ClassesSection.add_required_classes	  s    $$Z;DNN4   8888,,==?&&NN7#NN:&NN-.,,NN?+NN=),,NN?+NN=),,NN?+NN=) 00NN,-NN?@..NN?+NN=> 00NN,-NN?@--NN>*NN<='GNN7# (r   c                    UR                  S5        U R                  R                  5        H  nUR                  U5        M     UR                  S5        g)zExport DXF tags. (internal API)z  0
SECTION
  2
CLASSES
z  0
ENDSEC
N)	write_strr   r   
export_dxf)r   	tagwriterr   s      r   r   ClassesSection.export_dxf0  sD    :;++-H	* .O,r   c                   U R                   c   eU R                   R                  [        :  a  g[        5       nU R                   R                  R                  5        H  nXR                  5       ==   S-  ss'   M     U R                  R                  5        H*  nXR                  R                     UR                  l
        M,     g)zOUpdate CLASS instance counter for all registered classes, requires
DXF R2004+.
Nr.   )r   r   r   r
   r   r   r   r   r   r   instance_count)r   counterr   r   s       r   update_instance_counters'ClassesSection.update_instance_counters7  s     xx###88("))hh''..0FNN$%*% 1 ++-H*1,,2C2C*DHLL' .r   )r   r   )NN)r   zOptional[Drawing]r   zOptional[Iterable[DXFEntity]])returnzIterator[DXFClass])r   zIterator[DXFEntity]r   Noner   )r   z-Optional[Union[DXFClass, Iterable[DXFClass]]]r   r   )r   str)r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   )__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      sb     "&26&& 0&6& HL-D-	-& %$N-Er   r   )"
__future__r   typingr   r   r   r   r   r	   collectionsr
   r   loggingezdxf.lldxf.constr   r   r   r   ezdxf.entities.dxfclassr   ezdxf.entities.dxfentityr   r   ezdxf.documentr   ezdxf.lldxf.tagwriterr   	getLoggerr   r   	REQ_R2000r   r   r   r   r   r   <module>r      s   # K K ,  N N , =&7			7	#q q 
-q Hq Eq Aq Gq ;q Oq @q  ?!q" I#q$ J%q&  'q4 C5q6 G7q8 >9q: 9;q<  =qJ  KqX 6YqZ >[q\ E]q^ 3_q` Kaqb Hcqd Keqf Hgqh Kiqj Hkql   mqz H{q| :}q~ ?q@ OAqB HCqD LEqF FGqH IIqJ HKqL ) +MqZ ' )[qh ) +iqv & (wqD ;EqF 4GqH DIqJ CKqL ?MqN HOqP @QqR JSqT  Uq f	$	" YY LE LEr   