File: checkpackage.py

package info (click to toggle)
obitools 1.2.13%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 4,652 kB
  • sloc: python: 18,199; ansic: 1,542; makefile: 98
file content (93 lines) | stat: -rw-r--r-- 2,429 bytes parent folder | download | duplicates (2)
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
'''
Created on 2 oct. 2014

@author: coissac
'''

import re
import sys
import os

from distutils.version import StrictVersion          # @UnusedImport
from distutils.errors import DistutilsError
from distutils import log

from obidistutils.serenity.checkpip import get_a_pip_module

def is_installed(requirement,pip=None):
    return True


def get_requirements(pip=None):
    
    if pip is None:
        pip = get_a_pip_module()
        
    try:
        requirements = open('requirements.txt').readlines()
        requirements = [x.strip() for x in requirements]
        requirements = [x for x in requirements if x[0]!='-']
    
    except IOError:
        requirements = []
        
    return requirements
    
    
def install_requirements(skip_virtualenv=True,pip=None):
    
    install_something=False
    
    return install_something
 

def check_requirements(skip_virtualenv=True,pip=None):
    pass 


def parse_package_requirement(requirement):
    
    version_pattern = re.compile('[=><]+(.*)$')
    project_pattern  = re.compile('[^=><]+')
    relationship_pattern = re.compile('[=><]+')
    
    try:
        requirement_project = project_pattern.search(requirement).group(0)
        requirement_version = version_pattern.search(requirement)
        if requirement_version is not None:
            requirement_version=requirement_version.group(1)
        requirement_relation= relationship_pattern.search(requirement)
        if requirement_relation is not None:
            requirement_relation=requirement_relation.group(0)
    except:
        raise DistutilsError("Requirement : %s not correctly formated" % requirement)
    
    return requirement_project,requirement_relation,requirement_version
    

def get_package_requirement(package,pip=None):            
    return None
        
        
def pip_install_package(package,directory=None,pip=None):

    log.info('installing %s in directory %s' % (package,str(directory)))

    if 'http_proxy' in os.environ and 'https_proxy' not in os.environ:
        os.environ['https_proxy']=os.environ['http_proxy']

    if pip is None:
        pip = get_a_pip_module()
                
    args = ['install']
    
    if 'http_proxy' in os.environ:
        args.append('--proxy=%s' % os.environ['http_proxy'])
        
    if directory is not None:
        args.append('--target=%s' % directory)
    
    args.append(package)
        
    return pip.main(args)