pinokiod 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/kernel/bin/conda.js +3 -3
- package/kernel/bin/cuda.js +0 -5
- package/kernel/bin/ffmpeg.js +0 -2
- package/kernel/bin/git.js +2 -2
- package/kernel/bin/index.js +3 -3
- package/kernel/bin/llvm.js +2 -2
- package/kernel/bin/zip.js +2 -2
- package/kernel/python/index.js +0 -1
- package/kernel/shell.js +87 -97
- package/kernel/sysinfo.js +1 -1
- package/package.json +1 -1
package/kernel/bin/conda.js
CHANGED
|
@@ -65,14 +65,14 @@ class Conda {
|
|
|
65
65
|
}
|
|
66
66
|
ondata({ raw: `${cmd}\r\n` })
|
|
67
67
|
ondata({ raw: `path: ${this.kernel.bin.path()}\r\n` })
|
|
68
|
-
await this.kernel.bin.exec({ message: cmd, }, (stream) => {
|
|
68
|
+
await this.kernel.bin.exec({ message: cmd, skip_conda: true }, (stream) => {
|
|
69
69
|
ondata(stream)
|
|
70
70
|
})
|
|
71
71
|
// await this.activate()
|
|
72
72
|
await this.kernel.bin.exec({
|
|
73
73
|
message: [
|
|
74
|
-
(this.kernel.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
75
|
-
(this.platform === 'win32' ? `activate base` : `conda activate base`),
|
|
74
|
+
// (this.kernel.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
75
|
+
// (this.platform === 'win32' ? `activate base` : `conda activate base`),
|
|
76
76
|
"conda config --add create_default_packages python=3.10",
|
|
77
77
|
"conda install -y -c conda-forge pip brotli brotlipy",
|
|
78
78
|
// "conda update -y --all",
|
package/kernel/bin/cuda.js
CHANGED
|
@@ -3,20 +3,16 @@ class Cuda {
|
|
|
3
3
|
if (this.kernel.platform === "win32") {
|
|
4
4
|
await this.kernel.bin.exec({
|
|
5
5
|
message: "conda install -y cudnn libzlib-wapi -c conda-forge",
|
|
6
|
-
conda: "base",
|
|
7
6
|
}, ondata)
|
|
8
7
|
await this.kernel.bin.exec({
|
|
9
8
|
message: "conda install -y cuda -c nvidia/label/cuda-11.8.0",
|
|
10
|
-
conda: "base",
|
|
11
9
|
}, ondata)
|
|
12
10
|
} else {
|
|
13
11
|
await this.kernel.bin.exec({
|
|
14
12
|
message: "conda install -y cudnn -c conda-forge",
|
|
15
|
-
conda: "base",
|
|
16
13
|
}, ondata)
|
|
17
14
|
await this.kernel.bin.exec({
|
|
18
15
|
message: "conda install -y cuda -c nvidia/label/cuda-11.8.0",
|
|
19
|
-
conda: "base",
|
|
20
16
|
}, ondata)
|
|
21
17
|
}
|
|
22
18
|
}
|
|
@@ -42,7 +38,6 @@ class Cuda {
|
|
|
42
38
|
async uninstall(req, ondata) {
|
|
43
39
|
await this.kernel.bin.exec({
|
|
44
40
|
message: "conda remove cudnn cuda",
|
|
45
|
-
conda: "base",
|
|
46
41
|
}, ondata)
|
|
47
42
|
}
|
|
48
43
|
}
|
package/kernel/bin/ffmpeg.js
CHANGED
|
@@ -6,7 +6,6 @@ class Ffmpeg {
|
|
|
6
6
|
async install(req, ondata) {
|
|
7
7
|
await this.kernel.bin.exec({
|
|
8
8
|
message: "conda install -y -c conda-forge ffmpeg",
|
|
9
|
-
conda: "base"
|
|
10
9
|
}, ondata)
|
|
11
10
|
}
|
|
12
11
|
async installed() {
|
|
@@ -15,7 +14,6 @@ class Ffmpeg {
|
|
|
15
14
|
async uninstall(req, ondata) {
|
|
16
15
|
await this.kernel.bin.exec({
|
|
17
16
|
message: "conda remove ffmpeg",
|
|
18
|
-
conda: "base"
|
|
19
17
|
}, ondata)
|
|
20
18
|
}
|
|
21
19
|
}
|
package/kernel/bin/git.js
CHANGED
|
@@ -5,7 +5,7 @@ const { rimraf } = require('rimraf')
|
|
|
5
5
|
const path = require("path")
|
|
6
6
|
class Git {
|
|
7
7
|
async install(req, ondata) {
|
|
8
|
-
await this.kernel.bin.exec({
|
|
8
|
+
await this.kernel.bin.exec({ message: "conda install -y -c conda-forge git git-lfs" }, ondata)
|
|
9
9
|
if (this.kernel.platform === 'win32') {
|
|
10
10
|
let gitconfig_path = path.resolve(this.kernel.homedir, "gitconfig")
|
|
11
11
|
// check if gitconfig exists
|
|
@@ -23,7 +23,7 @@ class Git {
|
|
|
23
23
|
return this.kernel.bin.installed.conda.has("git")
|
|
24
24
|
}
|
|
25
25
|
async uninstall(req, ondata) {
|
|
26
|
-
await this.kernel.bin.exec({
|
|
26
|
+
await this.kernel.bin.exec({ message: "conda remove git" }, ondata)
|
|
27
27
|
}
|
|
28
28
|
env() {
|
|
29
29
|
if (this.kernel.platform === 'win32') {
|
package/kernel/bin/index.js
CHANGED
|
@@ -244,7 +244,7 @@ class Bin {
|
|
|
244
244
|
let res
|
|
245
245
|
let lines
|
|
246
246
|
if (conda_exists) {
|
|
247
|
-
res = await this.exec({ message: `conda list
|
|
247
|
+
res = await this.exec({ message: `conda list` }, (stream) => {
|
|
248
248
|
// console.log("conda list check", { stream })
|
|
249
249
|
})
|
|
250
250
|
|
|
@@ -431,11 +431,11 @@ class Bin {
|
|
|
431
431
|
if (type === "conda") {
|
|
432
432
|
const message = (install ? install : `conda install ${name} -y ${args}`)
|
|
433
433
|
ondata({ html: `<b>${progress} Installing ${name}</b><br>${message}` }, "notify")
|
|
434
|
-
await this.exec({ message
|
|
434
|
+
await this.exec({ message }, ondata)
|
|
435
435
|
} else if (type === "pip") {
|
|
436
436
|
const message = (install ? install : `pip install ${name} ${args}`)
|
|
437
437
|
ondata({ html: `<b>${progress} Installing ${name}</b><br>${message}` }, "notify")
|
|
438
|
-
await this.exec({ message
|
|
438
|
+
await this.exec({ message }, ondata)
|
|
439
439
|
} else if (type === "brew") {
|
|
440
440
|
const message = (install ? install : `brew install ${name} ${args}`)
|
|
441
441
|
ondata({ html: `<b>${progress} Installing ${name}</b><br>${message}` }, "notify")
|
package/kernel/bin/llvm.js
CHANGED
|
@@ -3,7 +3,7 @@ class LLVM {
|
|
|
3
3
|
if (this.kernel.platform === 'darwin') {
|
|
4
4
|
await bin.exec({ message: "brew install llvm" }, ondata)
|
|
5
5
|
} else {
|
|
6
|
-
await bin.exec({ message: "conda install -y -c conda-forge llvm"
|
|
6
|
+
await bin.exec({ message: "conda install -y -c conda-forge llvm" }, ondata)
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
async installed() {
|
|
@@ -14,7 +14,7 @@ class LLVM {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
async uninstall(req, ondata) {
|
|
17
|
-
await this.kernel.bin.exec({ message: "conda remove llvm"
|
|
17
|
+
await this.kernel.bin.exec({ message: "conda remove llvm" }, ondata)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
module.exports = LLVM
|
package/kernel/bin/zip.js
CHANGED
|
@@ -6,7 +6,7 @@ class Zip {
|
|
|
6
6
|
} else {
|
|
7
7
|
cmd = "conda install -y -c conda-forge p7zip"
|
|
8
8
|
}
|
|
9
|
-
await this.kernel.bin.exec({
|
|
9
|
+
await this.kernel.bin.exec({ message: cmd }, ondata)
|
|
10
10
|
}
|
|
11
11
|
async installed() {
|
|
12
12
|
if (this.kernel.platform === 'win32') {
|
|
@@ -22,7 +22,7 @@ class Zip {
|
|
|
22
22
|
} else {
|
|
23
23
|
cmd = "conda remove p7zip"
|
|
24
24
|
}
|
|
25
|
-
await this.kernel.bin.exec({
|
|
25
|
+
await this.kernel.bin.exec({ message: cmd }, ondata)
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
module.exports = Zip
|
package/kernel/python/index.js
CHANGED
package/kernel/shell.js
CHANGED
|
@@ -463,125 +463,115 @@ class Shell {
|
|
|
463
463
|
}
|
|
464
464
|
}
|
|
465
465
|
async activate(params) {
|
|
466
|
+
|
|
467
|
+
// conda and venv can coexist
|
|
468
|
+
// 1. first process conda
|
|
469
|
+
// - if conda is not specified => base => no need to create
|
|
470
|
+
// - if conda is specified
|
|
471
|
+
// - if string => the string is the path => create if doesn't exist yet
|
|
472
|
+
// - if object => the conda.path is the path => create if doesn't exist yet
|
|
473
|
+
// 2. then process venv
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
// 1. conda
|
|
477
|
+
let conda
|
|
466
478
|
if (params.conda) {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
`conda deactivate`,
|
|
487
|
-
`conda deactivate`,
|
|
488
|
-
`conda activate ${env_path}`,
|
|
489
|
-
// 'pip install --upgrade wheel pip setuptools',
|
|
490
|
-
].concat(params.message)
|
|
479
|
+
conda = params.conda
|
|
480
|
+
} else {
|
|
481
|
+
conda = null
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
let conda_activation
|
|
485
|
+
if (params.skip_conda) {
|
|
486
|
+
// don't activate
|
|
487
|
+
conda_activation = []
|
|
488
|
+
} else {
|
|
489
|
+
if (conda) {
|
|
490
|
+
let conda_path
|
|
491
|
+
let conda_python
|
|
492
|
+
if (typeof conda === "string") {
|
|
493
|
+
conda_path = conda
|
|
494
|
+
conda_python = "python=3.10"
|
|
495
|
+
} else {
|
|
496
|
+
if (conda.path) {
|
|
497
|
+
conda_path = conda.path
|
|
491
498
|
} else {
|
|
492
|
-
|
|
493
|
-
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
494
|
-
`conda create -y -p ${env_path} python=3.10`,
|
|
495
|
-
//`conda activate ${params.conda}`,
|
|
496
|
-
`conda deactivate`,
|
|
497
|
-
`conda deactivate`,
|
|
498
|
-
`conda deactivate`,
|
|
499
|
-
`conda activate ${env_path}`,
|
|
500
|
-
// 'pip install --upgrade wheel pip setuptools',
|
|
501
|
-
].concat(params.message)
|
|
499
|
+
throw new Error("when specifying conda as an object, the conda.path must exist")
|
|
502
500
|
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
let env_exists = await this.exists(env_path)
|
|
506
|
-
if (env_exists) {
|
|
507
|
-
params.message = [
|
|
508
|
-
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
509
|
-
`conda deactivate`,
|
|
510
|
-
`conda deactivate`,
|
|
511
|
-
`conda deactivate`,
|
|
512
|
-
`conda activate ${env_path}`,
|
|
513
|
-
// 'pip install --upgrade wheel pip setuptools',
|
|
514
|
-
].concat(params.message)
|
|
501
|
+
if (conda.python) {
|
|
502
|
+
conda_python = conda.python
|
|
515
503
|
} else {
|
|
516
|
-
|
|
517
|
-
if (params.conda.python) {
|
|
518
|
-
create_command = `conda create -y -p ${env_path} python=${params.conda.python}`
|
|
519
|
-
} else {
|
|
520
|
-
create_command = `conda create -y -p ${env_path} python=3.10`
|
|
521
|
-
}
|
|
522
|
-
params.message = [
|
|
523
|
-
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
524
|
-
create_command,
|
|
525
|
-
`conda deactivate`,
|
|
526
|
-
`conda deactivate`,
|
|
527
|
-
`conda deactivate`,
|
|
528
|
-
`conda activate ${env_path}`,
|
|
529
|
-
// 'pip install --upgrade wheel pip setuptools',
|
|
530
|
-
].concat(params.message)
|
|
504
|
+
conda_python = "python=3.10"
|
|
531
505
|
}
|
|
532
506
|
}
|
|
533
|
-
}
|
|
534
|
-
if (this.env) {
|
|
535
|
-
// this.env.CONDA_PIP_INTEROP_ENABLED = "1"
|
|
536
|
-
this.env.CONDA_AUTO_ACTIVATE_BASE = "false"
|
|
537
|
-
this.env.PYTHONNOUSERSITE = "1"
|
|
538
|
-
} else {
|
|
539
|
-
//this.env = { CONDA_PIP_INTEROP_ENABLED: "1", CONDA_AUTO_ACTIVATE_BASE: "false", PYTHONNOUSERSITE: "1" }
|
|
540
|
-
this.env = { CONDA_AUTO_ACTIVATE_BASE: "false", PYTHONNOUSERSITE: "1" }
|
|
541
|
-
}
|
|
542
|
-
} else if (params.venv) {
|
|
543
|
-
let env_path = path.resolve(params.path, params.venv)
|
|
544
|
-
let activate_path = (this.platform === 'win32' ? path.resolve(env_path, "Scripts", "activate") : path.resolve(env_path, "bin", "activate"))
|
|
545
|
-
let env_exists = await this.exists(env_path)
|
|
546
|
-
if (env_exists) {
|
|
547
|
-
params.message = [
|
|
548
507
|
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
508
|
+
let env_path = path.resolve(params.path, conda_path)
|
|
509
|
+
let env_exists = await this.exists(env_path)
|
|
510
|
+
if (env_exists) {
|
|
511
|
+
conda_activation = [
|
|
512
|
+
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
513
|
+
`conda deactivate`,
|
|
514
|
+
`conda deactivate`,
|
|
515
|
+
`conda deactivate`,
|
|
516
|
+
`conda activate ${env_path}`,
|
|
517
|
+
]
|
|
518
|
+
} else {
|
|
519
|
+
conda_activation = [
|
|
520
|
+
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
521
|
+
`conda create -y -p ${env_path} ${conda_python}`,
|
|
522
|
+
`conda deactivate`,
|
|
523
|
+
`conda deactivate`,
|
|
524
|
+
`conda deactivate`,
|
|
525
|
+
`conda activate ${env_path}`,
|
|
526
|
+
]
|
|
527
|
+
}
|
|
554
528
|
|
|
555
|
-
(this.platform === "win32" ? `${activate_path} ${env_path}` : `source ${activate_path} ${env_path}`),
|
|
556
|
-
//'pip install --upgrade pip',
|
|
557
|
-
// 'pip install --upgrade wheel pip setuptools',
|
|
558
|
-
].concat(params.message)
|
|
559
529
|
} else {
|
|
560
|
-
|
|
561
|
-
|
|
530
|
+
// base environment => no need to create
|
|
531
|
+
conda_activation = [
|
|
562
532
|
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
563
533
|
`conda deactivate`,
|
|
564
534
|
`conda deactivate`,
|
|
565
535
|
`conda deactivate`,
|
|
566
536
|
`conda activate base`,
|
|
537
|
+
]
|
|
538
|
+
}
|
|
539
|
+
}
|
|
567
540
|
|
|
541
|
+
// Update env setting
|
|
542
|
+
if (this.env) {
|
|
543
|
+
// this.env.CONDA_PIP_INTEROP_ENABLED = "1"
|
|
544
|
+
this.env.CONDA_AUTO_ACTIVATE_BASE = "false"
|
|
545
|
+
this.env.PYTHONNOUSERSITE = "1"
|
|
546
|
+
} else {
|
|
547
|
+
//this.env = { CONDA_PIP_INTEROP_ENABLED: "1", CONDA_AUTO_ACTIVATE_BASE: "false", PYTHONNOUSERSITE: "1" }
|
|
548
|
+
this.env = { CONDA_AUTO_ACTIVATE_BASE: "false", PYTHONNOUSERSITE: "1" }
|
|
549
|
+
}
|
|
568
550
|
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
// 2. venv
|
|
554
|
+
let venv_activation
|
|
555
|
+
if (params.venv) {
|
|
556
|
+
let env_path = path.resolve(params.path, params.venv)
|
|
557
|
+
let activate_path = (this.platform === 'win32' ? path.resolve(env_path, "Scripts", "activate") : path.resolve(env_path, "bin", "activate"))
|
|
558
|
+
let env_exists = await this.exists(env_path)
|
|
559
|
+
if (env_exists) {
|
|
560
|
+
venv_activation = [
|
|
561
|
+
(this.platform === "win32" ? `${activate_path} ${env_path}` : `source ${activate_path} ${env_path}`),
|
|
562
|
+
]
|
|
563
|
+
} else {
|
|
564
|
+
venv_activation = [
|
|
569
565
|
`python -m venv ${env_path}`,
|
|
570
566
|
(this.platform === "win32" ? `${activate_path} ${env_path}` : `source ${activate_path} ${env_path}`),
|
|
571
|
-
|
|
572
|
-
// 'pip install --upgrade wheel pip setuptools',
|
|
573
|
-
].concat(params.message)
|
|
567
|
+
]
|
|
574
568
|
}
|
|
575
569
|
} else {
|
|
576
|
-
|
|
577
|
-
(this.platform === 'win32' ? 'conda_hook' : `eval "$(conda shell.bash hook)"`),
|
|
578
|
-
`conda deactivate`,
|
|
579
|
-
`conda deactivate`,
|
|
580
|
-
`conda deactivate`,
|
|
581
|
-
`conda activate base`,
|
|
582
|
-
].concat(params.message)
|
|
570
|
+
venv_activation = []
|
|
583
571
|
}
|
|
584
572
|
|
|
573
|
+
// 3. construct params.message
|
|
574
|
+
params.message = conda_activation.concat(venv_activation).concat(params.message)
|
|
585
575
|
return params
|
|
586
576
|
}
|
|
587
577
|
async exec(params) {
|
package/kernel/sysinfo.js
CHANGED
|
@@ -100,7 +100,7 @@ class Sysinfo {
|
|
|
100
100
|
} else {
|
|
101
101
|
cmd = "env"
|
|
102
102
|
}
|
|
103
|
-
let res = await this.kernel.bin.exec({ message: cmd
|
|
103
|
+
let res = await this.kernel.bin.exec({ message: cmd }, (stream) => {
|
|
104
104
|
})
|
|
105
105
|
let lines = res.response.split(/[\r\n]+/)
|
|
106
106
|
let vars = []
|