## What's new - color completion message command green https://github.com/versenilvis/IRIS/pull/10/commits/6e141f5e6909fad1ec42725cce38d51729acf399 - new flat command folder structure https://github.com/versenilvis/IRIS/pull/10/commits/87026a854a529ec5d5baed967d5f7a7f0085a24b - fix some linter problems https://github.com/versenilvis/IRIS/pull/10/commits/536de790cefda912f50bf4022e40ce2b965db2e2 - fix some gemini fix suggestions
106 lines
4.3 KiB
Go
106 lines
4.3 KiB
Go
package python
|
|
|
|
import (
|
|
"github.com/versenilvis/iris/commands/core"
|
|
)
|
|
|
|
func makePythonSpec(name string) *core.Spec {
|
|
return &core.Spec{
|
|
Name: name,
|
|
Description: "python interpreter",
|
|
Generator: core.FileGenerator(".py"),
|
|
Options: []core.Option{
|
|
{Name: "-m", Description: "run module as script"},
|
|
{Name: "-c", Description: "run inline command"},
|
|
{Name: "-i", Description: "interactive after script"},
|
|
{Name: "-u", Description: "unbuffered stdio"},
|
|
{Name: "-O", Description: "optimize bytecode"},
|
|
{Name: "-v", Description: "verbose"},
|
|
{Name: "-W", Description: "warning control"},
|
|
{Name: "-B", Description: "no .pyc files"},
|
|
},
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
core.Register(makePythonSpec("python"))
|
|
core.Register(makePythonSpec("python3"))
|
|
core.Register(makePythonSpec("py"))
|
|
|
|
core.Register(&core.Spec{
|
|
Name: "uv",
|
|
Description: "fast python package manager",
|
|
Subcommands: []core.Subcommand{
|
|
{Name: "add", Description: "add dependency", Options: []core.Option{
|
|
{Name: "--dev", Description: "dev dependency"},
|
|
{Name: "--optional", Description: "optional dependency"},
|
|
{Name: "-e", Description: "editable install"},
|
|
{Name: "--index-url", Description: "custom index"},
|
|
}},
|
|
{Name: "remove", Description: "remove dependency", Generator: pipPackageGenerator},
|
|
{Name: "sync", Description: "sync environment", Options: []core.Option{
|
|
{Name: "--frozen", Description: "no lockfile update"},
|
|
{Name: "--dev", Description: "include dev deps"},
|
|
}},
|
|
{Name: "run", Description: "run command in env", Generator: core.FileGenerator(".py")},
|
|
{Name: "pip", Description: "pip interface", Subcommands: []core.Subcommand{
|
|
{Name: "install", Description: "install packages"},
|
|
{Name: "uninstall", Description: "uninstall packages", Generator: pipPackageGenerator},
|
|
{Name: "list", Description: "list packages"},
|
|
{Name: "freeze", Description: "freeze packages"},
|
|
{Name: "show", Description: "show package", Generator: pipPackageGenerator},
|
|
{Name: "compile", Description: "compile requirements"},
|
|
}},
|
|
{Name: "venv", Description: "create virtual env", Generator: core.FileGenerator("/"), Options: []core.Option{
|
|
{Name: "--python", Description: "python version"},
|
|
{Name: "--seed", Description: "install seed packages"},
|
|
}},
|
|
{Name: "init", Description: "init project"},
|
|
{Name: "build", Description: "build package"},
|
|
{Name: "publish", Description: "publish to pypi"},
|
|
{Name: "lock", Description: "update lockfile"},
|
|
{Name: "tree", Description: "show dependency tree"},
|
|
{Name: "tool", Description: "manage tools", Subcommands: []core.Subcommand{
|
|
{Name: "install", Description: "install tool"},
|
|
{Name: "run", Description: "run tool"},
|
|
{Name: "list", Description: "list tools"},
|
|
{Name: "uninstall", Description: "uninstall tool"},
|
|
}},
|
|
{Name: "python", Description: "manage python versions", Subcommands: []core.Subcommand{
|
|
{Name: "install", Description: "install python"},
|
|
{Name: "list", Description: "list versions"},
|
|
{Name: "find", Description: "find python"},
|
|
{Name: "pin", Description: "pin python version"},
|
|
}},
|
|
},
|
|
})
|
|
|
|
core.Register(&core.Spec{
|
|
Name: "poetry",
|
|
Description: "python dependency manager",
|
|
Subcommands: []core.Subcommand{
|
|
{Name: "add", Description: "add dependency", Options: []core.Option{
|
|
{Name: "--dev", Description: "dev dependency"},
|
|
{Name: "--group", Description: "dependency group"},
|
|
}},
|
|
{Name: "remove", Description: "remove dependency", Generator: pipPackageGenerator},
|
|
{Name: "install", Description: "install dependencies"},
|
|
{Name: "update", Description: "update dependencies"},
|
|
{Name: "run", Description: "run in env", Generator: core.FileGenerator(".py")},
|
|
{Name: "shell", Description: "activate virtual env"},
|
|
{Name: "build", Description: "build package"},
|
|
{Name: "publish", Description: "publish to pypi"},
|
|
{Name: "show", Description: "show packages"},
|
|
{Name: "check", Description: "check pyproject.toml"},
|
|
{Name: "init", Description: "init new project"},
|
|
{Name: "new", Description: "create new project"},
|
|
{Name: "env", Description: "manage envs", Subcommands: []core.Subcommand{
|
|
{Name: "info", Description: "show env info"},
|
|
{Name: "list", Description: "list envs"},
|
|
{Name: "use", Description: "switch python"},
|
|
{Name: "remove", Description: "remove env"},
|
|
}},
|
|
},
|
|
})
|
|
}
|