
    hC)                        S SK Jr  S SKJrJr  S SKrS SKrS SKJr  S SK	J
r
  1 SkrSrSrS	rS
rSrSrSrSrSrSrSrSrSS jrSS jrSS jrSS jrSS jrS S jrS!S jr " S S5      r\" 5       r g)"    )annotations)TextIOSequenceN)Path)ConfigParser>   1OnonTruetruecorezbrowse-commandzview-commandzdraw-commandz	ezdxf.iniezdxfXDG_CONFIG_HOMEz.configzodafc-addonzopenscad-addonzdrawing-addon
c                    [         R                  R                  U 5      nU(       a"  [        U5      R	                  5       nU[
        -  $ [        S5      R	                  5       U-  nU[
        -  $ )N~)osenvirongetr   
expanduserEZDXF)xdg_var	directoryxdg_homehomes       @/var/www/html/env/lib/python3.13/site-packages/ezdxf/_options.pyxdg_pathr       sX    zz~~g&HH~((* %< Cy##%	1%<    c                 *    [        [        [        5      $ N)r   r   CONFIG_DIRECTORY r   r   config_home_pathr#   +   s    O%566r   c                 L    [        5       [        -  [        S[         35      /n U $ )Nz./)r#   	EZDXF_INIr   )config_pathss    r   default_config_filesr'   /   s+    Y&r)L r   c            
         [        5       n SSSSSSSSSS.	U [        '   SSS.U [        '   S	SS
.U [        '   SS0U [        '   SSSS.U [
        '   U $ )NOpenSansCondensed-Light r   false)	DEFAULT_DIMENSION_TEXT_STYLE
TEST_FILESSUPPORT_DIRSLOAD_PROXY_GRAPHICSSTORE_PROXY_GRAPHICSLOG_UNPROCESSED_TAGS FILTER_INVALID_XDATA_GROUP_CODES!WRITE_FIXED_META_DATA_FOR_TESTINGDISABLE_C_EXTz?"C:\Program Files\Notepad++\notepad++.exe" "{filename}" -n{num}32)TEXT_EDITOR	ICON_SIZEz<"C:\Program Files\ODA\ODAFileConverter\ODAFileConverter.exe")WIN_EXEC_PATHUNIX_EXEC_PATHr8   z("C:\Program Files\OpenSCAD\openscad.exe"tsl)TRY_PYSIDE6	TRY_PYQT5SHX_RESOLVE_ORDER)r   COREBROWSE_COMMANDODAFC_ADDONOPENSCAD_ADDONDRAWING_ADDON)configs    r   default_configrD   7   s    ^F(A% & ',2-4 
F4L F> YF;
 	DF>
 "F= Mr   c                     [        5       n [        R                  " SS5      nU(       a  U R                  [	        U5      5        U $ )NEZDXF_CONFIG_FILEr*   )r'   r   getenvappendr   )pathsenv_cfgs     r   config_filesrK   Z   s5     !"Eii+R0GT']#Lr   c                X   [        5       n UR                  U SS9  S H9  u  p4[        R                  R                  US5      nU(       d  M.  XQ[           U'   M;     U$ ! [         aB  n[        [	        U5      5        [        SU  35        [        S5        [        S5         S nANS nAff = f)Nutf8encodingzPaths: z8Maybe a file with UTF16 LE-BOM encoding. (Powershell!!!)   ))r-   EZDXF_TEST_FILES)r4   EZDXF_DISABLE_C_EXTr*   )
rD   readUnicodeDecodeErrorprintstrexitr   r   r   r>   )rI   rC   enameenv_namevalues         r   load_config_filesr\   i   s    FEF+ 

x,5!&4L M  c!fw HIQ	s   A 
B)'8B$$B)c                4    [        U 5      R                  5       $ r    )rV   lower)r[   s    r   boolstrr_   }   s    u:r   c                     \ rS rSr\r\r\r\r/ SQrS&S jr	S'S jr
S(S)S jjrS*S+S jjrS,S-S jjrS.S/S jjrS&S	 jrS
 r\S0S j5       rS1S jrS2S jr\4S1S jjr\S3S j5       r\S4S j5       r\R2                  S5S j5       r\S6S j5       r\R2                  S7S j5       r\S4S j5       r\S8S j5       r\S3S j5       r\R2                  S9S j5       r\S3S j5       r\R2                  S9S j5       r\S3S j5       r\R2                  S:S j5       r\S3S j5       r \S3S j5       r!S;S:S jjr"S r#S  r$S! r%\&S" 5       r'\&S<S# j5       r(S$r)g%)=Options   )rR   rQ   rF   c                    [        5       nU Vs/ s H  o"R                  5       (       d  M  UPM     snU l        [        U5      U l        SU l        SU l        SU l        U R                  5         g s  snf )NTF)	rK   exists_loaded_pathsr\   _configlog_unprocessed_tags
_use_c_extdebugupdate_cached_options)selfrI   ps      r   __init__Options.__init__   sZ    5:)IUhhj!U)I(/$(!
""$ *Js
   A/A/c                <    U R                   R                  XU5        g r    )rf   set)rk   sectionkeyr[   s       r   rp   Options.set   s    u-r   c                6    U R                   R                  XUS9$ N)fallback)rf   r   rk   rq   rr   defaults       r   r   Options.get   s    ||w??r   c                6    U R                   R                  XUS9$ ru   )rf   
