-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
85 lines (77 loc) · 1.73 KB
/
Copy pathpyproject.toml
File metadata and controls
85 lines (77 loc) · 1.73 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
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "quantworkstation"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
# Data store
"arcticdb>=1.6",
# Schemas + config
"pydantic>=2.6",
"pydantic-settings>=2.2",
# Brokers
"alpaca-py>=0.20",
"ib_insync>=0.9",
# Scheduling
"APScheduler>=3.10",
"prefect>=3.0",
# Research engines
"vectorbt>=0.26",
# Stats / models
"arch>=6",
# HTTP
"httpx>=0.27",
# FRED macro data
"fredapi>=0.5",
# Excel parsing (Baker Hughes rig count)
"openpyxl>=3.1",
# Web scraping (BDTI from StockQ)
"requests>=2.31",
"beautifulsoup4>=4.12",
# Utilities
"pandas>=2.2",
"numpy>=1.26",
# Graph store (Neo4j)
"neo4j>=5,<6",
]
[project.scripts]
qw = "research.graph.cli:main"
[project.optional-dependencies]
macro = [
# Google Trends retail sentiment (unofficial library — best-effort)
"pytrends>=4.9",
]
graph = [
# Local embedding model for `qw backfill --embeddings` semantic hypothesis dedup
"sentence-transformers>=2.7",
]
dev = [
"pytest>=8",
"pytest-asyncio>=0.23",
"pytest-cov>=5",
"httpx>=0.27", # test client
"ruff>=0.4",
"mypy>=1.9",
"types-requests",
"types-beautifulsoup4",
"types-openpyxl",
"types-pytz",
]
[tool.hatch.build.targets.wheel]
packages = ["data", "research", "strategies", "execution"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP"]
ignore = ["E501"]
[tool.mypy]
python_version = "3.11"
strict = true
ignore_missing_imports = true
explicit_package_bases = true
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]