semvec/pypi-packages huggingface dataset:
koreantrain 0.1.0
Unified Python API for Korean train (SRT, KTX/Korail) reservation
Requires Python: >=3.10
Keywords: srt, korail, ktx, train, reservation, korea

# koreantrain

Unified Python API for Korean train reservation — supports both **SRT** and **KTX (Korail)** with a single interface.

## Installation

```bash
pip install koreantrain
```

## Usage

```python
from koreantrain import SRTService, KorailService, Passenger

# SRT
srt = SRTService("id", "pw")
trains = srt.search("수서", "부산", "20260301", "140000", time_limit="200000")
reservation = srt.reserve(trains[0], passengers=[Passenger.adult(2)])
print(reservation)  # [SRT] 03월 01일, 수서~부산(14:00~16:30) 53700원(2석), 구입기한 ...

# Korail (KTX) — same interface
korail = KorailService("id", "pw", train_type="ktx")
trains = korail.search("서울", "부산", "20260301", "140000", time_limit="200000")
reservation = korail.reserve(trains[0], passengers=[Passenger.adult(2)])

# Cancel
srt.cancel(reservation)
```

## Passenger Types

```python
Passenger.adult(count=1)
Passenger.child(count=1)
Passenger.senior(count=1)
Passenger.toddler(count=1)  # Korail only
```

## Seat Type

```python
from koreantrain import SeatType

srt.reserve(train, seat_type=SeatType.SPECIAL_FIRST)
# GENERAL_FIRST (default), GENERAL_ONLY, SPECIAL_FIRST, SPECIAL_ONLY
```

## Error Handling

```python
from koreantrain import LoginError, SoldOutError, NetworkError, ReservationError

try:
    srt.reserve(train)
except SoldOutError:
    print("매진")
except LoginError:
    print("로그인 만료")
except NetworkError:
    print("네트워크 오류")
```

## Dependencies