getbooleanrw   s       r   get_boolOptions.get_bool   s    ||&&wg&FFr   c                6    U R                   R                  XUS9$ ru   )rf   getintrw   s       r   get_intOptions.get_int   s    ||""7'"BBr   c                6    U R                   R                  XUS9$ ru   )rf   getfloatrw   s       r   	get_floatOptions.get_float   s    ||$$WG$DDr   c                L    U R                  [        R                  SSS9U l        g )Nr1   Trx   )r|   ra   r>   rg   rk   s    r   rj   Options.update_cached_options   s$    $(MMLL0$ %2 %
!r   c                    U R                   R                  [        R                  S[	        U R
                  5      5        g )Nr1   )rf   rp   ra   r>   r_   rg   r   s    r   rewrite_cached_optionsOptions.rewrite_cached_options   s,    LL"D--.	
r   c                ,    [        U R                  5      $ r    )tuplere   r   s    r   loaded_config_filesOptions.loaded_config_files   s    T''((r   c                     U R                   R                  U5        U R                  R                  [	        U5      5        U R                  5         g! [         a  n[        [        U5      5         SnAgSnAff = f)zRAppend content from config file `filename`, but does not reset the
configuration.
N)	rf   rS   re   rH   r   rj   IOErrorrU   rV   )rk   filenamerX   s      r   	read_fileOptions.read_file   s^    	)LLh' %%d8n5&&(	  	#a&MM	s   A 
A:A55A:c                    U R                  5          U R                  R                  U5        g! [         a  n[	        [        U5      5         SnAgSnAff = f)zxWrite current configuration into given file object, the file object
must be a writeable text file with 'utf8' encoding.
N)r   rf   writer   rU   rV   )rk   fprX   s      r   r   Options.write   sD     	##%	LLr" 	#a&MM	s   . 
AAAc                    [        [        R                  R                  U5      SSS9 nU R	                  U5        SSS5        g! , (       d  f       g= f)z1Write current configuration into file `filename`.wtrM   rN   N)openr   pathr   r   )rk   r   r   s      r   
write_fileOptions.write_file   s7    "''$$X.vF"JJrN GFFs   A
Ac                ,    U R                  [        SSS9$ )Nr2   Tr   r|   r>   r   s    r    filter_invalid_xdata_group_codes(Options.filter_invalid_xdata_group_codes   s    }}T#Et}TTr   c                ,    U R                  [        SSS9$ )Nr,   r)   r   )r   r>   r   s    r   default_dimension_text_style$Options.default_dimension_text_style   s!    xx*-  
 	
r   c                2    U R                  [        SU5        g )Nr,   )rp   r>   )rk   styles     r   r   r      s    *	
r   c                    U R                  [        SS5      R                  [        5       Vs/ s H  o(       d  M  UPM     sn$ s  snf )Nr.   r*   )r   r>   splitDIR_SEPARATOR)rk   ds     r   support_dirsOptions.support_dirs   s7    88D."=CCMRXRaVWRXXXs
   
