404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.157.93: ~ $
#
# Copyright (c) 1999--2012 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public License,
# version 2 (GPLv2). There is NO WARRANTY for this software, express or
# implied, including the implied warranties of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
# along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
#
# Red Hat trademarks are not licensed under GPLv2. No permission is
# granted to use or replicate Red Hat trademarks that are incorporated
# in this software or its documentation.
#
import sys
inPy3k = sys.version_info[0] == 3

""" Query hwdata database and return decription of vendor and/or device. """

# pylint: disable=misplaced-bare-raise

class USB(object):
    """ Interace to usb.ids from hwdata package """
    filename = '/usr/share/hwdata/usb.ids'
    devices = None

    def __init__(self, filename=None):
        """ Load pci.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        """
        if filename:
            self.filename = filename
        else:
            self.filename = USB.filename
        self.cache = 1

        if self.cache and not USB.devices:
            # parse usb.ids
            USB.devices = {}
            if inPy3k:
                f = open(self.filename, encoding='ISO8859-1')
            else:
                f = open(self.filename)
            lineno = 0
            vendor = None
            device = None
            for line in f.readlines():
                lineno += 1
                l = line.split()
                if line.startswith('#'):
                    if line.startswith('# List of known device classes, subclasses and protocols'):
                        break # end of database of devices, rest is protocols, types etc.
                    else:
                        continue
                elif len(l) == 0:
                    continue
                elif line.startswith('\t\t'):
                    interface_id = l[0].lower()
                    if len(l) > 2:
                        interface_name = ' '.join(l[1:])
                    else:
                        interface_name = ''
                    try:
                        USB.devices[vendor][1][device][0][interface_id] = interface_name
                    except TypeError:
                        sys.stderr.write("Unknown line at line {0} in {1}.\n".format(lineno, self.filename))
                elif line.startswith('\t'):
                    device = l[0].lower()
                    device_name = ' '.join(l[1:])
                    USB.devices[vendor][1][device] = [device_name, {}]
                else:
                    vendor = l[0].lower()
                    vendor_name = ' '.join(l[1:])
                    if vendor not in USB.devices:
                        USB.devices[vendor] = [vendor_name, {}]
                    else: # this should not happen
                        USB.devices[vendor][0] = vendor_name

    def get_vendor(self, vendor):
        """ Return description of vendor. Parameter is two byte code in hexa.
            If vendor is unknown None is returned.
        """
        vendor = vendor.lower()
        if self.cache:
            if vendor in USB.devices:
                return USB.devices[vendor][0]
            else:
                return None
        else:
            raise # not implemented yet

    def get_device(self, vendor, device):
        """ Return description of device. Parameters are two byte code variables in hexa.
            If device is unknown None is returned.
        """
        vendor = vendor.lower()
        device = device.lower()
        if self.cache:
            if vendor in USB.devices:
                if device in USB.devices[vendor][1]:
                    return USB.devices[vendor][1][device][0]
                else:
                    return None
            else:
                return None
        else:
            raise # not implemented yet

class PCI(object):
    """ Interace to pci.ids from hwdata package """
    filename = '/usr/share/hwdata/pci.ids'
    devices = None

    def __init__(self, filename=None):
        """ Load pci.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        """
        if filename:
            self.filename = filename
        else:
            self.filename = PCI.filename
        self.cache = 1

        if self.cache and not PCI.devices:
            # parse pci.ids
            PCI.devices = {}
            if inPy3k:
                f = open(self.filename, encoding='ISO8859-1')
            else:
                f = open(self.filename)
            vendor = None
            for line in f.readlines():
                l = line.split()
                if line.startswith('#'):
                    continue
                elif len(l) == 0:
                    continue
                elif line.startswith('\t\t'):
                    continue
                elif line.startswith('\t'):
                    device = l[0].lower()
                    device_name = ' '.join(l[1:])
                    PCI.devices[vendor][1][device] = device_name
                else:
                    vendor = l[0].lower()
                    vendor_name = ' '.join(l[1:])
                    if not vendor in  list(PCI.devices.keys()):
                        PCI.devices[vendor] = [vendor_name, {}]
                    else: # this should not happen
                        PCI.devices[vendor][0] = vendor_name

    def get_vendor(self, vendor):
        """ Return description of vendor. Parameter is two byte code in hexa.
            If vendor is unknown None is returned.
        """
        vendor = vendor.lower()
        if self.cache:
            if vendor in list(PCI.devices.keys()):
                return PCI.devices[vendor][0]
            else:
                return None
        else:
            raise # not implemented yet

    def get_device(self, vendor, device):
        """ Return description of device. Parameters are two byte code variables in hexa.
            If device is unknown None is returned.
        """
        vendor = vendor.lower()
        device = device.lower()
        if self.cache:
            if vendor in list(PCI.devices.keys()):
                if device in list(PCI.devices[vendor][1].keys()):
                    return PCI.devices[vendor][1][device]
                else:
                    return None
            else:
                return None
        else:
            raise # not implemented yet

