[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "shell_gpt" description = "A command-line productivity tool powered by large language models, will help you accomplish your tasks faster and more efficiently." keywords = ["shell", "gpt", "openai", "ollama", "cli", "productivity", "cheet-sheet"] readme = "README.md" license = "MIT" requires-python = ">=3.10" authors = [{ name = "Farkhod Sadykov", email = "farkhod@sadykov.dev" }] dynamic = ["version"] classifiers = [ "Operating System :: OS Independent", "Topic :: Software Development", "License :: OSI Approved :: MIT License", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "Intended Audience :: Developers", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] dependencies = [ "openai >= 2.0.0, < 3.0.0", "typer >= 0.7.0, < 1.0.0", "rich >= 13.1.0, < 14.0.0", "distro >= 1.8.0, < 2.0.0", 'pyreadline3 >= 3.4.1, < 4.0.0; sys_platform == "win32"', "prompt_toolkit >= 3.0.51", ] [project.optional-dependencies] litellm = [ "litellm == 1.83.4" ] test = [ "pytest >= 7.2.2, < 8.0.0", "requests-mock[fixture] >= 1.10.0, < 2.0.0", "isort >= 5.12.0, < 6.0.0", "black == 23.1.0", "mypy == 1.1.1", "types-requests == 2.28.11.17", "codespell >= 2.2.5, < 3.0.0" ] dev = [ "ruff == 0.0.256", "pre-commit >= 3.1.1, < 4.0.0", ] [project.scripts] sgpt = "sgpt:cli" [project.urls] homepage = "https://github.com/ther1d/shell_gpt" repository = "https://github.com/ther1d/shell_gpt" documentation = "https://github.com/TheR1D/shell_gpt/blob/main/README.md" [tool.hatch.version] path = "sgpt/__version__.py" [tool.hatch.build.targets.wheel] only-include = ["sgpt"] [tool.hatch.build.targets.sdist] only-include = [ "sgpt", "tests", "README.md", "LICENSE", "pyproject.toml", ] [tool.isort] profile = "black" skip = "__init__.py" [tool.mypy] strict = true exclude = ["llm_functions"] [tool.ruff] select = [ "E", # pycodestyle errors. "W", # pycodestyle warnings. "F", # pyflakes. "C", # flake8-comprehensions. "B", # flake8-bugbear. ] ignore = [ "E501", # line too long, handled by black. "C901", # too complex. "B008", # do not perform function calls in argument defaults. "E731", # do not assign a lambda expression, use a def. ] [tool.codespell] skip = '.git,venv'