programgarden 2.5.2__tar.gz → 2.5.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {programgarden-2.5.2 → programgarden-2.5.3}/PKG-INFO +2 -2
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/incremental_build.py +1 -1
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_semantics.py +5 -1
- {programgarden-2.5.2 → programgarden-2.5.3}/pyproject.toml +2 -2
- {programgarden-2.5.2 → programgarden-2.5.3}/README.md +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/__init__.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/binding_validator.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/client.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/code_worker.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/context.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/__init__.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/adjustment_delivery.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/broker_evidence.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/broker_order_totals.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/broker_snapshot.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/checkpoint_manager.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/db_naming.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/execution_storage.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/fill_reconciler.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/order_cancellation.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/order_recovery.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/owned_order_cancellation.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/position_reconciliation.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/query_builder.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/workflow_position_tracker.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/workflow_risk_tracker.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/deep_fixtures.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/executor.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/futures_orderable.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/futures_pnl.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/futures_read_evidence.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/managed_order_control.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/node_runner.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/order_lifecycle.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/plugin/__init__.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/plugin/sandbox.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/providers/__init__.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/providers/llm_errors.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/providers/llm_provider.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/reconnect_handler.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_contracts.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_events.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_external.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_order_adapter.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_orders.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_scenarios.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_sources.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_sqlite.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/replay_triggers.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/resolver.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/resource/__init__.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/resource/context.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/resource/limiter.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/resource/monitor.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/resource/throttle.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/semantic_rules.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/__init__.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/credential_tools.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/definition_tools.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/event_tools.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/job_tools.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/registry_tools.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/tools/sqlite_tools.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/validation_recommender.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/validation_replay.py +0 -0
- {programgarden-2.5.2 → programgarden-2.5.3}/programgarden/valuation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: programgarden
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.3
|
|
4
4
|
Summary: ProgramGarden - 노드 기반 자동매매 DSL 실행 엔진
|
|
5
5
|
License-Expression: AGPL-3.0-or-later
|
|
6
6
|
Author: 프로그램동산
|
|
@@ -16,7 +16,7 @@ Requires-Dist: croniter (>=6.0.0,<7.0.0)
|
|
|
16
16
|
Requires-Dist: litellm (>=1.40.0)
|
|
17
17
|
Requires-Dist: lxml (>=6.0.2,<7.0.0)
|
|
18
18
|
Requires-Dist: programgarden-community (>=2.3.1,<3.0.0)
|
|
19
|
-
Requires-Dist: programgarden-core (>=2.5.
|
|
19
|
+
Requires-Dist: programgarden-core (>=2.5.3,<3.0.0)
|
|
20
20
|
Requires-Dist: programgarden-finance (>=2.0.1,<3.0.0)
|
|
21
21
|
Requires-Dist: psutil (>=6.0.0,<7.0.0)
|
|
22
22
|
Requires-Dist: psycopg2-binary (>=2.9.11,<3.0.0)
|
|
@@ -60,7 +60,7 @@ def runtime_identity() -> str:
|
|
|
60
60
|
packages = {}
|
|
61
61
|
for name in ("programgarden", "programgarden-core", "programgarden-community", "programgarden-finance",
|
|
62
62
|
"pydantic", "pydantic-core", "numpy", "pandas", "scipy", "tzdata", "pytz", "croniter", "aiosqlite",
|
|
63
|
-
"pyportfolioopt", "quantstats", "scikit-learn", "statsmodels"):
|
|
63
|
+
"pyportfolioopt", "quantstats", "scikit-learn", "statsmodels", "exchange-calendars"):
|
|
64
64
|
try:
|
|
65
65
|
packages[name] = importlib.metadata.version(name)
|
|
66
66
|
except importlib.metadata.PackageNotFoundError:
|
|
@@ -372,7 +372,11 @@ def _time_rules(node_type: str, role: str) -> List[Dict[str, Any]]:
|
|
|
372
372
|
"max_duration_hours": {"default": None, "gt": 0}, "pin": "range_not_const"},
|
|
373
373
|
]
|
|
374
374
|
if node_type == "SessionGateNode":
|
|
375
|
-
return [{"id": "evaluate_at_fixture_instant"}
|
|
375
|
+
return [{"id": "evaluate_at_fixture_instant"},
|
|
376
|
+
{"id": "optional_exchange_calendar", "field": "exchange_calendar",
|
|
377
|
+
"supported": ["XNYS", "XNAS"], "mode": "intersect_configured_windows",
|
|
378
|
+
"holidays": True, "early_closes": True, "live_halts": False,
|
|
379
|
+
"failure": "allowed_false", "close_exclusive": True}] # validation_replay.py:276-283
|
|
376
380
|
if node_type == "TradingHoursFilterNode":
|
|
377
381
|
return [{"id": "wait_blocks_replay"}] # replay_triggers.py:62-71
|
|
378
382
|
if node_type == "ThrottleNode":
|
|
@@ -5,7 +5,7 @@ authors = [
|
|
|
5
5
|
homepage = "https://programgarden.com"
|
|
6
6
|
requires-python = ">=3.12"
|
|
7
7
|
name = "programgarden"
|
|
8
|
-
version = "2.5.
|
|
8
|
+
version = "2.5.3"
|
|
9
9
|
license = "AGPL-3.0-or-later"
|
|
10
10
|
description = "ProgramGarden - 노드 기반 자동매매 DSL 실행 엔진"
|
|
11
11
|
readme = "README.md"
|
|
@@ -36,7 +36,7 @@ litellm = ">=1.40.0"
|
|
|
36
36
|
# 로 통째 실패한다(1.35.1 의 조용한 TypeError 보다 강한 모듈 로드 실패).
|
|
37
37
|
# (1.26.0 이후로도 context.py 는 WorkflowPnLEvent(**event_data) 에 personal_metrics
|
|
38
38
|
# 를 무조건 실으므로 그 하한 근거도 이 상한에 포함된다.)
|
|
39
|
-
programgarden-core = "^2.5.
|
|
39
|
+
programgarden-core = "^2.5.3"
|
|
40
40
|
programgarden-finance = "^2.0.1"
|
|
41
41
|
programgarden-community = "^2.3.1"
|
|
42
42
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/owned_order_cancellation.py
RENAMED
|
File without changes
|
{programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/position_reconciliation.py
RENAMED
|
File without changes
|
|
File without changes
|
{programgarden-2.5.2 → programgarden-2.5.3}/programgarden/database/workflow_position_tracker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|