-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
115 lines (105 loc) Β· 3.55 KB
/
pyproject.toml
File metadata and controls
115 lines (105 loc) Β· 3.55 KB
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
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "venice-ai"
version = "1.3.0"
description = "Python client library for interacting with the Venice.ai API, offering comprehensive access to its features."
readme = "README.md"
license = "MIT"
authors = ["Seth Bang <seth@sbang.io>"]
keywords = [
"ai",
"api-client",
"generative-ai",
"llm",
"machine-learning",
"ml",
"sdk",
"venice",
"venice-ai",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Communications :: Chat",
"Topic :: Multimedia :: Graphics",
"Topic :: Multimedia :: Sound/Audio :: Speech",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Text Processing :: General",
"Typing :: Typed",
]
packages = [{ include = "venice_ai", from = "src" }]
extras = { tokenizers = ["tiktoken"] }
[tool.poetry.dependencies]
python = ">=3.11,<4.0"
httpx = "^0.28.0" # Using httpx for sync/async requests
httpx-retries = "^0.4.0" # For automatic retries with httpx
typing_extensions = "^4.7.0" # For Literal, TypedDict etc. on older pythons
pydantic = "^2.7.0" # For data validation and serialization
tiktoken = { version = ">=0.9.0", optional = true } # For token estimation (optional)
[tool.poetry.urls]
Homepage = "https://github.com/sethbang/venice-ai"
Repository = "https://github.com/sethbang/venice-ai"
Documentation = "https://venice-ai.readthedocs.io/"
"Issue Tracker" = "https://github.com/sethbang/venice-ai/issues"
"Changelog" = "https://github.com/sethbang/venice-ai/blob/main/CHANGELOG.md"
[tool.poetry.group.dev.dependencies]
pytest-httpx = "^0.35.0"
pytest = "^8.3.5"
pytest-cov = "^6.1.1"
pytest-asyncio = "^1.0.0"
pytest-mock = "^3.14.0"
ruff = "^0.11.10"
black = "^25.1.0"
mypy = "^1.6.1"
sphinx = "^8.2.3"
sphinx-rtd-theme = "^3.0.2"
coverage = "^7.8.1"
questionary = "^2.0.1"
rich = "^14.0.0"
typing_extensions = "^4.7.0"
furo = "^2024.8.6"
pytest-xdist = "^3.7.0"
beautifulsoup4 = "^4.13.4"
Pillow = "^11.2.1" # For image processing (e.g., dimension checks)
numpy = "^2.2.0" # For numerical operations, required by some tests
pypandoc = "^1.15"
tiktoken = "^0.9.0" # For token estimation in tests
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
pythonpath = ["src"]
addopts = ""
[tool.coverage.run]
source = ["src"]
branch = true
parallel = false
# omit = [ "*/__main__.py" ] # Optional: if you have main scripts you want to omit
[tool.coverage.paths]
source = ["venice_ai", "src/venice_ai"]
[tool.coverage.report]
fail_under = 90 # Optional: Set a minimum coverage threshold
show_missing = true
skip_covered = true
exclude_lines = [
"pragma: no cover",
"def __repr__",
"if self.debug:",
"if settings.DEBUG",
"raise AssertionError",
"raise NotImplementedError",
"if 0:",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
" pass", # Allow 'pass' on its own line if it's the only thing in a TYPE_CHECKING block
]
[tool.poetry.scripts]
test-runner = "test_runner:main"