
    h8'h               	          d dl Z d dlZd dlZd dlmZ d dlmZ d dl d dlmZ d dlmZ	 d dl
mZ d dl dZd	Zd
Zeg deddgeddgeddgiZ ed eD              Zd Z	 	 ddZd Zd Zd Zd Zedk(  rTej:                  Z e       ZejA                         \  Z!Z" e#e"      dk  r* ed       ejI                           ejJ                  d        ee!      Z&e"d   Z'dZ(e!jP                  rGe!jP                  jS                  d      D  cg c]"  } | jU                         r| jU                         $ c} Z(e!jV                  Z+e+ejX                  j[                  e'      rdndZ+ ee+e'fi e&Z.e!j^                  rdja                  edd       Z1 ee1e.        ee.e(e!jd                  e!jf                  e!jh                  e!jj                          yyc c} w )     N)getpass)OptionParser)*)print_)__version__)CockroachDatabasez.from peewee import *%s

database = %s('%s'%s)
zDclass BaseModel(Model):
    class Meta:
        database = database
zCclass UnknownField(object):
    def __init__(self, *_, **__): pass
)	cockroachcockroachdbcrdbmysqlmysqldbpostgres
postgresqlsqlitesqlite3c              #   @   K   | ]  }t         |   D ]  }||f 
  y wN)DATABASE_ALIASES).0keyvalues      @/var/www/html/trade_iq/venv/lib/python3.12/site-packages/pwiz.py	<genexpr>r   '   s3      8!1#!68 CL 8L 8s   c                    | t         vrDt        ddj                  t         j                               z         t	        j
                  d       |j                  dd       }t         |    } ||fi |}t        j                  ||      S )Nz)Unrecognized database, must be one of: %s,    schema)r   )	DATABASE_MAPerrjoinkeyssysexitpopIntrospectorfrom_database)database_typedatabase_namekwargsr   DatabaseClassdbs         r   make_introspectorr,   +   sy    L(7IIl'')*+ 	,ZZ$'F /M	}	/	/B%%b%88    c                    
  j                  |||       j                         }t         j                          j	                         j
                   j                         |rdt        |      z  ndfz  }t        |       st        t               t        t               d
 fd	
t               }t        j                  j                               D ]  }	|	|vs|r|	|v s 
|	|        y )N)table_namesinclude_views
snake_casez, **%s c                    |xs g }j                   |    }|D ]S  }|j                  }||v r| |vrt        d|z         ||vs*||vs/|j                  |       || k7  sF |||| gz          U t        dj                  |    z         j
                  |    j                         }st        |      }j                  |    }|D ]  \  }}	t        ||v |dk(  t        |      dk(  |	j                  j                  v g      }
|
r?|	j                  rt        |      dkD  rd|	_        |	j                  t        u }|r0r.|	j                  d|	j                   xs d}t        d|z         t        d	|	j#                         z          t        d
       t        d       t        d| z         j%                  |       }|rQt        d       t        |      D ]-  \  }}t        ddj'                  d |D              d|d       / t        d       j(                  rt        dj(                  z         t        |      dkD  rSt        |D cg c]  \  }}||v r|j                   c}}      }dj'                  d |D              }t        d|z         n|st        d       t        d
       |j                  |        y c c}}w )Nz# Possible reference cycle: %szclass %s(BaseModel):idr   Fz - ?z    # %sz    %sr2   z    class Meta:z        table_name = '%s'z        indexes = (z            ((r   c              3   &   K   | ]	  }d |z    ywz'%s'N )r   fields     r   r   z5print_models.<locals>._print_table.<locals>.<genexpr>|   s     AfunA   z), z),z	        )z        schema = '%s'c              3   &   K   | ]	  }d |z    ywr7   r8   )r   pks     r   r   z5print_models.<locals>._print_table.<locals>.<genexpr>   s     EEr:   z&        primary_key = CompositeKey(%s)z        primary_key = False)foreign_keys
