
    h "                       S SK Jr  S SKJrJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJrJrJr  S SKJrJrJrJrJrJrJr  S SKJr  SS	K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'  S SK(J)r)  SS/r*\" S\
" SS\RV                  S9\
" SS S\RX                  \S9S.5      r-\" \-5      r.\" S\
" S\R^                  S9\
" SS\SS9\
" SS S9\
" S \R`                  \S!9\
" SSS9S".5      r1\" \15      r2\" \.\25      r3\Rh                  " 5       r5\Rh                  " 5       r6\Rh                  " 5       r7\Rh                  " 5       r8\  " S# S\5      5       r9\" S$0 5      r:\  " S% S\5      5       r;g&)'    )annotations)TYPE_CHECKINGOptional)Self)	validator)DXFAttrDXFAttributesDefSubclassXTypeRETURN_DEFAULTgroup_code_mappingmerge_group_code_mappings)SUBCLASS_MARKERDXF12DXF2000MODEL_SPACE_R12PAPER_SPACE_R12MODEL_SPACE_R2000PAPER_SPACE_R2000)NULLVEC   )
base_classSubclassProcessor	DXFEntity)register_entity)Auditor
AuditError)DXFNamespace)AbstractTagWriter)xrefBlockEndBlk
AcDbEntity   0)defaultr   C   T)r&   optionalr   fixer)layer
paperspaceAcDbBlockBegin       )r&   
dxfversionr(   F   )r&   
   )xtyper&   )namedescriptionflags
