tomllib --- تجزیه پروندههای TOML¶
اضافه شده در نسخهی 3.11.
کد منبع: Lib/tomllib
این ماژول رابطی برای تجزیهی TOML 1.0.0 (Tom's Obvious Minimal Language، https://toml.io) فراهم میکند. این ماژول از نوشتن TOML پشتیبانی نمیکند.
هشدار
هنگام تجزیه داده از منابع غیرقابلاعتماد، احتیاط کنید. یک رشته TOML مخرب ممکن است باعث شود کدگشا مقدار قابلتوجهی از منابع پردازنده و حافظه را مصرف کند. محدود کردن اندازه دادهای که تجزیه میشود، توصیه میشود.
همچنین ملاحظه نمائید
بستهی Tomli-W یک ابزار نوشتن TOML است که میتواند همراه با این ماژول استفاده شود و یک API نوشتن ارائه میدهد که برای کاربران ماژولهای marshal و pickle کتابخانه استاندارد آشناست.
همچنین ملاحظه نمائید
بسته TOML Kit یک کتابخانه TOML با حفظ سبک است که هم قابلیت خواندن و هم قابلیت نوشتن دارد. این بسته بهعنوان جایگزین توصیهشده برای این ماژول جهت ویرایش پروندههای TOML از پیش موجود پیشنهاد میشود.
این ماژول توابع زیر را تعریف میکند:
- tomllib.load(fp, /, *, parse_float=float)¶
یک پرونده TOML را میخواند. اولین آرگومان باید یک شیء پرونده دودویی و قابل خواندن باشد. یک
dictبرمیگرداند. انواع TOML را با استفاده از این جدول تبدیل به پایتون تبدیل میکند.parse_float با رشتهی هر عدد اعشاری در TOML که باید کدگشایی شود فراخوانی میشود. بهطور پیشفرض، این معادل
float(num_str)است. این را میتوان برای استفاده از یک نوع داده یا پارسرٔ دیگر برای اعداد اعشاری در TOML (برای مثالdecimal.Decimal) بهکار برد. این فراخوانیپذیر نباید یکdictیا یکlistبرگرداند، در غیر این صورت یکValueErrorپرتاب میشود.در صورت نامعتبر بودن سند TOML، یک
TOMLDecodeErrorپرتاب خواهد شد.
- tomllib.loads(s, /, *, parse_float=float)¶
TOML را از یک شیء
strبارگذاری میکند. یکdictبرمیگرداند. انواع TOML را با استفاده از این جدول تبدیل به پایتون تبدیل میکند. آرگومان parse_float همان معنایی را دارد که درload()دارد.در صورت نامعتبر بودن سند TOML، یک
TOMLDecodeErrorپرتاب خواهد شد.
استثناهای زیر در دسترس هستند:
- exception tomllib.TOMLDecodeError(msg, doc, pos)¶
زیرکلاسی از
ValueErrorبا ویژگیهای اضافی زیر:- msg¶
پیام خطای قالببندینشده.
- doc¶
سند TOML که در حال تجزیه است.
- pos¶
اندیس doc که در آن تجزیه شکست خورد.
- lineno¶
سطر متناظر با pos.
- colno¶
ستون متناظر با pos.
تغییر یافته در نسخهی 3.14: پارامترهای msg، doc و pos افزوده شدند. ویژگیهای
msg،doc،pos،linenoوcolnoافزوده شدند.منسوخ شده از نسخهی 3.14: ارسال آرگومانهای جایگاهی با قالب آزاد منسوخ شده است.
مثالها¶
تجزیه یک پرونده TOML:
import tomllib
with open("pyproject.toml", "rb") as f:
data = tomllib.load(f)
تجزیهی یک رشته TOML:
import tomllib
toml_str = """
python-version = "3.11.0"
python-implementation = "CPython"
"""
data = tomllib.loads(toml_str)
جدول تبدیل¶
TOML |
پایتون |
|---|---|
سند TOML |
dict |
رشته |
str |
عدد صحیح |
int |
float |
float (قابل پیکربندی با parse_float) |
بولی |
bool |
تاریخزمان آفستدار |
datetime.datetime (ویژگی |
تاریخزمان محلی |
datetime.datetime (ویژگی |
تاریخ محلی |
datetime.date |
زمان محلی |
datetime.time |
آرایه |
فهرست |
جدول |
dict |
جدول درونخطی |
dict |
آرایهای از جدولها |
فهرستی از دیکشنریها |