spmeesseman/vscode-taskexplorer

[Feature Request] Add scripts from pipenv Pipfile for Python

rob4226 opened this issue · 9 comments

Hi,
This is an excellent extension, I use it every day, so thank you! I would like to make a feature request for Python to run scripts from the [scripts] section in a Pipfile file that is used with the pipenv Python package manager. Below is an example of a Pipenv file. It is analogous to a "package.json" file for npm. Note that the Pipfile uses the TOML Spec.

Pipenv scripts docs: https://pipenv.pypa.io/en/latest/advanced/#custom-script-shortcuts

I will try to start working on it myself but just wanted to make a post about it bc the [scripts] section seems like a perfect fit for this extension.

To run a pipenv script you do: pipenv run <name of script> so using the below example file pipenv run build-exe
To list all scripts you can run pipenv scripts

Pipenv file example (users TOML format):

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
pyside6 = "*"
mypy = "*"
paramiko = "*"
pyinstaller = {extras = ["encryption"], version = "*"}

[dev-packages]
isort = "*"
flake8 = "*"
pyinstaller = "*"

[requires]
python_version = "3.9"

[scripts]
convert-ui = "pyside6-uic ui_mainwindow.ui > ui_mainwindow.py"
build-exe = "pyinstaller --name='RobPySSHgui' --windowed --onefile ./main.py"
run-dev = "python main.py"

Ok I added support for Pipenv Pipfile scripts, and it seems to be working really well! I will submit a PR for my fork:

https://github.com/Rob4226/vscode-taskexplorer/tree/pipenv-scripts

hi thanks for the comments, i appreciate hearing that. If you want to submit a PR to this repo I will gladly pull it in when I do the next release (latest Code version broke a few small things, so it will be sooner than later, hopefully this or next weekend)

Ok cool, sounds good. I just submitted a PR #156

@rob4226 Hey I'm completely impressed how u integrated your changes, everything exact, alpha order, followed my convention, just perfect.
Very nice work. Any chance you're looking for work? 100% remote, medical transcription service

inclusing the dependency in package.json that was added broke the extension... something wrong with one of its own dependencies, 2.4.0 and 2.4.1 are exhibiting this behavior, ill have to remove your addition for now i think

[2021-08-07 09:27:56.493] [exthost] [error] Activating extension spmeesseman.vscode-taskexplorer failed due to an error:
[2021-08-07 09:27:56.493] [exthost] [error] Error: Cannot find module 'c:\Code\data\extensions\spmeesseman.vscode-taskexplorer-2.4.1\node_modules\chevrotain\lib\src\api.js'. Please verify that the package.json has a valid "main" entry
at tryPackage (internal/modules/cjs/loader.js:310:19)
at Function.Module._findPath (internal/modules/cjs/loader.js:523:18)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:921:27)
at Module._load (internal/modules/cjs/loader.js:779:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Function.n._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:28060)
at Function.P._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:24648)
at Function.l._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:59608)
at Module.require (internal/modules/cjs/loader.js:1006:19)
at Module.require (c:\Code\resources\app\extensions\microsoft-authentication\dist\extension.js:1:38760)
at v (c:\Code\resources\app\out\vs\loader.js:4:698)
at Object. (c:\Code\data\extensions\spmeesseman.vscode-taskexplorer-2.4.1\node_modules@sgarciac\bombadil\lib\lexer.js:3:10)
at Module.u._compile (c:\Code\resources\app\out\vs\loader.js:4:1315)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1155:10)
at Module.load (internal/modules/cjs/loader.js:982:32)
at Module._load (internal/modules/cjs/loader.js:823:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Function.n._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:28060)
at Function.P._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:24648)
at Function.l._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:59608)
at Module.require (internal/modules/cjs/loader.js:1006:19)
at Module.require (c:\Code\resources\app\extensions\microsoft-authentication\dist\extension.js:1:38760)
at v (c:\Code\resources\app\out\vs\loader.js:4:698)
at Object. (c:\Code\data\extensions\spmeesseman.vscode-taskexplorer-2.4.1\node_modules@sgarciac\bombadil\lib\tables.js:3:9)
at Module.u._compile (c:\Code\resources\app\out\vs\loader.js:4:1315)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1155:10)
at Module.load (internal/modules/cjs/loader.js:982:32)
at Module._load (internal/modules/cjs/loader.js:823:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Function.n._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:28060)
at Function.P._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:24648)
at Function.l._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:59608)
at Module.require (internal/modules/cjs/loader.js:1006:19)
at Module.require (c:\Code\resources\app\extensions\microsoft-authentication\dist\extension.js:1:38760)
at v (c:\Code\resources\app\out\vs\loader.js:4:698)
at Object. (c:\Code\data\extensions\spmeesseman.vscode-taskexplorer-2.4.1\node_modules@sgarciac\bombadil\lib\bombadil.js:6:10)
at Module.u._compile (c:\Code\resources\app\out\vs\loader.js:4:1315)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1155:10)
at Module.load (internal/modules/cjs/loader.js:982:32)
at Module._load (internal/modules/cjs/loader.js:823:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Function.n._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:28060)
at Function.P._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:24648)
at Function.l._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:59608)
at Module.require (internal/modules/cjs/loader.js:1006:19)
at Module.require (c:\Code\resources\app\extensions\microsoft-authentication\dist\extension.js:1:38760)
at v (c:\Code\resources\app\out\vs\loader.js:4:698)
at Object. (c:\Code\data\extensions\spmeesseman.vscode-taskexplorer-2.4.1\dist\providers\pipenv.js:20:18)
at Module.u._compile (c:\Code\resources\app\out\vs\loader.js:4:1315)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1155:10)
at Module.load (internal/modules/cjs/loader.js:982:32)
at Module._load (internal/modules/cjs/loader.js:823:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Function.n._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:28060)
at Function.P._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:24648)
at Function.l._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:59608)
at Module.require (internal/modules/cjs/loader.js:1006:19)
at Module.require (c:\Code\resources\app\extensions\microsoft-authentication\dist\extension.js:1:38760)
at v (c:\Code\resources\app\out\vs\loader.js:4:698)
at Object. (c:\Code\data\extensions\spmeesseman.vscode-taskexplorer-2.4.1\dist\extension.js:26:18)
at Module.u._compile (c:\Code\resources\app\out\vs\loader.js:4:1315)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1155:10)
at Module.load (internal/modules/cjs/loader.js:982:32)
at Module._load (internal/modules/cjs/loader.js:823:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Function.n._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:28060)
at Function.P._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:24648)
at Function.l._load (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:59608)
at Module.require (internal/modules/cjs/loader.js:1006:19)
at Module.require (c:\Code\resources\app\extensions\microsoft-authentication\dist\extension.js:1:38760)
at require (internal/modules/cjs/helpers.js:88:18)
at Function.t [as __$__nodeRequire] (c:\Code\resources\app\out\vs\loader.js:5:101)
at v._loadCommonJSModule (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:104:26057)
at v._doActivateExtension (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:90:12603)
at v._activateExtension (c:\Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:90:11704)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 15)
at async Promise.all (index 0)

weird, extension is only including lib/.js in the that chevrotrain pkg. but in local node_modules dir on dev machine, it includes lib/src/.js

i figured it out. damn .vscodeignore file. 2.4.2 will work i hope now

@spmeesseman Thanks for the compliments! Yup, I tried to follow all the coventions in the code base. It definetly helped that your code was so nicely structured and organized.

Sure, I'm interested in work. Send me an email rob4226@yahoo.com thanks! -Rob

@rob4226 i will email you later today about that!!