الفرق بين المراجعتين لصفحة: «Python/ConfigParser»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>configparser.ConfigParser()‎‎</code> في بايثون}}</noinclude> تعدّ هذه الكائنات المفسّر ال...'
 
لا ملخص تعديل
 
(3 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 8: سطر 8:
configparser.ConfigParser(defaults=None, dict_type=dict, allow_no_value=False, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=configparser.DEFAULTSECT, interpolation=BasicInterpolation(), converters={})
configparser.ConfigParser(defaults=None, dict_type=dict, allow_no_value=False, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=configparser.DEFAULTSECT, interpolation=BasicInterpolation(), converters={})
</syntaxhighlight>
</syntaxhighlight>
== المعاملات ==
== المعاملات ==
=== defaults ===


=== ‎<code>defaults</code> ===
معامل اختياري، تهيّئ قيمته إلى القاموس الذي يحتوي على القيم الافتراضية الداخلية.  
معامل اختياري، تهيّئ قيمته إلى القاموس الذي يحتوي على القيم الافتراضية الداخلية.  


=== dict_type ===
=== <code>dict_type</code> ===
معامل اختياري، يُستخدم في إنشاء كائنات القاموس لقائمة الأقسام، وللخيارات التي ينطوي عليها القسم، وللقيم الافتراضية.
معامل اختياري، يُستخدم في إنشاء كائنات القاموس لقائمة الأقسام، وللخيارات التي ينطوي عليها القسم، وللقيم الافتراضية.


=== delimiters ===
=== <code>delimiters</code> ===
معامل اختياري يُستخدم كمجموعة السلاسل النصية الفرعية التي تقسم المفاتيح عن القيم.
معامل اختياري يُستخدم كمجموعة السلاسل النصية الفرعية التي تقسم المفاتيح عن القيم.


=== comment_prefixes ===
=== <code>comment_prefixes</code> ===
معامل اختياري، يُستخدم كمجموعة السلاسل النصية الفرعية التي تسبق التعليقات التي تكتب في أسطر منفردة. ويجدر التنبيه إلى إمكانية إزاحة التعليقات حسب الحاجة.
معامل اختياري، يُستخدم كمجموعة السلاسل النصية الفرعية التي تسبق التعليقات التي تكتب في أسطر منفردة. ويجدر التنبيه إلى إمكانية إزاحة التعليقات حسب الحاجة.


=== inline_comment_prefixes ===
=== <code>inline_comment_prefixes</code> ===
معامل اختياري، ويُستخدم كمجموعة السلاسل النصية التي تسبق التعليقات التي تأتي في الأسطر غير الفارغة.
معامل اختياري، ويُستخدم كمجموعة السلاسل النصية التي تسبق التعليقات التي تأتي في الأسطر غير الفارغة.


=== strict ===
=== <code>strict</code> ===
القيمة الافتراضية لهذا المعامل هي True، ويعني ذلك أنّ المحلل لن يسمح بتكرار عناوين الأقسام أو الخيارات عند قراءة الإعدادات من مصدر واحد (ملف أو سلسلة نصية أو قاموس) وذلك بإطلاق الاستثناء DuplicateSectionError أو الاستثناء DuplicateOptionError.
القيمة الافتراضية لهذا المعامل هي <code>True</code>، ويعني ذلك أنّ المحلل لن يسمح بتكرار عناوين الأقسام أو الخيارات عند قراءة الإعدادات من مصدر واحد (ملف أو سلسلة نصية أو قاموس) وذلك بإطلاق الاستثناء <code>[[Python/configparser#.D8.A7.D9.84.D8.A7.D8.B3.D8.AA.D8.AB.D9.86.D8.A7.D8.A1 configparser.DuplicateSectionError|DuplicateSectionError]]</code> أو الاستثناء <code>[[Python/configparser#.D8.A7.D9.84.D8.A7.D8.B3.D8.AA.D8.AB.D9.86.D8.A7.D8.A1 configparser.DuplicateOptionError|DuplicateOptionError]]</code>.


=== empty_lines_in_values ===
=== <code>empty_lines_in_values</code> ===
إن أخذ هذا المعامل القيمة False (القيمة الافتراضية هي True) سيُعدّ السطر الفارغ علامةً على نهاية الخيار، وإلّا فإنّ الأسطر الفارغة في قيم الخيارات متعددة الأسطر تبقى جزءًا من قيمة الخيار.
إن أخذ هذا المعامل القيمة <code>False</code> (القيمة الافتراضية هي <code>True</code>) سيُعدّ السطر الفارغ علامةً على نهاية الخيار، وإلّا فإنّ الأسطر الفارغة في قيم الخيارات متعددة الأسطر تبقى جزءًا من قيمة الخيار.


=== allow_no_value ===
=== <code>allow_no_value</code> ===
إن أخذ هذا المعامل القيمة True (القيمة الافتراضية: False) فيمكن استخدام الخيارات دون تعيين قيمة لها، وتكون قيمة هذه الخيارات هي None وتُسَلسَل هذه الخيارات من دون الفاصل الذي يأتي في نهايتها.
إن أخذ هذا المعامل القيمة <code>True</code> (القيمة الافتراضية: <code>False</code>) فيمكن استخدام الخيارات دون تعيين قيمة لها، وتكون قيمة هذه الخيارات هي <code>None</code> وتُسَلسَل هذه الخيارات من دون الفاصل الذي يأتي في نهايتها.


=== default_section ===
=== <code>default_section</code> ===
معامل اختياري يحدّد اسم القسم الخاص الذي سيحمل القيم الافتراضية للأقسام الباقية ولأغراض استيفاء القيم (عادة ما يحمل الاسم "DEFAULT"). يمكن الحصول على قيمة هذا المعامل أو تغييرها في وقت التشغيل باستخدام الخاصية default_section.
معامل اختياري يحدّد اسم القسم الخاص الذي سيحمل القيم الافتراضية للأقسام الباقية ولأغراض استيفاء القيم (عادة ما يحمل الاسم <code>"DEFAULT"</code>). يمكن الحصول على قيمة هذا المعامل أو تغييرها في وقت التشغيل باستخدام الخاصية <code>default_section</code>.


=== interpolation ===
=== <code>interpolation</code> ===
يمكن تخصيص طريقة استيفاء القيم عن طريق تقديم متحكّم خاص لهذا المعامل. يمكن استخدام القيمة None لإيقاف عملية الاستيفاء تمامًا. أما القيمة ExtendedInterpolation()‎ فتقدّم طريقة متقدّمة في استيفاء القيم مستوحاة من الحزمة zc.buildout. راجع قسم استيفاء القيم للاطلاع على المزيد من المعلومات.
يمكن تخصيص طريقة استيفاء القيم عن طريق تقديم متحكّم خاص لهذا المعامل. يمكن استخدام القيمة None لإيقاف عملية الاستيفاء تمامًا. أما القيمة <code>[[Python/configparser#.D8.A7.D9.84.D8.B5.D9.86.D9.81 configparser.ExtendedInterpolation|ExtendedInterpolation()]]</code> فتقدّم طريقة متقدّمة في استيفاء القيم مستوحاة من الحزمة <code>[https://pypi.org/project/zc.buildout/ zc.buildout]</code>. راجع [[Python/configparser#.D8.A7.D8.B3.D8.AA.D9.8A.D9.81.D8.A7.D8.A1 .D8.A7.D9.84.D9.82.D9.8A.D9.85 Interpolation of values|قسم استيفاء القيم]] للاطلاع على المزيد من المعلومات.


تمرّر جميع أسماء الخيارات المستخدمة في عملية الاستيفاء إلى المعامل optionxform()‎ كما هو الحال مع جميع الإشارات إلى أسماء الخيارات. فعلى سبيل المثال عند استخدام التابع optionxform()‎ بالطريقة الافتراضية (والتي تحوّل أسماء الخيارات إلى أحرف صغيرة) فإنّ القيمتين ‎foo %(bar)s و ‎foo %(BAR)s متساويتان.
تمرّ جميع أسماء الخيارات المستخدمة في عملية الاستيفاء عبر التابع <code>[[Python/ConfigParser/optionxform|optionxform()]]</code>‎ كما هو الحال مع جميع الإشارات إلى أسماء الخيارات. فعلى سبيل المثال عند استخدام التابع <code>[[Python/ConfigParser/optionxform|optionxform()]]</code>‎ بالطريقة الافتراضية (والتي تحوّل أسماء الخيارات إلى أحرف صغيرة) فإنّ القيمتين ‎<code>foo %(bar)s</code> و <code>‎foo %(BAR)s</code> متساويتان.
 
=== converters ===
معامل اختياري يجب أن تكون قيمته قاموسًا يمثّل كل مفتاح فيه اسم محول لأنواع البيانات، وكل قيمة فيه كائنًا قابلًا للاستدعاء callable ينفّذ عملية تحويل من السلاسل النصية إلى نوع البيانات المطلوب. يحصل كل محوّل على التابع get*()‎ المقابل في كائنات المفسّر وفي روابط الأقسام section proxies.


=== <code>converters</code> ===
معامل اختياري يجب أن تكون قيمته قاموسًا يمثّل كل مفتاح فيه اسم محول لأنواع البيانات، وكل قيمة فيه كائنًا قابلًا للاستدعاء callable ينفّذ عملية تحويل من السلاسل النصية إلى نوع البيانات المطلوب. يحصل كل محوّل على التابع <code>get*()</code>‎ المقابل في كائنات المفسّر وفي روابط الأقسام section proxies.


'''ملاحظات''':
'''ملاحظات''':


* أصبح نوع القاموس الافتراضي في المعامل dict_type هو القاموس المرتب collections.OrderedDict.
* أصبح نوع القاموس الافتراضي في المعامل <code>dict_type</code> هو القاموس المرتب [[Python/OrderedDict|collections.OrderedDict]].
* أضيفت المعاملات allow_no_value و delimiter و comment_prefixes و strict و empty_lines_in_values و default_section و interpolation في الإصدار 3.2 من بايثون.
* أضيفت المعاملات <code>allow_no_value</code> و <code>delimiter</code> و <code>comment_prefixes</code> و <code>strict</code> و <code>empty_lines_in_values</code> و <code>default_section</code> و <code>interpolation</code> في الإصدار 3.2 من بايثون.
* أضيف المعامل converters في الإصدار 3.5 من بايثون.
* أضيف المعامل <code>converters</code> في الإصدار 3.5 من بايثون.
* أصبح المُعامل defaults يُقرأ بواسطة التابع read_dict()‎ في الإصدار 3.7 من بايثون، لتكون طريقة عمله متناسقة في جميع المراحل التي يمرّ بها المفسر، حيث تحوّل المفاتيح والقيم غير النصية إلى سلاسلة نصية ضمنيًّا.
* أصبح المُعامل <code>defaults</code> يُقرأ بواسطة التابع <code>[[Python/ConfigParser/read dict|read_dict()]]</code>‎ في الإصدار 3.7 من بايثون، لتكون طريقة عمله متناسقة في جميع المراحل التي يمرّ بها المفسر، حيث تحوّل المفاتيح والقيم غير النصية إلى سلاسل نصية ضمنيًّا.
* أصبح نوع القاموس الافتراضي في المعامل dict_type هو القاموس العادي dict، وذلك لأنّه أصبح يحتفظ بترتيب إدراج العناصر فيه.
* أصبح نوع القاموس الافتراضي في المعامل <code>dict_type</code> هو القاموس العادي <code>[[Python/dict|dict]]</code>، وذلك لأنّه أصبح يحتفظ بترتيب إدراج العناصر فيه.


== توابع الصنف ConfigParser ==
== توابع الصنف ConfigParser ==


=== التابع <code>[[Python/ConfigParser/defaults|defaults()‎]]</code> ===
يعيد التابع قاموسًا يتضمّن القيم الافتراضية على مستوى نسخة الصنف instance-wide defaults.
=== التابع <code>[[Python/ConfigParser/sections|sections()‎]]</code> ===
يعيد التابع قائمة بالأقسام المتاحة، ولا يكون القسم default ضمن هذه القائمة.
=== التابع <code>[[Python/ConfigParser/add_section|add_section()‎]]</code> ===
يضيف التابع قسمًا يحمل الاسم المعطى إلى نسخة الصنف <code>ConfigParser</code>.
=== التابع <code>[[Python/ConfigParser/has_section|has_section()‎]]</code> ===
يتحقّق التابع من وجود القسم المعطى في ملف الإعدادات.
=== التابع <code>[[Python/ConfigParser/options|options()‎]]</code> ===
يعيد التابع قائمة بالخيارات المتاحة في القسم المحدد.
=== التابع <code>[[Python/ConfigParser/has_option|has_option()‎]]</code> ===
يتحقق التابع من وجود الخيار المعطى ضمن القسم المحدد.
=== التابع <code>[[Python/ConfigParser/read|read()‎]]</code> ===
يحاول التابع قراءة وتفسير مكرِّر iterable من أسماء الملفات ويعيد قائمة بأسماء الملفات التي جرى تفسيرها بنجاح.
=== التابع <code>[[Python/ConfigParser/read_file|read_file()‎]]</code> ===
يقرأ التابع ويفسّر الإعدادات من المكرِّر iterable المعطى.
=== التابع <code>[[Python/ConfigParser/read_string|read_string()‎]]</code> ===
يفسّر التابع الإعدادات من [[Python/str|سلسلة نصية]].
=== التابع <code>[[Python/ConfigParser/read_dict|read_dict()‎]]</code> ===
يحمّل التابع الإعدادات من أي كائن يوفّر تابعًا شبيهًا بالتابع <nowiki/>[[Python/dict/items|<code>items()</code>‎]] في كائنات <code>[[Python/dict|dict]]</code>. 
=== التابع <code>[[Python/ConfigParser/get|get()‎]]</code> ===
يجلب التابع الخيار المحدّد من القسم المعطى.
=== التابع <code>[[Python/ConfigParser/getint|getint()‎]]</code> ===
تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى <nowiki/>[[Python/int|عدد صحيح]].
=== التابع <code>[[Python/ConfigParser/getfloat|getfloat()‎]]</code> ===
تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى <nowiki/>[[Python/float|عدد عشري ذي فاصلة عائمة]].
=== التابع <code>[[Python/ConfigParser/getboolean|getboolean()‎]]</code> ===
تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى <nowiki/>[[Python/boolean|قيمة منطقية (بوليانية)]].
=== التابع <code>[[Python/ConfigParser/items|items()‎]]</code> ===
يعيد التابع الخيارات المنطوية تحت القسم المعطى.
=== التابع <code>[[Python/ConfigParser/set|set()‎]]</code> ===
=== التابع <code>[[Python/ConfigParser/write|write()‎]]</code> ===
يكتب التابع تمثيلًا للإعدادات في كائن الملف المعطى.
=== التابع <code>[[Python/ConfigParser/remove_option|remove_option()‎]]</code> ===
يحذف التابع القسم المعطى من ملف الإعدادات.
=== التابع <code>[[Python/ConfigParser/remove_section|remove_section()‎]]</code> ===
يحذف التابع القسم المحدّد من ملف الإعدادات.
=== التابع <code>[[Python/ConfigParser/optionxform|optionxform()‎]]</code> ===
يحوّل التابع اسم الخيار المعطى وكما هو موجود في ملف الإعدادات أو كما هو ممرّر إلى التابع عن طريق الشيفرة التي يكتبها المستخدم إلى الصيغة التي يجب استخدامها في البنية الداخلية لملفات الإعدادات.
=== التابع <code>[[Python/ConfigParser/readfp|readfp()‎]]</code> ===
يقرأ التابع ملفات الإعدادات. هذا التابع مهمل من الإصدار 3.2 من بايثون.


== انظر أيضًا ==
== انظر أيضًا ==


* الصنف <code>RawConfingParser</code>:  
* الصنف <code>[[Python/RawConfigParser|RawConfingParser]]</code>:   النسخة القديمة من الصنف <code>ConfigParser</code>.


== مصادر ==
== مصادر ==
[https://docs.python.org/3/library/configparser.html#configparser-objects صفحة Configuration file parser في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/configparser.html#configparser-objects صفحة Configuration file parser في توثيق بايثون الرسمي.]
 
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Modules]]
[[تصنيف:Python Modules]]

المراجعة الحالية بتاريخ 19:38، 30 نوفمبر 2018


تعدّ هذه الكائنات المفسّر الرئيسي لملفات الإعدادات.

البنية العامة

configparser.ConfigParser(defaults=None, dict_type=dict, allow_no_value=False, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=configparser.DEFAULTSECT, interpolation=BasicInterpolation(), converters={})

المعاملات

defaults

معامل اختياري، تهيّئ قيمته إلى القاموس الذي يحتوي على القيم الافتراضية الداخلية.

dict_type

معامل اختياري، يُستخدم في إنشاء كائنات القاموس لقائمة الأقسام، وللخيارات التي ينطوي عليها القسم، وللقيم الافتراضية.

delimiters

معامل اختياري يُستخدم كمجموعة السلاسل النصية الفرعية التي تقسم المفاتيح عن القيم.

comment_prefixes

معامل اختياري، يُستخدم كمجموعة السلاسل النصية الفرعية التي تسبق التعليقات التي تكتب في أسطر منفردة. ويجدر التنبيه إلى إمكانية إزاحة التعليقات حسب الحاجة.

inline_comment_prefixes

معامل اختياري، ويُستخدم كمجموعة السلاسل النصية التي تسبق التعليقات التي تأتي في الأسطر غير الفارغة.

strict

القيمة الافتراضية لهذا المعامل هي True، ويعني ذلك أنّ المحلل لن يسمح بتكرار عناوين الأقسام أو الخيارات عند قراءة الإعدادات من مصدر واحد (ملف أو سلسلة نصية أو قاموس) وذلك بإطلاق الاستثناء DuplicateSectionError أو الاستثناء DuplicateOptionError.

empty_lines_in_values

إن أخذ هذا المعامل القيمة False (القيمة الافتراضية هي True) سيُعدّ السطر الفارغ علامةً على نهاية الخيار، وإلّا فإنّ الأسطر الفارغة في قيم الخيارات متعددة الأسطر تبقى جزءًا من قيمة الخيار.

allow_no_value

إن أخذ هذا المعامل القيمة True (القيمة الافتراضية: False) فيمكن استخدام الخيارات دون تعيين قيمة لها، وتكون قيمة هذه الخيارات هي None وتُسَلسَل هذه الخيارات من دون الفاصل الذي يأتي في نهايتها.

default_section

معامل اختياري يحدّد اسم القسم الخاص الذي سيحمل القيم الافتراضية للأقسام الباقية ولأغراض استيفاء القيم (عادة ما يحمل الاسم "DEFAULT"). يمكن الحصول على قيمة هذا المعامل أو تغييرها في وقت التشغيل باستخدام الخاصية default_section.

interpolation

يمكن تخصيص طريقة استيفاء القيم عن طريق تقديم متحكّم خاص لهذا المعامل. يمكن استخدام القيمة None لإيقاف عملية الاستيفاء تمامًا. أما القيمة ExtendedInterpolation() فتقدّم طريقة متقدّمة في استيفاء القيم مستوحاة من الحزمة zc.buildout. راجع قسم استيفاء القيم للاطلاع على المزيد من المعلومات.

تمرّ جميع أسماء الخيارات المستخدمة في عملية الاستيفاء عبر التابع optionxform()‎ كما هو الحال مع جميع الإشارات إلى أسماء الخيارات. فعلى سبيل المثال عند استخدام التابع optionxform()‎ بالطريقة الافتراضية (والتي تحوّل أسماء الخيارات إلى أحرف صغيرة) فإنّ القيمتين ‎foo %(bar)s و ‎foo %(BAR)s متساويتان.

converters

معامل اختياري يجب أن تكون قيمته قاموسًا يمثّل كل مفتاح فيه اسم محول لأنواع البيانات، وكل قيمة فيه كائنًا قابلًا للاستدعاء callable ينفّذ عملية تحويل من السلاسل النصية إلى نوع البيانات المطلوب. يحصل كل محوّل على التابع get*()‎ المقابل في كائنات المفسّر وفي روابط الأقسام section proxies.

ملاحظات:

  • أصبح نوع القاموس الافتراضي في المعامل dict_type هو القاموس المرتب collections.OrderedDict.
  • أضيفت المعاملات allow_no_value و delimiter و comment_prefixes و strict و empty_lines_in_values و default_section و interpolation في الإصدار 3.2 من بايثون.
  • أضيف المعامل converters في الإصدار 3.5 من بايثون.
  • أصبح المُعامل defaults يُقرأ بواسطة التابع read_dict()‎ في الإصدار 3.7 من بايثون، لتكون طريقة عمله متناسقة في جميع المراحل التي يمرّ بها المفسر، حيث تحوّل المفاتيح والقيم غير النصية إلى سلاسل نصية ضمنيًّا.
  • أصبح نوع القاموس الافتراضي في المعامل dict_type هو القاموس العادي dict، وذلك لأنّه أصبح يحتفظ بترتيب إدراج العناصر فيه.

توابع الصنف ConfigParser

التابع defaults()‎

يعيد التابع قاموسًا يتضمّن القيم الافتراضية على مستوى نسخة الصنف instance-wide defaults.

التابع sections()‎

يعيد التابع قائمة بالأقسام المتاحة، ولا يكون القسم default ضمن هذه القائمة.

التابع add_section()‎

يضيف التابع قسمًا يحمل الاسم المعطى إلى نسخة الصنف ConfigParser.

التابع has_section()‎

يتحقّق التابع من وجود القسم المعطى في ملف الإعدادات.

التابع options()‎

يعيد التابع قائمة بالخيارات المتاحة في القسم المحدد.

التابع has_option()‎

يتحقق التابع من وجود الخيار المعطى ضمن القسم المحدد.

التابع read()‎

يحاول التابع قراءة وتفسير مكرِّر iterable من أسماء الملفات ويعيد قائمة بأسماء الملفات التي جرى تفسيرها بنجاح.

التابع read_file()‎

يقرأ التابع ويفسّر الإعدادات من المكرِّر iterable المعطى.

التابع read_string()‎

يفسّر التابع الإعدادات من سلسلة نصية.

التابع read_dict()‎

يحمّل التابع الإعدادات من أي كائن يوفّر تابعًا شبيهًا بالتابع items() في كائنات dict

التابع get()‎

يجلب التابع الخيار المحدّد من القسم المعطى.

التابع getint()‎

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد صحيح.

التابع getfloat()‎

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد عشري ذي فاصلة عائمة.

التابع getboolean()‎

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى قيمة منطقية (بوليانية).

التابع items()‎

يعيد التابع الخيارات المنطوية تحت القسم المعطى.

التابع set()‎

التابع write()‎

يكتب التابع تمثيلًا للإعدادات في كائن الملف المعطى.

التابع remove_option()‎

يحذف التابع القسم المعطى من ملف الإعدادات.

التابع remove_section()‎

يحذف التابع القسم المحدّد من ملف الإعدادات.

التابع optionxform()‎

يحوّل التابع اسم الخيار المعطى وكما هو موجود في ملف الإعدادات أو كما هو ممرّر إلى التابع عن طريق الشيفرة التي يكتبها المستخدم إلى الصيغة التي يجب استخدامها في البنية الداخلية لملفات الإعدادات.

التابع readfp()‎

يقرأ التابع ملفات الإعدادات. هذا التابع مهمل من الإصدار 3.2 من بايثون.

انظر أيضًا

  • الصنف RawConfingParser: النسخة القديمة من الصنف ConfigParser.

مصادر