راهنمای شروع

tse-dara — نسخه یکپارچه 0.3.1a1

دامنه این تحویل

این نسخه برای تثبیت و ساده‌سازی بخش داده موجود است، نه تکمیل همه سرویس‌های نقشه راه. هیچ الگوریتم تحلیل، اندیکاتور یا یادگیری ماشین اضافه نشده است. قابلیت‌های قیمت، تاریخچه خام، دریافت گروهی، ذخیره خودکار، بازیابی آفلاین، اصلاحات تاریخچه و خروجی فایل‌های قسمت‌های اول تا سوم حفظ شده‌اند. اصلاح Windows برای fsync نیز محفوظ است.

سند اصلی ارسالی در docs/design_v0_2/USER_SUPPLIED_REPORT.html بدون تغییر نگهداری شده است. docs/ROADMAP_REVIEW_FA.md طرح را با پیاده‌سازی واقعی مقایسه می‌کند. سند طراحی پیشین، به‌تنهایی مدرک پیاده‌سازی نیست.

نصب یک‌باره یا ارتقا

پوشه tse-dara این ZIP را در محل دلخواه استخراج کن؛ برای جلوگیری از باقی‌ماندن فایل نصب قدیمی، از پوشه تمیزِ استخراج‌شده استفاده کن. محیط پایتون و پایگاه داده قبلی را حذف نکن.

conda activate "G:\My progect\Python\TSE\venv"
cd /d "G:\My progect\Python\TSE\Lib\tse-dara"
python install.py

نصاب فقط Wheel همین بسته را نصب می‌کند. برای قابلیت‌های Excel و Parquet و Notebook، وابستگی‌های اختیاری را در همان مرحله درخواست می‌کند. نصب کاملاً آفلاین نیست؛ اگر وابستگی‌ای موجود نباشد، اینترنت لازم است. برای نصب فقط هسته: python install.py --core-only.

نسخه عمومی PyPI در این تحویل منتشر نشده است. از نام بسته به‌تنهایی برای نصب استفاده نکن. پس از نصب Kernel ژوپیتر را Restart کن و سپس بررسی کن:

import sys
import tse_dara
print(sys.executable)
print(tse_dara.__version__)
print(tse_dara.__file__)

نسخه باید 0.3.1a1 باشد. تغییر نسخه به حذف یا مهاجرت پایگاه SQLite قبلی نیاز ندارد.

تغییرهای اصلی

نمونه ساده و بدون تغییر به کد قدیمی

from tse_dara import data

price = data.get_price("فولاد")
quote_df = data.get_quote_frame("فولاد")
history = data.get_history("فولاد", include_jdate=True)

برای نمایش خلوت‌تر بدون تغییر جدول اصلی:

display(data.select_columns(history, "compact"))

نمای compact بعضی ستون‌های شناسنامه را حذف می‌کند و در متادیتا این موضوع را اعلام می‌کند. برای آرشیو کامل، جدول اصلی را ذخیره کن؛ نمای خلوت جای مدرک منشأ داده نیست.

تنظیمات ساده پیش از اولین دریافت

from tse_dara import data

data.configure(
    data_dir=r"G:\My progect\Python\TSE\dara-data",
    numeric="analysis",
    storage=True,
)

configure فایل یا شبکه ایجاد نمی‌کند. اگر قبلاً از توابع مستقیم data استفاده کرده‌ای، ابتدا report = data.close() را اجرا و تکمیل ذخیره را بررسی کن؛ سپس تنظیمات جدید را اعمال کن. مسیر جدید، اطلاعات مسیر قدیمی را خودکار جابه‌جا نمی‌کند. تغییر تنظیمات Client مستقل، کلاینت‌های دیگر را عوض نمی‌کند.

دریافت گروهی با Pandas

import pandas as pd
from tse_dara import data

symbols = pd.Series(["فولاد", "شستا", "فولاد"], dtype="string")
quotes = data.get_quotes(symbols, on_error="collect")
batch = data.get_history_many(symbols, on_error="collect")
display(quotes)
display(batch.requests)
display(batch.errors)

ورودی تکراری، سطر/گزارش مستقل دارد. برای تاریخچه گروهی، batch.data جدول داده و batch.errors جدول خطاهاست. on_error="collect" اجازه انتخاب تصادفی نماد مبهم را نمی‌دهد.

آفلاین و داده قدیمی

from tse_dara.data import Client, FetchPolicy

with Client() as client:
    quote = client.get_quote(
        "فولاد",
        policy=FetchPolicy.offline(allow_stale=True),
    )
    print(quote.last_price, quote.trade_date)
    print(quote.meta.quality_flags)

این دستور اینترنت ندارد، اما باید قبلاً پاسخ لازم در همین مسیر و همین فضای کش ذخیره شده باشد. stale_cached_response و StaleDataWarning خطای برنامه نیستند؛ می‌گویند داده قدیمی است. تاریخ منبع با زمان دریافت داده تفاوت دارد. قیمت آفلاین به قیمت لحظه‌ای تبدیل نمی‌شود.

کار با جدول و کنترل کیفیت

schema = data.schema_info("daily_bars")
issues = data.validate_data(history)
metadata = data.frame_metadata(history)

display(schema)
display(issues)

گزارش خالی یعنی قواعد ساختاری اجراشده ایرادی پیدا نکرده‌اند، نه اینکه داده بورس از نظر اقتصادی یا تاریخی قطعاً کامل است. این ابزار آزمون نشت اطلاعات آینده یا تحلیل سرمایه‌گذاری نیست.

برای تبدیل جدول خارجی، نام‌ها را خودت صریح تعیین کن:

normalized = data.normalize_data(
    external_df,
    columns={"نماد": "symbol", "تاریخ": "date", "پایانی": "closing_price"},
    calendar="jalali",
)

ستون‌های ناشناخته و رکوردها حفظ می‌شوند. مقدار گمشده پر نمی‌شود؛ شناسه float به‌دروغ بازیابی نمی‌شود؛ سطر تکراری حذف و قیمت منفی بریده نمی‌شود. وجود نقص را با validate_data() بررسی کن. برای timestamp بدون timezone، پارامتر timezone لازم است.

ذخیره

data.save(history, "folad.csv", overwrite=True)
restored = data.load("folad.csv")

CSV به فایل همراه .csv.dara.json نیاز دارد. Excel و Parquet و SQLite خروجی نیز شناسنامه دارند. data.load() خواننده آرشیو Dara است، نه مفسر خودکار فایل دلخواه؛ فایل خارجی را با Pandas بخوان و سپس با نگاشت صریح عادی‌سازی کن.

شکست ذخیره خودکار، نتیجه معتبر دریافت را متوقف نمی‌کند. اما save/load/flush عملیات صریح هستند و شکست را اعلام می‌کنند. صف حافظه، دوام روی دیسک نیست.

از کدام دفترچه شروع کنیم؟

10_data_usability_offline.ipynb: مثال کامل امکانات ساده‌شده با داده مصنوعی.

11_pandas_validation.ipynb: نمونه کنترل نوع، نگاشت ستون، خطاها و حفظ ورودی.

12_data_review_live.ipynb: آزمون اختیاری روی سرور واقعی؛ پیش‌فرض دریافت زنده خاموش است.

هر ۹ دفترچه قبلی حفظ شده‌اند. دفترچه‌های نمونه قیمت واقعی بازار نشان نمی‌دهند و کش نمونه از کش واقعی جداست.

هنوز آماده نیست

فهرست کامل و تاریخی تمام ابزارها، اتصال شناسه‌های قدیمی، دریافت بر اساس ISIN، تعدیل تأییدشده، API رسمی دارای حساب، دیده‌بان، شاخص‌ها، حقیقی‌حقوقی، مظنه، ریزمعاملات، صندوق‌ها و اطلاعیه‌ها هنوز به عنوان قابلیت‌های کامل در این نسخه عرضه نشده‌اند. مرحله بعد پیشنهادی، خانواده داده‌های بازار P08 پس از تثبیت آزمون‌های همین نسخه است.

توابع تحلیل و هوش مصنوعی بنا به درخواست فعلی اضافه نشده‌اند. پرونده اصلی طراحی آن‌ها به‌عنوان سابقه باقی مانده، اما وابستگی ML نصب نمی‌شود.

آزمون و حدود تأیید

آمار دقیق و محیط آزمون نهایی در reports/review_031/VERIFICATION.json ثبت می‌شود. آزمون‌های خودکار شبکه واقعی را مسدود می‌کنند. نبود خطا در نمونه‌های ساختگی، سلامت همیشگی API بورس را ثابت نمی‌کند. اگر آزمون Pandas 3، Windows یا Parquet اجرا نشده باشد، در گزارش صریحاً اجرا‌نشده درج می‌شود.

بازبینی نقشه راه

بازبینی سند معماری و برنامه تکمیل بخش داده

نسخه کد این تحویل: 0.3.1a1 — مبنا: بسته یکپارچه 0.3.0a2 و فایل HTML معماری نسخه ۰٫۲ که کاربر فرستاد.

نتیجه اصلی

سند ارسالی، صریحاً «طرح پیشنهادی؛ نه بسته پیاده‌سازی‌شده» است. بنابراین وجود ۱۲۷ قرارداد در سند به معنی وجود ۱۲۷ تابع آماده در بسته نیست. این نسخه به درخواست کاربر، تحلیل و هوش مصنوعی را گسترش نمی‌دهد. تمرکز آن بستن شکاف‌های تجربه کاربر و Pandas در قابلیت‌های داده‌ای است که قبلاً اجرا شده‌اند.

