pyclbr --- پشتیبانی از مرورگر ماژول پایتون¶
کد منبع: Lib/pyclbr.py
ماژول pyclbr اطلاعات محدودی دربارهی توابع، کلاسها و متدهای تعریفشده در یک ماژول نوشتهشده به پایتون فراهم میکند. این اطلاعات برای پیادهسازی یک مرورگر ماژول کافی است. این اطلاعات بهجای ایمپورت کردن ماژول، از کد منبع پایتون استخراج میشود، بنابراین استفاده از این ماژول با کد غیرقابلاعتماد امن است. این محدودیت استفاده از این ماژول را برای ماژولهایی که به پایتون پیادهسازی نشدهاند، از جمله همه ماژولهای توسعهای استاندارد و اختیاری، غیرممکن میسازد.
- pyclbr.readmodule(module, path=None)¶
دیکشنریای بازمیگرداند که نام کلاسهای سطح ماژول را به توصیفگرهای کلاس (class descriptors) نگاشت میکند. در صورت امکان، توصیفگرهای کلاسهای پایهی ایمپورتشده نیز گنجانده میشوند. پارامتر module یک رشته حاوی نام ماژولی است که باید خوانده شود؛ ممکن است نام یک ماژول درون یک بسته باشد. اگر داده شود، path دنبالهای از مسیرهای پوشه است که به ابتدای
sys.path، که برای یافتن کد منبع ماژول استفاده میشود، پیشافزوده میشود.این تابع رابط اصلی است و فقط برای سازگاری با نسخههای پیشین حفظ شده است. این تابع یک نسخهی فیلترشده از مورد زیر را برمیگرداند.
- pyclbr.readmodule_ex(module, path=None)¶
یک درخت مبتنی بر دیکشنری برمیگرداند که شامل توصیفگرهای تابع یا کلاس برای هر تابع و کلاس تعریفشده در ماژول با دستور
defیاclassاست. دیکشنری برگرداندهشده، نام توابع و کلاسهای سطح ماژول را به توصیفگرهای آنها نگاشت میکند. اشیای تودرتو در دیکشنری children والد آنها وارد میشوند. مانند readmodule، module نام ماژول مورد نظر برای خواندن است و path به ابتدای sys.path افزوده میشود. اگر ماژولی که خوانده میشود یک بسته باشد، دیکشنری برگرداندهشده دارای کلید'__path__'است که مقدار آن فهرستی حاوی مسیر جستجوی بسته است.
اضافه شده در نسخهی 3.7: توصیفگرها برای تعریفهای تودرتو. این توصیفگرها از طریق ویژگی جدید children قابل دسترسی هستند. هر کدام یک ویژگی جدید parent دارد.
توصیفگرهای برگرداندهشده توسط این توابع، نمونههایی از کلاسهای Function و Class هستند. انتظار نمیرود کاربران نمونههایی از این کلاسها ایجاد کنند.
اشیای تابع¶
- class pyclbr.Function¶
نمونههای کلاس
Functionتوابعی را توصیف میکنند که با دستورهای def تعریف شدهاند. این نمونهها ویژگیهای زیر را دارند:- file¶
نام پروندهای که تابع در آن تعریف شده است.
- module¶
نام ماژولی که تابع توصیفشده را تعریف میکند.
- name¶
نام تابع.
- lineno¶
شمارهی سطر در پروندهای که تعریف در آن آغاز میشود.
- parent¶
برای توابع سطح بالا،
None. برای توابع تودرتو، والد.اضافه شده در نسخهی 3.7.
اشیای کلاس¶
- class pyclbr.Class¶
نمونههای کلاس
Class، کلاسهایی را توصیف میکنند که با دستورهای کلاس تعریفشدهاند. این نمونهها همان ویژگیهایFunctionرا دارند و ۲ ویژگی دیگر نیز دارند.- file¶
نام پروندهای که کلاس در آن تعریف شده است.
- module¶
نام ماژولی که کلاس توصیفشده را تعریف میکند.
- name¶
نام کلاس.
- lineno¶
شمارهی سطر در پروندهای که تعریف در آن آغاز میشود.
- parent¶
برای کلاسهای سطح بالا،
None. برای کلاسهای تودرتو، والد.اضافه شده در نسخهی 3.7.
- children¶
یک دیکشنری که نامها را به توصیفگرهایی برای توابع و کلاسهای تودرتو نگاشت میکند.
اضافه شده در نسخهی 3.7.
- super¶
فهرستی از اشیای
Classکه کلاسهای پایه مستقیم کلاس توصیفشده را توصیف میکنند. کلاسهایی که بهعنوان ابرکلاس نام برده شدهاند اما توسطreadmodule_ex()قابل کشف نیستند، بهجای اینکه بهصورت اشیایClassباشند، بهصورت رشتهای حاوی نام کلاس فهرست میشوند.