tis-python27

2.7.10-6
Python 2.7 pywin32
15366 downloads
Download

  Description 

  • package : tis-python27
  • version : 2.7.10-6
  • architecture : x86
  • categories :
  • maintainer : TIS <technique@tranquil-it-systems.fr>
  • description : Python 2.7 pywin32
  • locale :
  • target_os :
  • min_wapt_version :
  • sources :
  • installed_size :
  • impacted_process :
  • description_fr :
  • description_pl :
  • description_de :
  • description_es :
  • description_pt :
  • description_it :
  • description_nl :
  • description_ru :
  • editor :
  • licence :
  • signature_date : 2020-02-27T15:11:24.326200

  Setup.py 

#!/usr/bin/python
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------
#    This file is part of WAPT
#    Copyright (C) 2013  Tranquil IT Systems http://www.tranquil.it
#    WAPT aims to help Windows systems administrators to deploy
#    setup and update applications on users PC.
#
#    WAPT is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    WAPT is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with WAPT.  If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------
from setuphelpers import *
import glob

uninstallkey = []

def need_install(key,min_version=None,force=False):
    """Return True if the software with key can be found in uninstall registry
        and the registred version is equal or greater than min_version

    Args:
        key (str) : uninstall key
        min_version (str) : minimum version or None if don't check verion
    Returns:
        boolean

    """
    if force or not key:
        return True
    else:
        current = installed_softwares(uninstallkey=key)
        for soft in current:
            if not min_version or Version(soft['version']) >= Version(min_version):
                return False
        return True


# for < 1.3.3
def install_msi_if_needed(msi,min_version=None,killbefore=[],accept_returncodes=[0,1603,3010],timeout=300,properties={}):
    """Install silently the supplied msi file, and add the uninstall key to
    global uninstall key list

    uninstall key, min_version and silent flags are guessed from msi file.

    Raises an error if, after the msi install, the uninstall key is not found in registry.

    The matching is done on key

    Args:
        msi (str) : path to the MSI file
        min_version (str) : if installed version is equal or gretaer than this, don't install
                            if not provided, guess it from exe setup file properties.
        kill_before (list of str) : processes to kill before setup, to avoid file locks
                                    issues.
        accept_returncodes (list of int) : return codes which are acceptable and don't raise exception
        timeout int) : maximum run time of command in seconds bfore the child is killed and error is raised.
        properties (dict) : map (key=value) of properties for specific msi installation.

    Returns:
        None

    """
    if not isfile(msi):
        error('msi file %s not found in package' % msi)
    key = get_msi_properties(msi)['ProductCode']
    # will try to add key in the caller's (setup.py) uninstallkey list
    import inspect
    caller_globals = inspect.stack()[1][0].f_globals
    WAPT = caller_globals.get('WAPT',None)
    force = WAPT and WAPT.options.force

    if not min_version:
        min_version = getproductprops(msi)['version']

    if need_install(key,min_version=min_version,force=force):
        if killbefore:
            killalltasks(killbefore)
        props = ' '.join(["%s=%s" % (k,v) for (k,v) in properties.iteritems()])
        run(r'msiexec /norestart /q /i "%s" %s' % (msi,props),accept_returncodes=accept_returncodes,timeout=timeout)
        if not installed_softwares(uninstallkey=key):
            error('MSI %s has been installed but the uninstall key %s can not be found' % (msi,key))
    else:
        print('MSI %s already installed. Skipping msiexec' % msi)
    if key:
        if 'uninstallkey' in caller_globals and not key in caller_globals['uninstallkey']:
            caller_globals['uninstallkey'].append(key)



def install():
    print("Install python MSI")
    install_msi_if_needed('python-2.7.10.msi',killbefore=['python','pyscripter'],
        properties = dict(ALLUSERS=1,TARGETDIR=r'C:\python27'))

    killalltasks(['python.exe','pyscripter.exe'])
    print("Copy platlib")
    run(r"xcopy /Y /s PLATLIB\* c:\python27\Lib\site-packages\ ")
    if glob.glob('site-packages/*'):
        print("Copy site-packages")
        run(r"xcopy /Y /s site-packages\* c:\python27\Lib\site-packages\ ")
    print("Copy scripts")
    run(r"xcopy /Y /s setuptools-scripts c:\python27\SCRIPTS\ ")
    print("Win32 post-install")
    run(r'c:\python27\python.exe "%s" -install  -silent' % (makepath(basedir,'pywin32_postinstall.py'),))

										

  Changelog 



No changelog.txt.
									
  manifest.sha256