GRAYBYTE WORDPRESS FILE MANAGER6738

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/imunify360/venv/lib/python3.11/site-packages/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/imunify360/venv/lib/python3.11/site-packages//pwiz.py
#!/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)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 09 2025 11:12:39
root / root
0755
Babel-2.12.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
Cerberus-1.3.5.dist-info
--
July 02 2025 08:36:55
root / root
0755
Crypto
--
July 02 2025 08:36:55
root / root
0755
Jinja2-2.11.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
PyJWT-2.1.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
PyYAML-6.0.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
__pycache__
--
July 02 2025 08:37:25
root / root
0755
_distutils_hack
--
July 02 2025 08:36:55
root / root
0755
_yaml
--
July 02 2025 08:36:55
root / root
0755
aiodns
--
July 02 2025 08:36:55
root / root
0755
aiodns-3.0.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
aiosignal
--
July 02 2025 08:36:55
root / root
0755
aiosignal-1.3.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
async_lru
--
July 02 2025 08:36:55
root / root
0755
async_lru-2.0.5.dist-info
--
July 02 2025 08:36:55
root / root
0755
async_timeout
--
July 02 2025 08:36:55
root / root
0755
async_timeout-4.0.3.dist-info
--
July 02 2025 08:36:55
root / root
0755
attr
--
July 02 2025 08:36:55
root / root
0755
attrs
--
July 02 2025 08:36:55
root / root
0755
attrs-23.1.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
babel
--
July 02 2025 08:36:55
root / root
0755
blinker
--
July 02 2025 08:36:55
root / root
0755
blinker-1.4.dist-info
--
July 02 2025 08:36:55
root / root
0755
cerberus
--
July 02 2025 08:36:55
root / root
0755
certifi
--
July 02 2025 08:36:55
root / root
0755
certifi-2023.7.22.dist-info
--
July 02 2025 08:36:55
root / root
0755
cffi
--
July 02 2025 08:36:55
root / root
0755
cffi-1.15.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
charset_normalizer
--
July 02 2025 08:36:55
root / root
0755
charset_normalizer-2.0.12.dist-info
--
July 02 2025 08:36:55
root / root
0755
clcommon
--
July 02 2025 08:36:55
root / root
0755
clcommon-3.4.16.dist-info
--
July 02 2025 08:36:55
root / root
0755
click
--
July 02 2025 08:36:55
root / root
0755
click-8.1.7.dist-info
--
July 02 2025 08:36:55
root / root
0755
cryptography
--
July 02 2025 08:36:55
root / root
0755
cryptography-43.0.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
daemon
--
July 02 2025 08:36:55
root / root
0755
dateutil
--
July 02 2025 08:36:55
root / root
0755
defence360agent
--
July 11 2025 07:52:56
root / root
0755
distro-1.6.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
docutils
--
July 02 2025 08:36:55
root / root
0755
docutils-0.20.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
frozenlist
--
July 02 2025 08:36:55
root / root
0755
frozenlist-1.4.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
geoip2
--
July 02 2025 08:36:55
root / root
0755
geoip2-4.2.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
google
--
June 09 2025 11:12:39
root / root
0755
humanize
--
July 02 2025 08:36:55
root / root
0755
humanize-4.9.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
idna
--
July 02 2025 08:36:55
root / root
0755
idna-3.4.dist-info
--
July 02 2025 08:36:55
root / root
0755
imav
--
July 03 2025 07:37:38
root / root
0755
imunify_antivirus-8.5.6-py3.11.egg-info
--
July 03 2025 07:37:38
root / root
0755
imunify_core-8.6.1-py3.11.egg-info
--
July 11 2025 07:52:56
root / root
0755
jinja2
--
July 02 2025 08:36:55
root / root
0755
jsonschema
--
July 02 2025 08:36:55
root / root
0755
jsonschema-3.2.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
jwt
--
July 02 2025 08:36:55
root / root
0755
lockfile
--
July 02 2025 08:36:55
root / root
0755
lockfile-0.12.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
lxml
--
July 02 2025 08:36:55
root / root
0755
lxml-4.9.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
markupsafe
--
July 02 2025 08:36:55
root / root
0755
markupsafe-2.0.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
maxminddb
--
July 02 2025 08:36:55
root / root
0755
maxminddb-2.4.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
multidict
--
July 02 2025 08:36:55
root / root
0755
multidict-6.0.4.dist-info
--
July 02 2025 08:36:55
root / root
0755
packaging
--
July 02 2025 08:36:55
root / root
0755
packaging-23.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
peewee-3.16.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
peewee_migrate
--
July 02 2025 08:36:55
root / root
0755
peewee_migrate-1.7.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
phpserialize-1.3.dist-info
--
July 02 2025 08:36:55
root / root
0755
pip
--
July 02 2025 08:36:55
root / root
0755
pip-25.1.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
pkg_resources
--
July 02 2025 08:36:55
root / root
0755
playhouse
--
July 02 2025 08:36:55
root / root
0755
protobuf-4.23.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
psutil
--
July 02 2025 08:36:55
root / root
0755
psutil-5.8.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
pyasn1
--
July 02 2025 08:36:55
root / root
0755
pyasn1-0.6.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
pycares
--
July 02 2025 08:36:55
root / root
0755
pycares-4.3.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
pycparser
--
July 02 2025 08:36:55
root / root
0755
pycparser-2.21.dist-info
--
July 02 2025 08:36:55
root / root
0755
pycryptodome-3.18.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
pyrsistent
--
July 02 2025 08:36:55
root / root
0755
pyrsistent-0.19.3.dist-info
--
July 02 2025 08:36:55
root / root
0755
python_daemon-2.3.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
python_dateutil-2.8.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
python_pam-1.8.4.dist-info
--
July 02 2025 08:36:55
root / root
0755
pytricia-1.0.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
pyzstd
--
July 02 2025 08:36:55
root / root
0755
pyzstd-0.15.3.dist-info
--
July 02 2025 08:36:55
root / root
0755
requests
--
July 02 2025 08:36:55
root / root
0755
requests-2.26.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
sdnotify
--
July 02 2025 08:36:55
root / root
0755
sdnotify-0.3.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
sentry_sdk
--
July 02 2025 08:36:55
root / root
0755
sentry_sdk-0.19.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
setuptools
--
July 02 2025 08:36:55
root / root
0755
setuptools-69.0.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
simplejson
--
July 02 2025 08:36:55
root / root
0755
simplejson-3.20.1.dist-info
--
July 02 2025 08:36:55
root / root
0755
six-1.16.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
speaklater-1.3.dist-info
--
July 02 2025 08:36:55
root / root
0755
typing_extensions-4.14.0.dist-info
--
July 02 2025 08:36:55
root / root
0755
urllib3
--
July 02 2025 08:36:55
root / root
0755
urllib3-1.26.6.dist-info
--
July 02 2025 08:36:55
root / root
0755
vendors_api
--
July 02 2025 08:36:55
root / root
0755
yaml
--
July 02 2025 08:36:55
root / root
0755
yarl
--
July 02 2025 08:36:55
root / root
0755
yarl-1.9.2.dist-info
--
July 02 2025 08:36:55
root / root
0755
_cffi_backend.cpython-311-x86_64-linux-gnu.so
267.625 KB
June 09 2025 11:13:05
root / root
0755
_pyrsistent_version.py
0.022 KB
June 09 2025 11:12:39
root / root
0644
distro.py
47.279 KB
June 09 2025 11:12:39
root / root
0644
distutils-precedence.pth
0.147 KB
June 09 2025 11:12:39
root / root
0644
pam.py
7.379 KB
June 09 2025 11:12:39
root / root
0644
peewee.py
268.028 KB
June 09 2025 11:12:39
root / root
0644
phpserialize.py
17.969 KB
June 09 2025 11:12:39
root / root
0644
pwiz.py
8.001 KB
June 09 2025 11:12:39
root / root
0644
pytricia.cpython-311-x86_64-linux-gnu.so
33.422 KB
June 09 2025 11:13:05
root / root
0755
secureio.py
19.813 KB
June 09 2025 11:12:39
root / root
0644
six.py
33.739 KB
June 09 2025 11:12:39
root / root
0644
speaklater.py
5.094 KB
June 09 2025 11:12:39
root / root
0644
typing_extensions.py
153.46 KB
June 09 2025 11:12:39
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF