-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
44 lines (41 loc) · 1.8 KB
/
pyproject.toml
File metadata and controls
44 lines (41 loc) · 1.8 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
[build-system]
requires = ["maturin>=1.9.4,<2.0"]
build-backend = "maturin"
[project]
name = "thetadatadx"
dynamic = ["version"]
description = "No-JVM ThetaData Terminal — native Rust SDK for direct market data access (Python bindings)"
readme = "README.md"
requires-python = ">=3.9"
license = { text = "Apache-2.0" }
authors = [{ name = "userFRM" }]
keywords = ["thetadata", "market-data", "options", "streaming", "grpc"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Financial and Insurance Industry",
"Programming Language :: Python :: 3",
"Programming Language :: Rust",
"Topic :: Office/Business :: Financial :: Investment",
"License :: OSI Approved :: Apache Software License",
]
[project.urls]
Homepage = "https://github.com/userFRM/ThetaDataDx"
Repository = "https://github.com/userFRM/ThetaDataDx"
Documentation = "https://github.com/userFRM/ThetaDataDx/blob/main/docs/api-reference.md"
Discord = "https://discord.thetadata.us/"
[project.optional-dependencies]
# Arrow columnar pipeline (feat/arrow-columnar-dataframe):
# - `.to_arrow()` on a typed `<Tick>List` wrapper returns a
# `pyarrow.Table` zero-copy from Rust via the Arrow C Data
# Interface. Requires `pyarrow>=14.0` so the C-Data bindings
# match the `arrow-rs` 58 on the Rust side.
# - `.to_pandas()` calls `pyarrow.Table.to_pandas()` under the hood,
# which is zero-copy for numeric columns on pandas 2.x
# (numpy-backed arrays alias the underlying Arrow buffers).
# pandas <2.0 works but forces a full copy per column.
# - `.to_polars()` calls `polars.from_arrow()`. polars 0.20+
# consumes Arrow buffers directly.
arrow = ["pyarrow>=14.0"]
pandas = ["pandas>=2.1", "pyarrow>=14.0"]
polars = ["polars>=0.20", "pyarrow>=14.0"]
all = ["pandas>=2.1", "polars>=0.20", "pyarrow>=14.0"]