@@ -31,16 +31,66 @@ var (
31
31
var Module = & starlarkstruct.Module {
32
32
Name : "install" ,
33
33
Members : starlark.StringDict {
34
- "python_packages" : starlark .NewBuiltin (rulePyPIPackage , ruleFuncPyPIPackage ),
35
- "r_packages" : starlark .NewBuiltin (ruleRPackage , ruleFuncRPackage ),
36
- "apt_packages" : starlark .NewBuiltin (ruleSystemPackage , ruleFuncSystemPackage ),
34
+ // language
35
+ "python" : starlark .NewBuiltin (rulePython , ruleFuncPython ),
36
+ "conda" : starlark .NewBuiltin (ruleConda , ruleFuncConda ),
37
+ "r_lang" : starlark .NewBuiltin (ruleRLang , ruleFuncRLang ),
38
+ "julia" : starlark .NewBuiltin (ruleJulia , ruleFuncJulia ),
39
+ // packages
40
+ "apt_packages" : starlark .NewBuiltin (ruleSystemPackage , ruleFuncSystemPackage ),
41
+ "python_packages" : starlark .NewBuiltin (rulePyPIPackage , ruleFuncPyPIPackage ),
42
+ "conda_packages" : starlark .NewBuiltin (ruleCondaPackages , ruleFuncCondaPackage ),
43
+ "r_packages" : starlark .NewBuiltin (ruleRPackage , ruleFuncRPackage ),
44
+ "julia_packages" : starlark .NewBuiltin (ruleJuliaPackages , ruleFuncJuliaPackage ),
45
+ // others
37
46
"cuda" : starlark .NewBuiltin (ruleCUDA , ruleFuncCUDA ),
38
47
"vscode_extensions" : starlark .NewBuiltin (ruleVSCode , ruleFuncVSCode ),
39
- "conda_packages" : starlark .NewBuiltin (ruleConda , ruleFuncConda ),
40
- "julia_packages" : starlark .NewBuiltin (ruleJulia , ruleFuncJulia ),
41
48
},
42
49
}
43
50
51
+ func ruleFuncPython (thread * starlark.Thread , _ * starlark.Builtin ,
52
+ args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
53
+ version := ir .PythonVersionDefault
54
+
55
+ if err := starlark .UnpackArgs (rulePython , args , kwargs , "version?" , & version ); err != nil {
56
+ return nil , err
57
+ }
58
+
59
+ logger .Debugf ("rule `%s` is invoked, version=%s" , rulePython , version )
60
+ if err := ir .Python (version ); err != nil {
61
+ return nil , err
62
+ }
63
+
64
+ return starlark .None , nil
65
+ }
66
+
67
+ func ruleFuncConda (thread * starlark.Thread , _ * starlark.Builtin ,
68
+ args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
69
+ useMamba := false
70
+
71
+ if err := starlark .UnpackArgs (rulePython , args , kwargs , "use_mamba?" , & useMamba ); err != nil {
72
+ return nil , err
73
+ }
74
+
75
+ logger .Debugf ("rule `%s` is invoked: use_mamba=%t" , ruleConda , useMamba )
76
+ ir .Conda (useMamba )
77
+ return starlark .None , nil
78
+ }
79
+
80
+ func ruleFuncRLang (thread * starlark.Thread , _ * starlark.Builtin ,
81
+ args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
82
+ logger .Debugf ("rule `%s` is invoked" , ruleRLang )
83
+ ir .RLang ()
84
+ return starlark .None , nil
85
+ }
86
+
87
+ func ruleFuncJulia (thread * starlark.Thread , _ * starlark.Builtin ,
88
+ args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
89
+ logger .Debugf ("rule `%s` is invoked" , ruleJulia )
90
+ ir .Julia ()
91
+ return starlark .None , nil
92
+ }
93
+
44
94
func ruleFuncPyPIPackage (thread * starlark.Thread , _ * starlark.Builtin ,
45
95
args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
46
96
var name * starlark.List
@@ -91,11 +141,11 @@ func ruleFuncRPackage(thread *starlark.Thread, _ *starlark.Builtin,
91
141
return starlark .None , nil
92
142
}
93
143
94
- func ruleFuncJulia (thread * starlark.Thread , _ * starlark.Builtin ,
144
+ func ruleFuncJuliaPackage (thread * starlark.Thread , _ * starlark.Builtin ,
95
145
args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
96
146
var name * starlark.List
97
147
98
- if err := starlark .UnpackArgs (ruleJulia ,
148
+ if err := starlark .UnpackArgs (ruleJuliaPackages ,
99
149
args , kwargs , "name" , & name ); err != nil {
100
150
return nil , err
101
151
}
@@ -104,7 +154,7 @@ func ruleFuncJulia(thread *starlark.Thread, _ *starlark.Builtin,
104
154
if err != nil {
105
155
return nil , err
106
156
}
107
- logger .Debugf ("rule `%s` is invoked, name=%v" , ruleJulia , nameList )
157
+ logger .Debugf ("rule `%s` is invoked, name=%v" , ruleJuliaPackages , nameList )
108
158
ir .JuliaPackage (nameList )
109
159
110
160
return starlark .None , nil
@@ -168,12 +218,12 @@ func ruleFuncVSCode(thread *starlark.Thread, _ *starlark.Builtin,
168
218
return starlark .None , nil
169
219
}
170
220
171
- func ruleFuncConda (thread * starlark.Thread , _ * starlark.Builtin ,
221
+ func ruleFuncCondaPackage (thread * starlark.Thread , _ * starlark.Builtin ,
172
222
args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
173
223
var name , channel * starlark.List
174
224
var envFile starlark.String
175
225
176
- if err := starlark .UnpackArgs (ruleConda ,
226
+ if err := starlark .UnpackArgs (ruleCondaPackages ,
177
227
args , kwargs , "name?" , & name , "channel?" , & channel , "env_file?" , & envFile ); err != nil {
178
228
return nil , err
179
229
}
@@ -195,7 +245,7 @@ func ruleFuncConda(thread *starlark.Thread, _ *starlark.Builtin,
195
245
}
196
246
}
197
247
198
- logger .Debugf ("rule `%s` is invoked, name=%v, channel=%v, env_file=%s" , ruleConda , nameList , channelList , envFileStr )
248
+ logger .Debugf ("rule `%s` is invoked, name=%v, channel=%v, env_file=%s" , ruleCondaPackages , nameList , channelList , envFileStr )
199
249
if err := ir .CondaPackage (nameList , channelList , envFileStr ); err != nil {
200
250
return starlark .None , err
201
251
}
0 commit comments