Skip to content
2 changes: 1 addition & 1 deletion applications/datamanager/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "datamanager"
version = "0.1.0"
version = "0.0.1"
edition = "2021"

[lib]
Expand Down
12 changes: 9 additions & 3 deletions applications/equitypricemodel/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
[project]
name = "equitypricemodel"
version = "0.1.0"
version = "0.0.1"
description = "Equity price time-series dense encoder model architecture"
requires-python = "==3.12.10"
dependencies = [
"internal>=0.1.0",
"internal>=0.0.1",
"boto3>=1.35.0",
"python-dotenv>=1.2.1",
"fastapi>=0.115.0",
"pandera[polars]>=0.26.0",
"polars>=1.29.0",
"requests>=2.32.5",
"sentry-sdk[fastapi]>=2.0.0",
"structlog>=25.5.0",
"tinygrad>=0.10.3",
"numpy>=1.26.4",
]

[dependency-groups]
dev = ["boto3-stubs[s3]>=1.38.0"]

[tool.uv.sources]
internal = { workspace = true }

Expand Down
20 changes: 12 additions & 8 deletions applications/equitypricemodel/src/equitypricemodel/combine_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,30 @@
import polars as pl
import structlog

from .categories_schema import categories_schema
from .equity_details_schema import equity_details_schema


def combine_data(
categories_csv_path: str,
equity_details_csv_path: str,
equity_bars_csv_path: str,
output_csv_path: str,
) -> None:
logger = structlog.get_logger()

try:
categories_data = pl.read_csv(categories_csv_path)
equity_details_data = pl.read_csv(equity_details_csv_path)
except Exception as e:
logger.exception(
"Failed to read categories CSV", path=categories_csv_path, error=str(e)
"Failed to read equity details CSV",
path=equity_details_csv_path,
error=str(e),
)
raise

try:
categories_data = categories_schema.validate(categories_data)
equity_details_data = equity_details_schema.validate(equity_details_data)
except Exception as e:
logger.exception("Categories data validation failed", error=str(e))
logger.exception("Equity details data validation failed", error=str(e))
raise
Comment thread
forstmeier marked this conversation as resolved.

try:
Expand All @@ -35,7 +37,9 @@ def combine_data(
)
raise

consolidated_data = categories_data.join(equity_bars_data, on="ticker", how="inner")
consolidated_data = equity_details_data.join(
equity_bars_data, on="ticker", how="inner"
)

retained_columns = (
"ticker",
Expand Down Expand Up @@ -79,7 +83,7 @@ def combine_data(

if len(sys.argv) != 4: # noqa: PLR2004
logger.error(
"Requires categories CSV, equity bars CSV, and output CSV paths as arguments", # noqa: E501
"Requires equity details CSV, equity bars CSV, and output CSV paths as arguments", # noqa: E501
)
sys.exit(1)

Expand Down
10 changes: 7 additions & 3 deletions applications/portfoliomanager/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
[project]
name = "portfoliomanager"
version = "0.1.0"
version = "0.0.1"
description = "Portfolio prediction and construction service"
requires-python = "==3.12.10"
dependencies = [
"internal>=0.1.0",
"internal>=0.0.1",
"fastapi>=0.115.0",
"httpx>=0.27.0",
"pandera[polars,pandas]>=0.26.0",
"pandera[polars]>=0.26.0",
"polars>=1.29.0",
"requests>=2.32.5",
"alpaca-py>=0.42.1",
"sentry-sdk[fastapi]>=2.0.0",
"structlog>=25.5.0",
]

[tool.uv]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ async def create_portfolio() -> Response: # noqa: PLR0911, PLR0912, PLR0915, C9
"reason": "position_not_found",
}
)
except Exception as e:
except Exception as e: # noqa: PERF203
Comment thread
forstmeier marked this conversation as resolved.
logger.exception(
"Failed to close position",
ticker=close_position["ticker"],
Expand Down
2 changes: 1 addition & 1 deletion infrastructure/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "infrastructure"
version = "0.1.0"
version = "0.0.1"
description = "Infrastructure management with Pulumi"
requires-python = "==3.12.10"
dependencies = [
Expand Down
2 changes: 1 addition & 1 deletion libraries/python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "internal"
version = "0.1.0"
version = "0.0.1"
description = "Shared Python resources"
requires-python = "==3.12.10"
dependencies = ["polars>=1.29.0", "pandera[polars]>=0.26.0"]
Expand Down
21 changes: 0 additions & 21 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
[project]
name = "fund"
version = "20250602.4"
description = "Open source quantitative hedge fund 🍊"
requires-python = "==3.12.10"
dependencies = [
"internal",
"fastapi>=0.121.0",
"uvicorn>=0.35.0",
"structlog>=25.5.0",
"sagemaker>=2.256.0,<3",
"numpy>=1.26.4",
"tinygrad>=0.10.3",
"requests>=2.32.5",
"mypy-boto3-s3>=1.42.37",
"polars",
]

[tool.uv.sources]
internal = { workspace = true }

[tool.uv.workspace]
members = [
"applications/portfoliomanager",
Expand Down
13 changes: 11 additions & 2 deletions tools/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
[project]
name = "tools"
version = "0.1.0"
version = "0.0.1"
description = "Project tools and scripts"
requires-python = "==3.12.10"
dependencies = ["boto3>=1.40.74"]
dependencies = [
Comment thread
forstmeier marked this conversation as resolved.
Comment thread
forstmeier marked this conversation as resolved.
"boto3>=1.40.74",
"sagemaker>=2.256.0,<3.0.0",
"structlog>=25.5.0",
"requests>=2.32.5",
"polars>=1.29.0",
]
Comment thread
forstmeier marked this conversation as resolved.

[dependency-groups]
dev = ["boto3-stubs[s3]>=1.38.0"]
Comment thread
forstmeier marked this conversation as resolved.

[tool.uv]
package = true
Expand Down
Loading