
    Og                    n    d dl mZ d dlmZmZ d dlmZ d dlZddlmZ ddZ	ddZ
e G d	 d
             Zy)    )annotations)	dataclassfield)datetimeN   )constc                    | j                  dd      }t        j                  dt        j                  j
                  t        |            |z   S )Nutf8ignore)errorsz<BB)encodestructpackr   TagsSTRlen)sbs     S/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/acis/hdr.py
encode_strr      s8    	)A;;uejjnnc!f599    c                `    t        j                  dt        j                  j                  |       S )Nz<Bd)r   r   r   r   DOUBLE)values    r   encode_doubler      s    ;;uejj//77r   c                  ^   e Zd ZU dZej
                  Zded<   dZded<   dZ	ded<   dZ
ded<   ej                  Zded	<   ej                  ej
                     Zded
<    eej"                        Zded<   dZded<   dZded<   dZded<   edd       Zd dZd!dZd"dZd#dZd Zd"dZd!dZy)$
AcisHeaderzRepresents an ACIS file header.intversionr   	n_records
n_entitiesflagsstr
product_idacis_version)default_factoryr   creation_dateg      ?floatunits_in_mm asm_versionFboolasm_end_markerc                     | j                   dk7  S )Nr*   )r+   selfs    r   has_asm_headerzAcisHeader.has_asm_header-   s    2%%r   c                    | j                    d| j                   d| j                   d| j                   d| j	                         | j
                  ddgS )z/Returns the SAT file header as list of strings. gz  9.9999999999999995e-007 1e-010 )r   r    r!   r"   _header_strr)   r/   s    r   dumpszAcisHeader.dumps1   s\     ||nAdnn-Qt.?qAN""BC
 	
r   c                D   g }| j                   dkD  r |j                  t        j                         n|j                  t        j                         t        j                  d| j                   | j                  | j                  | j                        }|j                  |       |j                  t        | j                               |j                  t        | j                               |j                  t        | j                  j                                      |j                  t        | j                                |j                  t        t        j"                               |j                  t        t        j$                               dj'                  |      S )z%Returns the SAB file header as bytes.i(U  z<iiiir   )r   appendr   ASM_SIGNATUREACIS_SIGNATUREr   r   r    r!   r"   r   r$   r%   r'   ctimer   r)   RES_TOLNOR_TOLjoin)r0   bufferdatas      r   dumpbzAcisHeader.dumpb9   s
    <<%MM%--.MM%../{{T\\4>>4??DJJ
 	dj12j!2!234j!3!3!9!9!;<=mD$4$456mEMM23mEMM23xxr   c                n   t        | j                        }t        | j                        }| j                  j	                         }| j
                  dkD  r2d| d| j                   d| d| j                   dt        |       d| dS | d| j                   d| d| j                   dt        |       d| dS )Ni  @r3   z @)r   r$   r%   r'   r;   r   )r0   p_lena_lendates       r   r5   zAcisHeader._header_strL   s    DOO$D%%&!!'')<<#ugQt/r%$:K:K9LBsSWykYZ[_Z``abbWAdoo.awa8I8I7J!CPTI;VWX\W]]^__r   c                    	 t         j                  |   | _        || _        t         j                  j                  |d      | _        y# t        $ r t        d|       w xY w)zfSets the ACIS version as an integer value and updates the version
        string accordingly.
        zinvalid ACIS version number r*   N)	r   ACIS_VERSIONr%   r   KeyError
ValueErrorASM_VERSIONgetr+   )r0   r   s     r   set_versionzAcisHeader.set_versionU   se    	G % 2 27 ;D"DL !,,00"=  	G;G9EFF	Gs   A Ac                2    ddl m}  || j                        S )Nr   )	AsmHeader)entitiesrO   r+   )r0   rO   s     r   
asm_headerzAcisHeader.asm_header`   s    '))**r   c                f    | j                   rt        j                  dz   S t        j                  dz   S )Nr3   )r-   r   END_OF_ASM_DATA_SATEND_OF_ACIS_DATA_SATr/   s    r   sat_end_markerzAcisHeader.sat_end_markerd   s-    ,,s22--33r   c                Z    | j                   rt        j                  S t        j                  S )N)r-   r   END_OF_ASM_DATA_SABEND_OF_ACIS_DATA_SABr/   s    r   sab_end_markerzAcisHeader.sab_end_markerj   s#    ,,,---r   N)returnr,   )rZ   z	list[str])rZ   bytes)rZ   r#   )r   r   rZ   None)__name__
__module____qualname____doc__r   MIN_EXPORT_VERSIONr   __annotations__r    r!   r"   EZDXF_BUILDER_IDr$   rH   r%   r   r   nowr'   r)   r+   r-   propertyr1   r6   rA   r5   rM   rQ   rU   rY    r   r   r   r      s    )++GS+IsJE3N,,J,**5+C+CDL#D#HLLAM8AKK ND & &
 &`	>+4.r   r   )r   r#   rZ   r[   )r   r(   rZ   r[   )
__future__r   dataclassesr   r   r   r   r*   r   r   r   r   rf   r   r   <module>ri      s<    # (   :
8 O. O. O.r   