programgarden 2.5.1__tar.gz → 2.5.2__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.1 → programgarden-2.5.2}/PKG-INFO +6 -2
- {programgarden-2.5.1 → programgarden-2.5.2}/README.md +4 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/executor.py +6 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/pyproject.toml +2 -2
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/__init__.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/binding_validator.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/client.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/code_worker.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/context.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/__init__.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/adjustment_delivery.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/broker_evidence.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/broker_order_totals.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/broker_snapshot.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/checkpoint_manager.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/db_naming.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/execution_storage.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/fill_reconciler.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/order_cancellation.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/order_recovery.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/owned_order_cancellation.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/position_reconciliation.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/query_builder.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/workflow_position_tracker.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/workflow_risk_tracker.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/deep_fixtures.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/futures_orderable.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/futures_pnl.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/futures_read_evidence.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/incremental_build.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/managed_order_control.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/node_runner.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/order_lifecycle.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/plugin/__init__.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/plugin/sandbox.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/providers/__init__.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/providers/llm_errors.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/providers/llm_provider.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/reconnect_handler.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_contracts.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_events.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_external.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_order_adapter.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_orders.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_scenarios.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_semantics.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_sources.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_sqlite.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/replay_triggers.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/resolver.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/resource/__init__.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/resource/context.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/resource/limiter.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/resource/monitor.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/resource/throttle.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/semantic_rules.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/__init__.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/credential_tools.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/definition_tools.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/event_tools.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/job_tools.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/registry_tools.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/tools/sqlite_tools.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/validation_recommender.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/programgarden/validation_replay.py +0 -0
- {programgarden-2.5.1 → programgarden-2.5.2}/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.2
|
|
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.2,<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)
|
|
@@ -29,6 +29,10 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
|
|
30
30
|
# ProgramGarden
|
|
31
31
|
|
|
32
|
+
The REST overseas-stock account output preserves broker-reported `sellable_qty`
|
|
33
|
+
separately from holdings; absent capacity remains null. See
|
|
34
|
+
[the sell-capacity contract](../../docs/overseas-stock-sellable-quantity.md).
|
|
35
|
+
|
|
32
36
|
Unreleased execution reconciliation work is documented in
|
|
33
37
|
[execution-reconciliation.md](../../docs/execution-reconciliation.md). Its
|
|
34
38
|
optional host storage identity is not yet enabled in deployed worker/tray hosts;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# ProgramGarden
|
|
2
2
|
|
|
3
|
+
The REST overseas-stock account output preserves broker-reported `sellable_qty`
|
|
4
|
+
separately from holdings; absent capacity remains null. See
|
|
5
|
+
[the sell-capacity contract](../../docs/overseas-stock-sellable-quantity.md).
|
|
6
|
+
|
|
3
7
|
Unreleased execution reconciliation work is documented in
|
|
4
8
|
[execution-reconciliation.md](../../docs/execution-reconciliation.md). Its
|
|
5
9
|
optional host storage identity is not yet enabled in deployed worker/tray hosts;
|
|
@@ -5966,6 +5966,12 @@ class AccountNodeExecutor(NodeExecutorBase):
|
|
|
5966
5966
|
"name": item.JpnMktHanglIsuNm.strip() if item.JpnMktHanglIsuNm else symbol,
|
|
5967
5967
|
"qty": item.AstkBalQty,
|
|
5968
5968
|
"quantity": item.AstkBalQty, # NewOrderNode 호환
|
|
5969
|
+
# SDK defaults are not evidence that LS returned this quantity.
|
|
5970
|
+
"sellable_qty": (
|
|
5971
|
+
item.AstkSellAbleQty
|
|
5972
|
+
if "AstkSellAbleQty" in getattr(item, "model_fields_set", set())
|
|
5973
|
+
else None
|
|
5974
|
+
),
|
|
5969
5975
|
"direction": "long", # 주식은 보유=매수(long)
|
|
5970
5976
|
"close_side": "sell", # 청산=매도
|
|
5971
5977
|
"avg_price": item.FcstckUprc,
|
|
@@ -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.2"
|
|
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.2"
|
|
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
|
{programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/owned_order_cancellation.py
RENAMED
|
File without changes
|
{programgarden-2.5.1 → programgarden-2.5.2}/programgarden/database/position_reconciliation.py
RENAMED
|
File without changes
|
|
File without changes
|
{programgarden-2.5.1 → programgarden-2.5.2}/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
|
|
File without changes
|