سيتم إطلاق BazelCon لعام 2022 في الفترة من 16 إلى 17 تشرين الثاني (نوفمبر) في نيويورك وعلى الإنترنت. التسجيل اليوم
جديد: انضم إلينا في يوم المنتدى في 15 تشرين الثاني (نوفمبر). التفاصيل والتسجيل:

سمة

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تُعتبر هذه الوحدة ذات المستوى الأعلى من أجل تحديد مخططات السمات لقاعدة أو جانب. تعرض كل دالة كائنًا يمثل مخطط سمة واحدة. يتم استخدام هذه العناصر كقيم لوسيطة attrs للنطاق rule() وaspect().

اطّلِع على صفحة "القواعد" لمزيد من المعلومات عن سمات التعريف واستخدام.

المشتركون الداعمون

قيمة منطقية

Attribute attr.bool(default=False, doc='', mandatory=False)

تُنشئ مخططًا للسمة المنطقية.

المَعلمات

المعلمة الوصف
default default = False
قيمة تلقائية لاستخدامها في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).

int

Attribute attr.int(default=0, doc='', mandatory=False, values=[])

يُنشئ مخططًا لسمة العدد الصحيح. يجب أن تكون القيمة في نطاق 32 بت الموقّع.

المَعلمات

المعلمة الوصف
default default = 0
قيمة تلقائية لاستخدامها في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
values sequence of ints; default = []
قائمة القيم المسموح بها للسمة. يتم عرض رسالة خطأ إذا تم تقديم أي قيمة أخرى.

int_list

Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc='')

تنشئ مخططًا لسمة قائمة من الأرقام الصحيحة. يجب أن يكون كل عنصر في نطاق 32 بت الموقَّع.

المَعلمات

المعلمة الوصف
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
allow_empty default = True
True إذا كانت السمة فارغة.
default sequence of ints; default = []
قيمة تلقائية للاستخدام في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.

label

Attribute attr.label(default=None, doc='', executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[])

تنشئ مخططًا لسمة التصنيف. هذه سمة اعتمادية.

تحتوي هذه السمة على قيم Label فريدة. وإذا تم توفير سلسلة بدلاً من Label، سيتم تحويلها باستخدام أداة إنشاء التصنيفات. يتم التعامل مع الأجزاء النسبية من مسار التصنيف، بما في ذلك المستودع (الذي يُحتمل أن يكون تمت إعادة تسميته) في ما يتعلق بالحزمة المستهدفة التي تم إنشاء مثيل لها.

في وقت التحليل (ضِمن دالة التنفيذ في القاعدة) وعند استرداد قيمة السمة من ctx.attr، يتم استبدال التصنيفات بـ Target المقابلة لها. يتيح لك ذلك الوصول إلى مقدّمي الخدمات التابعة الحالية التابعة.

بالإضافة إلى ملفات المصدر العادية، يُستخدم هذا النوع من السمات غالبًا للإشارة إلى أداة، مثل أداة التجميع. تُعد هذه الأدوات بمثابة تبعيات، تمامًا مثل الملفات المصدر. لتجنّب اشتراط تحديد المستخدمين لتصنيف الأداة في كل مرة يستخدمون فيها القاعدة في ملفات BUILD، يمكنك ترميز تصنيف الأداة الأساسية كقيمة default لهذه السمة. إذا أردت أيضًا منع المستخدمين من إلغاء هذا الإعداد التلقائي، يمكنك جعل السمة خاصة من خلال منحها اسمًا يبدأ بشرطة سفلية. راجِع صفحة القواعد للحصول على المزيد من المعلومات.

المَعلمات

المعلمة الوصف
default Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None، القيمة التلقائية = بلا
قيمة تلقائية لاستخدامها في حال عدم توفير أي قيمة لهذه السمة عند إنشاء قاعدة.استخدِم سلسلة أو دالة Label لتحديد قيمة تلقائية، على سبيل المثال attr.label(default = "//a:b").
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
executable default = False
صحيح إذا كانت الاعتمادية يجب أن تكون قابلة للتنفيذ. وهذا يعني أن التصنيف يجب أن يشير إلى ملف قابل للتنفيذ، أو إلى قاعدة تُخرج ملفًا تنفيذيًا. يمكنك الوصول إلى التصنيف من خلال ctx.executable.<attribute_name>.
allow_files bool; or sequence of strings; or None; default = None
مسموح باستخدام File الاستهدافات. يمكن أن تكون القيمة True أو False (تلقائي) أو قائمة بامتدادات الملفات المسموح بها (على سبيل المثال، [".cc", ".cpp"]).
allow_single_file الإعداد التلقائي = لا شيء
يشبه هذا الإعداد allow_files، مع فرض قيود على تطابق التصنيف مع ملف واحد. الوصول من خلال ctx.file.<attribute_name>.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
providers default = []
هي مقدّمات الخدمة التي يجب تقديمها بواسطة أي اعتمادية تظهر في هذه السمة.

