/
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
/opt/imunify360/venv/lib/python3.11/site-packages
mkdir
upload
Name
Size
Mode
Actions
.imunify-core-current/
-
0755
rm
aiodns/
-
0755
rm
aiodns-3.0.0.dist-info/
-
0755
rm
aiosignal/
-
0755
rm
aiosignal-1.3.1.dist-info/
-
0755
rm
async_lru/
-
0755
rm
async_lru-2.0.5.dist-info/
-
0755
rm
async_timeout/
-
0755
rm
async_timeout-4.0.3.dist-info/
-
0755
rm
attr/
-
0755
rm
attrs/
-
0755
rm
attrs-23.1.0.dist-info/
-
0755
rm
babel/
-
0755
rm
Babel-2.12.1.dist-info/
-
0755
rm
blinker/
-
0755
rm
blinker-1.4.dist-info/
-
0755
rm
cerberus/
-
0755
rm
Cerberus-1.3.5.dist-info/
-
0755
rm
certifi/
-
0755
rm
certifi-2023.7.22.dist-info/
-
0755
rm
cffi/
-
0755
rm
cffi-1.15.1.dist-info/
-
0755
rm
charset_normalizer/
-
0755
rm
charset_normalizer-2.0.12.dist-info/
-
0755
rm
clcommon/
-
0755
rm
clcommon-3.4.16.dist-info/
-
0755
rm
click/
-
0755
rm
click-8.1.7.dist-info/
-
0755
rm
crontab/
-
0755
rm
crontab-1.0.5.dist-info/
-
0755
rm
Crypto/
-
0755
rm
cryptography/
-
0755
rm
cryptography-43.0.1.dist-info/
-
0755
rm
daemon/
-
0755
rm
dateutil/
-
0755
rm
defence360agent/
-
0755
rm
diskcache/
-
0755
rm
diskcache-5.6.3.dist-info/
-
0755
rm
distro-1.6.0.dist-info/
-
0755
rm
docutils/
-
0755
rm
docutils-0.20.1.dist-info/
-
0755
rm
frozenlist/
-
0755
rm
frozenlist-1.4.0.dist-info/
-
0755
rm
geoip2/
-
0755
rm
geoip2-4.2.0.dist-info/
-
0755
rm
google/
-
0755
rm
humanize/
-
0755
rm
humanize-4.9.0.dist-info/
-
0755
rm
idna/
-
0755
rm
idna-3.4.dist-info/
-
0755
rm
imav/
-
0755
rm
imunify_antivirus-8.8.6-py3.11.egg-info/
-
0755
rm
imunify_core.egg-info/
-
0755
rm
jinja2/
-
0755
rm
Jinja2-2.11.2.dist-info/
-
0755
rm
jsonschema/
-
0755
rm
jsonschema-3.2.0.dist-info/
-
0755
rm
jwt/
-
0755
rm
lockfile/
-
0755
rm
lockfile-0.12.2.dist-info/
-
0755
rm
markupsafe/
-
0755
rm
markupsafe-2.0.1.dist-info/
-
0755
rm
maxminddb/
-
0755
rm
maxminddb-2.4.0.dist-info/
-
0755
rm
multidict/
-
0755
rm
multidict-6.0.4.dist-info/
-
0755
rm
nats/
-
0755
rm
nats_py-2.14.0.dist-info/
-
0755
rm
packaging/
-
0755
rm
packaging-23.1.dist-info/
-
0755
rm
peewee-3.17.9.dist-info/
-
0755
rm
peewee_migrate/
-
0755
rm
peewee_migrate-1.12.1.dist-info/
-
0755
rm
phpserialize-1.3.dist-info/
-
0755
rm
pip/
-
0755
rm
pip-26.1.2.dist-info/
-
0755
rm
pkg_resources/
-
0755
rm
playhouse/
-
0755
rm
protobuf-4.23.2.dist-info/
-
0755
rm
psutil/
-
0755
rm
psutil-5.8.0.dist-info/
-
0755
rm
pyasn1/
-
0755
rm
pyasn1-0.6.1.dist-info/
-
0755
rm
pycares/
-
0755
rm
pycares-4.3.0.dist-info/
-
0755
rm
pycparser/
-
0755
rm
pycparser-2.21.dist-info/
-
0755
rm
pycryptodome-3.18.0.dist-info/
-
0755
rm
PyJWT-2.1.0.dist-info/
-
0755
rm
pymysql/
-
0755
rm
PyMySQL-1.1.1.dist-info/
-
0755
rm
pyrsistent/
-
0755
rm
pyrsistent-0.19.3.dist-info/
-
0755
rm
python_daemon-2.3.0.dist-info/
-
0755
rm
python_dateutil-2.8.2.dist-info/
-
0755
rm
python_pam-1.8.4.dist-info/
-
0755
rm
pytricia-1.0.2.dist-info/
-
0755
rm
PyYAML-6.0.1.dist-info/
-
0755
rm
pyzstd/
-
0755
rm
pyzstd-0.15.3.dist-info/
-
0755
rm
requests/
-
0755
rm
requests-2.26.0.dist-info/
-
0755
rm
sdnotify/
-
0755
rm
sdnotify-0.3.2.dist-info/
-
0755
rm
sentry_sdk/
-
0755
rm
sentry_sdk-0.19.2.dist-info/
-
0755
rm
setuptools/
-
0755
rm
setuptools-69.0.2.dist-info/
-
0755
rm
simplejson/
-
0755
rm
simplejson-4.1.1.dist-info/
-
0755
rm
six-1.16.0.dist-info/
-
0755
rm
speaklater-1.3.dist-info/
-
0755
rm
typing_extensions-4.16.0.dist-info/
-
0755
rm
urllib3/
-
0755
rm
urllib3-1.26.6.dist-info/
-
0755
rm
vendors_api/
-
0755
rm
yaml/
-
0755
rm
yarl/
-
0755
rm
yarl-1.9.2.dist-info/
-
0755
rm
_distutils_hack/
-
0755
rm
_yaml/
-
0755
rm
__pycache__/
-
0755
rm
distro.py
48414
0644
edit
dl
rm
distutils-precedence.pth
151
0644
edit
dl
rm
pam.py
7556
0644
edit
dl
rm
peewee.py
281823
0644
edit
dl
rm
phpserialize.py
18400
0644
edit
dl
rm
pwiz.py
8193
0644
edit
dl
rm
pytricia.cpython-311-x86_64-linux-gnu.so
34224
0755
edit
dl
rm
secureio.py
20562
0644
edit
dl
rm
six.py
34549
0644
edit
dl
rm
speaklater.py
5216
0644
edit
dl
rm
typing_extensions.py
165012
0644
edit
dl
rm
_cffi_backend.cpython-311-x86_64-linux-gnu.so
274048
0755
edit
dl
rm
_pyrsistent_version.py
23
0644
edit
dl
rm
Edit:
/opt/imunify360/venv/lib/python3.11/site-packages/pwiz.py
(8193B)
#!/usr/bin/env python import datetime import os import sys from getpass import getpass from optparse import OptionParser from peewee import * from peewee import print_ from peewee import __version__ as peewee_version from playhouse.cockroachdb import CockroachDatabase from playhouse.reflection import * HEADER = """from peewee import *%s database = %s('%s'%s) """ BASE_MODEL = """\ class BaseModel(Model): class Meta: database = database """ UNKNOWN_FIELD = """\ class UnknownField(object): def __init__(self, *_, **__): pass """ DATABASE_ALIASES = { CockroachDatabase: ['cockroach', 'cockroachdb', 'crdb'], MySQLDatabase: ['mysql', 'mysqldb'], PostgresqlDatabase: ['postgres', 'postgresql'], SqliteDatabase: ['sqlite', 'sqlite3'], } DATABASE_MAP = dict((value, key) for key in DATABASE_ALIASES for value in DATABASE_ALIASES[key]) def make_introspector(database_type, database_name, **kwargs): if database_type not in DATABASE_MAP: err('Unrecognized database, must be one of: %s' % ', '.join(DATABASE_MAP.keys())) sys.exit(1) schema = kwargs.pop('schema', None) DatabaseClass = DATABASE_MAP[database_type] db = DatabaseClass(database_name, **kwargs) return Introspector.from_database(db, schema=schema) def print_models(introspector, tables=None, preserve_order=False, include_views=False, ignore_unknown=False, snake_case=True): database = introspector.introspect(table_names=tables, include_views=include_views, snake_case=snake_case) db_kwargs = introspector.get_database_kwargs() header = HEADER % ( introspector.get_additional_imports(), introspector.get_database_class().__name__, introspector.get_database_name(), ', **%s' % repr(db_kwargs) if db_kwargs else '') print_(header) if not ignore_unknown: print_(UNKNOWN_FIELD) print_(BASE_MODEL) def _print_table(table, seen, accum=None): accum = accum or [] foreign_keys = database.foreign_keys[table] for foreign_key in foreign_keys: dest = foreign_key.dest_table # In the event the destination table has already been pushed # for printing, then we have a reference cycle. if dest in accum and table not in accum: print_('# Possible reference cycle: %s' % dest) # If this is not a self-referential foreign key, and we have # not already processed the destination table, do so now. if dest not in seen and dest not in accum: seen.add(dest) if dest != table: _print_table(dest, seen, accum + [table]) print_('class %s(BaseModel):' % database.model_names[table]) columns = database.columns[table].items() if not preserve_order: columns = sorted(columns) primary_keys = database.primary_keys[table] for name, column in columns: skip = all([ name in primary_keys, name == 'id', len(primary_keys) == 1, column.field_class in introspector.pk_classes]) if skip: continue if column.primary_key and len(primary_keys) > 1: # If we have a CompositeKey, then we do not want to explicitly # mark the columns as being primary keys. column.primary_key = False is_unknown = column.field_class is UnknownField if is_unknown and ignore_unknown: disp = '%s - %s' % (column.name, column.raw_column_type or '?') print_(' # %s' % disp) else: print_(' %s' % column.get_field()) print_('') print_(' class Meta:') print_(' table_name = \'%s\'' % table) multi_column_indexes = database.multi_column_indexes(table) if multi_column_indexes: print_(' indexes = (') for fields, unique in sorted(multi_column_indexes): print_(' ((%s), %s),' % ( ', '.join("'%s'" % field for field in fields), unique, )) print_(' )') if introspector.schema: print_(' schema = \'%s\'' % introspector.schema) if len(primary_keys) > 1: pk_field_names = sorted([ field.name for col, field in columns if col in primary_keys]) pk_list = ', '.join("'%s'" % pk for pk in pk_field_names) print_(' primary_key = CompositeKey(%s)' % pk_list) elif not primary_keys: print_(' primary_key = False') print_('') seen.add(table) seen = set() for table in sorted(database.model_names.keys()): if table not in seen: if not tables or table in tables: _print_table(table, seen) def print_header(cmd_line, introspector): timestamp = datetime.datetime.now() print_('# Code generated by:') print_('# python -m pwiz %s' % cmd_line) print_('# Date: %s' % timestamp.strftime('%B %d, %Y %I:%M%p')) print_('# Database: %s' % introspector.get_database_name()) print_('# Peewee version: %s' % peewee_version) print_('') def err(msg): sys.stderr.write('\033[91m%s\033[0m\n' % msg) sys.stderr.flush() def get_option_parser(): parser = OptionParser(usage='usage: %prog [options] database_name') ao = parser.add_option ao('-H', '--host', dest='host') ao('-p', '--port', dest='port', type='int') ao('-u', '--user', dest='user') ao('-P', '--password', dest='password', action='store_true') engines = sorted(DATABASE_MAP) ao('-e', '--engine', dest='engine', choices=engines, help=('Database type, e.g. sqlite, mysql, postgresql or cockroachdb. ' 'Default is "postgresql".')) ao('-s', '--schema', dest='schema') ao('-t', '--tables', dest='tables', help=('Only generate the specified tables. Multiple table names should ' 'be separated by commas.')) ao('-v', '--views', dest='views', action='store_true', help='Generate model classes for VIEWs in addition to tables.') ao('-i', '--info', dest='info', action='store_true', help=('Add database information and other metadata to top of the ' 'generated file.')) ao('-o', '--preserve-order', action='store_true', dest='preserve_order', help='Model definition column ordering matches source table.') ao('-I', '--ignore-unknown', action='store_true', dest='ignore_unknown', help='Ignore fields whose type cannot be determined.') ao('-L', '--legacy-naming', action='store_true', dest='legacy_naming', help='Use legacy table- and column-name generation.') return parser def get_connect_kwargs(options): ops = ('host', 'port', 'user', 'schema') kwargs = dict((o, getattr(options, o)) for o in ops if getattr(options, o)) if options.password: kwargs['password'] = getpass() return kwargs if __name__ == '__main__': raw_argv = sys.argv parser = get_option_parser() options, args = parser.parse_args() if len(args) < 1: err('Missing required parameter "database"') parser.print_help() sys.exit(1) connect = get_connect_kwargs(options) database = args[-1] tables = None if options.tables: tables = [table.strip() for table in options.tables.split(',') if table.strip()] engine = options.engine if engine is None: engine = 'sqlite' if os.path.exists(database) else 'postgresql' introspector = make_introspector(engine, database, **connect) if options.info: cmd_line = ' '.join(raw_argv[1:]) print_header(cmd_line, introspector) print_models(introspector, tables, options.preserve_order, options.views, options.ignore_unknown, not options.legacy_naming)
Save
cmd:
run