- [SRTrain](https://github.com/ryanking13/SRT) — SRT API
- [korail2](https://github.com/carpedm20/korail2) — Korail API
programgarden-core 1.4.0
ProgramGarden Core - 노드 기반 DSL 핵심 타입 정의
Requires Python: >=3.12

# ProgramGarden Core

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

- 문서(비개발자 빠른 시작): https://programgarden.gitbook.io/docs/invest/non_dev_quick_guide
- 문서(개발자 구조 안내): https://programgarden.gitbook.io/docs/develop/structure
- 유튜브: https://www.youtube.com/@programgarden
- 실시간소통 오픈톡방: https://open.kakao.com/o/gKVObqUh

## 주요 특징

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

## 설치

```bash
pip install programgarden-core

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

요구 사항: Python 3.12+

## 노드 카테고리 (11개, 51개 노드)

| 카테고리 | 노드 수 | 대표 노드 |
|----------|---------|----------|
| infra | 6 | StartNode, BrokerNode, ThrottleNode, SplitNode, AggregateNode |
| account | 8 | AccountNode, OpenOrdersNode, RealAccountNode, RealOrderEventNode |
| market | 12 | MarketDataNode, HistoricalDataNode, RealMarketDataNode, WatchlistNode |
| condition | 2 | ConditionNode, LogicNode |
| order | 7 | NewOrderNode, ModifyOrderNode, CancelOrderNode, PositionSizingNode |
| risk | 1 | PortfolioNode |
| schedule | 2 | ScheduleNode, TradingHoursFilterNode |
| data | 3 | SQLiteNode, HTTPRequestNode, FieldMappingNode |
| display | 6 | TableDisplayNode, LineChartNode, CandlestickChartNode, SummaryDisplayNode |
| analysis | 2 | BacktestEngineNode, BenchmarkCompareNode |
| ai | 2 | LLMModelNode, AIAgentNode |

## 사용 예시

```python
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/          # 51개 노드 정의 (base.py, infra.py, account.py, ...)
├── bases/          # Finance 베이스 클래스
├── models/         # Pydantic 모델 (FieldSchema, Edge, WorkflowDefinition 등)
├── registry/       # NodeTypeRegistry, PluginRegistry
├── i18n/locales/   # 번역 파일 (ko.json, en.json)
└── exceptions/     # DSL/Finance 예외 클래스
```

## 기여하기

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

## 변경 로그

자세한 변경 사항은 `CHANGELOG.md`를 참고하세요.
saigon-py 0.13.5
Common components to build cloud backends
Requires Python: >=3.13

# Saigon

Welcome to *Saigon*! This packaage provides a rich set of constructs and reusable components to
build backend applications, reducing boilerplate code to the minimum and allowing you to focus
on the business logic.

Learn more with the [Official Documentation](https://saigon.readthedocs.io/en/latest).
webdav4 0.11.0
WebDAV client library with an fsspec-based filesystem and a CLI
Requires Python: >=3.8
Keywords: fsspec, webdav, webdav-cli, webdav-client

# webdav4
[![PyPi](https://img.shields.io/pypi/v/webdav4.svg)](https://pypi.org/project/webdav4)
[![Conda](https://img.shields.io/conda/v/conda-forge/webdav4.svg?label=conda&logo=conda-forge)](https://anaconda.org/conda-forge/webdav4)
[![Status](https://img.shields.io/pypi/status/webdav4.svg)](https://pypi.org/project/webdav4)
[![Python Version](https://img.shields.io/pypi/pyversions/webdav4)](https://pypi.org/project/webdav4)
![ci](https://github.com/skshetry/webdav4/workflows/CI/badge.svg)

Webdav API with an (optional) [fsspec](#fsspec) implementation and a [CLI](#cli).

## Installation

```console
$ pip install webdav4
```

### Usage

#### webdav4 Client
```python
from webdav4.client import Client

client = Client("https://webdav.com", auth=("username", "password"))
client.exists("Documents/Readme.md")

client.ls("Photos", detail=False)
client.upload_file("Gorilla.jpg", "Photos/Gorilla.jpg")
```

Check out [Client API](docs/reference/client.md) reference for more information.



#### fsspec

[`fsspec`](https://filesystem-spec.readthedocs.io) tries to provide a
consistent APIs to different storage backends, by defining standard
interfaces, so that other code using them could operate without depending
on the implementations of the backends. This package, in the same way,
wraps the above [webdav client](#webdav4-client) with a consistent file-system API.


To use it, you need to install `fsspec` additionally which you can do as
follows:

```console
$ pip install webdav4[fsspec]
```

```python
from webdav4.fsspec import WebdavFileSystem

fs = WebdavFileSystem("https://webdav.com", auth=("username", "password"))
fs.exists("Documents/Readme.md")

fs.ls("Photos", detail=False)
```

Check out [WebdavFileSystem API](docs/reference/fsspec.md) reference for more information.


#### CLI

webdav4 also provides a CLI similar to `aws s3` to make it easier to work with webdav servers.
![cli-usage](docs/_static/usage.png)

Please checkout [CLI Usage](docs/reference/cli.md) for more information.

### Contributing

Contributions are welcome. Please take a look at
[Contributing Guide](CONTRIBUTING.md) for more details.
pixelapi 0.1.0
Python SDK for PixelAPI — AI image generation API
Requires Python: >=3.8
Keywords: ai, image-generation, stable-diffusion, flux, sdxl, api

# PixelAPI Python SDK

AI image generation at **$0.01/image**. SDXL and FLUX Schnell on bare-metal GPUs.

## Install

```bash
pip install pixelapi
```

## Quick Start

```python
from pixelapi import PixelAPI

api = PixelAPI("your-api-key")

# Generate and wait for result
result = api.generate("a sunset over mountains, oil painting", model="sdxl", wait=True)
print(result.output_url)

# Or use FLUX for photorealism
result = api.generate("a coffee shop on a rainy day", model="flux-schnell", wait=True)
print(result.output_url)
```

## Async / Non-blocking

```python
# Submit without waiting
result = api.generate("a cyberpunk cityscape", model="sdxl")
print(result.generation_id)  # save this

# Check later
status = api.get_status(result.generation_id)
if status.completed:
    print(status.output_url)
```

## Download Images

```python
result = api.generate("a cute robot", model="sdxl", wait=True)
image_bytes = api.download(result.output_url)

with open("robot.png", "wb") as f:
    f.write(image_bytes)
```

## Check Balance

```python
balance = api.balance()
print(balance)
```

## Models & Pricing

| Model | Credits | Price |
|-------|---------|-------|
| `sdxl` | 1 | $0.01 |
| `flux-schnell` | 3 | $0.03 |

100 free credits on signup — no credit card required.

## Error Handling

```python
from pixelapi import PixelAPI, PixelAPIError

api = PixelAPI("your-api-key")

try:
    result = api.generate("hello world", model="sdxl", wait=True)
except PixelAPIError as e:
    print(f"Error: {e} (HTTP {e.status_code})")
```

## Links

- **Website:** https://pixelapi.dev
- **Docs:** https://pixelapi.dev/docs
- **Dashboard:** https://pixelapi.dev/app/