تنسيق هذه الوسيطة هو قائمة بقوائم المزوّدين -- كائنات *Info التي يعرضها provider() (أو بالنسبة إلى المزود القديم، اسم السلسلة). يجب أن تعرض الاعتمادية جميع مقدمي الخدمة المذكورين في قائمة واحدة على الأقل من القوائم الداخلية. ولتسهيل الأمر، يمكن أيضًا أن تكون هذه الوسيطة قائمة من مستوى واحد لمقدّمي الخدمات، وفي هذه الحالة يتم تضمينها في قائمة خارجية مع عنصر واحد.

allow_rules sequence of strings; or None; default = None
يُسمح باستهدافات القواعد (اسم الصفوف). تم إيقاف العمل بهذه السياسة (تم الاحتفاظ بالتوافق فقط)، وعليك استخدام مقدّمي الخدمة بدلاً من ذلك.
cfg الإعداد التلقائي = لا شيء
ضبط السمة. يمكن أن تكون "exec" هي التي تشير إلى أن الاعتمادية تم إنشاؤها لاستخدام execution platform، أو "target"، ما يعني أن الاعتمادية تم إنشاؤها لاستخدام target platform. والمثال المعتاد على الاختلاف هو عند إنشاء تطبيقات متوافقة مع الأجهزة الجوّالة، حيث يكون target platform هو Android أو iOS في حين أن execution platform هو Linux أو macOS أو Windows. وتكون هذه المعلّمة مطلوبة إذا كانت السياسة executable "صحيحة" للحماية من إنشاء أدوات المضيف عن طريق الخطأ في الإعدادات المستهدَفة. تأثير "target" ليس دلاليًا، لذلك يجب عدم ضبط القيمة إذا كان executable خطأ، ما لم يساعد ذلك في توضيح نواياك.
aspects sequence of Aspects; التلقائي = []
الجوانب التي يجب تطبيقها على الاعتمادية أو التبعيات التي حددتها هذه السمة.

label_keyed_string_dict (تصنيف_مفتاح_سلسلة)

Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

يتم إنشاء مخطط لسمة تتضمن قاموسًا، حيث تكون المفاتيح تصنيفات وقيم هي سلاسل. هذه سمة اعتمادية.

تحتوي هذه السمة على قيم Label فريدة. وإذا تم توفير سلسلة بدلاً من Label، سيتم تحويلها باستخدام أداة إنشاء التصنيفات. يتم التعامل مع الأجزاء النسبية من مسار التصنيف، بما في ذلك المستودع (الذي يُحتمل أن يكون تمت إعادة تسميته) في ما يتعلق بالحزمة المستهدفة التي تم إنشاء مثيل لها.

في وقت التحليل (ضِمن دالة التنفيذ في القاعدة) وعند استرداد قيمة السمة من ctx.attr، يتم استبدال التصنيفات بـ Target المقابلة لها. يتيح لك ذلك الوصول إلى مقدّمي الخدمات التابعة الحالية التابعة.

المَعلمات

المعلمة الوصف
allow_empty default = True
True إذا كانت السمة فارغة.
default dict; or function; default = {}
قيمة تلقائية لاستخدامها في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.استخدِم السلاسل أو الدالة Label لتحديد القيم التلقائية، على سبيل المثال attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}).
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
allow_files bool; or sequence of strings; or None; default = None
مسموح باستخدام File الاستهدافات. يمكن أن تكون القيمة True أو False (تلقائي) أو قائمة بامتدادات الملفات المسموح بها (على سبيل المثال، [".cc", ".cpp"]).
allow_rules sequence of strings; or None; default = None
يُسمح باستهدافات القواعد (اسم الصفوف). تم إيقاف العمل بهذه السياسة (تم الاحتفاظ بالتوافق فقط)، وعليك استخدام مقدّمي الخدمة بدلاً من ذلك.
providers default = []
هي مقدّمات الخدمة التي يجب تقديمها بواسطة أي اعتمادية تظهر في هذه السمة.

