Skip to main content

ProgramGarden Core

ProgramGarden은 AI 시대에 맞춰 파이썬을 모르는 투자자도 개인화된 시스템 트레이딩을 자동으로 수행할 수 있게 돕는 오픈소스입니다. 본 저장소는 노드 기반 DSL의 핵심 타입, 베이스 클래스, 레지스트리, i18n을 정의하는 "코어" 모듈입니다.

주요 특징

  • 노드 기반 DSL: 73 core nodes를 조합하여 워크플로우를 정의하는 도메인 특화 언어
  • 타입 안전한 스키마: Pydantic 모델 기반의 FieldSchema, 입출력 포트 정의로 IDE 친화적이고 안전한 개발
  • 레지스트리 시스템: NodeTypeRegistry와 PluginRegistry로 노드/플러그인 메타데이터 관리
  • 다국어 지원(i18n): 한국어/영어 번역 파일을 통한 노드 설명, 필드명 자동 번역
  • 상품별 분리: 해외주식(overseas_stock)과 해외선물(overseas_futures)을 독립된 노드로 지원
  • 플러그인 확장: ConditionNode에 커뮤니티 전략 플러그인(RSI, MACD 등)을 연결하여 확장

설치

pip install programgarden-core

# Poetry 사용 시 (개발 환경)
poetry add programgarden-core

요구 사항: Python 3.12+

Node categories (11 categories, 74 core nodes)

카테고리 노드 수 대표 노드
infra 8 StartNode, BrokerNode, ThrottleNode, SplitNode, AggregateNode, IfNode, KoreaStockBrokerNode
account 13 AccountNode, OpenOrdersNode, RealAccountNode, RealOrderEventNode (해외주식/선물 + 국내주식)
market 23 MarketDataNode, HistoricalDataNode, RealMarketDataNode, WatchlistNode, ExclusionListNode, KoreaStockRankingNode, OverseasStockRankingNode, KoreaStock*
condition 2 ConditionNode, LogicNode
order 10 NewOrderNode, ModifyOrderNode, CancelOrderNode, PositionSizingNode (해외주식/선물 + 국내주식)
risk 1 PortfolioNode
schedule 3 ScheduleNode, TradingHoursFilterNode, SessionGateNode
data 4 SQLiteNode, HTTPRequestNode, FieldMappingNode, CodeNode
display 6 TableDisplayNode, LineChartNode, CandlestickChartNode, SummaryDisplayNode
analysis 2 BacktestEngineNode, BenchmarkCompareNode
ai 2 LLMModelNode, AIAgentNode

Community adds two nodes: TelegramNode and PerformanceReportNode, for 76 total.

사용 예시

from programgarden_core import (
    # 노드
    StartNode, ConditionNode, LogicNode,
    OverseasStockBrokerNode, OverseasStockAccountNode,

    # 모델
    Edge, WorkflowDefinition, WorkflowJob, JobState,

    # 레지스트리
    NodeTypeRegistry, PluginRegistry,
)

# 레지스트리에서 노드 스키마 조회
registry = NodeTypeRegistry()
schema = registry.get_schema("OverseasStockBrokerNode")
print(schema.config_schema)

패키지 구조

programgarden_core/
├── nodes/          # 73 core node definitions
├── bases/          # Finance 베이스 클래스
├── models/         # Pydantic 모델 (FieldSchema, Edge, WorkflowDefinition 등)
├── registry/       # NodeTypeRegistry, PluginRegistry
├── i18n/locales/   # 번역 파일 (ko.json, en.json)
└── exceptions/     # DSL/Finance 예외 클래스

기여하기

이슈/토론/PR 환영합니다. 버그 리포트 시 재현 단계와 최소 예시를 함께 제공해 주시면 빠르게 대응할 수 있습니다.

변경 로그

자세한 변경 사항은 CHANGELOG.md를 참고하세요.

Workflow account boundary

Each workflow allows one account and one product through at most one broker connection. Additional connections produce DUPLICATE_BROKER_NODE, including unbound or cross-product nodes. Reuse one broker for all consumers. Account-free workflows and unrelated credentials remain supported.

Metadata

Release files for programgarden-core 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for programgarden-core 3.0.0
File Size Uploaded Provenance Actions
programgarden_core-3.0.0.tar.gz 387.9 kB Without provenance Details for programgarden_core-3.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for programgarden-core 3.0.0
File Interpreter ABI Platform Actions
programgarden_core-3.0.0-py3-none-any.whl Python 3 none any Details for programgarden_core-3.0.0-py3-none-any.whl

Total release size: 869.0 kB

Release files / programgarden_core-3.0.0.tar.gz

Download URL programgarden_core-3.0.0.tar.gz
Size 387.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7be0dd305c838c619cea68365ff6a3ff64a5f408a2065a8f1f9b942fea38f18e
BLAKE2b-256 checksum
How to use checksums
b235ef5ccfbafe0601fdeeb80c57389ba1f0b12869ef89815cd7a50c9b446eea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.13 Darwin/27.0.0

Release files / programgarden_core-3.0.0-py3-none-any.whl

Download URL programgarden_core-3.0.0-py3-none-any.whl
Size 481.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46ae574f2cf6c19f909ef0aa94cacaff13d8f5d8e7343a39c43d7d3da382ff9d
BLAKE2b-256 checksum
How to use checksums
b7bb5c974c1af2f4f6139530c04e5764bc74ce71556a3935af1b190fc0d1f91d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.13 Darwin/27.0.0

Security for programgarden-core 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page