File: __init__.py

package info (click to toggle)
obitools 1.2.12%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,900 kB
  • sloc: python: 18,221; ansic: 1,542; makefile: 96
file content (117 lines) | stat: -rw-r--r-- 3,626 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import sys

from distutils import util
from distutils import sysconfig
from distutils import log
from distutils.version import LooseVersion, StrictVersion
import glob
import os
import subprocess
import re 
from distutils.errors import DistutilsError
import urllib2
import tempfile

import importlib
import imp
import zipimport

import argparse

import base64

from checkpython import is_mac_system_python, \
                        is_python27, \
                        is_a_virtualenv_python, \
                        which_virtualenv, \
                        is_good_python27
                        
                        
from obidistutils.serenity.rerun import  enforce_good_python
from obidistutils.serenity.rerun import rerun_with_anothe_python

from obidistutils.serenity.virtual import serenity_virtualenv
                        
from obidistutils.serenity.checksystem import is_mac_system, \
                                              is_windows_system
                        
from obidistutils.serenity.checkpackage import install_requirements
from obidistutils.serenity.checkpackage import check_requirements

from obidistutils.serenity.util import save_argv
                        
from obidistutils.serenity.snake import snake

from obidistutils.serenity.globals import PIP_MINVERSION, local_serenity
                            
    
def serenity_snake(envname,package,version,minversion=PIP_MINVERSION):
    old = log.set_threshold(log.INFO)

    log.info("Installing %s (%s) in serenity mode" % (package,version))

    print >>sys.stderr,snake
    sys.stderr.flush()

    enforce_good_python()

    virtualpython=serenity_virtualenv(envname,package,version,minversion=minversion)
    
    if virtualpython!=os.path.realpath(sys.executable):
        log.info("Restarting installation within the %s virtualenv" % (envname))
        rerun_with_anothe_python(virtualpython)
        
    log.info("%s will be installed with python : %s" % (package,virtualpython))
        
    if install_requirements(False):    
        log.info("Restarting installation with all dependencies ok")
        rerun_with_anothe_python(virtualpython)
    
    log.set_threshold(old)
    
def serenity_assert(version,minversion=PIP_MINVERSION):
    check_requirements()


def is_serenity():
    from obidistutils.serenity.globals import local_serenity
    return local_serenity and local_serenity[0]

def serenity_mode(package,version):
    
    save_argv()

    
    from obidistutils.serenity.globals import saved_args
    

    old = log.set_threshold(log.INFO)
    
    argparser = argparse.ArgumentParser(add_help=False)
    argparser.add_argument('--serenity',
                           dest='serenity', 
                           action='store_true',
                           default=False, 
                           help='Switch the installer in serenity mode. Everythings are installed in a virtualenv')

    argparser.add_argument('--virtualenv',
                           dest='virtual', 
                           type=str,
                           action='store',
                           default="%s-%s" % (package,version), 
                           help='Specify the name of the virtualenv used by the serenity mode [default: %s-%s]' % (package,version))    
    
    args, unknown = argparser.parse_known_args()
    sys.argv = [sys.argv[0]] + unknown
    
    if args.serenity:
        local_serenity.append(True)
        serenity_snake(args.virtual,package,version)
    else:
        local_serenity.append(False)       
    
    log.set_threshold(old)
    
    return args.serenity