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
|
#!/usr/bin/env python
'''
RAMBO - Recipe Analyzer and Multi-package Build Optimizer
'''
from __future__ import print_function
import os
import sys
import argparse
from . import rambo
#from ._version import __version__
#from .rambo import *
def main(argv=None):
if argv is None:
argv = sys.argv
parser = argparse.ArgumentParser(prog='rambo')
parser.add_argument('-p', '--platform', type=str)
parser.add_argument(
'--python',
type=str,
help='Python version to pass to conda machinery when rendering '
'recipes. "#.#" format. If not specified, the version of python'
' hosting conda_build.api is used.')
parser.add_argument(
'-m',
'--manifest',
type=str,
help='Use this file to filter the list of recipes to process.')
parser.add_argument(
'-f',
'--file',
type=str,
help='Send package list output to this file instead of stdout.')
parser.add_argument(
'-c',
'--culled',
action='store_true',
help='Print the ordered list of package names reduced to the set'
' of packages that do not already exist in the channel specified'
' in the supplied manifest file.')
parser.add_argument(
'-d',
'--details',
action='store_true',
help='Display details used in determining build order and/or '
'package culling.')
parser.add_argument(
'--dirty',
action='store_true',
help='Use the most recent pre-existing conda work directory for '
'each recipe instead of creating a new one. If a work directory '
'does not already exist, the recipe is processed in the normal '
'fashion. Used mostly for testing purposes.')
parser.add_argument(
'-v',
'--version',
action='version',
version='%(prog)s ' + rambo.__version__,
help='Display version information.')
parser.add_argument('recipes_dir', type=str)
args = parser.parse_args()
recipes_dir = os.path.normpath(args.recipes_dir)
fh = None
if args.file:
fh = open(args.file, 'w')
versions = {'python': '', 'numpy': ''}
if args.python:
versions['python'] = args.python
versions['numpy'] = rambo.DEFAULT_MINIMUM_NUMPY_VERSION
mset = rambo.MetaSet(
recipes_dir,
platform=args.platform,
versions=versions,
dirty=args.dirty,
manfile=args.manifest)
mset.multipass_optimize()
if args.details:
mset.print_details(fh)
if mset.channel:
mset.print_status_in_channel(fh)
elif args.culled:
mset.print_culled(fh)
else:
mset.print(fh)
if __name__ == "__main__":
main()
|