From e4225d0bb1d21b3ba09bf98d9d9526bccf97d4b3 Mon Sep 17 00:00:00 2001 From: ruidajo Date: Mon, 9 Sep 2024 20:01:27 -0500 Subject: [PATCH] Creating an extension for ByteString for parsing pip stdout and modifying PyEnv install method. --- src/ExtEnvi/ByteString.extension.st | 6 ++++++ src/ExtEnvi/PyEnv.class.st | 15 ++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 src/ExtEnvi/ByteString.extension.st diff --git a/src/ExtEnvi/ByteString.extension.st b/src/ExtEnvi/ByteString.extension.st new file mode 100644 index 0000000..b1a7776 --- /dev/null +++ b/src/ExtEnvi/ByteString.extension.st @@ -0,0 +1,6 @@ +Extension { #name : #ByteString } + +{ #category : #'*ExtEnvi' } +ByteString >> parsePipInstallStdout [ + ^ self lines collect: [ :line | line splitOn: ':' ] +] diff --git a/src/ExtEnvi/PyEnv.class.st b/src/ExtEnvi/PyEnv.class.st index 6da6ca7..fa7fad5 100644 --- a/src/ExtEnvi/PyEnv.class.st +++ b/src/ExtEnvi/PyEnv.class.st @@ -57,18 +57,19 @@ PyEnv >> install: packageName [ { #category : #accessing } PyEnv >> install: aPackageName in: anEnvDirName [ - | bins pip | + | bins pip stdout | (envs includesKey: anEnvDirName) ifFalse: [ InformDebugger inform: 'Env doesn''t exist'. ^ self ]. bins := (envs at: anEnvDirName) / 'bin'. pip := (bins / 'pip') fullName. - ^ GtSubprocessWithInMemoryOutput new - workingDirectory: workingDirectory; - command: pip; - arguments: #('install' 'instaloader'); - runAndWait; - stdout + stdout := GtSubprocessWithInMemoryOutput new + workingDirectory: workingDirectory; + command: pip; + arguments: #('install' 'instaloader'); + runAndWait; + stdout. + ^ stdout parsePipInstallStdout ] { #category : #accessing }