Ë
    £èhò"  ã                  óü  — 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mZmZmZmZ d dl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mZ dd
lm Z  d dl!m"Z"m#Z# erd dl$m%Z% d dl&m'Z' d dl(m)Z) ddgZ* ed e
ddejV                  ¬«       e
dd dejX                  e¬«      dœ«      Z- ee-«      Z. ed e
dej^                  ¬«       e
dded¬«       e
dd ¬«       e
d ej`                  e¬!«       e
dd¬«      d"œ«      Z1 ee1«      Z2 ee.e2«      Z3 ejh                  «       Z5 ejh                  «       Z6 ejh                  «       Z7 ejh                  «       Z8e  G d#„ de«      «       Z9 ed$i «      Z:e  G d%„ de«      «       Z;y&)'é    )Ú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                  óÊ   ‡ — e Zd ZdZdZ eeee«      Z	dZ
dZdZdZdZdZd	Z	 d	 	 	 dˆ fd
„Zdˆ fd„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zdd„Zdˆ fd„Zˆ xZS )r!   zDXF BLOCK entityÚBLOCKr   r-   r.   r$   é   é    é@   c                ó   •— t         ‰| �  |«      }|€|S |j                  |t        «       |j                  rW|j
                  €d|_        |j
                  j                  «       }|t        k(  rt        |_        |S |t        k(  rt        |_        |S )ú!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       €ú4lib/python3.12/site-packages/ezdxf/entities/block.pyrA   zBlock.load_dxf_attribsy   s†   ø€ ô ‰gÑ& yÓ1ˆØÐØˆJØ×*Ñ*¨3Ô0NÔOØ�=Š=Ø�x‰xÐØ�”Ø—8‘8—>‘>Ó#ˆDØÔ,Ò,Ü,�”ð ˆ
ð Ô.Ò.Ü,�”Øˆ
ó    c                ó  •— t         ‰| �  |«       |j                  t        kD  r$|j	                  t
        t        j                  «       | j                  j                  d«      r|j	                  dd«       | j                  j                  |d«       |j                  t        kD  r$|j	                  t
        t        j                  «       | j                  j                  }|j                  t        k(  r;|j                  «       t        k(  rt        }n|j                  «       t        k(  rt         }|j	                  d|«       | j                  j                  |ddg«       |j	                  d|«       | j                  j                  |d	d
g«       y)ú(Export entity specific data as DXF tags.r+   r'   r   r*   r-   r6   r7   é   r8   r5   N)r@   Úexport_entityr0   r   Ú
write_tag2r   Úacdb_entityr4   rJ   ÚhasattrÚexport_dxf_attribsÚacdb_block_beginrE   ÚMODEL_SPACE_R2000_LOWERr   ÚPAPER_SPACE_R2000_LOWERr   )rH   Ú	tagwriterr4   rK   s      €rL   rQ   zBlock.export_entity‹   s$  ø€ ä‰Ñ˜iÔ(à×Ñ¤%Ò'Ø× Ñ ¤´+×2BÑ2BÔCØ�8‰8×Ñ˜LÔ)Ø× Ñ   QÔ'Ø�‰×#Ñ# I¨wÔ7Ø×Ñ¤%Ò'Ø× Ñ ¤Ô2B×2GÑ2GÔHà�x‰x�}‰}ˆØ×Ñ¤5Ò(à�z‰z‹|Ô6Ò6Ü&‘Ø—‘“Ô!8Ò8Ü&�à×Ñ˜Q Ô%Ø�‰×#Ñ# I°¸Ð/FÔGØ×Ñ˜Q Ô%Ø�‰×#Ñ# I°¸]Ð/KÕLrM   c                ó’   — | j                   j                  j                  «       }|j                  d«      xs |j                  d«      S )z‰Returns ``True`` if this is a :class:`~ezdxf.layouts.Modelspace` or
        :class:`~ezdxf.layouts.Paperspace` block definition.
        z*model_spacez*paper_space)rJ   r4   rE   Ú
startswith)rH   r4   s     rL   Úis_layout_blockzBlock.is_layout_block¤   s7   € ð
 �x‰x�}‰}×"Ñ"Ó$ˆØ�‰˜~Ó.ÒQ°$·/±/À.Ó2QÐQrM   c                ó@   — | j                  t        j                  «      S )z§Returns ``True`` if this is an anonymous block generated by
        hatching, associative dimensioning, other internal operations, or an
        application.

        )Úget_flag_stater!   Ú	ANONYMOUS©rH   s    rL   Úis_anonymouszBlock.is_anonymous¬   s   € ð ×"Ñ"¤5§?¡?Ó3Ð3rM   c                ó@   — | j                  t        j                  «      S )z8Returns ``True`` if bock is an external referenced file.)r^   r!   ÚXREFr`   s    rL   Úis_xrefzBlock.is_xrefµ   s   € ð ×"Ñ"¤5§:¡:Ó.Ð.rM   c                ó@   — | j                  t        j                  «      S )z@Returns ``True`` if bock is an external referenced overlay file.)r^   r!   ÚXREF_OVERLAYr`   s    rL   Úis_xref_overlayzBlock.is_xref_overlayº   s   € ð ×"Ñ"¤5×#5Ñ#5Ó6Ð6rM   c                ó¬  — | j                   j                  d«      }|€y |j                  j                  |«      }|€y |j                   j                  dd«      j                  «       }| j                   j                  dd«      j                  «       }||k7  r?|j	                  t
        j                  t        | «      › d|› dt        |«      › d|› d�«       y y )NÚownerr4   r/   z name 'z' and z
' mismatch)rJ   ÚgetÚentitydbÚupperÚ	add_errorr   ÚBLOCK_NAME_MISMATCHÚstr)rH   ÚauditorÚowner_handleri   Ú
owner_nameÚ
block_names         rL   ÚauditzBlock.audit¿   s¾   € Ø—x‘x—|‘| GÓ,ˆØÐØØ× Ñ ×$Ñ$ \Ó2ˆØˆ=ØØ—Y‘Y—]‘] 6¨2Ó.×4Ñ4Ó6ˆ
Ø—X‘X—\‘\ &¨"Ó-×3Ñ3Ó5ˆ
Ø˜Ò#Ø×ÑÜ×.Ñ.Ü�t“9�+˜W Z L°´s¸5³z°lÀ'È*ÈÐU_Ð`õð $rM   c                ó²   •— t        |t        «      sJ ‚t        ‰| �  ||«       |j	                  | j
                  j                  «      |j
                  _        y)z3Translate resources from self to the copied entity.N)Ú