تنسيق هذه الوسيطة هو قائمة بقوائم المزوّدين -- كائنات *Info التي يعرضها provider() (أو بالنسبة إلى المزود القديم، اسم السلسلة). يجب أن تعرض الاعتمادية جميع مقدمي الخدمة المذكورين في قائمة واحدة على الأقل من القوائم الداخلية. ولتسهيل الأمر، يمكن أيضًا أن تكون هذه الوسيطة قائمة من مستوى واحد لمقدّمي الخدمات، وفي هذه الحالة يتم تضمينها في قائمة خارجية مع عنصر واحد.

flags sequence of strings؛ القيمة التلقائية = []
تم إيقافها نهائيًا.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
cfg الإعداد التلقائي = لا شيء
ضبط السمة. يمكن أن تكون "exec" هي التي تشير إلى أن الاعتمادية تم إنشاؤها لاستخدام execution platform، أو "target"، ما يعني أن الاعتمادية تم إنشاؤها لاستخدام target platform. والمثال المعتاد على الاختلاف هو عند إنشاء تطبيقات متوافقة مع الأجهزة الجوّالة، حيث يكون target platform هو Android أو iOS في حين أن execution platform هو Linux أو macOS أو Windows.
aspects sequence of Aspects; التلقائي = []
الجوانب التي يجب تطبيقها على الاعتمادية أو التبعيات التي حددتها هذه السمة.

label_list (قائمة_التصنيفات)

Attribute attr.label_list(allow_empty=True, *, default=[], doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

تنشئ مخططًا لسمة قائمة التصنيفات. هذه سمة اعتمادية.

تحتوي هذه السمة على قيم Label فريدة. وإذا تم توفير سلسلة بدلاً من Label، سيتم تحويلها باستخدام أداة إنشاء التصنيفات. يتم التعامل مع الأجزاء النسبية من مسار التصنيف، بما في ذلك المستودع (الذي يُحتمل أن يكون تمت إعادة تسميته) في ما يتعلق بالحزمة المستهدفة التي تم إنشاء مثيل لها.

في وقت التحليل (ضِمن دالة التنفيذ في القاعدة) وعند استرداد قيمة السمة من ctx.attr، يتم استبدال التصنيفات بـ Target المقابلة لها. يتيح لك ذلك الوصول إلى مقدّمي الخدمات التابعة الحالية التابعة.

المَعلمات

المعلمة الوصف
allow_empty default = True
True إذا كانت السمة فارغة.
default sequence of Labels; or function، القيمة التلقائية = []
قيمة تلقائية يجب استخدامها في حال عدم توفير أي قيمة لهذه السمة عند إنشاء قاعدة.استخدِم السلاسل أو الدالة Label لتحديد القيم التلقائية، على سبيل المثال attr.label_list(default = ["//a:b", "//a:c"]).
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
allow_files bool; or sequence of strings; or None; default = None
مسموح باستخدام File الاستهدافات. يمكن أن تكون القيمة True أو False (تلقائي) أو قائمة بامتدادات الملفات المسموح بها (على سبيل المثال، [".cc", ".cpp"]).
allow_rules sequence of strings; or None; default = None
يُسمح باستهدافات القواعد (اسم الصفوف). تم إيقاف العمل بهذه السياسة (تم الاحتفاظ بالتوافق فقط)، وعليك استخدام مقدّمي الخدمة بدلاً من ذلك.
providers default = []
هي مقدّمات الخدمة التي يجب تقديمها بواسطة أي اعتمادية تظهر في هذه السمة.

تنسيق هذه الوسيطة هو قائمة بقوائم المزوّدين -- كائنات *Info التي يعرضها provider() (أو بالنسبة إلى المزود القديم، اسم السلسلة). يجب أن تعرض الاعتمادية جميع مقدمي الخدمة المذكورين في قائمة واحدة على الأقل من القوائم الداخلية. ولتسهيل الأمر، يمكن أيضًا أن تكون هذه الوسيطة قائمة من مستوى واحد لمقدّمي الخدمات، وفي هذه الحالة يتم تضمينها في قائمة خارجية مع عنصر واحد.

flags sequence of strings؛ القيمة التلقائية = []
تم إيقافها نهائيًا.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
cfg الإعداد التلقائي = لا شيء
ضبط السمة. يمكن أن تكون "exec" هي التي تشير إلى أن الاعتمادية تم إنشاؤها لاستخدام execution platform، أو "target"، ما يعني أن الاعتمادية تم إنشاؤها لاستخدام target platform. والمثال المعتاد على الاختلاف هو عند إنشاء تطبيقات متوافقة مع الأجهزة الجوّالة، حيث يكون target platform هو Android أو iOS في حين أن execution platform هو Linux أو macOS أو Windows.
aspects sequence of Aspects; التلقائي = []
الجوانب التي يجب تطبيقها على الاعتمادية أو التبعيات التي حددتها هذه السمة.

الإنتاج

Attribute attr.output(doc='', mandatory=False)

تنشئ مخططًا لسمة الإخراج (التصنيف).

تحتوي هذه السمة على قيم Label فريدة. وإذا تم توفير سلسلة بدلاً من Label، سيتم تحويلها باستخدام أداة إنشاء التصنيفات. يتم التعامل مع الأجزاء النسبية من مسار التصنيف، بما في ذلك المستودع (الذي يُحتمل أن يكون تمت إعادة تسميته) في ما يتعلق بالحزمة المستهدفة التي تم إنشاء مثيل لها.

في وقت التحليل، يمكن استرداد File المقابل باستخدام ctx.outputs.

المَعلمات

المعلمة الوصف
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).

