Atio Documentation

Atio 🛡️는 안전하고 원자적인 파일 쓰기를 지원하는 경량 Python 라이브러리입니다.

Pandas, Polars, NumPy 등 데이터 객체 저장 시 파일 손상 없이, **트랜잭션처럼 안전하게 처리**할 수 있습니다.

주요 기능

🔒 Atomic File Writing

Safe writing using temporary files

📊 Multiple Format Support

CSV, Parquet, Excel, JSON, etc.

🗄️ Database Support

Direct SQL and Database writing

📈 Progress Display

Progress monitoring for large data processing

🔄 Rollback Function

Automatic recovery when errors occur

🎯 Simple API

Intuitive and easy-to-use interface

📋 Version Management

Snapshot-based data version management

🧹 Auto Cleanup

Automatic deletion of old data

빠른 시작

import atio
import pandas as pd

# 간단한 DataFrame 생성
df = pd.DataFrame({
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35],
    "city": ["Seoul", "Busan", "Incheon"]
})

# 안전한 파일 쓰기
atio.write(df, "users.parquet", format="parquet")

# 진행도 표시와 함께 저장
atio.write(df, "users.csv", format="csv", show_progress=True)

지원하는 형식

지원하는 파일 형식

형식

Pandas

Polars

NumPy

CSV

Parquet

Excel

JSON

Pickle

HTML

SQL

Database

NPY/NPZ

사용 사례

🔹 데이터 파이프라인

ETL 과정에서 중간 데이터 안전하게 저장

🔹 실험 데이터 관리

머신러닝 실험 결과의 버전 관리

🔹 대용량 데이터 처리

대용량 파일의 안전한 저장 및 진행도 모니터링

🔹 데이터베이스 연동

Pandas/Polars 데이터를 SQL/NoSQL DB에 안전하게 저장

목차

API Reference

핵심 함수들

atio.plugins.register_writer(obj_type, fmt, handler)[소스]

(객체 타입, 포맷) 쌍으로 쓰기 핸들러를 등록

atio.plugins.get_writer(obj, fmt)[소스]

객체의 타입과 포맷에 맞는 핸들러를 조회

atio.utils.setup_logger(name='atio', debug_level=False)[소스]
atio.utils.check_file_exists(path)[소스]
class atio.utils.ProgressBar(filepath: str, stop_event: Event, description: str = 'Writing')[소스]

파일 쓰기 진행 상황을 콘솔에 표시하는 클래스. 스피너, 처리된 용량, 처리 속도, 경과 시간을 표시합니다.

__init__(filepath: str, stop_event: Event, description: str = 'Writing')[소스]
run()[소스]

진행도 막대를 실행하는 메인 루프. 이 함수가 모니터링 스레드에서 실행됩니다.

atio.utils.read_json(path: str)[소스]
atio.utils.write_json(data: dict, path: str)[소스]
atio.utils.get_process_pool()[소스]

단순히 생성된 전역 풀을 반환하는 함수

Indices and tables