isinstancer!   r@   Úmap_resourcesÚget_block_namerJ   r4   )rH   ÚcloneÚmappingrK   s      €rL   rw   zBlock.map_resourcesÎ   s@   ø€ ä˜%¤Ô'Ð'Ð'Ü‰Ñ˜e WÔ-Ø ×/Ñ/°·±·±Ó>ˆ�	‰	�rM   ©N©rI   zOptional[SubclassProcessor]Úreturnr   ©rY   r   r}   ÚNone)r}   Úbool)rp   r   )ry   r   rz   zxref.ResourceMapperr}   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚDXFTYPEr	   r   rS   rV   Ú
DXFATTRIBSr_   ÚNON_CONSTANT_ATTRIBUTESrc   rf   ÚEXTERNALÚRESOLVEDÚ
REFERENCEDrA   rQ   Úpropertyr\   ra   rd   rg   rt   rw   Ú__classcell__©rK   s   @rL   r!   r!   Y   sÍ   ø„ áà€GÙ˜z¨;Ð8HÓI€Jð
 €Ið
  Ðð €Dð €Lð €Hð €Hð €Jð 8<ðØ4ðà	õõ$Mð2 òRó ðRð ò4ó ð4ð ò/ó ð/ð ò7ó ð7ó÷?ñ ?rM   ÚAcDbBlockEndc                  óR   ‡ — e Zd ZdZdZ eeee«      Z		 d	 	 	 dˆ fd„Z
dˆ fd„Zˆ xZS )r"   zDXF ENDBLK entityÚENDBLKc                óV   •— t         ‰| �  |«      }|r|j                  |t        «       |S )r?   )r@   rA   rB   Úacdb_entity_group_codes)rH   rI   rJ   rK   s      €rL   rA   zEndBlk.load_dxf_attribsß   s-   ø€ ô ‰gÑ& yÓ1ˆÙØ×.Ñ.¨sÔ4KÔLØˆ
rM   c                ó”  •— t         ‰| �  |«       |j                  t        kD  r$|j	                  t
        t        j                  «       | j                  j                  d«      r|j	                  dd«       | j                  j                  |d«       |j                  t        kD  r%|j	                  t
        t        j                  «       yy)rO   r+   r'   r   r*   N)r@   rQ   r0   r   rR   r   rS   r4   rJ   rT   rU   Úacdb_block_end)rH   rY   rK   s     €rL   rQ   zEndBlk.export_entityè   s“   ø€ ä‰Ñ˜iÔ(à×Ñ¤%Ò'Ø× Ñ ¤´+×2BÑ2BÔCØ�8‰8×Ñ˜LÔ)Ø× Ñ   QÔ'Ø�‰×#Ñ# I¨wÔ7Ø×Ñ¤%Ò'Ø× Ñ ¤´.×2EÑ2EÕFð (rM   r{   r|   r~   )r�   r‚   rƒ   r„   r…   r	   r   rS   r”   r†   rA   rQ   rŒ   r�   s   @rL   r"   r"   Ø   s?   ø„ áà€GÙ˜z¨;¸ÓG€Jð 8<ðØ4ðà	õ÷
Gñ 
GrM   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_boolrS   r’   Úis_valid_block_nameÚ	any_pointrV   Úacdb_block_begin_group_codesrC   rE   rW   rF   rX   rG   r!   r”   r"   © rM   rL   Ú<module>r©      s³  ðõ #ß *Ý "Ý !÷÷ ñ ÷÷ ñ õ ß ?Ñ ?Ý $ß +áÝ+Ý7Ýà�HÐ
€áØñ ˜ C°9×3PÑ3PÔQÙØØØØ×/Ñ/Ø ô
ñ
ó€ñ -¨[Ó9Ð áØá˜ Y×%BÑ%BÔCñ ˜q¨"¸È4ÔPñ ˜ QÔ'Ù˜b¨¯©ÀÔIÙ˜Q¨Ô+ñ)óÐ ñ2  2Ð2BÓCÐ Ù!:ØÐ9ó"Ð ð 2Ð+×1Ñ1Ó3Ð Ø-˜×-Ñ-Ó/Ð Ø1Ð+×1Ñ1Ó3Ð Ø-˜×-Ñ-Ó/Ð ð ôx?ˆIó x?ó ðx?ñv ˜^¨RÓ0€ð ôGˆYó Gó ñGrM   