مبنای فعلی کتابخانه قیمت، هویت، تاریخچه خام، ذخیره و بازیابی و همگام‌سازی محلی است. خانواده‌های دیده‌بان، شاخص، حقیقی‌حقوقی، ریزمعاملات، مالکیت و صندوق در سند برنامه دارند، اما هنوز همگی پیاده‌سازی نشده‌اند. این تحویل ادعای تکمیل کل بخش data نقشه راه را ندارد.

آنچه از سند حفظ شد

بخش ۶ معماری و قواعد Pandas: خروجی جدول مستقیم DataFrame، شناسه رشته‌ای، تعداد صحیح nullable، قیمت تحلیل‌پذیر nullable، timestamp دارای UTC و شناسنامه داده. داده ناموجود صفر نشده و داده کاربر بدون درخواست تغییر نمی‌کند.

بخش ۷ و ذخیره‌سازی: تحویل نتیجه معتبر مستقل از موفقیت نوشتن خودکار است. queue در حافظه با دوام روی دیسک متفاوت است. save و flush صریح حق دارند خطا بدهند.

بخش ۸ سیاست دسترسی: خواندن آفلاین شبکه ندارد؛ قیمت کهنه بدون اجازه صریح جای قیمت تازه معرفی نمی‌شود. انتخاب حالت ساده نباید این قاعده را تضعیف کند.

بخش ۱۰ دو رابط اجرا: Client و AsyncClient منطق پردازش یکسان دارند. برای نمونه، افزودن پشتیبانی Series در هر دو اجرا و با آزمون مشترک انجام شده، نه با تبدیل Async به asyncio.run در ژوپیتر.

مرز هویت و اطلاعات مالی: شناسه صفر در پاسخ قیمت فقط همان حالت ثبت‌شده سرویس قیمت است؛ شناسه متناقض و نماد مبهم همچنان خطاست. اتصال نماد قدیمی و جدید یا تعدیل بی‌روش، با ظاهر کاربرپسند توجیه نمی‌شود.

اصلاح‌ها و افزوده‌های این نسخه

موضوع وضعیت قبلی تغییر فعلی
ورودی گروهی بعضی ساختارهای Pandas پذیرفته نمی‌شدند Series، Index و آرایه یک‌بعدی با حفظ ترتیب و تکرار پشتیبانی می‌شوند
آفلاین ساده فقط ساخت کامل FetchPolicy رشته حالت پذیرفته می‌شود؛ اجازه داده کهنه همچنان صریح است
درخواست تازه online ممکن بود با refresh اشتباه شود FetchPolicy.fresh() با کنارگذاشتن کش و بدون stale fallback
تنظیمات برای عدد دقیق ClientConfig جدا لازم بود numeric در Client/AsyncClient و configure به صورت مستقیم
جدول یک نماد مدل یا خروجی تبدیل جدا get_quote_frame و get_instrument_frame در هر دو رابط
تاریخ پانداس Timestamp همواره رد می‌شد فقط Timestamp نیمه‌شب بدون timezone پذیرفته می‌شود؛ زمان مبهم رد می‌شود
دقت timestamp ممکن بود تابع پیش‌فرض Pandas متفاوت باشد نوع مرکزی timestamp صریحاً datetime64[ns, UTC]
اعتبارسنجی جدول مرجع عمومی محلی نبود validate/validate_data، بدون تغییر ورودی و بدون شبکه
عادی‌سازی تابع عمومی نبود normalize برای ستون استاندارد و normalize_data برای نگاشت صریح کاربر
راهنمای خروجی کاربر مجبور به خواندن source بود schema_info، frame_metadata و api_reference
نمایش جدول همه ستون‌های فنی در هر نمایش select_columns با نمای compact و ثبت حذف ستون‌های شواهد
نمونه مستقیم ساخت sample_client لازم بود load_sample برای جدول مصنوعیِ صریح
ورودی نامعتبر بعضی مسیرها TypeError/AttributeError خام می‌دادند بررسی ورودی مسیر، قالب، پروفایل، بولی و policy پیش از عملیات
حفظ dtype رشته storage backend در manifest بود ولی کامل استفاده نمی‌شد بازگرداندن backend رشته طبق manifest، در صورت پشتیبانی runtime

این نام‌های کمکی افزوده شده‌اند تا اصل قراردادهای سند قابل استفاده شود؛ همه آن‌ها عیناً در سند اولیه نام‌گذاری نشده بودند. فایل BLUEPRINT_DATA_COVERAGE.json تفاوت نام و دامنه را نشان می‌دهد.

مرز ابزارهای کنترل کیفیت

validate با قرارداد C071 هم‌راستا است: خروجی شامل row_id، rule، severity و message است و strict=True روی خطای ساختاری استثنا می‌دهد. در خطای گروهی، row_id یگانه ممکن است خالی باشد؛ count و نمونه موقعیت‌های سطر، دامنه خطا را توضیح می‌دهند. گزارش، کنترل کیفیت منبع یا نشت آینده را تضمین نمی‌کند.

normalize تنها نگاشت source="canonical" را عرضه می‌کند. منبع خام ناشناخته یا نگاشت حدسی به خطا منتهی می‌شود. normalize_data نگاشت دلخواه و صریح نام ستون را می‌پذیرد، اما منشأ داده خارجی را تأیید نمی‌کند.

frame_metadata نسخه مستقل دیکشنری متادیتا را برمی‌گرداند؛ معادل کامل مدل FrameManifest طرح نیست. هیچ بازیابی جادویی شناسنامه پس از عملیات دلخواه Pandas ادعا نشده است.

تکلیف مراحل بعدی، بدون افزودن تحلیل و هوش مصنوعی

اولویت مرحله سند کاری که باید انجام شود پیش‌شرط پذیرش
۱ تکمیل پذیرش P01–P06 اجرای نسخه فعلی روی Windows، Pandas 3 و هر چهار قالب آزمون واقعی در محیط هدف؛ Parquet فقط پس از دسترسی به pyarrow
۲ P08.1 و P08.2 دیده‌بان، نمای بازار و حقیقی‌حقوقی جاری و تاریخی ثبت پاسخ واقعی، schema ثابت، معنی فیلدهای ناموجود، زمان جداگانه هر مؤلفه
۳ P08.3 شاخص روزانه/درون‌روز، هویت و اعضای شاخص عدم ساخت تاریخچه اعضا از اعضای امروز؛ واحد شاخص با ریال اشتباه نشود
۴ بخش داده P07.1 رویداد و روش تعدیل روش، تاریخ مبنا و نسخه روشن؛ خام محفوظ؛ بدون معرفی به عنوان بازده کل
۵ بخش‌های داده P09 معاملات، مظنه، وضعیت و آستانه حفظ توالی و ابطال؛ شکاف اطلاعات با fill پنهان نشود
۶ بخش‌های داده P10 مالکیت، تعداد سهام، صندوق، NAV و پیام‌ها تاریخ و شناسه‌های دقیق؛ بدون محاسبه نسبت‌های تحلیلی
۷ P12 API رسمی و بازارهای بیشتر دسترسی مجاز واقعی، نقش و سقف مصرف و پوشش تأییدشده
۸ بخش انتشار P13 بسته‌بندی، مستندات عمومی، مشارکت و نسخه‌بندی اجرای ماتریس آزمون و بررسی مجوزهای داده و نام انتشار

P07.2 تا P07.6، ساخت کندل تحلیلی P09.4، نسبت‌های بنیادی P10.5 و بخش مدل‌سازی P11 فعلاً کنار گذاشته شده‌اند. این کنارگذاشتن مطابق درخواست فعلی است، نه حذف از تاریخچه طرح. ثبت زمان و منشأ داده در data حفظ می‌شود، چون کیفیت داده مستقل از داشتن مدل هوش مصنوعی اهمیت دارد.

قراردادهای هنوز محدود یا پیاده‌سازی‌نشده

get_instrument برای ISIN مستقل یا هویت تاریخی کامل آماده نیست. get_history برای adjustment='source'، سری متصل continuous_verified و بازسازی آنلاین as_of خطای صریح دارد. iter_history قطعه‌بندی محلی پاسخ کامل است، نه stream نامحدود شبکه. load_stored_history(as_of=...) انتخاب بر اساس شواهد محلی دریافت/ثبت است، نه اثبات نسخه در دسترس بازار در گذشته.

افزودن یک تابع نمایشی که فقط NotImplementedError بدهد، تکمیل قابلیت محسوب نمی‌شود. توابع جدید در مرجع runtime فقط در صورت داشتن پیاده‌سازی واقعی درج می‌شوند؛ محدودیت گزینه‌های همان تابع نیز کنار آن‌ها نوشته می‌شود.

روش آزمون و دامنه اطمینان

تغییرهای موجود با پاسخ‌های مصنوعی، شبکه مسدود، آزمون حفظ dtype، roundtrip فایل، ورودی‌های گروهی Pandas، سیاست آفلاین، برابری Sync/Async و عدم تغییر داده ورودی سنجیده می‌شوند. اصلاح Windows fsync از نسخه قبلی حفظ و آزمون آن تکرار می‌شود. هیچ آماری از گزارش‌های قدیمی به‌عنوان نتیجه آزمون این نسخه معرفی نمی‌شود.

فایل workflow ماتریس Windows/Linux و Python 3.12 تا 3.14 در بسته وجود دارد، اما وجود workflow به معنی اجرای موفق آن در GitHub نیست. نتیجه همین محیط در گزارش جاری جداگانه ثبت می‌شود. Parquet و Pandas 3 اگر نصب‌پذیر نباشند، با عبارت آزموده‌نشده معرفی می‌شوند.

تصمیم انتشار

این بسته 0.3.1a1 است: ارتقای آزمایشیِ رابط داده، نه ادعای پایداری 1.0 و نه وعده پوشش همه APIهای بورس. یک پوشه و یک Wheel دارد. کتابخانه و فایل‌های داده قبلی نباید دستی حذف شوند. داده‌های SQLite قالب تازه‌ای پیدا نکرده‌اند؛ این تغییر مهاجرت یا حذف داده لازم ندارد.