قائمة_النتائج

Attribute attr.output_list(allow_empty=True, *, doc='', mandatory=False)

تنشئ مخططًا لسمة قائمة من النتائج.

تحتوي هذه السمة على قيم Label فريدة. وإذا تم توفير سلسلة بدلاً من Label، سيتم تحويلها باستخدام أداة إنشاء التصنيفات. يتم التعامل مع الأجزاء النسبية من مسار التصنيف، بما في ذلك المستودع (الذي يُحتمل أن يكون تمت إعادة تسميته) في ما يتعلق بالحزمة المستهدفة التي تم إنشاء مثيل لها.

في وقت التحليل، يمكن استرداد File المقابل باستخدام ctx.outputs.

المَعلمات

المعلمة الوصف
allow_empty default = True
True إذا كانت السمة فارغة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).

سلسلة

Attribute attr.string(default='', doc='', mandatory=False, values=[])

تنشئ مخططًا لسمة سلسلة.

المَعلمات

المعلمة الوصف
default string; or NativeComputedDefault; default = ''
قيمة تلقائية لاستخدامها في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
values sequence of strings; default = []
قائمة القيم المسموح بها للسمة. يتم عرض رسالة خطأ إذا تم تقديم أي قيمة أخرى.

string_dict

Attribute attr.string_dict(allow_empty=True, *, default={}, doc='', mandatory=False)

تنشئ مخططًا لسمة تحتوي على قاموس، حيث تكون المفاتيح والقيم سلاسل.

المَعلمات

المعلمة الوصف
allow_empty default = True
True إذا كانت السمة فارغة.
default default = {}
قيمة تلقائية لاستخدامها في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).

string_list

Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc='')

تنشئ مخططًا لسمة قائمة السلاسل.

المَعلمات

المعلمة الوصف
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).
allow_empty default = True
True إذا كانت السمة فارغة.
default sequence of strings; or NativeComputedDefault; default = []
قيمة تلقائية للاستخدام في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.

string_list_dict

Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc='', mandatory=False)

لإنشاء مخطط لسمة تحتوي على قاموس، حيث المفاتيح هي سلاسل والقيم هي قوائم من السلاسل.

المَعلمات

المعلمة الوصف
allow_empty default = True
True إذا كانت السمة فارغة.
default default = {}
قيمة تلقائية لاستخدامها في حال عدم تقديم قيمة لهذه السمة عند إنشاء مثيل للقاعدة.
doc default = ''
وصف للسمة التي يمكن استخراجها من خلال أدوات إنشاء المستندات.
mandatory default = False
إذا كان صحيحًا، يجب تحديد القيمة صراحةً (حتى إذا كانت تحتوي على default).