
    hH                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S S	KJr  S S
KJr  SSK7  SSKJr  SSKJr  SSKJr  SS/rSS\SS4S jjrSS\S\4S jjr " S S5      r g)    )Dict)Drawing)codepage)HeaderSection)ClassesSection)TablesSection)BlocksSection)EntitySection)ObjectsSection)AcDsDataSection   )*)
FileHeader)load_header_section)load_classes_sectionreadfileloadfilenamereturnr   c                 L    [        U S5      R                  5       n[        X!5      $ )Nrb)openreadr   )r   	crc_checkdatas      I/var/www/html/env/lib/python3.13/site-packages/ezdxf/addons/dwg/loader.pyr   r      s"    $$$&D      r   c                 L    [        XS9nUR                  5         UR                  $ N)r   )DwgDocumentr   doc)r   r   r!   s      r   r   r      s    
d
0CHHJ77Nr   c                   p    \ rS rSrSS\4S jjrS\4S jrS rSS jr	S	\
4S
 jrSS jrSS jrSS jrSrg)r    #   r   c                     [        U5      U l        X l        [        XS9U l        U R                  5       U l        [        5       U l        g r   )	
memoryviewr   r   r   specs
_setup_docr!   dictdxf_object_types)selfr   r   s      r   __init__DwgDocument.__init__$   s7    t$	":
 OO-04r   r   c                    [        U R                  R                  S9nU R                  R                  Ul        [        R
                  " 5       Ul        U R                  R                  UR                  S'   U R                  R                  UR                  S'   [        R                  " U R                  R                  5      UR                  S'   [        U5      Ul        U$ )N)
dxfversionz$ACADVERz$ACADMAINTVERz$DWGCODEPAGE)r   r&   versionencodingr   newheadermaintenance_release_versionr   
tocodepager   classes)r*   r!   s     r   r'   DwgDocument._setup_doc,   s    !3!34zz**"&&(
 "&!3!3

:&*jj&L&L

?#%-%8%89L9L%M

>"$S) 
r   c                     U R                  5         U R                  5         U R                  5         U R                  5         g N)load_headerload_classesload_objectsstore_objectsr*   s    r   r   DwgDocument.load>   s2    r   Nc                     [        U R                  U R                  U R                  5      nUR	                  5       nU R                  U5        g r8   )r   r&   r   r   load_header_varsset_header_vars)r*   hdr_sectionhdr_varss      r   r9   DwgDocument.load_headerD   s8    )$**diiP//1X&r   rC   c                     g r8    )r*   rC   s     r   rA   DwgDocument.set_header_varsI       r   c                    [        U R                  U R                  U R                  5      nUR	                  5        HM  u  p#U R
                  R                  R                  U5        UR                  R                  U R                  U'   MO     g r8   )r   r&   r   r   r:   r!   r5   registerdxfnamer)   )r*   cls_section	class_numdxfclasss       r   r:   DwgDocument.load_classesL   si    *JJ		4>>
 $/#;#;#=IHH%%h//7||/@/@D!!), $>r   c                     g r8   rF   r=   s    r   r;   DwgDocument.load_objectsT   rH   r   c                     g r8   rF   r=   s    r   r<   DwgDocument.store_objectsW   rH   r   )r   r   r!   r)   r&   F)r   N)__name__
__module____qualname____firstlineno__Bytesr+   r   r'   r   r9   r   rA   r:   r;   r<   __static_attributes__rF   r   r   r    r    #   s@    7U 7G $'
 Ar   r    NrU   )!typingr   ezdxf.documentr   ezdxf.toolsr   ezdxf.sections.headerr   ezdxf.sections.classesr   ezdxf.sections.tablesr   ezdxf.sections.blocksr	   ezdxf.sections.entitiesr
   ezdxf.sections.objectsr   ezdxf.sections.acdsdatar   const
fileheaderr   header_sectionr   classes_sectionr   __all__strr   bytesr   r    rF   r   r   <module>rm      sk     "   / 1 / / 1 1 3  " / 1v
!s !	 !
u ' 5 5r   