راهنمای قسمت سوم tse-dara

نسخه 0.3.0a1: ذخیره و بازیابی فایل، مخزن تاریخچه و ثبت اصلاحات.

محیط پایتون و پایگاه داده قبلی را حذف نکنید. پس از نصب، کرنل ژوپیتر را دوباره راه‌اندازی کنید.

۱. نصب در Anaconda Prompt

conda activate "G:\My progect\Python\TSE\venv"
cd /d "G:\My progect\Python\TSE\Lib\tse-dara-part3"
python -m pip install --upgrade ".\dist\tse_dara-0.3.0a1-py3-none-any.whl"

برای Excel و Parquet فقط، وابستگی‌های اختیاری را نصب کنید:

python -m pip install --only-binary=:all: "openpyxl>=3.1.5,<4" "pyarrow>=19"

۲. ترتیب آزمون

06_files_offline.ipynb: ذخیره و بازیابی فایل

07_history_store_sync.ipynb: تکرار، اصلاحیه و نسخه قبلی

08_part3_live.ipynb: دریافت واقعی از بورس

09_part3_async.ipynb: رابط ناهمگام

دفترچه‌های 06، 07 و 09 داده ساختگی دارند؛ فقط دفترچه 08 آزمون واقعی بورس است.

۳. کد اصلی

from tse_dara import data

with data.Client() as client:
    result = client.sync_history("فولاد", timeout=30)
    print(result.summary)
    df = client.load_stored_history("فولاد", include_jdate=True)

data.save(df, "prices.xlsx")
restored = data.load("prices.xlsx")

۴. محدودیت‌های مهم

ذخیره خودکار در مسیر get_history منتظر دیسک نمی‌ماند. اما save و flush و sync_history(wait=True) عملیات صریح ذخیره هستند و می‌توانند منتظر بمانند یا خطا بدهند.

فایل CSV و فایل .dara.json کنار آن را با هم نگه دارید. بازیابی رسمی با data.load انجام می‌شود.

شروع همگام‌سازی با دریافت کامل است. فراخوانی‌های بعدی رکوردهای انتهایی را می‌گیرند. بازبینی کامل دوره‌ای در هنگام فراخوانی انجام می‌شود؛ زمان‌بند خودکار وجود ندارد.

مقدار as_of زمان دریافت و ثبت محلی را محدود می‌کند؛ زمان انتشار قدیمی در بورس را اثبات نمی‌کند.

قیمت تعدیل‌شده، PostgreSQL، تحلیل و هوش مصنوعی هنوز در این نسخه اضافه نشده‌اند.

۵. گزارش خطا

python tools\check_part3.py
python tools\check_part3.py --live --symbol "فولاد"

خروجی در dara_part3_check.json قرار می‌گیرد. آزمون Parquet در صورت نبود pyarrow به‌صورت اجرانشده گزارش می‌شود، نه موفق.

برای واردکردن پاسخ‌های تاریخچه ذخیره‌شده نسخه قبلی به فهرست جدید، client.reindex_history() را صریحاً اجرا کنید؛ این عملیات اینترنت نمی‌خواهد. راه دیگر، اجرای sync_history و دریافت تازه است.

Reference

docs/PART3_API.md | docs/PART3_STORAGE_SCHEMA.md | reports/part3/