|
1
|
[build-system] |
|
2
|
requires = ["setuptools>=69.0", "wheel"] |
|
3
|
build-backend = "setuptools.build_meta" |
|
4
|
|
|
5
|
[project] |
|
6
|
name = "planopticon" |
|
7
|
version = "0.5.0" |
|
8
|
description = "AI-powered video analysis and knowledge extraction tool" |
|
9
|
readme = "README.md" |
|
10
|
license = "MIT" |
|
11
|
requires-python = ">=3.10" |
|
12
|
authors = [ |
|
13
|
{ name = "CONFLICT LLC" }, |
|
14
|
] |
|
15
|
keywords = ["video", "analysis", "ai", "knowledge-extraction", "transcription", "diagrams"] |
|
16
|
classifiers = [ |
|
17
|
"Development Status :: 4 - Beta", |
|
18
|
"Intended Audience :: Developers", |
|
19
|
"Intended Audience :: Science/Research", |
|
20
|
"Operating System :: OS Independent", |
|
21
|
"Programming Language :: Python :: 3", |
|
22
|
"Programming Language :: Python :: 3.10", |
|
23
|
"Programming Language :: Python :: 3.11", |
|
24
|
"Programming Language :: Python :: 3.12", |
|
25
|
"Programming Language :: Python :: 3.13", |
|
26
|
"Topic :: Multimedia :: Video", |
|
27
|
"Topic :: Scientific/Engineering :: Artificial Intelligence", |
|
28
|
] |
|
29
|
|
|
30
|
dependencies = [ |
|
31
|
"numpy>=1.24.0", |
|
32
|
"opencv-python>=4.8.0", |
|
33
|
"scipy>=1.10.0", |
|
34
|
"pillow>=10.0.0", |
|
35
|
"matplotlib>=3.7.0", |
|
36
|
"pydantic>=2.0.0", |
|
37
|
"tqdm>=4.66.0", |
|
38
|
"colorlog>=6.7.0", |
|
39
|
"click>=8.1.0", |
|
40
|
"librosa>=0.10.0", |
|
41
|
"soundfile>=0.12.0", |
|
42
|
"openai>=1.0.0", |
|
43
|
"anthropic>=0.5.0", |
|
44
|
"google-genai>=1.0.0", |
|
45
|
"markdown>=3.4.0", |
|
46
|
"mermaid-py>=0.5.0", |
|
47
|
"plotly>=5.18.0", |
|
48
|
"kaleido>=0.2.1", |
|
49
|
"python-dotenv>=1.0.0", |
|
50
|
"requests>=2.31.0", |
|
51
|
"tenacity>=8.2.0", |
|
52
|
] |
|
53
|
|
|
54
|
[project.optional-dependencies] |
|
55
|
pdf = ["pymupdf>=1.24.0"] |
|
56
|
exports = ["reportlab>=4.0", "python-pptx>=1.0"] |
|
57
|
gpu = ["torch>=2.0.0", "torchvision>=0.15.0"] |
|
58
|
gdrive = ["google-auth>=2.0.0", "google-auth-oauthlib>=1.0.0", "google-api-python-client>=2.0.0"] |
|
59
|
dropbox = ["dropbox>=12.0.0"] |
|
60
|
azure = ["openai>=1.0.0"] |
|
61
|
together = ["openai>=1.0.0"] |
|
62
|
fireworks = ["openai>=1.0.0"] |
|
63
|
cerebras = ["openai>=1.0.0"] |
|
64
|
xai = ["openai>=1.0.0"] |
|
65
|
bedrock = ["boto3>=1.28"] |
|
66
|
vertex = ["google-cloud-aiplatform>=1.38"] |
|
67
|
mistral = ["mistralai>=1.0"] |
|
68
|
cohere = ["cohere>=5.0"] |
|
69
|
ai21 = ["ai21>=3.0"] |
|
70
|
huggingface = ["huggingface_hub>=0.20"] |
|
71
|
qianfan = ["qianfan>=0.4"] |
|
72
|
litellm = ["litellm>=1.0"] |
|
73
|
youtube = ["yt-dlp>=2023.0"] |
|
74
|
s3 = ["boto3>=1.28"] |
|
75
|
web = ["beautifulsoup4>=4.12"] |
|
76
|
rss = ["feedparser>=6.0"] |
|
77
|
graph = [] |
|
78
|
cloud = [ |
|
79
|
"planopticon[gdrive]", |
|
80
|
"planopticon[dropbox]", |
|
81
|
"planopticon[s3]", |
|
82
|
] |
|
83
|
sources = [ |
|
84
|
"planopticon[youtube]", |
|
85
|
"planopticon[web]", |
|
86
|
"planopticon[rss]", |
|
87
|
] |
|
88
|
dev = [ |
|
89
|
"pytest>=7.3.0", |
|
90
|
"pytest-cov>=4.1.0", |
|
91
|
"black>=23.3.0", |
|
92
|
"isort>=5.12.0", |
|
93
|
"mypy>=1.3.0", |
|
94
|
"ruff>=0.1.0", |
|
95
|
] |
|
96
|
all = [ |
|
97
|
"planopticon[pdf]", |
|
98
|
"planopticon[cloud]", |
|
99
|
"planopticon[graph]", |
|
100
|
"planopticon[dev]", |
|
101
|
] |
|
102
|
|
|
103
|
[project.urls] |
|
104
|
Homepage = "https://planopticon.dev" |
|
105
|
Documentation = "https://planopticon.dev" |
|
106
|
Repository = "https://github.com/ConflictHQ/PlanOpticon" |
|
107
|
Issues = "https://github.com/ConflictHQ/PlanOpticon/issues" |
|
108
|
|
|
109
|
[project.scripts] |
|
110
|
planopticon = "video_processor.cli.commands:main" |
|
111
|
|
|
112
|
[tool.setuptools.packages.find] |
|
113
|
include = ["video_processor*"] |
|
114
|
|
|
115
|
[tool.black] |
|
116
|
line-length = 100 |
|
117
|
target-version = ["py310"] |
|
118
|
|
|
119
|
[tool.isort] |
|
120
|
profile = "black" |
|
121
|
line_length = 100 |
|
122
|
|
|
123
|
[tool.ruff] |
|
124
|
line-length = 100 |
|
125
|
target-version = "py310" |
|
126
|
|
|
127
|
[tool.ruff.lint] |
|
128
|
select = ["E", "F", "W", "I"] |
|
129
|
|
|
130
|
[tool.ruff.lint.per-file-ignores] |
|
131
|
"video_processor/utils/prompt_templates.py" = ["E501"] |
|
132
|
"video_processor/api/openapi_spec.py" = ["E501"] |
|
133
|
|
|
134
|
[tool.mypy] |
|
135
|
python_version = "3.10" |
|
136
|
warn_return_any = true |
|
137
|
warn_unused_configs = true |
|
138
|
|
|
139
|
[tool.pytest.ini_options] |
|
140
|
testpaths = ["tests"] |
|
141
|
python_files = "test_*.py" |
|
142
|
addopts = "--cov=video_processor" |
|
143
|
|