generated from konveyor-ecosystem/template-repo
-
Notifications
You must be signed in to change notification settings - Fork 35
/
pyproject.toml
126 lines (111 loc) · 3.88 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
[build-system]
requires = ["setuptools >= 61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "kai"
version = "0.0.1"
dependencies = [
# To generate a new requirements.txt:
# $ pip install pip-tools
# $ pip-compile --allow-unsafe > requirements.txt
# To view requirements.txt's dependencies in a tree format:
# $ pip install pipdeptree
# $ pipdeptree > deps.txt
# (optional if you have yq installed)
# $ pipdeptree --json-tree | yq -P > deps.yaml
# --- Main dependencies ---
"aiohttp==3.8.6; python_version < '3.12'",
"aiohttp==3.9.3; python_version >= '3.12'",
"gitpython==3.1.43",
"pydantic==2.8.2",
"pydantic-settings==2.4.0",
"requests==2.32.3",
"pygments==2.18.0",
"python-dateutil==2.8.2",
"ibm-generative-ai==2.2.0",
"Jinja2==3.1.4",
"langchain==0.3.1",
"langchain-community==0.3.1",
"langchain-openai==0.2.1",
"langchain-google-genai==2.0.4",
"langchain-aws==0.2.1",
"langchain-experimental==0.3.2",
"gunicorn==22.0.0",
"tree-sitter==0.22.3",
"tree-sitter-java==0.21.0",
"sequoia-diff==0.0.8",
# Fabian's fork has changes that fix some async issues in the real vcrpy
# that are yet to be accepted
"vcrpy @ git+https://github.com/fabianvf/vcrpy.git@httpx-async-threadpool",
"python-dotenv==1.0.1",
"pyyaml==6.0.1",
"lxml==5.3.0",
"boto3==1.34.157", # Allows Amazon Bedrock to work
"pylspclient==0.1.2", # used for talking to RPC clients over stdin/stdout
"opentelemetry-sdk",
"opentelemetry-api",
"opentelemetry-exporter-otlp",
"opentelemetry-instrumentation-threading",
# --- For notebook development ---
"jupyter==1.0.0",
"jupyterlab-quarto==0.3.5",
"nbdev==2.3.13",
# --- Possibly can be removed ---
"async-timeout==4.0.3",
"asgiref==3.7.2",
"click==8.1.7", # For potential CLI stuff
"typer==0.9.0", # For potential CLI stuff
"loguru==0.7.2", # For potential logging improvements
"unidiff==0.7.5",
]
requires-python = ">=3.11"
authors = [
{ name = "Konveyor Community", email = "[email protected]" },
]
description = "Konveyor AI - static code analysis driven migration to new targets via Generative AI"
readme = "README.md"
license = { file = "LICENSE" }
[project.optional-dependencies]
dev = [
# --- Testing dependencies ---
"coverage==7.6.0",
"pytest==8.3.3",
"ipdb==0.13.13",
"mypy[mypyc]",
"types-PyYAML",
"types-python-dateutil",
"types-requests",
"types-Pygments",
"lxml-stubs==0.5.1",
]
solution_server = ["sqlalchemy==2.0.22", "psycopg2-binary==2.9.9"]
[project.urls]
Repository = "https://www.github.com/konveyor/kai"
[tool.setuptools.packages.find]
where = ["."]
include = ["kai*", "playpen*"]
exclude = ["tests*"]
namespaces = true
[tool.mypy]
plugins = ["pydantic.mypy"]
strict = true
# follow_imports = "silent"
exclude = ['test_.*\.py$']
# Needed for working with telemetry
namespace_packages = true
[tool.pydantic-mypy]
# The Pydantic mypy plugin adds an __init__ method with a signature like def
# __init__(self, field_1: Any, field_2: Any, **kwargs: Any): in order to avoid
# type errors when initializing models with types that don't match the field
# annotations. For example Model(date='2024-01-01') would raise a type error
# without this Any signature, but Pydantic has the ability to parse the string
# '2024-01-01' into a datetime.date type.
# With init_forbid_extra = True, the **kwargs are removed from the generated
# __init__ signature. With init_typed = True, the Any types for fields are
# replaced with their actual type hints.
init_forbid_extra = true
init_typed = true
# If the warn_required_dynamic_aliases plugin setting is set to True, you'll get
# a mypy error any time you use a dynamically-determined alias or alias
# generator on a model with Config.populate_by_name=False
warn_required_dynamic_aliases = true