ساختار ورودی/خروجی
I/O Plugin Infrastructure
یک افزونه از دو فایل منبع و توصیف کننده .ini تشکیل شده است. فرض کنید ما می خواهیم افزونه ای برای نمایش با استفاده از matplotlib ارائه دهیم. با افزونه mpl این کار را انجام می دهیم:
skimage/io/_plugins/mpl.py
skimage/io/_plugins/mpl.iniنام فایل های .py و .ini باید مطابقت داشته باشد. در داخل فایل .ini، متا داده های افزونه ارائه می شود:
[mpl] <-- name of the plugin, may be anything
description = Matplotlib image I/O plugin
provides = imshow <-- a comma-separated list, one or more of
imshow, imsave, imread, _app_showخط "provides" تمام توابع ارائه شده توسط افزونه را لیست می کند. از آنجا که افزونه ما imshow را ارائه می دهد، باید آن را در mpl.py تعریف کنیم:
# This is mpl.py
import matplotlib.pyplot as plt
def imshow(img):
plt.imshow(img)توجه داشته باشید که به طور پیش فرض، imshow مسدود نیست، بنابراین یک تابع ویژه _app_show باید برای مسدود کردن GUI ارائه شود. ما می توانیم افزونه خود را تغییر دهیم تا به شرح زیر ارائه شود:
[mpl]
provides = imshow, _app_show# This is mpl.py
import matplotlib.pyplot as plt
def imshow(img):
plt.imshow(img)
def _app_show():
plt.show()هرگونه افزونه در فهرست _plugins پس از وارد شدن به طور خودکار توسط skimage.io بررسی می شود. می توانید تمام افزونه های سیستم خود را لیست کنید:
یا فقط مواردی که قبلاً بارگیری شده اند:
یک افزونه با استفاده از دستور use_plugin بارگیری می شود:
یا
توجه داشته باشید که اگر بیش از یک افزونه عملکرد خاصی را ارائه دهد، آخرین افزونه بارگیری شده استفاده می شود.
برای پرسش از قابلیت های یک افزونه، از plugin_info استفاده کنید:
این بخش به پایان رسید اگر سوالی در ارتباط با هر یک از بخش های بالا دارید در بخش issueها از من بپرسید.
Last updated
Was this helpful?