class PNP(object):
    """ Interace to pnp.ids from hwdata package """
    filename = '/usr/share/hwdata/pnp.ids'
    VENDORS = None

    def __init__(self, filename=None):
        """ Load pnp.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        """
        if filename:
            self.filename = filename
        else:
            self.filename = PNP.filename
        self.cache = 1

        if self.cache and not PNP.VENDORS:
            # parse pnp.ids
            PNP.VENDORS = {}
            if inPy3k:
                f = open(self.filename, encoding='ISO8859-1')
            else:
                f = open(self.filename)
            for line in f.readlines():
                l = line.split()
                if line.startswith('#'):
                    continue
                elif len(l) == 0:
                    continue
                else:
                    vendor_id = l[0].upper()
                    PNP.VENDORS[vendor_id] = ' '.join(l[1:])

    def get_vendor(self, vendor_id):
        """ Return description of vendor. Parameter is 3 character long id of vendor.
            If vendor is unknown None is returned.
        """
        vendor_id = vendor_id.upper()
        if self.cache:
            if vendor_id in list(PNP.VENDORS.keys()):
                return PNP.VENDORS[vendor_id]
            else:
                return None
        else:
            raise # not implemented yet

Filemanager

Name Type Size Permission Actions
Babel-2.5.1-py3.6.egg-info Folder 0755
ConfigArgParse-0.14.0-py3.6.egg-info Folder 0755
Jinja2-2.10.1-py3.6.egg-info Folder 0755
OpenSSL Folder 0755
PyJWT-1.6.1-py3.6.egg-info Folder 0755
PySocks-1.6.8-py3.6.egg-info Folder 0755
Pygments-2.2.0-py3.6.egg-info Folder 0755
__pycache__ Folder 0755
acme Folder 0755
acme-1.22.0-py3.6.egg-info Folder 0755
babel Folder 0755
certbot Folder 0755
certbot-1.22.0-py3.6.egg-info Folder 0755
chardet Folder 0755
chardet-3.0.4-py3.6.egg-info Folder 0755
charset_normalizer Folder 0755
charset_normalizer-2.0.7-py3.6.egg-info Folder 0755
cloud_init-23.4-py3.6.egg-info Folder 0755
cloudinit Folder 0755
dateutil Folder 0755
decorator-4.2.1-py3.6.egg-info Folder 0755
defusedxml Folder 0755
defusedxml-0.6.0-py3.6.egg-info Folder 0755
distro-1.4.0-py3.6.egg-info Folder 0755
dnf Folder 0755
dnf-plugins Folder 0755
dnfpluginscore Folder 0755
file_magic-0.3.0-py3.6.egg-info Folder 0755
httpie Folder 0755
httpie-2.6.0-py3.6.egg-info Folder 0755
idna Folder 0755
idna-2.5-py3.6.egg-info Folder 0755
iotop Folder 0755
isc Folder 0755
jinja2 Folder 0755
josepy Folder 0755
josepy-1.9.0-py3.6.egg-info Folder 0755
jsonpatch-1.21-py3.6.egg-info Folder 0755
jsonpointer-1.10-py3.6.egg-info Folder 0755
jsonschema Folder 0755
jsonschema-2.6.0-py3.6.egg-info Folder 0755
jwt Folder 0755
oauthlib Folder 0755
oauthlib-2.1.0-py3.6.egg-info Folder 0755
parsedatetime Folder 0755
parsedatetime-2.5-py3.6.egg-info Folder 0755
pexpect Folder 0755
pip Folder 0755
pip-9.0.3.dist-info Folder 0755
pkg_resources Folder 0755
ply Folder 0755
ply-3.9-py3.6.egg-info Folder 0755
prettytable-0.7.2-py3.6.egg-info Folder 0755
procfs Folder 0755
ptyprocess Folder 0755
pyOpenSSL-19.0.0-py3.6.egg-info Folder 0755
pyRFC3339-1.1-py3.6.egg-info Folder 0755
pycparser Folder 0755
pycparser-2.14-py3.6.egg-info Folder 0755
pydbus Folder 0755
pydbus-0.6.0-py3.6.egg-info Folder 0755
pygments Folder 0755
pyparsing-2.1.10.dist-info Folder 0755
pyrfc3339 Folder 0755
pyserial-3.1.1-py3.6.egg-info Folder 0755
python_dateutil-2.6.1-py3.6.egg-info Folder 0755
python_linux_procfs-0.7.3-py3.6.egg-info Folder 0755
pytz Folder 0755
pytz-2017.2-py3.6.egg-info Folder 0755
pyudev Folder 0755
pyudev-0.21.0-py3.6.egg-info Folder 0755
requests Folder 0755
requests-2.20.0-py3.6.egg-info Folder 0755
requests_toolbelt Folder 0755
requests_toolbelt-0.9.1-py3.6.egg-info Folder 0755
rhn Folder 0755
sepolgen Folder 0755
sepolicy Folder 0755
serial Folder 0755
setroubleshoot Folder 0755
setuptools Folder 0755
setuptools-39.2.0.dist-info Folder 0755
six-1.11.0.dist-info Folder 0755
sos Folder 0755
sos-4.7.1-py3.6.egg-info Folder 0755
syspurpose Folder 0755
syspurpose-1.28.42-py3.6.egg-info Folder 0755
tuned Folder 0755
up2date_client Folder 0755
urllib3 Folder 0755
urllib3-1.24.2-py3.6.egg-info Folder 0755
zope Folder 0755
zope.component-4.3.0-py3.6.egg-info Folder 0755
zope.event-4.2.0-py3.6.egg-info Folder 0755
_version.py File 21 B 0644
configargparse.py File 40.21 KB 0644
configobj-5.0.6-py3.6.egg-info File 2.96 KB 0644
configobj.py File 87.53 KB 0644
decorator.py File 16.18 KB 0644
distro.py File 42.24 KB 0644
easy_install.py File 126 B 0644
hwdata.py File 7.95 KB 0644
iotop-0.6-py3.6.egg-info File 348 B 0644
isc-2.0-py3.6.egg-info File 267 B 0644
jsonpatch.py File 23.9 KB 0644
jsonpointer.py File 9.15 KB 0644
magic.py File 8.66 KB 0644
pciutils-2.3.6-py3.6.egg-info File 242 B 0644
pexpect-4.3.1-py3.6.egg-info File 2.23 KB 0644
prettytable.py File 52.93 KB 0644
ptyprocess-0.5.2-py3.6.egg-info File 264 B 0644
pyparsing.py File 224.48 KB 0644
rhnlib-2.8.6-py3.6.egg-info File 343 B 0644
seobject.py File 106.42 KB 0644
sepolicy-1.1-py3.6.egg-info File 227 B 0644
setroubleshoot-1.1-py3.6.egg-info File 217 B 0644
six.py File 30.16 KB 0644
socks.py File 31.52 KB 0644
sockshandler.py File 2.84 KB 0644
validate.py File 46.13 KB 0644
zope.component-4.3.0-py3.6-nspkg.pth File 529 B 0644
zope.event-4.2.0-py3.6-nspkg.pth File 529 B 0644