AAc                X    U R                  [        S[        R                  U5      5        g )Nr.   )rp   r>   r   join)rk   r   s     r   r   r      s    ~}'9'9,'GHr   c                h    [         R                  R                  U R                  [        S5      5      $ )Nr-   )r   r   r   r   r>   r   s    r   
test_filesOptions.test_files   s"    ww!!$((4">??r   c                ,    [        U R                  5      $ r    )r   r   r   s    r   test_files_pathOptions.test_files_path   s    DOO$$r   c                ,    U R                  [        SSS9$ )Nr/   Tr   r   r   s    r   load_proxy_graphicsOptions.load_proxy_graphics   s    }}T#8$}GGr   c                D    U R                  [        S[        U5      5        g )Nr/   rp   r>   r_   rk   r[   s     r   r   r      s    ,gen=r   c                ,    U R                  [        SSS9$ )Nr0   Tr   r   r   s    r   store_proxy_graphicsOptions.store_proxy_graphics   s    }}T#94}HHr   c                D    U R                  [        S[        U5      5        g )Nr0   r   r   s     r   r   r     s    -wu~>r   c                ,    U R                  [        SSS9$ )Nr3   Fr   r   r   s    r   !write_fixed_meta_data_for_testing)Options.write_fixed_meta_data_for_testing  s     }}T#FPU}VVr   c                D    U R                  [        S[        U5      5        g )Nr   r   )rk   states     r   r   r     s    :GENKr   c                ,    U R                  [        SSS9$ )z!Disable C-extensions if ``True``.r4   Fr   r   r   s    r   disable_c_extOptions.disable_c_ext  s     }}T?E}BBr   c                    U R                   $ )z0Returns ``True`` if the C-extensions are in use.)rh   r   s    r   	use_c_extOptions.use_c_ext  s     r   c                v    [        U5      nU R                  [        SU5        U R                  [        SU5        g)z0Enable/disable proxy graphic load/store support.r/   r0   N)r_   rp   r>   )rk   r   r[   s      r   preserve_proxy_graphicsOptions.preserve_proxy_graphics  s-    ,e4-u5r   c                V    U R                   R                  [        R                  5        g)z(Print current configuration to `stdout`.N)rf   r   sysstdoutr   s    r   rU   Options.print!  s    3::&r   c                t   [        5       nUR                  5       (       d   UR                  SS9  [        U[        -  5      n U R                  U5        [	        SU S35        g! [         a  n[	        [        U5      5         SnAgSnAff = f! [         a  n[	        [        U5      5         SnAgSnAff = f)zhWrite current configuration into file "~/.config/ezdxf/ezdxf.ini" or
"XDG_CONFIG_HOME/ezdxf/ezdxf.ini".
T)parentsNzcreated config file: '')r#   rd   mkdirr   rU   rV   r%   r   )rk   	home_pathrX   r   s       r   write_home_configOptions.write_home_config%  s    
 %&	!!-
 y9,-	8OOH% *8*A67  c!f  	#a&MM	s/   A$ B $
B.BB
B7B22B7c                P    / U l         [        5       U l        U R                  5         g r    )re   rD   rf   rj   r   s    r   resetOptions.reset:  s     %'""$r   c                     [        5        H:  n U R                  5       (       d  M   U R                  5         [        SU  S35        M<     g ! [         a  n[        [        U5      5         S nAMc  S nAff = f)Nzdeleted config file: 'r   )r'   rd   unlinkrU   r   rV   )filerX   s     r   delete_default_config_files#Options.delete_default_config_files?  sY    (*D{{}}"KKM24&:;	 +
  "#a&MM"s   A


A3A..A3c                    [        X5      $ r    )r   )r   r   s     r   r   Options.xdg_pathI  s    ++r   )rf   re   rh   ri   rg   N)returnNone)rq   rV   rr   rV   r[   rV   r   r   )r*   )rq   rV   rr   rV   rx   rV   r   rV   )F)rq   rV   rr   rV   rx   boolr   r   )r   )rq   rV   rr   rV   rx   intr   r   )g        )rq   rV   rr   rV   rx   floatr   r   )r   ztuple[Path, ...])r   rV   r   r   )r   r   r   r   )r   r   )r   rV   )r   rV   r   r   )r   z	list[str])r   zSequence[str]r   r   r   r   )r[   r   r   r   )r   r   r   r   )Tr   rV   r   rV   r   r   )*__name__
__module____qualname____firstlineno__r>   r?   VIEW_COMMANDDRAW_COMMANDCONFIG_VARSrm   rp   r   r|   r   r   rj   r   propertyr   r   r   r%   r   r   r   setterr   r   r   r   r   r   r   r   r   rU   r   r   staticmethodr   r   __static_attributes__r"   r   r   ra   ra      s	   D#NLLK	%.@GCE


 ) )
) *3 
 U U 
 
 "((
 )
 Y Y I I @ @ % % H H >  > I I   ? !? W W
 '--L .L C C  6'8*%
 " " , ,r   ra   r   r   )r   
list[Path])r   r   )rI   r   r   r   )r[   r   r   rV   )!
__future__r   typingr   r   r   r   pathlibr   configparserr   
TRUE_STATEr>   r?   r   r   r%   r   r   r!   r@   rA   rB   r   r   r#   r'   rD   rK   r\   r_   ra   optionsr"   r   r   <module>r      s    # # 	 
  % /
!	# !7 F(J, J,\ )r   