مرجع توابع موجود

مرجع فارسی رابط اجرایی بخش داده

نسخه کد: 0.3.1a1

این مرجع از امضاهای واقعی فایل‌های کد ساخته شده است. وجود پارامتر رزرو به معنی پشتیبانی از آن گزینه نیست. جدول پوشش نقشه راه، جدا از امکانات اجرایی نگهداری می‌شود. نمادها و اعداد مثال‌های آفلاین مصنوعی‌اند. کنترل ساختار جدول، تضمین صحت اقتصادی یا کفایت آن برای بازآزمایی تاریخی نیست.

قواعد مشترک

تابع‌های جدولی DataFrame هستند؛ Quote و Decimal خروجی‌های غیرجدولی ثابت‌اند. خطای ذخیره خودکار، دریافت معتبر را باطل نمی‌کند؛ save/load/flush عملیات صریح‌اند. رابط عادی بدون await و AsyncClient با await است.

search_instruments

جست‌وجوی نماد و برگرداندن جدول نتایج؛ بدون انتخاب حدسی اولین نتیجه.

search_instruments(query: 'str', *, market: 'Market | None' = None, include_inactive: 'bool' = True, limit: 'int | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
query str required متن غیرخالی جست‌وجو؛ نتیجه مبهم انتخاب خودکار ندارد.
market Market | None None Market یا None؛ بازار فاقد پشتیبانی به بازار دیگر نگاشت حدسی نمی‌شود.
include_inactive bool True نمایش نتیجه غیرفعال/نامعلوم؛ False تنها با شواهد فعال‌بودن اعمال می‌شود.
limit int | None None تعداد محلی نتایج نمایش؛ None همه نتایج همین پاسخ، نه تمام ابزارهای جهان.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Search symbols without silently selecting the first match. Returns a typed DataFrame, including for no matches. A limit only limits displayed results; it is not a server pagination parameter.

get_instrument

حل هویت یکتای نماد یا شناسه صریح؛ نتیجه مبهم خطاست.

get_instrument(instrument: 'InstrumentLike', *, market: 'Market | None' = None, as_of: 'date | None' = None, known_at: 'datetime | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'InstrumentRecord'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
market Market | None None Market یا None؛ بازار فاقد پشتیبانی به بازار دیگر نگاشت حدسی نمی‌شود.
as_of date | None None در بازیابی محلی cutoff آگاه از timezone؛ در هویت/تاریخچه آنلاین رزرو و صریحاً غیرقابل‌استفاده است.
known_at datetime | None None تاریخ دانسته‌شدن هویت؛ در این نسخه پشتیبانی نمی‌شود.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: InstrumentRecord استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Resolve one symbol or explicit InstrumentRef and verify its identity. Raises AmbiguousInstrumentError for multiple exact matches; use candidates or search_instruments to choose an ins_code. Historical identity and ISIN-only lookup remain unsupported.

get_quote

گزارش قیمت با زمان، واحد و شناسنامه؛ مستقل از تاریخچه.

get_quote(instrument: 'InstrumentLike', *, freshness: 'FreshnessPolicy | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'Quote'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
freshness FreshnessPolicy | None None FreshnessPolicy صریح؛ بر freshness داخل policy مقدم است.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: Quote استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Fetch the latest report as an immutable Quote with source and retrieval timestamps. A last report may be from a past trading day. Use an explicit offline policy to permit stale cached data; autosave errors are reported separately.

get_price

دریافت یک قیمت Decimal؛ برای حفظ زمان و واحد از get_quote استفاده شود.

get_price(instrument: 'InstrumentLike', *, field: 'str' = 'last', freshness: 'FreshnessPolicy | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'Decimal'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
field str 'last' last یا closing یا previous_reference؛ نام خام API پذیرفته نمی‌شود.
freshness FreshnessPolicy | None None FreshnessPolicy صریح؛ بر freshness داخل policy مقدم است.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: Decimal استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError, MissingValueError, UnsupportedQuoteUnitError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Return a Decimal price. field is last, closing or previous_reference. Missing price raises MissingValueError and unverified price units raise UnsupportedQuoteUnitError. Use get_quote/get_quote_frame to retain time and unit metadata.

get_quotes

قیمت چند نماد با حفظ ترتیب ورودی و گزارش خطای هر مورد.

get_quotes(instruments: 'Sequence[InstrumentLike] | pd.Series | pd.Index | np.ndarray', *, on_error: 'str' = 'raise', freshness: 'FreshnessPolicy | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instruments Sequence[InstrumentLike] | pd.Series | pd.Index | np.ndarray required list/tuple مرتب، Series یا Index پانداس، آرایه یک‌بعدی NumPy؛ تهی/نامعتبر رد می‌شود و ترتیب و تکرار حفظ می‌شوند.
on_error str 'raise' raise با گزارش جزئی یا collect با ثبت خطای عضو؛ نوع خروجی ثابت است.
freshness FreshnessPolicy | None None FreshnessPolicy صریح؛ بر freshness داخل policy مقدم است.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError, BatchDataError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Fetch an ordered batch to a DataFrame. Accepts list/tuple, Series, Index or a 1D NumPy array. Duplicates and input order are preserved. on_error=collect records per-item errors; raise attaches partial_result to BatchDataError. No concurrency is implied.

get_history

تاریخچه روزانه خام یک شناسه در قالب DataFrame مرتب‌شده.

get_history(instrument: 'InstrumentLike', *, start: 'DateLike | None' = None, end: 'DateLike | None' = None, calendar: 'Calendar' = 'gregorian', adjustment: 'str' = 'none', series: 'str' = 'listing', as_of: 'datetime | None' = None, policy: 'FetchPolicy | str | None' = None, include_jdate: 'bool' = False) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
start DateLike | None None ابتدای شامل بازه: date، رشته ISO یا Timestamp بدون زمان و timezone.
end DateLike | None None انتهای شامل بازه؛ None حد دامنه موجود، نه تضمین کامل‌بودن تاریخچه.
calendar Calendar 'gregorian' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.
adjustment str 'none' در این نسخه فقط none. درخواست source خطای قابلیت فاقد پشتیبانی می‌دهد.
series str 'listing' فقط listing؛ اتصال شناسه‌های تاریخی تأییدشده هنوز پیاده‌سازی نشده.
as_of datetime | None None در بازیابی محلی cutoff آگاه از timezone؛ در هویت/تاریخچه آنلاین رزرو و صریحاً غیرقابل‌استفاده است.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.
include_jdate bool False افزودن ستون متنی شمسی؛ ستون date میلادی تغییر نمی‌کند.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError, UnsupportedCapabilityError, PointInTimeUnavailableError, CoverageError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Raw daily history, ascending and inclusive. No rows are forward-filled.

The full available endpoint response is fetched/cached, then filtered locally. source adjustments, stitched identities and as_of are reserved but raise explicit errors until their evidence is implemented.

get_history_many

تاریخچه چند نماد در BatchFrames با جدول داده، درخواست‌ها و خطاها.

get_history_many(instruments: 'Sequence[InstrumentLike] | pd.Series | pd.Index | np.ndarray', *, start: 'DateLike | None' = None, end: 'DateLike | None' = None, calendar: 'Calendar' = 'gregorian', adjustment: 'str' = 'none', on_error: 'str' = 'raise', policy: 'FetchPolicy | str | None' = None, include_jdate: 'bool' = False) -> 'BatchFrames'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instruments Sequence[InstrumentLike] | pd.Series | pd.Index | np.ndarray required list/tuple مرتب، Series یا Index پانداس، آرایه یک‌بعدی NumPy؛ تهی/نامعتبر رد می‌شود و ترتیب و تکرار حفظ می‌شوند.
start DateLike | None None ابتدای شامل بازه: date، رشته ISO یا Timestamp بدون زمان و timezone.
end DateLike | None None انتهای شامل بازه؛ None حد دامنه موجود، نه تضمین کامل‌بودن تاریخچه.
calendar Calendar 'gregorian' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.
adjustment str 'none' در این نسخه فقط none. درخواست source خطای قابلیت فاقد پشتیبانی می‌دهد.
on_error str 'raise' raise با گزارش جزئی یا collect با ثبت خطای عضو؛ نوع خروجی ثابت است.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.
include_jdate bool False افزودن ستون متنی شمسی؛ ستون date میلادی تغییر نمی‌کند.

خروجی: BatchFrames استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError, UnsupportedCapabilityError, PointInTimeUnavailableError, CoverageError, BatchDataError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Bounded sequential batch. Each input, even repeated/empty, gets a report row.

iter_history

تقسیم محلی پاسخ تاریخچه به بازه‌های کوچک؛ نه صفحه‌بندی یا stream شبکه.

iter_history(instrument: 'InstrumentLike', *, start: 'DateLike', end: 'DateLike', calendar: 'Calendar' = 'gregorian', adjustment: 'str' = 'none', chunk_days: 'int' = 366, policy: 'FetchPolicy | str | None' = None, include_jdate: 'bool' = False) -> 'Iterator[pd.DataFrame]'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
start DateLike required ابتدای شامل بازه: date، رشته ISO یا Timestamp بدون زمان و timezone.
end DateLike required انتهای شامل بازه؛ None حد دامنه موجود، نه تضمین کامل‌بودن تاریخچه.
calendar Calendar 'gregorian' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.
adjustment str 'none' در این نسخه فقط none. درخواست source خطای قابلیت فاقد پشتیبانی می‌دهد.
chunk_days int 366 تعداد روز تقویمی برای تقسیم محلی؛ نه درخواست صفحه‌بندی جدید به سرور.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.
include_jdate bool False افزودن ستون متنی شمسی؛ ستون date میلادی تغییر نمی‌کند.

خروجی: Iterator[pd.DataFrame] استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Yield local calendar chunks. The underlying full HTTP response is NOT streamed.

Skips chunks without rows; yields one typed empty frame if the whole selected range is empty. Each frame records its actual and chunk range.

to_gregorian

تبدیل تاریخ مطابق قرارداد date و تقویم صریح.

to_gregorian(value: 'DateLike', *, calendar: 'Calendar' = 'jalali') -> 'date'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
value DateLike required رشته شناسه/نماد یا تاریخ طبق سازنده و نوع امضای واقعی.
calendar Calendar 'jalali' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.

خروجی: date استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring:

to_jalali

تبدیل تاریخ مطابق قرارداد date و تقویم صریح.

to_jalali(value: 'DateLike') -> 'str'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
value DateLike required رشته شناسه/نماد یا تاریخ طبق سازنده و نوع امضای واقعی.

خروجی: str استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring:

capabilities

نمایش وضعیت قابلیت‌های همین نسخه؛ بدون شبکه یا ساخت کلاینت.

capabilities() -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا

خروجی: pd.DataFrame استثناهای اصلی: وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Return the implemented, conditional and deferred capability matrix. A source-reviewed endpoint is not a live-service guarantee.

storage_status

وضعیت ذخیره خودکار؛ وابسته به موفقیت دریافت قیمت نیست.

storage_status() -> 'StorageStatus'
پارامتر نوع واقعی پیش‌فرض واقعی معنا

خروجی: StorageStatus استثناهای اصلی: وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Return in-memory storage counters without querying the database. Queued work is not durable until committed.

get_write_receipt

خواندن آخرین وضعیت رسید نوشتن در این فرایند.

get_write_receipt(receipt_id: 'str') -> 'WriteReceipt'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
receipt_id str required شناسه رسید در فرایند جاری؛ توکن احراز هویت نیست.

خروجی: WriteReceipt استثناهای اصلی: UnknownReceiptError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Read the receipt status for this process. Unknown IDs raise UnknownReceiptError. A queued receipt does not prove disk durability.

flush

انتظار محدود برای ثبت صف؛ queued با ذخیره قطعی یکسان نیست.

flush(*, timeout: 'float' = 5.0, raise_on_error: 'bool' = True) -> 'FlushReport'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
timeout float 5.0 مهلت انتظار عملیات صریح ذخیره؛ تضمین زمان پاسخ بورس نیست.
raise_on_error bool True تبدیل خطای گزارش‌شده به استثنا؛ False فقط گزارش می‌دهد.

خروجی: FlushReport استثناهای اصلی: StorageError, StorageFlushTimeout, ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Explicitly wait up to timeout seconds for queued persistence. With raise_on_error=True incomplete or failed storage raises StorageError/StorageFlushTimeout. Normal automatic saving never waits for this call.

close

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

close(*, flush_timeout: 'float' = 1.0) -> 'FlushReport'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
flush_timeout float 1.0 مهلت بستن و تخلیه صف؛ complete گزارش را بررسی کنید.

خروجی: FlushReport استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Close the default client. Explicitly flush first to require durable writes.

The selected configuration is retained; configure() can replace it after close.

get_quote_frame

گزارش قیمت تک‌ردیفی Pandas همراه زمان و واحد.

get_quote_frame(instrument: 'InstrumentLike', *, freshness: 'FreshnessPolicy | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
freshness FreshnessPolicy | None None FreshnessPolicy صریح؛ بر freshness داخل policy مقدم است.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: A one-row Pandas quote with the same checks as get_quote; no second HTTP call.

get_instrument_frame

همان شناسایی معتبر ابزار در قالب DataFrame تک‌ردیفی.

get_instrument_frame(instrument: 'InstrumentLike', *, market: 'Market | None' = None, as_of: 'date | None' = None, known_at: 'datetime | None' = None, policy: 'FetchPolicy | str | None' = None) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
market Market | None None Market یا None؛ بازار فاقد پشتیبانی به بازار دیگر نگاشت حدسی نمی‌شود.
as_of date | None None در بازیابی محلی cutoff آگاه از timezone؛ در هویت/تاریخچه آنلاین رزرو و صریحاً غیرقابل‌استفاده است.
known_at datetime | None None تاریخ دانسته‌شدن هویت؛ در این نسخه پشتیبانی نمی‌شود.
policy FetchPolicy | str | None None FetchPolicy یا None یا رشته auto/online/offline؛ offline به‌تنهایی اجازه stale نمی‌دهد.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Resolve exactly one instrument and return its typed one-row DataFrame.

configure

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

configure(config: 'ClientConfig | None' = None, *, source: 'str | None' = None, mode: 'str | None' = None, storage: 'bool | None' = None, data_dir: 'str | Path | None' = None, numeric: 'str | None' = None) -> 'ClientConfig'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
config ClientConfig | None None ClientConfig تغییرناپذیر؛ پارامترهای غیر None سازنده بر آن مقدم‌اند.
source str | None None در Client فقط public؛ در normalize فقط canonical. سرویس رسمی یا نگاشت ناشناخته به‌صورت حدسی اجرا نمی‌شود.
mode str | None None auto/online/offline؛ online می‌تواند کش معتبر مصرف کند، fresh برای دورزدن کش است.
storage bool | None None فعال‌بودن ذخیره خودکار؛ False بدون ذخیره محلی.
data_dir str | Path | None None پوشه شامل dara.sqlite3؛ تغییر مسیر فایل‌های قبلی را منتقل یا حذف نمی‌کند.
numeric str | None None analysis با Float64 nullable؛ exact با Decimal برای قیمت/مقدار. شناسه رشته باقی می‌ماند.

خروجی: ClientConfig استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Configure the lazy module-level client without HTTP or creating a database.

Call before using data.get_*; if a default client already exists, close it explicitly with data.close() first. This avoids silently losing queued work or changing the configuration of an in-flight request. Omitted settings use ClientConfig defaults (or the explicitly supplied config).

get_config

خواندن تنظیمات فعلی بدون ساخت کلاینت یا دسترسی به شبکه.

get_config() -> 'ClientConfig'
پارامتر نوع واقعی پیش‌فرض واقعی معنا

خروجی: ClientConfig استثناهای اصلی: وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Return immutable default settings without creating a Client or any I/O.

save

خروجی صریح CSV/Excel/Parquet/SQLite همراه ساختار بازیابی؛ شکست ذخیره خطاست.

save(df: 'pd.DataFrame', path: 'str | Path', *, format: 'str | None' = None, dataset: 'str' = 'user_data', metadata: 'bool' = True, overwrite: 'bool' = False, safe_text: 'bool' = True) -> 'WriteReceipt'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.
path str | Path required مسیر غیرخالی str/Path؛ خروجی آرشیو را روی dara.sqlite3 کاری ننویسید.
format str | None None csv/excel/parquet/sqlite یا None برای تشخیص از پسوند معتبر.
dataset str 'user_data' نام مجموعه داخل آرشیو SQLite.
metadata bool True حفظ attrs افزون بر اطلاعات ساختاری لازم؛ False checksum و انواع ضروری را حذف نمی‌کند.
overwrite bool False اجازه جایگزینی همین خروجی؛ پیش‌فرض False، پایگاه کاری حذف نمی‌شود.
safe_text bool True محافظت متن‌های شبیه فرمول در خروجی؛ بازیابی حفاظت را معکوس می‌کند.

خروجی: WriteReceipt استثناهای اصلی: InvalidArgumentError, FileExistsDataError, StorageError, OptionalDependencyError وابستگی‌ها: pandas, Python standard library, openpyxl only for Excel, pyarrow only for Parquet, sqlite3 for SQLite همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Save a self-describing snapshot; return only after successful commit.

metadata=False omits df.attrs, not structural type/checksum information. MultiIndex/unsupported object values are rejected. No network requests. CSV + sidecar replace is not one filesystem transaction: a crash between replacements is detected by load's SHA256 check, never silently accepted.

load

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

load(path: 'str | Path', *, format: 'str | None' = None, dataset: 'str' = 'user_data', schema=None, verify: 'bool' = True) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
path str | Path required مسیر غیرخالی str/Path؛ خروجی آرشیو را روی dara.sqlite3 کاری ننویسید.
format str | None None csv/excel/parquet/sqlite یا None برای تشخیص از پسوند معتبر.
dataset str 'user_data' نام مجموعه داخل آرشیو SQLite.
schema documented in source None رزرو است؛ در این نسخه None باقی بماند. نوع‌ها از شناسنامه آرشیو بازسازی می‌شوند.
verify bool True کنترل ساختار و checksum آرشیو؛ امضای دیجیتال ناشر نیست.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, StorageError, OptionalDependencyError وابستگی‌ها: pandas, Python standard library, openpyxl only for Excel, pyarrow only for Parquet, sqlite3 for SQLite همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Read a Dara archive and verify its structure/content. This is not a signature.

For arbitrary externally-created files use pandas readers, then validate. verify=False allows deliberate value edits, not code execution or a different schema. CSV still requires its sidecar for dtype restoration.

sync_history

همگام‌سازی صریح تاریخچه با بازبینی انتهایی/کامل و گزارش مستقل ذخیره.

sync_history(instrument: 'InstrumentLike', *, full: 'bool' = False, overlap_days: 'int' = 14, full_refresh_days: 'float' = 7, wait: 'bool' = True, timeout: 'float' = 30.0, on_storage_error: 'str' = 'report') -> 'SyncResult'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
full bool False True درخواست بازبینی کامل به جای انتهایی.
overlap_days int 14 همپوشانی روز تقویمی برای بازبینی اصلاحات اخیر؛ مقدار مثبت.
full_refresh_days float 7 در فراخوانی بعدی sync، پس از این فاصله بازبینی کامل انجام شود؛ زمان‌بند پس‌زمینه نداریم.
wait bool True انتظار صریح ذخیره در sync؛ False ممکن است queued بدهد.
timeout float 30.0 مهلت انتظار عملیات صریح ذخیره؛ تضمین زمان پاسخ بورس نیست.
on_storage_error str 'report' report داده دریافت‌شده را با گزارش شکست حفظ می‌کند؛ raise به موفقیت ذخیره صریح نیاز دارد.

خروجی: SyncResult استثناهای اصلی: InvalidArgumentError, NetworkError, ApiError, SchemaMismatchError, DataQualityError, UnknownInstrumentError, AmbiguousInstrumentError, StaleDataError, OfflineDataUnavailableError وابستگی‌ها: pandas, Python standard library, HTTPX for network, platformdirs, tzdata, optional best-effort SQLite همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Explicit reconciliation into the local history index. full=True rechecks old corrections; overlap_days controls the tail window. wait=True may wait for storage. on_storage_error=report preserves fetched data with failure information; raise demands success. SyncResult.data is only this fetch, not the whole database.

load_stored_history

خواندن تاریخچه ذخیره‌شده از SQLite بدون درخواست بورس.

load_stored_history(instrument: 'InstrumentLike', *, start: 'DateLike | None' = None, end: 'DateLike | None' = None, calendar: 'Calendar' = 'gregorian', include_jdate: 'bool' = False, as_of: 'datetime | None' = None) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
start DateLike | None None ابتدای شامل بازه: date، رشته ISO یا Timestamp بدون زمان و timezone.
end DateLike | None None انتهای شامل بازه؛ None حد دامنه موجود، نه تضمین کامل‌بودن تاریخچه.
calendar Calendar 'gregorian' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.
include_jdate bool False افزودن ستون متنی شمسی؛ ستون date میلادی تغییر نمی‌کند.
as_of datetime | None None در بازیابی محلی cutoff آگاه از timezone؛ در هویت/تاریخچه آنلاین رزرو و صریحاً غیرقابل‌استفاده است.

خروجی: pd.DataFrame استثناهای اصلی: OfflineDataUnavailableError, StorageError, InvalidArgumentError, AmbiguousInstrumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Read the versioned local history index; never sends HTTP. Dates are inclusive. as_of is a local observation/commit cutoff, not proof of historical public availability. Raises OfflineDataUnavailableError when no usable indexed data exists.

history_status

جدول وضعیت و دامنه تاریخچه ثبت‌شده محلی.

history_status() -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا

خروجی: pd.DataFrame استثناهای اصلی: StorageError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Return per-instrument counts, ranges and latest fetch state from the local index. Explicit disk read; no HTTP. Counts do not certify full market history.

get_history_revisions

بازخوانی نسخه‌های ثبت‌شده رکوردهای تاریخچه.

get_history_revisions(instrument: 'InstrumentLike', *, start: 'DateLike | None' = None, end: 'DateLike | None' = None, calendar: 'Calendar' = 'gregorian') -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
instrument InstrumentLike required نام نماد یا InstrumentRef؛ رشته عددی خودکار به شناسه تبدیل نمی‌شود.
start DateLike | None None ابتدای شامل بازه: date، رشته ISO یا Timestamp بدون زمان و timezone.
end DateLike | None None انتهای شامل بازه؛ None حد دامنه موجود، نه تضمین کامل‌بودن تاریخچه.
calendar Calendar 'gregorian' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.

خروجی: pd.DataFrame استثناهای اصلی: StorageError, OfflineDataUnavailableError, InvalidArgumentError, UnsupportedCapabilityError, PointInTimeUnavailableError, CoverageError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Return locally observed economic revisions in the requested inclusive range. This is local evidence, not all revisions ever published by the exchange.

reindex_history

فهرست‌سازی تاریخچه پاسخ‌های قبلاً ذخیره‌شده؛ بدون دریافت مجدد اینترنتی.

reindex_history() -> 'dict'
پارامتر نوع واقعی پیش‌فرض واقعی معنا

خروجی: dict استثناهای اصلی: StorageError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: دارد؛ همان معنا و نوع خروجی. عملیات بدون I/O مانند capabilities همگام‌اند. شرح دقیق اجرایی از docstring: Explicitly rebuild missing normalized history from cached responses of previous releases, without HTTP. Existing history is not deleted. Return a dictionary report; durable storage can raise StorageError.

schema_info

نام، نوع، الزام و معنای ستون‌های شمای پیاده‌سازی‌شده.

schema_info(schema: 'str' = 'daily_bars', *, numeric: 'str' = 'analysis') -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
schema str 'daily_bars' شمای پیاده‌سازی‌شده daily_bars/quote/quotes.batch/instruments؛ در load فقط None قابل استفاده است.
numeric str 'analysis' analysis با Float64 nullable؛ exact با Decimal برای قیمت/مقدار. شناسه رشته باقی می‌ماند.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Return column names, expected dtypes and meanings for an implemented schema.

Parameters

schema : str, default 'daily_bars' One of daily_bars, quote, quotes.batch, instruments. numeric : {'analysis', 'exact'}, default 'analysis' Floating nullable columns or Decimal object columns for prices/quantities.

Returns

pandas.DataFrame column, dtype, required, description. It is a description, not market data.

validate_data

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

validate_data(df: 'pd.DataFrame', *, schema: 'str' = 'daily_bars', raise_on_error: 'bool' = False, check_order: 'bool' = True) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.
schema str 'daily_bars' شمای پیاده‌سازی‌شده daily_bars/quote/quotes.batch/instruments؛ در load فقط None قابل استفاده است.
raise_on_error bool False تبدیل خطای گزارش‌شده به استثنا؛ False فقط گزارش می‌دهد.
check_order bool True گزارش ترتیب نامناسب بدون مرتب‌کردن ورودی.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, DataQualityError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Report schema/value issues without changing data or contacting TSETMC.

The report columns are severity, rule, column, count, row_positions, message. row_positions are zero-based positions (not possibly duplicated index labels). At most ten example positions are kept per rule. Warnings do not certify or invalidate financial truth. This function is NOT a point-in-time/leakage audit.

normalize_data

عادی‌سازی محلی انواع و نام‌های صریح؛ بدون حذف، پرکردن یا ایجاد داده مالی حدسی.

normalize_data(df: 'pd.DataFrame', *, schema: 'str' = 'daily_bars', columns: 'Mapping[str, str] | None' = None, calendar: 'Calendar' = 'gregorian', numeric: 'str' = 'analysis', timezone: 'str | None' = None, sort: 'bool' = False) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.
schema str 'daily_bars' شمای پیاده‌سازی‌شده daily_bars/quote/quotes.batch/instruments؛ در load فقط None قابل استفاده است.
columns Mapping[str, str] | None None در select_columns فهرست یا compact/full؛ در normalize_data نگاشت نام قدیم به نام استاندارد.
calendar Calendar 'gregorian' تقویم رشته‌ها: gregorian/jalali؛ date و Timestamp همیشه میلادی‌اند.
numeric str 'analysis' analysis با Float64 nullable؛ exact با Decimal برای قیمت/مقدار. شناسه رشته باقی می‌ماند.
timezone str | None None منطقه زمانی صریح timestamp فاقد timezone؛ برای date روزانه استفاده نمی‌شود.
sort bool False مرتب‌کردن صریح با حفظ سطرها؛ هیچ تکراری حذف نمی‌شود.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Normalize only present known fields; never invent source/time/zero values.

columns is an explicit old-name -> standard-name mapping. Date strings use the explicitly supplied calendar. Naive real timestamps require timezone. Floating-point identifiers are rejected even when they look integral: original digits may already be lost. Unknown columns are preserved, rows are not dropped, duplicate keys are left for validate_data(), and the input/index are preserved unless sort=True reorders rows. No investment calculation is performed.

select_columns

انتخاب کنترل‌شده ستون‌های نمایشی یا صریح، بدون تغییر ورودی.

select_columns(df: 'pd.DataFrame', columns: 'Sequence[str] | str' = 'compact') -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.
columns Sequence[str] | str 'compact' در select_columns فهرست یا compact/full؛ در normalize_data نگاشت نام قدیم به نام استاندارد.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Select explicit columns, or the documented 'compact'/'full' presentation.

Compact output is a view for users, not a provenance-complete archive. Full metadata is copied, and any removed evidence columns are listed in it. Unknown/duplicate column names raise InvalidArgumentError instead of being ignored.

frame_metadata

نسخه مستقل اطلاعات df.attrs؛ نبود اطلاعات به unknown تبدیل می‌شود.

frame_metadata(df: 'pd.DataFrame') -> 'dict'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.

خروجی: dict استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Return a deep copy of df.attrs['tse_dara']; absent evidence stays unknown.

api_reference

مرجع قابل جست‌وجوی توابع پیاده‌سازی‌شده از داخل پایتون.

api_reference(name: 'str | None' = None) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
name str | None None نام دقیق API یا نمونه مصنوعی مطابق توضیح همان تابع.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Return signatures, inputs, outputs, errors and dependencies for this release.

name is an optional exact public function/class name. The catalog includes implemented API only; the HTML roadmap has separate not-yet-implemented plans.

validate

ورودی سازگار با نام قرارداد نقشه راه؛ strict=True برای خطای اعتبارسنجی.

validate(df: 'pd.DataFrame', *, schema: 'str', strict: 'bool' = True) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.
schema str required شمای پیاده‌سازی‌شده daily_bars/quote/quotes.batch/instruments؛ در load فقط None قابل استفاده است.
strict bool True در اعتبارسنجی، خطای صریح به جای ادامه با ساختار نامعتبر.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, DataQualityError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Roadmap-compatible validation entry point.

Returns row_id, rule, severity, message and additional grouped diagnostic columns. A grouped issue may have no single row_id; count and row_positions then describe it. strict=True raises DataQualityError with this same report. This verifies a structural contract, not source correctness or completeness.

normalize

نام قرارداد نقشه راه؛ در این نسخه فقط source=canonical، نه نگاشت خودکار APIهای دیگر.

normalize(df: 'pd.DataFrame', *, schema: 'str', source: 'str', strict: 'bool' = True) -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
df pd.DataFrame required DataFrame معمولی؛ تابع محلی آن را درجا تغییر نمی‌دهد.
schema str required شمای پیاده‌سازی‌شده daily_bars/quote/quotes.batch/instruments؛ در load فقط None قابل استفاده است.
source str required فقط canonical؛ برای نگاشت نام‌های دلخواه، normalize_data(columns=...) را استفاده کنید.
strict bool True در اعتبارسنجی، خطای صریح به جای ادامه با ساختار نامعتبر.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError, DataQualityError, UnsupportedCapabilityError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Roadmap normalization entry point for already canonical column names.

source='canonical' is the currently reviewed mapping. Raw external API mappings are not inferred; use normalize_data(columns=...) for an explicit user mapping and then validate it. All unknown sources fail explicitly.

load_sample

داده مصنوعی آموزشی با نشانه synthetic؛ بدون HTTP واقعی و بدون SQLite.

load_sample(name: 'str' = 'daily_prices_v1') -> 'pd.DataFrame'
پارامتر نوع واقعی پیش‌فرض واقعی معنا
name str 'daily_prices_v1' daily_prices_v1 یا quote_v1؛ fixture مصنوعی و بدون شبکه واقعی.

خروجی: pd.DataFrame استثناهای اصلی: InvalidArgumentError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Load explicit synthetic data with no database access or real network.

Names: daily_prices_v1 and quote_v1. These are teaching/test values, never current market prices, and they cannot become live data through fallback.

Client

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

Client(*, config: 'ClientConfig | None' = None, source: 'str | None' = None, mode: 'str | None' = None, storage: 'bool | None' = None, data_dir: 'str | Path | None' = None, numeric: 'str | None' = None, credentials=None, transport: 'httpx.BaseTransport | None' = None, _namespace: 'str' = 'public')
پارامتر نوع واقعی پیش‌فرض واقعی معنا
config ClientConfig | None None ClientConfig تغییرناپذیر؛ پارامترهای غیر None سازنده بر آن مقدم‌اند.
source str | None None در Client فقط public؛ در normalize فقط canonical. سرویس رسمی یا نگاشت ناشناخته به‌صورت حدسی اجرا نمی‌شود.
mode str | None None auto/online/offline؛ online می‌تواند کش معتبر مصرف کند، fresh برای دورزدن کش است.
storage bool | None None فعال‌بودن ذخیره خودکار؛ False بدون ذخیره محلی.
data_dir str | Path | None None پوشه شامل dara.sqlite3؛ تغییر مسیر فایل‌های قبلی را منتقل یا حذف نمی‌کند.
numeric str | None None analysis با Float64 nullable؛ exact با Decimal برای قیمت/مقدار. شناسه رشته باقی می‌ماند.
credentials documented in source None رزرو برای سرویس رسمی؛ مقدار غیر None فعلاً رد می‌شود.
transport httpx.BaseTransport | None None قلاب آزمون HTTPX؛ مصرف عادی نیاز به آن ندارد.
_namespace str 'public' فضای داخلی/آزمون؛ در کار عادی مقدار پیش‌فرض را تغییر ندهید.

خروجی: Client استثناهای اصلی: ConfigurationError, UnsupportedCapabilityError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Identity, quotes and raw daily history client. Construct freely; close explicitly or use with.

Part 3 adds file interchange and local reconciliation; adjustments, analytics and ML remain deferred. transport is a test/development hook, not a TSETMC authentication mechanism. A Client is not intended for concurrent use from multiple OS threads.

AsyncClient

کلاینت Async بومی؛ مدل‌ها و parser با رابط عادی مشترک‌اند.

AsyncClient(*, config: 'ClientConfig | None' = None, source: 'str | None' = None, mode: 'str | None' = None, storage: 'bool | None' = None, data_dir: 'str | Path | None' = None, numeric: 'str | None' = None, credentials=None, transport: 'httpx.AsyncBaseTransport | None' = None, _namespace: 'str' = 'public')
پارامتر نوع واقعی پیش‌فرض واقعی معنا
config ClientConfig | None None ClientConfig تغییرناپذیر؛ پارامترهای غیر None سازنده بر آن مقدم‌اند.
source str | None None در Client فقط public؛ در normalize فقط canonical. سرویس رسمی یا نگاشت ناشناخته به‌صورت حدسی اجرا نمی‌شود.
mode str | None None auto/online/offline؛ online می‌تواند کش معتبر مصرف کند، fresh برای دورزدن کش است.
storage bool | None None فعال‌بودن ذخیره خودکار؛ False بدون ذخیره محلی.
data_dir str | Path | None None پوشه شامل dara.sqlite3؛ تغییر مسیر فایل‌های قبلی را منتقل یا حذف نمی‌کند.
numeric str | None None analysis با Float64 nullable؛ exact با Decimal برای قیمت/مقدار. شناسه رشته باقی می‌ماند.
credentials documented in source None رزرو برای سرویس رسمی؛ مقدار غیر None فعلاً رد می‌شود.
transport httpx.AsyncBaseTransport | None None قلاب آزمون HTTPX؛ مصرف عادی نیاز به آن ندارد.
_namespace str 'public' فضای داخلی/آزمون؛ در کار عادی مقدار پیش‌فرض را تغییر ندهید.

خروجی: AsyncClient استثناهای اصلی: ConfigurationError, UnsupportedCapabilityError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: Use within one event loop and async context manager. No hidden asyncio.run().

ClientConfig

تنظیمات تغییرناپذیر کلاینت، شبکه و ذخیره.

ClientConfig(*, source: "Literal['public', 'official']" = 'public', mode: "Literal['auto', 'online', 'offline']" = 'auto', storage: 'StorageConfig | None' = None, network: 'NetworkConfig | None' = None, numeric: "Literal['analysis', 'exact']" = 'analysis', timezone: 'str' = 'Asia/Tehran', strict_schema: 'bool' = True) -> None
پارامتر نوع واقعی پیش‌فرض واقعی معنا
source Literal['public', 'official'] 'public' در Client فقط public؛ در normalize فقط canonical. سرویس رسمی یا نگاشت ناشناخته به‌صورت حدسی اجرا نمی‌شود.
mode Literal['auto', 'online', 'offline'] 'auto' auto/online/offline؛ online می‌تواند کش معتبر مصرف کند، fresh برای دورزدن کش است.
storage StorageConfig | None None فعال‌بودن ذخیره خودکار؛ False بدون ذخیره محلی.
network NetworkConfig | None None NetworkConfig یا None؛ تنظیمات شبکه معتبر.
numeric Literal['analysis', 'exact'] 'analysis' analysis با Float64 nullable؛ exact با Decimal برای قیمت/مقدار. شناسه رشته باقی می‌ماند.
timezone str 'Asia/Tehran' منطقه زمانی صریح timestamp فاقد timezone؛ برای date روزانه استفاده نمی‌شود.
strict_schema bool True فعلاً True اجباری؛ فیلدهای ضروری به‌صورت پنهانی نادیده گرفته نمی‌شوند.

خروجی: ClientConfig استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: ClientConfig(*, source: "Literal['public', 'official']" = 'public', mode: "Literal['auto', 'online', 'offline']" = 'auto', storage: 'StorageConfig | None' = None, network: 'NetworkConfig | None' = None, numeric: "Literal['analysis', 'exact']" = 'analysis', timezone: 'str' = 'Asia/Tehran', strict_schema: 'bool' = True)

NetworkConfig

مهلت‌ها، نرخ محلی و بودجه درخواست؛ این اعداد سهمیه رسمی بورس نیستند.

NetworkConfig(*, connect_timeout: 'float' = 5.0, read_timeout: 'float' = 20.0, operation_timeout: 'float' = 60.0, max_concurrency: 'int' = 4, max_retries: 'int' = 2, requests_per_second: 'float' = 0.5, request_budget: 'int' = 100, max_response_bytes: 'int' = 8388608, trust_env: 'bool' = True) -> None
پارامتر نوع واقعی پیش‌فرض واقعی معنا
connect_timeout float 5.0 مهلت اتصال HTTP بر حسب ثانیه.
read_timeout float 20.0 بودجه کوتاه خواندن اختیاری مخزن.
operation_timeout float 60.0 بودجه کلی عملیات؛ وابسته به محدودیت سیستم‌عامل.
max_concurrency int 4 سقف تنظیم‌شده همزمانی؛ حلقه‌های گروهی فعلی عمدتاً ترتیبی‌اند.
max_retries int 2 سقف تلاش مجدد مجاز برای خطاهای موقت.
requests_per_second float 0.5 نرخ محدودکننده محلی؛ نرخ مجاز رسمی بورس محسوب نمی‌شود.
request_budget int 100 حداکثر درخواست‌های یک عملیات.
max_response_bytes int 8388608 سقف اندازه پاسخ HTTP.
trust_env bool True پذیرش تنظیمات HTTPX از محیط، مانند proxyهای تنظیم‌شده کاربر.

خروجی: NetworkConfig استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: NetworkConfig(*, connect_timeout: 'float' = 5.0, read_timeout: 'float' = 20.0, operation_timeout: 'float' = 60.0, max_concurrency: 'int' = 4, max_retries: 'int' = 2, requests_per_second: 'float' = 0.5, request_budget: 'int' = 100, max_response_bytes: 'int' = 8388608, trust_env: 'bool' = True)

StorageConfig

تنظیمات صف و SQLite بهترین‌تلاش؛ خرابی ذخیره خودکار دریافت را باطل نمی‌کند.

StorageConfig(*, enabled: 'bool' = True, backend: "Literal['sqlite']" = 'sqlite', path: 'str | Path | None' = None, queue_max_jobs: 'int' = 128, queue_max_bytes: 'int' = 67108864, queue_overflow: "Literal['drop_new']" = 'drop_new', read_timeout: 'float' = 0.05, offline_read_timeout: 'float' = 30.0, busy_timeout: 'float' = 0.1, failure_cooldown: 'float' = 60.0, raw_capture: 'bool' = True) -> None
پارامتر نوع واقعی پیش‌فرض واقعی معنا
enabled bool True فعال‌بودن ذخیره خودکار.
backend Literal['sqlite'] 'sqlite' فعلاً فقط sqlite؛ PostgreSQL کد اجرایی ندارد.
path str | Path | None None مسیر غیرخالی str/Path؛ خروجی آرشیو را روی dara.sqlite3 کاری ننویسید.
queue_max_jobs int 128 حداکثر تعداد کار منتظر در صف.
queue_max_bytes int 67108864 حداکثر بایت محتوای منتظر؛ حافظه نامحدود نمی‌شود.
queue_overflow Literal['drop_new'] 'drop_new' فعلاً drop_new؛ کار ذخیره جدید پذیرفته نمی‌شود اما داده معتبر تحویل می‌شود.
read_timeout float 0.05 بودجه کوتاه خواندن اختیاری مخزن.
offline_read_timeout float 30.0 بودجه خواندن ضروری آفلاین؛ شکست به‌صورت صریح گزارش می‌شود.
busy_timeout float 0.1 مهلت کوتاه مشغول‌بودن SQLite.
failure_cooldown float 60.0 فاصله توقف موقت پس از خرابی ذخیره.
raw_capture bool True در این معماری کش پاسخ باید True باشد؛ خاموش‌کردن کل ذخیره با storage=False.

خروجی: StorageConfig استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: StorageConfig(*, enabled: 'bool' = True, backend: "Literal['sqlite']" = 'sqlite', path: 'str | Path | None' = None, queue_max_jobs: 'int' = 128, queue_max_bytes: 'int' = 67108864, queue_overflow: "Literal['drop_new']" = 'drop_new', read_timeout: 'float' = 0.05, offline_read_timeout: 'float' = 30.0, busy_timeout: 'float' = 0.1, failure_cooldown: 'float' = 60.0, raw_capture: 'bool' = True)

FreshnessPolicy

سیاست سن پاسخ و سن منبع؛ اجازه داده قدیمی باید صریح باشد.

FreshnessPolicy(*, max_age: 'timedelta | None' = None, allow_stale: 'bool' = False, max_stale: 'timedelta | None' = None, max_source_age: 'timedelta | None' = None) -> None
پارامتر نوع واقعی پیش‌فرض واقعی معنا
max_age timedelta | None None سن مجاز پاسخ ذخیره‌شده؛ timedelta یا None برای پیش‌فرض قابلیت.
allow_stale bool False اجازه صریح پاسخ قدیمی؛ آن را live نمی‌کند.
max_stale timedelta | None None حد نهایی سن پاسخ قدیمی به صورت timedelta یا None.
max_source_age timedelta | None None حد سن زمان گزارش‌شده منبع، مستقل از زمان دریافت.

خروجی: FreshnessPolicy استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: FreshnessPolicy(*, max_age: 'timedelta | None' = None, allow_stale: 'bool' = False, max_stale: 'timedelta | None' = None, max_source_age: 'timedelta | None' = None)

FetchPolicy

سیاست دریافت همان فراخوانی؛ mode، freshness و coverage.

FetchPolicy(*, mode: "Literal['auto', 'online', 'offline'] | None" = None, freshness: 'FreshnessPolicy | None' = None, coverage: "Literal['raise', 'report']" = 'report', allow_official_offline: 'bool' = False) -> None
پارامتر نوع واقعی پیش‌فرض واقعی معنا
mode Literal['auto', 'online', 'offline'] | None None auto/online/offline؛ online می‌تواند کش معتبر مصرف کند، fresh برای دورزدن کش است.
freshness FreshnessPolicy | None None FreshnessPolicy صریح؛ بر freshness داخل policy مقدم است.
coverage Literal['raise', 'report'] 'report' report محدودیت پوشش را گزارش می‌کند؛ raise به شواهد کافی نیاز دارد.
allow_official_offline bool False رزرو مجوز آفلاین رسمی؛ قابلیت قراردادی جدید ایجاد نمی‌کند.

خروجی: FetchPolicy استثناهای اصلی: ConfigurationError وابستگی‌ها: pandas, Python standard library همتای AsyncClient: ندارد/نیازی نیست؛ تابع محلی یا نوع تنظیمات است. شرح دقیق اجرایی از docstring: FetchPolicy(*, mode: "Literal['auto', 'online', 'offline'] | None" = None, freshness: 'FreshnessPolicy | None' = None, coverage: "Literal['raise', 'report']" = 'report', allow_official_offline: 'bool' = False)

متدهای کمکی نوع‌ها

این متدها برخلاف getterهای شبکه‌ای، خودشان داده بازار دریافت نمی‌کنند.

FetchPolicy.offline

ساخت سیاست آفلاین؛ allow_stale=False پیش‌فرض ایمن است.

FetchPolicy.offline(*, allow_stale: 'bool' = False, max_stale: 'timedelta | None' = None, coverage: "Literal['raise', 'report']" = 'report') -> 'FetchPolicy'

FetchPolicy.fresh

ساخت سیاست دریافت تازه با max_age=0 و بدون fallback قدیمی.

FetchPolicy.fresh(*, coverage: "Literal['raise', 'report']" = 'report') -> 'FetchPolicy'

InstrumentRef.by_ins_code

ساخت مرجع صریح شناسه داخلیِ رشته‌ای.

InstrumentRef.by_ins_code(value: 'str', *, market: 'Market | None' = None) -> 'InstrumentRef'

InstrumentRef.by_symbol

ساخت مرجع صریح نام نماد.

InstrumentRef.by_symbol(value: 'str', *, market: 'Market | None' = None) -> 'InstrumentRef'

InstrumentRef.by_isin

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

InstrumentRef.by_isin(value: 'str', *, market: 'Market | None' = None) -> 'InstrumentRef'

InstrumentRecord.to_frame

تبدیل اطلاعات هویتی به DataFrame، بدون شبکه.

InstrumentRecord.to_frame(self) -> 'pd.DataFrame'

InstrumentRecord.to_ref

ساخت مرجع دقیق از شناسه ابزار دریافت‌شده.

InstrumentRecord.to_ref(self) -> 'InstrumentRef'

Quote.to_frame

تبدیل Quote به DataFrame با numeric مشخص، بدون درخواست مجدد.

Quote.to_frame(self, *, numeric: "Literal['analysis', 'exact']" = 'analysis') -> 'pd.DataFrame'

مدل‌های واقعی

مدل‌های اجرایی و نوع‌های خروجی

نسخه 0.3.1a1

این فهرست از dataclassها و enumهای خود کد ساخته شده، نه از مدل‌های پیشنهادی نقشه راه. Frozen بودن مدل‌های دارای DataFrame تنها مانع نسبت‌دادن دوباره صفت است؛ کاربر همچنان مالک جدول خود است.

InstrumentRef

فیلد نوع واقعی پیش‌فرض
kind Literal['symbol', 'ins_code', 'isin'] الزامی
value str الزامی
market Market | None None

RecordMeta

فیلد نوع واقعی پیش‌فرض
provider str الزامی
endpoint_id str الزامی
retrieved_at datetime الزامی
source_timestamp datetime | None الزامی
row_id str الزامی
observation_id str الزامی
first_observed_at datetime الزامی
available_at datetime الزامی
payload_hash str الزامی
request_id str الزامی
scope_id str الزامی
schema_version str '1'
parser_version str '1'
availability_basis str 'observed'
raw_reference str | None None
quality_flags tuple[str, ...] ()
assumptions tuple[str, ...] ()
source_published_at datetime | None None
committed_at datetime | None None
from_cache bool False
is_stale bool False
storage_receipt_id str | None None

InstrumentRecord

فیلد نوع واقعی پیش‌فرض
ins_code str الزامی
symbol str الزامی
raw_symbol str الزامی
name str | None الزامی
instrument_id str | None الزامی
company_cisin str | None الزامی
market Market | None الزامی
raw_flow str | None الزامی
instrument_type str | None الزامی
is_active bool | None الزامی
quote_unit QuoteUnit الزامی
quantity_unit QuantityUnit الزامی
currency str | None الزامی
meta RecordMeta الزامی
valid_from date | None None
valid_to date | None None
first_trade_date date | None None

Quote

فیلد نوع واقعی پیش‌فرض
instrument InstrumentRecord الزامی
trade_date date | None الزامی
last_price Decimal | None الزامی
closing_price Decimal | None الزامی
previous_reference_price Decimal | None الزامی
open_price Decimal | None الزامی
high_price Decimal | None الزامی
low_price Decimal | None الزامی
trade_count int | None الزامی
volume Decimal | None الزامی
turnover Decimal | None الزامی
turnover_currency str | None الزامی
state str | None الزامی
raw_state str | None الزامی
source_timestamp datetime | None الزامی
retrieved_at datetime الزامی
meta RecordMeta الزامی
timestamp_kind str 'unknown'

WriteReceipt

فیلد نوع واقعی پیش‌فرض
receipt_id str الزامی
request_id str | None الزامی
state str الزامی
accepted_at datetime | None الزامی
committed_at datetime | None الزامی
rows int الزامی
payload_bytes int الزامی
reason str | None الزامی
destination str | None الزامی
content_hash str | None الزامی

StorageStatus

فیلد نوع واقعی پیش‌فرض
enabled bool الزامی
health str الزامی
path str | None الزامی
pending_jobs int الزامی
pending_bytes int الزامی
persisted_jobs int الزامی
failed_jobs int الزامی
skipped_jobs int الزامی
last_commit_at datetime | None الزامی
last_error str | None الزامی

FlushReport

فیلد نوع واقعی پیش‌فرض
complete bool الزامی
queued_at_start int الزامی
persisted int الزامی
failed int الزامی
skipped int الزامی
pending int الزامی
elapsed_seconds float الزامی
last_error str | None الزامی
receipts object الزامی

BatchFrames

فیلد نوع واقعی پیش‌فرض
data pd.DataFrame الزامی
errors pd.DataFrame الزامی
requests pd.DataFrame الزامی
manifest dict factory:dict

SyncPlan

فیلد نوع واقعی پیش‌فرض
ins_code str الزامی
symbol str الزامی
mode str الزامی
requested_rows int الزامی
overlap_start date | None الزامی
last_stored_date date | None الزامی
reason str الزامی
warnings tuple[str, ...] ()

SyncResult

فیلد نوع واقعی پیش‌فرض
data pd.DataFrame الزامی
plan SyncPlan الزامی
summary dict الزامی
write_receipt WriteReceipt | None None

ClientConfig

فیلد نوع واقعی پیش‌فرض
source Literal['public', 'official'] 'public'
mode Literal['auto', 'online', 'offline'] 'auto'
storage StorageConfig | None None
network NetworkConfig | None None
numeric Literal['analysis', 'exact'] 'analysis'
timezone str 'Asia/Tehran'
strict_schema bool True

NetworkConfig

فیلد نوع واقعی پیش‌فرض
connect_timeout float 5.0
read_timeout float 20.0
operation_timeout float 60.0
max_concurrency int 4
max_retries int 2
requests_per_second float 0.5
request_budget int 100
max_response_bytes int 8388608
trust_env bool True

StorageConfig

فیلد نوع واقعی پیش‌فرض
enabled bool True
backend Literal['sqlite'] 'sqlite'
path str | Path | None None
queue_max_jobs int 128
queue_max_bytes int 67108864
queue_overflow Literal['drop_new'] 'drop_new'
read_timeout float 0.05
offline_read_timeout float 30.0
busy_timeout float 0.1
failure_cooldown float 60.0
raw_capture bool True

FreshnessPolicy

فیلد نوع واقعی پیش‌فرض
max_age timedelta | None None
allow_stale bool False
max_stale timedelta | None None
max_source_age timedelta | None None

FetchPolicy

فیلد نوع واقعی پیش‌فرض
mode Literal['auto', 'online', 'offline'] | None None
freshness FreshnessPolicy | None None
coverage Literal['raise', 'report'] 'report'
allow_official_offline bool False

Market

TSE, IFB, BASE, DERIVATIVES, ENERGY, COMMODITY این enum به‌تنهایی وجود endpoint یا پشتیبانی همه بازارها را تضمین نمی‌کند.

QuoteUnit

PRICE, PERCENT, INDEX_POINTS, UNKNOWN این enum به‌تنهایی وجود endpoint یا پشتیبانی همه بازارها را تضمین نمی‌کند.

QuantityUnit

SHARE, CONTRACT, UNIT, MWH, UNKNOWN این enum به‌تنهایی وجود endpoint یا پشتیبانی همه بازارها را تضمین نمی‌کند.

ردیابی همه قراردادهای داده

Data blueprint coverage

Source contracts: 90. This is a scope comparison, not a claim of live endpoint verification. Original source has been preserved verbatim. Analytics/ML remain deferred at the user's request.

ID Original name Status Current implementation Limits
C001 Client implemented_with_limits Client Official provider/credentials remain unsupported.
C002 capabilities implemented_scoped capabilities Implementation is present; consult the current signature and test report.
C003 search_instruments implemented_with_limits search_instruments Active filtering requires evidence; this is not a complete historical universe.
C004 get_instrument implemented_with_limits get_instrument ISIN/historical identity options remain explicitly unsupported.
C005 get_instruments planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C006 get_quote implemented_scoped get_quote Implementation is present; consult the current signature and test report.
C007 get_price implemented_scoped get_price Implementation is present; consult the current signature and test report.
C008 get_quotes implemented_scoped get_quotes Implementation is present; consult the current signature and test report.
C009 get_history implemented_with_limits get_history Raw listing history only; no source adjustment, verified identity chain or online as_of.
C010 iter_history implemented_with_limits iter_history Local splitting of a full response; no network streaming.
C011 get_history_many implemented_with_limits get_history_many Raw history only; batch errors remain separate.
C012 get_daily_market planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C013 get_adjustments planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C014 get_market_watch planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C015 get_market_overview planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C016 get_client_types planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C017 get_client_type_history planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C018 get_market_client_types planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C019 get_indices planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C020 get_index planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C021 get_index_history planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C022 get_index_intraday planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C023 get_index_members planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C024 get_index_impact planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C025 get_order_book planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C026 get_order_book_updates planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C027 get_trades planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C028 get_intraday_quotes planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C029 get_instrument_states planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C030 get_thresholds planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C031 get_shareholders planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C032 get_shareholder_history planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C033 get_shareholder_holdings planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C034 get_share_capital_history planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C035 get_dividends planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C036 get_funds planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C037 get_fund planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C038 get_fund_nav_history planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C039 get_messages planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C040 get_disclosures planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C041 get_sectors planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C042 get_subsectors planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C043 get_boards planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C044 get_market_sessions planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C045 get_options planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C046 get_futures planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C047 get_opening_auction planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C048 get_energy_instruments planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C049 get_energy_auctions planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C050 to_pandas related_subset_not_full_contract Quote.to_frame / InstrumentRecord.to_frame Tables already return Pandas; no universal converter is implemented.
C051 to_polars planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C053 reconstruct_order_book planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C054 plan_history_sync related_subset_not_full_contract sync_history A SyncPlan is produced as part of sync; the general persistent plan API is not implemented.
C055 run_download_plan related_subset_not_full_contract sync_history Per-instrument sync exists, not the general multi-chunk download-plan executor.
C056 load_sample implemented_scoped load_sample Implementation is present; consult the current signature and test report.
C057 AsyncClient implemented_with_limits AsyncClient Official provider/credentials remain unsupported.
C058 watch_market planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C059 configure implemented_with_limits configure Adds convenience overrides and returns ClientConfig; changing an active default client is rejected.
C060 get_frame_manifest related_subset_not_full_contract frame_metadata Returns a dict copy, not the full proposed FrameManifest model.
C061 get_request_report planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C062 storage_status implemented_scoped storage_status Implementation is present; consult the current signature and test report.
C063 flush implemented_scoped flush Implementation is present; consult the current signature and test report.
C064 close implemented_scoped close Implementation is present; consult the current signature and test report.
C065 aflush related_subset_not_full_contract AsyncClient.flush Available on AsyncClient, not a separate module-level function.
C066 aclose related_subset_not_full_contract AsyncClient.aclose Available on AsyncClient, not a separate module-level function.
C067 save implemented_with_limits save Four formats implemented; Parquet not runtime-tested here without pyarrow.
C068 load implemented_with_limits load Dara archives only; schema overrides remain reserved; no arbitrary-file guessing.
C069 load_stored related_subset_not_full_contract load_stored_history Limited to the implemented daily history index.
C070 make_snapshot planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C071 validate implemented_with_limits validate Structural reports only; grouped issues may not have a single row_id.
C072 normalize implemented_with_limits normalize source='canonical' only; normalize_data accepts explicit user mappings.
C104 StorageConfig implemented_with_limits StorageConfig SQLite response cache/history implemented; arbitrary storage backends are deferred.
C105 NetworkConfig implemented_with_limits NetworkConfig Concurrency is transport-limited; batches are intentionally sequential.
C106 FreshnessPolicy implemented_scoped FreshnessPolicy Implementation is present; consult the current signature and test report.
C107 FetchPolicy implemented_scoped FetchPolicy Implementation is present; consult the current signature and test report.
C108 ClientConfig implemented_with_limits ClientConfig Public source only, strict parsing required.
C109 Credentials planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C110 InstrumentRef implemented_scoped InstrumentRef Exact typed reference constructor; no network.
C112 InstrumentRef.by_ins_code implemented_scoped InstrumentRef.by_ins_code Exact typed reference constructor; no network.
C113 InstrumentRef.by_isin model_only InstrumentRef.by_isin Reference can be constructed but network ISIN resolution is unsupported.
C114 InstrumentRef.by_symbol implemented_scoped InstrumentRef.by_symbol Exact typed reference constructor; no network.
C119 get_fundamentals planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C120 get_instrument_metrics planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C121 get_related_instruments planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C122 get_key_statistics planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C123 get_market_map planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C124 get_fund_rankings planned_not_implemented Not added to this data usability release; no stub is advertised as completed.
C125 get_write_receipt implemented_scoped get_write_receipt Implementation is present; consult the current signature and test report.
C126 load_snapshot related_subset_not_full_contract load File snapshot archive only, not a general snapshot registry.
C127 migrate_storage planned_not_implemented Not added to this data usability release; no stub is advertised as completed.