K i5 ddlZddlZddlZddlmZddlmZddlddlmZddlmZ ddl m Z ddl dZ d Zd Ze gd ed d geddgeddgiZedeDZdZ ddZdZdZdZdZedk(rTej:ZeZejA\Z!Z"e#e"dkr*edejIejJdee!Z&e"dZ'dZ(e!jPrGe!jPjSdDcgc]"}|jUr|jU$c}Z(e!jVZ+e+ejXj[e'rdndZ+ee+e'fie&Z.e!j^rdjaeddZ1ee1e.ee.e(e!jde!jfe!jhe!jj yycc}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 cockroachdbcrdbmysqlmysqldbpostgres postgresqlsqlitesqlite3c#@K|]}t|D]}||f ywN)DATABASE_ALIASES).0keyvalues W/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/../../../bin/pwiz.py r's38!1#!68CL8L8sc |tvrDtddjtjzt j d|j dd}t|}||fi|}tj||S)Nz)Unrecognized database, must be one of: %s, schema)r) DATABASE_MAPerrjoinkeyssysexitpop Introspector from_database) database_type database_namekwargsr DatabaseClassdbs rmake_introspectorr,+syL( 7 IIl'') * + ,  ZZ$ 'F /M } / /B  % %b % 88c j||| j}tjj j j jdd|rdt|zndfz}t|sttttd fd t}t jjD]} | |vs|r| |vs | |y)N) table_names include_views snake_case\z\\z, **%sc|xsg}j|}|D]S}|j}||vr||vrtd|z||vs*||vs/|j|||k7sF||||gzUtdj|zj |j }s t|}j|}|D]\}} t||v|dk(t|dk(| jjvg} | r?| jrt|dkDrd| _ | jtu} | r0r.| jd| j xsd} td| ztd | j#ztd td td |zj%|} | rQtd t| D]-\}}tddj'd|Dd|d/tdj(rtdj(zt|dkDrSt|Dcgc]\}}||vr |jc}}}dj'd|D}td|zn |s tdtd |j|ycc}}w)Nz# Possible reference cycle: %szclass %s(BaseModel):idrFz - ?z # %sz %sr3z class Meta:z table_name = '%s'z indexes = (z ((rc3&K|] }d|z ywz'%s'N)rfields rrz5print_models.._print_table..|sAfunAz), z),z )z schema = '%s'c3&K|] }d|z ywr8r9)rpks rrz5print_models.._print_table..sE Er;z& primary_key = CompositeKey(%s)z primary_key = False) foreign_keys dest_tableradd model_namescolumnsitemssorted primary_keysalllen field_class pk_classes primary_key UnknownFieldnameraw_column_type get_fieldmulti_column_indexesr r)tableseenaccumr> foreign_keydestrBrErLcolumnskip is_unknowndisprOfieldsuniquecolr:pk_field_namespk_list _print_tabledatabaseignore_unknown introspectorpreserve_orders rr^z"print_models.._print_tableIs ,,U3 ' >K))Du}e!37$>?4D$55= tUeW_= > %(<( >? !N 23 2Jr-ctjjd|ztjjy)Nz %s )r"stderrwriteflush)msgs rrrs*JJ*S01JJr-cztd}|j}|ddd|ddd d |d d d|ddddtt}|ddd|d|ddd|dddd |d!d"d#dd$%|d&d'd(dd)%|d*d+dd,d-.|d/d0dd1d2.|d3d4dd5d6.|S)7Nz$usage: %prog [options] database_name)usagez-Hz--hosthost)rTz-pz--portportint)rTtypez-uz--useruserz-Pz --passwordpassword store_true)rTactionz-ez--engineenginezVDatabase type, e.g. sqlite, mysql, postgresql or cockroachdb. Default is "postgresql".)rTchoiceshelpz-sz--schemarz-tz--tablesrozWOnly generate the specified tables. Multiple table names should be separated by commas.)rTrz-vz--viewsviewsz7Generate model classes for VIEWs in addition to tables.)rTrrz-iz--infoinfozIAdd database information and other metadata to top of the generated file.z-oz--preserve-orderrbz6Model definition column ordering matches source table.)rrTrz-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_optionrDr)parseraoenginess rget_option_parserrs  F GF   BtXF#tXF/tXF#t\ <@\"GtZh(*tZh'tZh')tYW\ EGtXF<!t  ;K DFt  ;K <>t |/ ;= Mr-cfd}tfd|D}jr t|d<|S)N)rrrrc3TK|]}t|s|t|f!ywr)getattr)rooptionss rrz%get_connect_kwargs..s&Oq77A;N1ggq)*Os((r)dictrr)ropsr)s` rget_connect_kwargsrs2 ,C OCO OF$Yz Mr-__main__rz%Missing required parameter "database", )NFFFT)6rtosr"roptparserpeeweerrrwplayhouse.cockroachdbrplayhouse.reflectionrermrl MySQLDatabasePostgresqlDatabaseSqliteDatabaserrrr,rrrzrrrrhargvraw_argvr parse_argsrargsrG print_helpr#connectr_rosplitstriprpathexistsrarr rxrbrr`r)rPs0rrs !03"    ;GY'\2Xy) 8/88  9