environment/lib/python2.7/site-packages/distribute-0.6.31-py2.7.egg/setuptools/command/easy_install.py
def extract_wininst_cfg(dist_filename):
    """Extract configuration data from a bdist_wininst .exe

    Returns a ConfigParser.RawConfigParser, or None
    """
    f = open(dist_filename,'rb')
    try:
        endrec = zipfile._EndRecData(f)
        if endrec is None:
            return None

        prepended = (endrec[9] - endrec[5]) - endrec[6]
        if prepended < 12:  # no wininst data here
            return None
        f.seek(prepended-12)

        import struct, StringIO, ConfigParser
        tag, cfglen, bmlen = struct.unpack("<iii",f.read(12))
        if tag not in (0x1234567A, 0x1234567B):
            return None     # not a valid tag

        f.seek(prepended-(12+cfglen))
        cfg = ConfigParser.RawConfigParser({'version':'','target_version':''})
        try:
            part = f.read(cfglen)
            # part is in bytes, but we need to read up to the first null
            #  byte.
            if sys.version_info >= (2,6):
                null_byte = bytes([0])
            else:
                null_byte = chr(0)
            config = part.split(null_byte, 1)[0]
            # Now the config is in bytes, but on Python 3, it must be
            #  unicode for the RawConfigParser, so decode it. Is this the
            #  right encoding?
            config = config.decode('ascii')
            cfg.readfp(StringIO.StringIO(config))
        except ConfigParser.Error:
            return None
        if not cfg.has_section('metadata') or not cfg.has_section('Setup'):
            return None
        return cfg

    finally:
        f.close()
def extract_wininst_cfg(dist_filename):
    f = open(dist_filename,'rb')
    try:
        endrec = zipfile._EndRecData(f)
        if endrec is None:
            return None

        prepended = (endrec[9] - endrec[5]) - endrec[6]
        if prepended < 12:  # no wininst data here
            return None
        f.seek(prepended-12)

        import struct, StringIO, ConfigParser
        tag, cfglen, bmlen = struct.unpack("<iii",f.read(12))
        if tag not in (0x1234567A, 0x1234567B):
            return None     # not a valid tag

        f.seek(prepended-(12+cfglen))
        cfg = ConfigParser.RawConfigParser({'version':'','target_version':''})
        try:
            part = f.read(cfglen)
            # part is in bytes, but we need to read up to the first null
            #  byte.
            if sys.version_info >= (2,6):
                null_byte = bytes([0])
            else:
                null_byte = chr(0)
            config = part.split(null_byte, 1)[0]
            # Now the config is in bytes, but on Python 3, it must be
            #  unicode for the RawConfigParser, so decode it. Is this the
            #  right encoding?
            config = config.decode('ascii')
            cfg.readfp(StringIO.StringIO(config))
        except ConfigParser.Error:
            return None
        if not cfg.has_section('metadata') or not cfg.has_section('Setup'):
            return None
        return cfg

    finally:
        f.close()
def extract_wininst_cfg ( dist_filename ) : f = open ( dist_filename , 'rb' ) try : endrec = zipfile . _EndRecData ( f ) if endrec is None : return None prepended = ( endrec [ 9 ] - endrec [ 5 ] ) - endrec [ 6 ] if prepended < 12 : # no wininst data here return None f . seek ( prepended - 12 ) import struct , StringIO , ConfigParser tag , cfglen , bmlen = struct . unpack ( "<iii" , f . read ( 12 ) ) if tag not in ( 0x1234567A , 0x1234567B ) : return None # not a valid tag f . seek ( prepended - ( 12 + cfglen ) ) cfg = ConfigParser . RawConfigParser ( { 'version' : '' , 'target_version' : '' } ) try : part = f . read ( cfglen ) # part is in bytes, but we need to read up to the first null #  byte. if sys . version_info >= ( 2 , 6 ) : null_byte = bytes ( [ 0 ] ) else : null_byte = chr ( 0 ) config = part . split ( null_byte , 1 ) [ 0 ] # Now the config is in bytes, but on Python 3, it must be #  unicode for the RawConfigParser, so decode it. Is this the #  right encoding? config = config . decode ( 'ascii' ) cfg . readfp ( StringIO . StringIO ( config ) ) except ConfigParser . Error : return None if not cfg . has_section ( 'metadata' ) or not cfg . has_section ( 'Setup' ) : return None return cfg finally : f . close ( )
Extract configuration data from a bdist_wininst .exe

    Returns a ConfigParser.RawConfigParser, or None
Extract configuration data from a bdist_wininst . exe