Ë
    £èh)  ã                  óä   — d dl mZ d dlmZmZmZmZmZ d dlm	Z	 d dl
Z
d dlmZ d dlmZ erd dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZ  e
j2                  d«      Z G d„ d«      Z G d„ d«      Zy)é    )Úannotations)ÚTYPE_CHECKINGÚIterableÚIteratorÚcastÚOptional)ÚchainN)Úconst)Úentity_linker)ÚDrawing)Ú	DXFEntityÚDXFTagStorageÚBlockRecordÚ
DXFGraphic)ÚAbstractTagWriter)ÚTagsÚezdxfc                  ó   — e Zd Zdd„Zdd„Zy)ÚStoredSectionc                ó   — || _         y ©N)Úentities)Úselfr   s     ú7lib/python3.12/site-packages/ezdxf/sections/entities.pyÚ__init__zStoredSection.__init__   s	   € Ø ˆ�ó    c                ój   — | j                   D ]  }|j                  |«       Œ |j                  d«       y )Nz  0
ENDSEC
)r   Ú
write_tagsÚ	write_str)r   Ú	tagwriterÚentitys      r   Ú
export_dxfzStoredSection.export_dxf   s.   € à—m”mˆFØ× Ñ  Õ(ð $ð 	×Ñ˜OÕ,r   N)r   z
list[Tags])r    r   )Ú__name__Ú
__module__Ú__qualname__r   r"   © r   r   r   r      s   „ ó!ô-r   r   c                  óD   — e Zd ZdZ	 	 d	 	 	 d	d„Zd
d„Zdd„Zdd„Zdd„Zy)ÚEntitySectionzy:class:`EntitiesSection` is just a proxy for :class:`Modelspace` and
    active :class:`Paperspace` linked together.
    Nc                óL   — || _         |�| j                  t        |«      «       y y r   )ÚdocÚ_buildÚiter)r   r*   r   s      r   r   zEntitySection.__init__&   s&   € ð
 ˆŒØÐØ�K‰Kœ˜X›Õ'ð  r   c              #  ó¶   K  — | j                   €J ‚| j                   j                  }t        |j                  «       |j	                  «       «      D ]  }|–— Œ y­w)zbReturns an iterator for all entities of the modelspace and the active
        paperspace.
        N)r*   Úlayoutsr	   Ú
modelspaceÚactive_layout)r   r.   r!   s      r   Ú__iter__zEntitySection.__iter__/   sP   è ø€ ð �x‰xÐ#Ð#Ð#Ø—(‘(×"Ñ"ˆÜ˜G×.Ñ.Ó0°'×2GÑ2GÓ2IÖJˆFØ‹Lñ Kùs   ‚AAc                ó°   — | j                   €J ‚| j                   j                  }t        |j                  «       «      t        |j	                  «       «      z   S )zWReturns the count of all entities in the modelspace and the active paperspace.
        )r*   r.   Úlenr/   r0   )r   r.   s     r   Ú__len__zEntitySection.__len__8   sJ   € ð �x‰xÐ#Ð#Ð#Ø—(‘(×"Ñ"ˆÜ�7×%Ñ%Ó'Ó(¬3¨w×/DÑ/DÓ/FÓ+GÑGÐGr   c                ó0  ‡‡‡‡	— | j                   €J ‚t        dt        |«      «      }|j                  «       dk7  s|j                  d   dk7  rt        j                  d«      ‚d
ˆˆˆˆ	fd„}t        d| j                   j                  j                  d«      «      Št        d| j                   j                  j                  d	«      «      Š‰j                  j                  Š‰j                  j                  Š	t        «       }|D ]  } ||«      rŒ ||«       Œ y )Nr   ÚSECTIONé   )é   ÚENTITIESz-Critical structure error in ENTITIES section.c                ó  •— | j                   j                  }d}|‰k(  rd}n9|‰k(  rd}n1| j                   j                  d«      r| j                   j                  }|r‰j	                  | «       y ‰j	                  | «       y )Nr   r7   Ú
paperspace)ÚdxfÚownerÚhasattrr;   Ú
add_entity)r!   Úhandler;   ÚmspÚmsp_layout_keyÚpspÚpsp_layout_keys      €€€€r   Úaddz!EntitySection._build.<locals>.addK   sr   ø€ Ø—Z‘Z×%Ñ%ˆFàˆJØ˜Ò'Ø‘
Ø˜>Ò)Ø‘
Ø—‘×#Ñ#Øôð $ŸZ™Z×2Ñ2�
áØ—‘˜vÕ&à—‘˜vÕ&r   r   z*Model_Spacez*Paper_Space)r!   r   )r*   r   ÚnextÚdxftypeÚ
base_classr
   ÚDXFStructureErrorÚblock_recordsÚgetr<   r@   r   )
r   r   Úsection_headrE   Úlinked_entitiesr!   rA   rB   rC   rD   s
         @@@@r   r+   zEntitySection._buildA   sî   û€ Ø�x‰xÐ#Ð#Ð#Ü˜O¬T°(«^Ó<ˆØ×ÑÓ! YÒ.°,×2IÑ2IØñ3
àò3ô ×)Ñ)Ø?óð ÷	'ð 	'ô$ �= $§(¡(×"8Ñ"8×"<Ñ"<¸^Ó"LÓMˆÜ�= $§(¡(×"8Ñ"8×"<Ñ"<¸^Ó"LÓMˆØ!Ÿg™gŸn™nˆØ!Ÿg™gŸn™nˆÜ'›/ˆãˆFñ # 6Õ*Ù�F•ñ	 r   c                ó6  — | j                   €J ‚| j                   j                  }|j                  d«       |j                  «       j                  j                  |«       |j                  «       j                  j                  |«       |j                  dd«       y )Nz  0
SECTION
  2
ENTITIES
r   ÚENDSEC)r*   r.   r   r/   Úentity_spacer"   r0   Ú
write_tag2)r   r    r.   s      r   r"   zEntitySection.export_dxfi   s|   € Ø�x‰xÐ#Ð#Ð#Ø—(‘(×"Ñ"ˆØ×ÑÐ;Ô<ð 	×ÑÓ×)Ñ)×4Ñ4°YÔ?Ø×ÑÓ×,Ñ,×7Ñ7¸	ÔBØ×Ñ˜Q Õ)r   )NN)r*   zOptional[Drawing]r   zOptional[Iterable[DXFEntity]])ÚreturnúIterator[DXFEntity])rR   Úint)r   rS   rR   ÚNone)r    r   rR   rU   )	r#   r$   r%   Ú__doc__r   r1   r4   r+   r"   r&   r   r   r(   r(   !   s<   „ ñð "&Ø26ð(àð(ð 0ó(óóHó&ôP*r   r(   )Ú
__future__r   Útypingr   r   r   r   r   Ú	itertoolsr	   ÚloggingÚezdxf.lldxfr
   Úezdxf.entitiesr   Úezdxf.documentr   r   r   r   r   Úezdxf.lldxf.tagwriterr   Úezdxf.lldxf.tagsr   Ú	getLoggerÚloggerr   r(   r&   r   r   Ú<module>rb      sX   ðõ #ß DÕ DÝ Û å Ý (áÝ&ßPÓPÝ7Ý%ð 
ˆ×	Ñ	˜7Ó	#€÷	-ñ 	-÷P*ò P*r   