dest_tabler   addmodel_namescolumnsitemssortedprimary_keysalllenfield_class
pk_classesprimary_keyUnknownFieldnameraw_column_type	get_fieldmulti_column_indexesr    r   )tableseenaccumr=   foreign_keydestrA   rD   rK   columnskip
is_unknowndisprN   fieldsuniquecolr9   pk_field_namespk_list_print_tabledatabaseignore_unknownintrospectorpreserve_orders                       r   r]   z"print_models.<locals>._print_tableI   s   ,,U3' 	>K))D u}e!37$>? 4D$55= tUeW_=	> 	%(<(<U(CCD""5)//1WoG,,U3# 	6LD&$L!Q&""l&=&==	? @D
 !!c,&7!&; &+"++|;Jn$*KK1G1G1N31NOzD()x&"2"2"445%	6( 	r
 !,u45'<<UC()"()="> IIA&AA 
 ;,|/B/BBC|q #-4%()sE,& 

%( )N iiEnEEG;gEF01r
%(s   J>
r   )
introspectget_database_kwargsHEADERget_additional_importsget_database_class__name__get_database_namereprr   UNKNOWN_FIELD
BASE_MODELsetrC   r@   r!   )r`   tablesra   r0   r_   r1   	db_kwargsheaderrP   rO   r]   r^   s   ` ` `     @@r   print_modelsrp   6   s    &&65B2< ' >H 002I++-'')22&&(&/4	?"R	9 9F
 6N}
:D DL 5D,,1134 *Uf_UD)*r-   c                    t         j                   j                         }t        d       t        d| z         t        d|j                  d      z         t        d|j	                         z         t        dt
        z         t        d       y )Nz# Code generated by:z# python -m pwiz %sz
# Date: %sz%B %d, %Y %I:%M%pz# Database: %sz# Peewee version: %sr2   )datetimenowr   strftimerh   peewee_version)cmd_liner`   	timestamps      r   print_headerrx      sr    !!%%'I
!"
 8+,
<),,-@AAB
l<<>>?
!N23
2Jr-   c                     t         j                  j                  d| z         t         j                  j                          y )Nz[91m%s[0m
)r"   stderrwriteflush)msgs    r   r   r      s*    JJ*S01JJr-   c                  z   t        d      } | j                  } |ddd        |ddd	d
        |ddd        |dddd       t        t              } |ddd|d        |ddd        |dddd         |d!d"d#dd$%        |d&d'd(dd)%        |d*d+dd,d-.        |d/d0dd1d2.        |d3d4dd5d6.       | S )7Nz$usage: %prog [options] database_name)usagez-Hz--hosthost)rS   z-pz--portportint)rS   typez-uz--useruserz-Pz
--passwordpassword
store_true)rS   actionz-ez--engineenginezVDatabase type, e.g. sqlite, mysql, postgresql or cockroachdb. Default is "postgresql".)rS   choiceshelpz-sz--schemar   z-tz--tablesrm   zWOnly generate the specified tables. Multiple table names should be separated by commas.)rS   r   z-vz--viewsviewsz7Generate model classes for VIEWs in addition to tables.)rS   r   r   z-iz--infoinfozIAdd database information and other metadata to top of the generated file.z-oz--preserve-orderra   z6Model definition column ordering matches source table.)r   rS   r   z-Iz--ignore-unknownr_   z.Ignore fields whose type cannot be determined.z-Lz--legacy-naminglegacy_namingz-Use legacy table- and column-name generation.)r   
add_optionrC   r   )parseraoenginess      r   get_option_parserr      s     FGF			BtXF#tXF/tXF#t\
<@\"GtZh(* tZh'tZh') tYW\EGtXF<! t;KDFt;K<>t|/;=Mr-   c                 f     d}t         fd|D              } j                  rt               |d<   |S )N)r   r   r   r   c              3   T   K   | ]  }t        |      s|t        |      f ! y wr   )getattr)r   ooptionss     r   r   z%get_connect_kwargs.<locals>.<genexpr>   s&     Oq77A;N1ggq)*Os   ((r   )dictr   r   )r   opsr)   s   `  r   get_connect_kwargsr      s2    
,COCOOF$YzMr-   __main__r   z%Missing required parameter "database", )NFFFT)6rr   osr"   r   optparser   peeweer   r   ru   playhouse.cockroachdbr   playhouse.reflectionrd   rk   rj   MySQLDatabasePostgresqlDatabaseSqliteDatabaser   r   r   r,   rp   rx   r   r   r   rg   argvraw_argvr   
parse_argsr   argsrF   
print_helpr#   connectr^   rm   splitstripr   pathexistsr`   r   r    rv   ra   r   r_   r   )rO   s   0r   <module>r      s    	 
  !   0 3 "


 ;GY'\2Xy)	   8/8 8	9 <AGK]*~8 zxxH F%%'MGT
4y1}34 )GBxHF~~-4^^-A-A#-F $E[[] ++- $ ^^F~WW^^H5<$VXAAL||88HQRL)X|,vw'='=w}}''W-B-B)BD9  $s   
'G