Exemple #1
0
class Archive(object):
    def __init__(self, fobj, e, name, reqset):
        self.name = name
        if e == '.zip':
            self.arch = ZipFile(fobj)
        else:
            ## A package should not be a tar file but we don't know
            if e is None or e.endswith('.tar'):
                m = 'r'
            else:
                m = 'r:{0}'.format(e.split('.')[2])

            self.arch = tarfile.open(fileobj=fobj, mode=m)
        self.reqset = reqset

    def install(self):
        '''
        Install an archive. First it unpack the archive somewhere and then runs :file:`setup.py`
        '''

        with TempDir() as tempdir:
            self.arch.extractall(tempdir)
            self.arch.close()

            ## This is for archives which have top-level setup.py files
            setup_py = os.path.join(tempdir, 'setup.py')
            if not os.path.exists(setup_py):
                setup_py = glob.glob(os.sep.join([tempdir, '*', 'setup.py']))[0]
            Dir(os.path.dirname(setup_py), self.name, tempdir, self.reqset).install()
Exemple #2
0
    def __init__(self, fobj, e, name, reqset):
        self.name = name
        if e == '.zip':
            self.arch = ZipFile(fobj)
        else:
            ## A package should not be a tar file but we don't know
            if e is None or e.endswith('.tar'):
                m = 'r'
            else:
                m = 'r:{0}'.format(e.split('.')[2])

            self.arch = tarfile.open(fileobj=fobj, mode=m)
        self.reqset = reqset