base_point	xref_pathc                     ^  \ rS rSrSrSr\" \\\	5      r
SrSrSrSrSrS	rS
r S   SU 4S jjjrSU 4S jjr\SS j5       r\SS j5       r\SS j5       r\SS j5       rSS jrSU 4S jjrSrU =r$ )r!   Y   zDXF BLOCK entityBLOCKr   r-   r.   r$          @   c                2  > [         TU ]  U5      nUc  U$ UR                  U[        5        UR                  (       aZ  UR
                  c  SUl        UR
                  R                  5       nU[        :X  a  [        Ul        U$ U[        :X  a  [        Ul        U$ )!Loading interface. (internal API)r/   )superload_dxf_attribssimple_dxfattribs_loadermerged_block_begin_group_codesr12r4   lowerMODEL_SPACE_R12_LOWERr   PAPER_SPACE_R12_LOWERr   )self	processordxfr4   	__class__s       F/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/block.pyrB   Block.load_dxf_attribsy   s     g&y1J**30NO==xx88>>#D,,, 
 ..,
    c                .  > [         TU ]  U5        UR                  [        :  a$  UR	                  [
        [        R                  5        U R                  R                  S5      (       a  UR	                  SS5        U R                  R                  US5        UR                  [        :  a$  UR	                  [
        [        R                  5        U R                  R                  nUR                  [        :X  a=  UR                  5       [        :X  a  [        nOUR                  5       [        :X  a  [         nUR	                  SU5        U R                  R                  USS/5        UR	                  SU5        U R                  R                  US	S
/5        g)(Export entity specific data as DXF tags.r+   r'   r   r*   r-   r6   r7      r8   r5   N)rA   export_entityr0   r   
write_tag2r   acdb_entityr4   rK   hasattrexport_dxf_attribsacdb_block_beginrF   MODEL_SPACE_R2000_LOWERr   PAPER_SPACE_R2000_LOWERr   )rI   	tagwriterr4   rL   s      rM   rS   Block.export_entity   s'   i(%'  +2B2BC88L))  Q'##Iw7%'  2B2G2GHxx}}5(zz|66&!88&Q%##I/FGQ%##I]/KLrO   c                    U R                   R                  R                  5       nUR                  S5      =(       d    UR                  S5      $ )zyReturns ``True`` if this is a :class:`~ezdxf.layouts.Modelspace` or
:class:`~ezdxf.layouts.Paperspace` block definition.
z*model_spacez*paper_space)rK   r4   rF   
startswith)rI   r4   s     rM   is_layout_blockBlock.is_layout_block   s7    
 xx}}""$~.Q$//.2QQrO   c                @    U R                  [        R                  5      $ )zReturns ``True`` if this is an anonymous block generated by
hatching, associative dimensioning, other internal operations, or an
application.

)get_flag_stater!   	ANONYMOUSrI   s    rM   is_anonymousBlock.is_anonymous   s     ""5??33rO   c                @    U R                  [        R                  5      $ )z8Returns ``True`` if bock is an external referenced file.)rb   r!   XREFrd   s    rM   is_xrefBlock.is_xref   s     ""5::..rO   c                @    U R                  [        R                  5      $ )z@Returns ``True`` if bock is an external referenced overlay file.)rb   r!   XREF_OVERLAYrd   s    rM   is_xref_overlayBlock.is_xref_overlay   s     ""5#5#566rO   c                   U R                   R                  S5      nUc  g UR                  R                  U5      nUc  g UR                   R                  SS5      R                  5       nU R                   R                  SS5      R                  5       nXE:w  a?  UR	                  [
        R                  [        U 5       SU S[        U5       SU S35        g g )Nownerr4   r/   z name 'z' and z
' mismatch)rK   getentitydbupper	add_errorr   BLOCK_NAME_MISMATCHstr)rI   auditorowner_handlerp   
owner_name
block_names         rM   auditBlock.audit   s    xx||G,  $$\2=YY]]62.446
XX\\&"-335
#..t9+WZLs5zl'*U_` $rO   c                   > [        U[        5      (       d   e[        TU ]  X5        UR	                  U R
                  R                  5      UR
                  l        g)z3Translate resources from self to the copied entity.N)
isinstancer!   rA   map_resourcesget_block_namerK   r4   )rI   clonemappingrL   s      rM   r   Block.map_resources   sA    %''''e- //>		rO    NrJ   zOptional[SubclassProcessor]returnr   r[   r   r   None)r   bool)rw   r   )r   r   r   zxref.ResourceMapperr   r   )__name__
__module____qualname____firstlineno____doc__DXFTYPEr	   r   rU   rX   
DXFATTRIBSrc   NON_CONSTANT_ATTRIBUTESrh   rl   EXTERNALRESOLVED
REFERENCEDrB   rS   propertyr_   re   ri   rm   r{   r   __static_attributes____classcell__rL   s   @rM   r!   r!   Y   s    Gz;8HIJ
 I
   D L H H J 8<4	 $M2 R R 4 4 / / 7 7? ?rO   AcDbBlockEndc                  d   ^  \ rS rSrSrSr\" \\\	5      r
 S   SU 4S jjjrS	U 4S jjrSrU =r$ )
r"      zDXF ENDBLK entityENDBLKc                `   > [         TU ]  U5      nU(       a  UR                  U[        5        U$ )r@   )rA   rB   rC   acdb_entity_group_codes)rI   rJ   rK   rL   s      rM   rB   EndBlk.load_dxf_attribs   s-     g&y1..s4KL
rO   c                  > [         TU ]  U5        UR                  [        :  a$  UR	                  [
        [        R                  5        U R                  R                  S5      (       a  UR	                  SS5        U R                  R                  US5        UR                  [        :  a%  UR	                  [
        [        R                  5        gg)rQ   r+   r'   r   r*   N)rA   rS   r0   r   rT   r   rU   r4   rK   rV   rW   acdb_block_end)rI   r[   rL   s     rM   rS   EndBlk.export_entity   s    i(%'  +2B2BC88L))  Q'##Iw7%'  .2E2EF (rO   r   r   r   r   )r   r   r   r   r   r   r	   r   rU   r   r   rB   rS   r   r   r   s   @rM   r"   r"      sD    Gz;GJ 8<4	 
G 
GrO   N)<
__future__r   typingr   r   typing_extensionsr   ezdxf.lldxfr   ezdxf.lldxf.attributesr   r	   r
   r   r   r   r   ezdxf.lldxf.constr   r   r   r   r   r   r   
ezdxf.mathr   	dxfentityr   r   r   factoryr   ezdxf.auditr   r   ezdxf.entitiesr   ezdxf.lldxf.tagwriterr   ezdxfr    __all__is_valid_layer_nameis_integer_boolrU   r   is_valid_block_name	any_pointrX   acdb_block_begin_group_codesrD   rF   rY   rG   rZ   rH   r!   r   r"   r   rO   rM   <module>r      s   # * " !      ? ? $ ++7H
 C93P3PQ// 

 -[9 Y%B%BC q"4P Q'bIQ+) 2  22BC !:9"  ,113 '--/ +113 '--/  x?I x? x?v ^R0 GY G GrO   