# أدوات

## إعداد التسجيل[[huggingface_hub.utils.logging.get_verbosity]]

يوفر حزمة `huggingface_hub` أداة `logging` للتحكم في مستوى التسجيل الخاص بالحزمة نفسها. يمكنك استيرادها على النحو التالي:

```py
from huggingface_hub import logging
```

ثم، يمكنك تحديد مستوى التفصيل لتحديث كمية السجلات التي ستشاهدها:

```python
from huggingface_hub import logging

logging.set_verbosity_error()
logging.set_verbosity_warning()
logging.set_verbosity_info()
logging.set_verbosity_debug()

logging.set_verbosity(...)
```

يجب فهم المستويات على النحو التالي:

- `error`: عرض السجلات الحرجة المتعلقة بالاستخدام فقط، والتي قد تؤدي إلى خطأ أو سلوك غير متوقع.
- `warning`: يعرض سجلات ليست حرجة، لكن الاستخدام قد يؤدي إلى سلوك غير مقصود. بالإضافة إلى ذلك، قد يتم عرض سجلات معلوماتية مهمة.
- `info`: يعرض معظم السجلات، بما في ذلك بعض التسجيلات التفصيلية حول ما يحدث في الخلفية. إذا كان هناك شيء يعمل بطريقة غير متوقعة، فننصح بتغيير مستوى التفصيل إلى هذا المستوى للحصول على مزيد من المعلومات.
- `debug`: يعرض جميع السجلات، بما في ذلك بعض السجلات الداخلية التي قد تُستخدم لتتبع ما يحدث بالضبط في الخلفية.

#### huggingface_hub.utils.logging.get_verbosity[[huggingface_hub.utils.logging.get_verbosity]]

```python
huggingface_hub.utils.logging.get_verbosity()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L103)

**يعيد:**

مستوى التسجيل، على سبيل المثال `huggingface_hub.logging.DEBUG` و`huggingface_hub.logging.INFO`.

إرجاع المستوى الحالي لسجل الجذر الخاص بـ HuggingFace Hub.

> [!TIP]
> تتوفر مستويات التسجيل التالية في HuggingFace Hub:
>
> - `huggingface_hub.logging.CRITICAL`, `huggingface_hub.logging.FATAL` - `huggingface_hub.logging.ERROR` - `huggingface_hub.logging.WARNING`, `huggingface_hub.logging.WARN` - `huggingface_hub.logging.INFO` - `huggingface_hub.logging.DEBUG`

#### huggingface_hub.utils.logging.set_verbosity[[huggingface_hub.utils.logging.set_verbosity]]

```python
huggingface_hub.utils.logging.set_verbosity(verbosity: int)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L122)

**المعاملات:**

verbosity (`int`) : مستوى التسجيل، مثل `huggingface_hub.logging.DEBUG` و`huggingface_hub.logging.INFO`.

يحدد مستوى المسجّل الجذري (root logger) الخاص بـ HuggingFace Hub.

#### huggingface_hub.utils.logging.set_verbosity_info[[huggingface_hub.utils.logging.set_verbosity_info]]

```python
huggingface_hub.utils.logging.set_verbosity_info()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L134)

يحدد مستوى التفصيل إلى `logging.INFO`.

#### huggingface_hub.utils.logging.set_verbosity_debug[[huggingface_hub.utils.logging.set_verbosity_debug]]

```python
huggingface_hub.utils.logging.set_verbosity_debug()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L148)

يحدد مستوى التفصيل إلى `logging.DEBUG`.

#### huggingface_hub.utils.logging.set_verbosity_warning[[huggingface_hub.utils.logging.set_verbosity_warning]]

```python
huggingface_hub.utils.logging.set_verbosity_warning()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L141)

يحدد مستوى التفصيل إلى `logging.WARNING`.

#### huggingface_hub.utils.logging.set_verbosity_error[[huggingface_hub.utils.logging.set_verbosity_error]]

```python
huggingface_hub.utils.logging.set_verbosity_error()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L155)

يحدد مستوى التفصيل إلى `logging.ERROR`.

#### huggingface_hub.utils.logging.disable_propagation[[huggingface_hub.utils.logging.disable_propagation]]

```python
huggingface_hub.utils.logging.disable_propagation()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L162)

تعطيل انتشار مخرجات سجلات المكتبة. لاحظ أن انتشار السجلات معطّل افتراضيًا.

#### huggingface_hub.utils.logging.enable_propagation[[huggingface_hub.utils.logging.enable_propagation]]

```python
huggingface_hub.utils.logging.enable_propagation()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L170)

تفعيل انتشار مخرجات سجلات المكتبة. يُرجى تعطيل المُعالِج الافتراضي الخاص بـ HuggingFace Hub لمنع تسجيل السجلات مرتين إذا تم تكوين المُسجِّل الجذري.

### طرق مساعدة خاصة بالمستودع[[huggingface_hub.utils.logging.get_logger]]

تتعلق الطرق المعروضة أدناه بتعديل الوحدات من مكتبة `huggingface_hub` نفسها. لا ينبغي أن يكون استخدام هذه الطرق ضرورياً إذا كنت تستخدم `huggingface_hub` ولا تقوم بتعديلها.

#### huggingface_hub.utils.logging.get_logger[[huggingface_hub.utils.logging.get_logger]]

```python
huggingface_hub.utils.logging.get_logger(name: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/logging.py#L78)

**المعاملات:**

name (`str`، *اختياري*) : اسم السجّال المطلوب، وعادةً ما يكون اسم الملف

يعيد مسجلاً (logger) بالاسم المحدد. لا يُفترض أن يصل مستخدمو المكتبة إلى هذه الدالة مباشرة.

مثال:

```python
>>> from huggingface_hub import logging

>>> logger = logging.get_logger(__name__)
>>> logging.set_verbosity_info()
```

## تهيئة أشرطة التقدم

تُعدّ أشرطة التقدّم أداةً مفيدةً لعرض المعلومات على المستخدم أثناء تنفيذ مهمة تستغرق وقتاً طويلاً (مثل تنزيل الملفات أو رفعها). يوفّر `huggingface_hub` غلافًا لـ `tqdm` لعرض أشرطة التقدّم بطريقة متّسقة عبر المكتبة.

بشكل افتراضي، تكون أشرطة التقدم مفعّلة. يمكنك تعطيلها على مستوى النظام عن طريق تعيين متغير البيئة `HF_HUB_DISABLE_PROGRESS_BARS`. كما يمكنك تفعيلها أو تعطيلها باستخدام [enable_progress_bars()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.utils.enable_progress_bars) و [disable_progress_bars](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.utils.disable_progress_bars). إذا تم تعيين متغير البيئة، فإن له الأولوية على الدوال المساعدة.

```py
>>> from huggingface_hub import snapshot_download
>>> from huggingface_hub.utils import are_progress_bars_disabled, disable_progress_bars, enable_progress_bars

>>> # Disable progress bars globally
>>> disable_progress_bars()

>>> # Progress bar will not be shown !
>>> snapshot_download("gpt2")

>>> are_progress_bars_disabled()
True

>>> # Re-enable progress bars globally
>>> enable_progress_bars()
```

### التحكم في أشرطة التقدم الخاصة بالمجموعات

يمكنك أيضًا تفعيل أو تعطيل أشرطة التقدم لمجموعات محددة. يتيح لك ذلك إدارة ظهور أشرطة التقدم بشكل أكثر تفصيلًا داخل أجزاء مختلفة من تطبيقك أو مكتبتك. عند تعطيل شريط التقدم لمجموعة معينة، تتأثر جميع المجموعات الفرعية التابعة لها أيضًا ما لم يتم تجاوز ذلك صراحةً.

```py
# Disable progress bars for a specific group
>>> disable_progress_bars("peft.foo")
>>> assert not are_progress_bars_disabled("peft")
>>> assert not are_progress_bars_disabled("peft.something")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert are_progress_bars_disabled("peft.foo.bar")

# Re-enable progress bars for a subgroup
>>> enable_progress_bars("peft.foo.bar")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert not are_progress_bars_disabled("peft.foo.bar")

# Use groups with tqdm
# No progress bar for `name="peft.foo"`
>>> for _ in tqdm(range(5), name="peft.foo"):
...     pass

# Progress bar will be shown for `name="peft.foo.bar"`
>>> for _ in tqdm(range(5), name="peft.foo.bar"):
...     pass
100%|███████████████████████████████████████| 5/5 [00:00<00:00, 117817.53it/s]
```

### are_progress_bars_disabled[[huggingface_hub.utils.are_progress_bars_disabled]]

#### huggingface_hub.utils.are_progress_bars_disabled[[huggingface_hub.utils.are_progress_bars_disabled]]

```python
huggingface_hub.utils.are_progress_bars_disabled(name: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/tqdm.py#L191)

**المعاملات:**

name (`str`، *اختياري*) : اسم المجموعة التي سيتم فحصها؛ إذا كانت None، يتم فحص الإعداد العام.

**يعيد:** `bool`

صحيح إذا كانت أشرطة التقدم معطّلة، وإلا فخطأ.

تحقق مما إذا كانت أشرطة التقدم معطّلة على مستوى النظام أو لمجموعة محددة.

تعيد هذه الدالة ما إذا كانت أشرطة التقدم معطّلة لمجموعة معينة أو على مستوى النظام ككل. فهي تفحص متغير البيئة `HF_HUB_DISABLE_PROGRESS_BARS` أولاً، ثم الإعدادات البرمجية.

### disable_progress_bars[[huggingface_hub.utils.disable_progress_bars]]

#### huggingface_hub.utils.disable_progress_bars[[huggingface_hub.utils.disable_progress_bars]]

```python
huggingface_hub.utils.disable_progress_bars(name: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/tqdm.py#L109)

**المعاملات:**

name (`str`، *اختياري*) : اسم المجموعة التي سيتم تعطيل أشرطة التقدم لها. إذا كانت القيمة None، فسيتم تعطيل أشرطة التقدم على مستوى النظام بالكامل.

**يرفع:** ``Warning``

- ``Warning`` -- إذا كان متغير البيئة يمنع التغييرات.

تعطيل أشرطة التقدم إما على مستوى النظام أو لمجموعة محددة.

تحديث حالة أشرطة التقدم بناءً على اسم المجموعة. إذا لم يُقدَّم اسم للمجموعة، يتم تعطيل جميع أشرطة التقدم. تحترم هذه العملية الإعداد الخاص بمتغير البيئة `HF_HUB_DISABLE_PROGRESS_BARS`.

يعمل كاستدعاء عادي وكإدارة سياق: disable_progress_bars()           # يُعطّل حتى enable_progress_bars()
with disable_progress_bars():     # يُعطّل ضمن الكتلة، ويُعيد التفعيل عند الخروج
...

### enable_progress_bars[[huggingface_hub.utils.enable_progress_bars]]

#### huggingface_hub.utils.enable_progress_bars[[huggingface_hub.utils.enable_progress_bars]]

```python
huggingface_hub.utils.enable_progress_bars(name: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/tqdm.py#L159)

**المعاملات:**

name (`str`، *اختياري*) : اسم المجموعة التي سيتم تفعيل أشرطة التقدم لها. إذا كانت القيمة None، فسيتم تفعيل أشرطة التقدم على مستوى النظام بالكامل.

**يرفع:** ``Warning``

- ``Warning`` -- إذا كان متغير البيئة يمنع التغييرات.

فعّل أشرطة التقدم إما على مستوى النظام أو لمجموعة محددة.

تقوم هذه الدالة بتمكين أشرطة التقدم للمجموعة المحددة أو على مستوى النظام إذا لم تُحدد مجموعة. وتخضع هذه العملية لإعداد البيئة `HF_HUB_DISABLE_PROGRESS_BARS`.

## تهيئة الخلفية HTTP[[huggingface_hub.set_client_factory]]

> [!TIP]
> في `huggingface_hub` الإصدار v0.x، كانت طلبات HTTP تُعالَج باستخدام `requests`، وكان يتم تكوين الإعدادات عبر `configure_http_backend`. وبما أننا نستخدم الآن `httpx2`، فإن آلية التكوين تعمل بشكل مختلف: يجب عليك توفير دالة مصنع (factory function) لا تستقبل أي معاملات وتعيد `httpx2.Client`. يمكنك مراجعة [التنفيذ الافتراضي هنا](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py) لمعرفة المعاملات المستخدمة افتراضيًا.

في بعض الإعدادات، قد تحتاج إلى التحكم في كيفية إرسال طلبات HTTP، على سبيل المثال عند العمل خلف وكيل (proxy). تتيح لك مكتبة `huggingface_hub` تكوين هذا الإعداد على مستوى عام باستخدام [set_client_factory()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.set_client_factory). بعد التكوين، ستستخدم جميع الطلبات الموجهة إلى Hub إعداداتك المخصصة. وبما أن `huggingface_hub` يعتمد على `httpx2.Client` في الخلفية، يمكنك الاطلاع على [توثيق `httpx2`](https://httpx2.pydantic.dev/advanced/clients/) لمعرفة التفاصيل حول المعلمات المتاحة.

إذا كنت تبني مكتبة من طرف ثالث وتحتاج إلى إرسال طلبات مباشرة إلى Hub، فاستخدم [get_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_session) للحصول على عميل `httpx2` مُهيأ بشكل صحيح. استبدل أي استدعاءات مباشرة لـ `httpx2.get(...)` بـ `get_session().get(...)` لضمان السلوك الصحيح.

#### huggingface_hub.set_client_factory[[huggingface_hub.set_client_factory]]

```python
huggingface_hub.set_client_factory(client_factory: Callable)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py#L372)

اضبط مصنع عميل HTTP الذي سيستخدمه `huggingface_hub`.

مصنع العميل (client factory) هو طريقة تُرجع كائن `httpx2.Client`. عند أول استدعاء لـ [get_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_session)، سيُستخدم مصنع العميل لإنشاء كائن `httpx2.Client` جديد سيُشارك بين جميع الاستدعاءات التي يجريها `huggingface_hub`.

قد يكون ذلك مفيدًا إذا كنت تشغّل سكربتاتك في بيئة محددة تتطلب تكوينًا مخصصًا (مثل وكيل مخصص أو شهادات).

استخدم [get_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_session) للحصول على `httpx2.Client` مُهيأ بشكل صحيح.

#### huggingface_hub.get_session[[huggingface_hub.get_session]]

```python
huggingface_hub.get_session()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py#L405)

احصل على كائن `httpx2.Client` باستخدام مصنع النقل من المستخدم.

هذا العميل مشترك بين جميع الاستدعاءات التي يجريها `huggingface_hub`. لذلك، يجب ألا تُغلقه يدويًا.

استخدم [set_client_factory()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.set_client_factory) لتخصيص `httpx2.Client`.

في حالات نادرة، قد ترغب في إغلاق الجلسة الحالية يدوياً (على سبيل المثال، بعد حدوث `SSLError` مؤقت). يمكنك القيام بذلك باستخدام [close_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.close_session). سيتم إنشاء جلسة جديدة تلقائياً عند الاستدعاء التالي لـ [get_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_session).

تُغلق الجلسات تلقائيًا دائمًا عند انتهاء العملية.

#### huggingface_hub.close_session[[huggingface_hub.close_session]]

```python
huggingface_hub.close_session()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py#L434)

أغلق `httpx2.Client` العام المستخدم بواسطة `huggingface_hub`.

إذا أُغلق عميل، فسيتم إنشاؤه مرة أخرى عند الاستدعاء التالي لـ [get_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_session).

قد يكون مفيدًا إذا تم تحديث شهادة SSL، على سبيل المثال.

بالنسبة إلى الأكواد غير المتزامنة، استخدم [set_async_client_factory()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.set_async_client_factory) لإعداد `httpx2.AsyncClient` واستخدم [get_async_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_async_session) لاسترجاع واحد.

#### huggingface_hub.set_async_client_factory[[huggingface_hub.set_async_client_factory]]

```python
huggingface_hub.set_async_client_factory(async_client_factory: Callable)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py#L389)

اضبط مصنع عميل HTTP غير المتزامن الذي سيستخدمه `huggingface_hub`.

مصنع العميل غير المتزامن هو طريقة تُرجع كائن `httpx2.AsyncClient`. وقد يكون ذلك مفيداً إذا كنت تشغّل سكربتاتك في بيئة محددة تتطلب تهيئة مخصصة (مثل وكيل مخصص أو شهادات). استخدم [get_async_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_async_session) للحصول على `httpx2.AsyncClient` مُهيأ بشكل صحيح.

> [!WARNING]
> على عكس `httpx2.Client` الذي يُشارَك بين جميع الاستدعاءات التي يجريها `huggingface_hub`، فإن `httpx2.AsyncClient` لا يُشارَك. يُوصى باستخدام مدير سياق غير متزامن (async context manager) لضمان إغلاق العميل بشكل صحيح عند الخروج من السياق.

#### huggingface_hub.get_async_session[[huggingface_hub.get_async_session]]

```python
huggingface_hub.get_async_session()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py#L421)

أعد كائن `httpx2.AsyncClient` باستخدام مصنع النقل من المستخدم.

استخدم [set_async_client_factory()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.set_async_client_factory) لتخصيص `httpx2.AsyncClient`.

> [!WARNING]
> على عكس `httpx2.Client` الذي يُشارَك بين جميع الاستدعاءات التي يجريها `huggingface_hub`، فإن `httpx2.AsyncClient` لا يُشارَك. يُوصى باستخدام مدير سياق غير متزامن (async context manager) لضمان إغلاق العميل بشكل صحيح عند الخروج من السياق.

> [!TIP]
> على عكس العميل المتزامن، لا يُدار دورة حياة العميل غير المتزامن تلقائيًا. استخدم مدير سياق غير متزامن للتعامل معه بشكل صحيح.

### وحدة `httpx`

يعيد `huggingface_hub` تصدير مكتبة HTTP التي يستخدمها في الخلفية باسم `huggingface_hub.utils.httpx`:

```py
from huggingface_hub.utils import httpx

try:
    ...
except httpx.HTTPError:
    ...
```

يكون هذا مفيدًا بشكل رئيسي للمكتبات الخارجية المبنية فوق `huggingface_hub`. حيث بُنيت `huggingface_hub` الإصدار v1.x على [`httpx`](https://www.python-httpx.org/)، بينما بُنيت الإصدار v2.x على [`httpx2`](https://httpx2.pydantic.dev/) (خلفها، الموزع كحزمة مستقلة). استيراد الوحدة من `huggingface_hub.utils` بدلاً من استيراد `httpx` مباشرة يعني أنك تحصل دائمًا على الإصدار الذي يستخدمه `huggingface_hub` فعليًا، وتبقى مكتبتك متوافقة مع كلا الإصدارين الرئيسيين. راجع [هذه المشكلة](https://github.com/huggingface/huggingface_hub/issues/4802) لمزيد من التفاصيل حول خطة الانتقال.

> [!WARNING]
> استخدم هذا فقط إذا كنت بحاجة إلى أنواع أو استثناءات `httpx` (مثل التقاط الأخطاء). لإرسال طلبات إلى Hub، استخدم [get_session()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.get_session) كما هو موضح أعلاه.

## معالجة أخطاء HTTP

`huggingface_hub` يحدد أخطاء HTTP خاصة به لتحسين `HTTPError` الذي يرميه `httpx2` عبر إضافة معلومات إضافية تُرسلها الخادم.

### ارفع للتحقق من الحالة[[huggingface_hub.hf_raise_for_status]]

يُعدّ [hf_raise_for_status()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.hf_raise_for_status) الطريقة المركزية لـ "رفع الاستجابة" من أي طلب مُوجَّه إلى Hub. فهو يغلّف `httpx2.Response.raise_for_status` الأساسي لتوفير معلومات إضافية. يتم تحويل أي `HTTPError` يُطرح إلى `HfHubHTTPError`.

```py
from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError

response = get_session().post(...)
try:
    hf_raise_for_status(response)
except HfHubHTTPError as e:
    print(str(e)) # formatted message
    e.request_id, e.server_message # details returned by server

    # Complete the error message with additional information once it's raised
    e.append_to_message("\n`create_commit` expects the repository to exist.")
    raise
```

#### huggingface_hub.hf_raise_for_status[[huggingface_hub.hf_raise_for_status]]

```python
huggingface_hub.hf_raise_for_status(response: Response, endpoint_name: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py#L826)

**المعاملات:**

response (`Response`) : الاستجابة من الخادم.

endpoint_name (`str`، *اختياري*) : اسم نقطة النهاية التي تم استدعاؤها. إذا تم تقديمه، فستكون رسالة الخطأ أكثر اكتمالاً.

الإصدار الداخلي لـ `response.raise_for_status()` الذي سيُحسّن خطأ HTTPError المحتمل. ستكون الاستثناء المُستدعى نسخة من [HfHubHTTPError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.HfHubHTTPError).

This helper is meant to be the unique method to raise_for_status when making a call to the Hugging Face Hub.

> [!WARNING]
> يُستدعى عند فشل الطلب:
>
> - [RepositoryNotFoundError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) إذا تعذّر العثور على المستودع الذي سيتم التنزيل منه. قد يكون السبب عدم وجوده، أو أن `repo_type` غير مضبوط بشكل صحيح، أو أن المستودع `private` ولا تملك صلاحية الوصول إليه. - [GatedRepoError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.GatedRepoError) إذا كان المستودع موجودًا لكنه محمي (gated) والمستخدم غير مدرج في القائمة المصرّح لها. - [RevisionNotFoundError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) إذا كان المستودع موجودًا لكن تعذّر العثور على الإصدار (revision). - [EntryNotFoundError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.EntryNotFoundError) إذا كان المستودع موجودًا لكن تعذّر العثور على العنصر (مثل الملف المطلوب). - [BadRequestError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.BadRequestError) إذا فشل الطلب مع خطأ HTTP 400 BadRequest. - [HfHubHTTPError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.HfHubHTTPError) إذا فشل الطلب لسبب غير مذكور أعلاه.

### التحقق من وضع عدم الاتصال[[huggingface_hub.is_offline_mode]]

يمكنك التحقق برمجياً من تفعيل وضع عدم الاتصال باستخدام `is_offline_mode`. يتم تفعيل وضع عدم الاتصال عن طريق تعيين `HF_HUB_OFFLINE=1` كمتغير بيئة.

#### huggingface_hub.is_offline_mode[[huggingface_hub.is_offline_mode]]

```python
huggingface_hub.is_offline_mode()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/constants.py#L197)

يعيد ما إذا كنا في وضع عدم الاتصال بالنسبة إلى Hub.

عند تفعيل الوضع دون اتصال، ستُطلق جميع طلبات HTTP المُرسلة باستخدام `get_session` استثناءً من نوع `OfflineModeIsEnabled`.

مثال:
```py
from huggingface_hub import is_offline_mode

def list_files(repo_id: str):
    if is_offline_mode():
        ... # list files from local cache (degraded experience but still functional)
    else:
        ... # list files from Hub (complete experience)
```

### أخطاء HTTP

فيما يلي قائمة بأخطاء HTTP التي تُطرح في `huggingface_hub`.

#### HfHubHTTPError[[huggingface_hub.errors.HfHubHTTPError]]

`HfHubHTTPError` هي الفئة الأم لأي خطأ HTTP في HF Hub. تتولى تحليل استجابة الخادم وتنسيق رسالة الخطأ لتوفير أكبر قدر ممكن من المعلومات للمستخدم.

#### huggingface_hub.errors.HfHubHTTPError[[huggingface_hub.errors.HfHubHTTPError]]

```python
huggingface_hub.errors.HfHubHTTPError(message: str, response: Response, server_message: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L90)

HTTPError لتوريثها لأي خطأ HTTP مخصص يُستدعى في HF Hub.

تُحوَّل أي HTTPError على الأقل إلى `HfHubHTTPError`. وإذا أرسل الخادم بعض المعلومات، فسيتم إضافتها إلى رسالة الخطأ.

تفاصيل مضافة:
- يُستخرج معرّف الطلب من الترويسات حسب ترتيب الأولوية: "X-Request-Id"، "X-Amzn-Trace-Id"، "X-Amz-Cf-Id".
- رسالة خطأ الخادم من الترويسة X-Error-Message.
- رسالة خطأ الخادم إذا تم العثور على واحدة في جسم الاستجابة.

مثال:
```py
    import httpx2
    from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError

    response = get_session().post(...)
    try:
        hf_raise_for_status(response)
    except HfHubHTTPError as e:
        print(str(e)) # formatted message
        e.request_id, e.server_message # details returned by server

        # Complete the error message with additional information once it's raised
        e.append_to_message("
ate_commit` expects the repository to exist.")
        raise
```

#### append_to_message[[huggingface_hub.errors.HfHubHTTPError.append_to_message]]

```python
append_to_message(additional_message: str)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L137)

أضف معلومات إضافية إلى رسالة `HfHubHTTPError` الأولية.

#### RepositoryNotFoundError[[huggingface_hub.errors.RepositoryNotFoundError]]

#### huggingface_hub.errors.RepositoryNotFoundError[[huggingface_hub.errors.RepositoryNotFoundError]]

```python
huggingface_hub.errors.RepositoryNotFoundError(message: str, response: Response, server_message: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L313)

**المعاملات:**

repo_id (`str` أو `None`) : معرّف المستودع الذي لم يتم العثور عليه، إذا أمكن تحديده من عنوان URL للطلب.

repo_type (`str` أو `None`) : نوع المستودع ("model" أو "dataset" أو "space")، إذا أمكن تحديده من عنوان URL للطلب.

تُستدعى عند محاولة الوصول إلى عنوان URL على hf.co باستخدام اسم مستودع غير صالح، أو باستخدام اسم مستودع خاص لا يملك المستخدم صلاحية الوصول إليه.

مثال:

```py
>>> from huggingface_hub import model_info
>>> model_info("<non_existent_repository>")
(...)
huggingface_hub.errors.RepositoryNotFoundError: 401 Client Error. (Request ID: PvMw_VjBMjVdMz53WKIzP)

Repository Not Found for url: https://huggingface.co/api/models/%3Cnon_existent_repository%3E.
Please make sure you specified the correct `repo_id` and `repo_type`.
If the repo is private, make sure you are authenticated and your token has the required permissions.
Invalid username or password.
```

#### GatedRepoError[[huggingface_hub.errors.GatedRepoError]]

#### huggingface_hub.errors.GatedRepoError[[huggingface_hub.errors.GatedRepoError]]

```python
huggingface_hub.errors.GatedRepoError(message: str, response: Response, server_message: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L343)

تُستدعى عند محاولة الوصول إلى مستودع محمي لا يوجد المستخدم في قائمة المصرّح لهم.

ملاحظة: مشتقة من `RepositoryNotFoundError` لضمان التوافق مع الإصدارات السابقة.

مثال:

```py
>>> from huggingface_hub import model_info
>>> model_info("<gated_repository>")
(...)
huggingface_hub.errors.GatedRepoError: 403 Client Error. (Request ID: ViT1Bf7O_026LGSQuVqfa)

Cannot access gated repo for url https://huggingface.co/api/models/ardent-figment/gated-model.
Access to model ardent-figment/gated-model is restricted and you are not in the authorized list.
Visit https://huggingface.co/ardent-figment/gated-model to ask for access.
```

#### RevisionNotFoundError[[huggingface_hub.errors.RevisionNotFoundError]]

#### huggingface_hub.errors.RevisionNotFoundError[[huggingface_hub.errors.RevisionNotFoundError]]

```python
huggingface_hub.errors.RevisionNotFoundError(message: str, response: Response, server_message: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L386)

**المعاملات:**

repo_id (`str` أو `None`) : معرّف المستودع، إذا أمكن تحديده من عنوان URL للطلب.

repo_type (`str` أو `None`) : نوع المستودع ("model" أو "dataset" أو "space")، إذا أمكن تحديده من عنوان URL للطلب.

تُستدعى عند محاولة الوصول إلى عنوان URL على hf.co يحتوي على مستودع صالح لكن إصدارًا غير صالح.

مثال:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', 'config.json', revision='<non-existent-revision>')
(...)
huggingface_hub.errors.RevisionNotFoundError: 404 Client Error. (Request ID: Mwhe_c3Kt650GcdKEFomX)

Revision Not Found for url: https://huggingface.co/bert-base-cased/resolve/%3Cnon-existent-revision%3E/config.json.
```

#### RevisionResolutionError[[huggingface_hub.errors.RevisionResolutionError]]

#### huggingface_hub.errors.RevisionResolutionError[[huggingface_hub.errors.RevisionResolutionError]]

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L413)

تُستدعى بواسطة [HfApi.resolve_revision()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision) عندما لا يمكن تحديد المراجعة إلى تجزئة التزامن: تعذّر الوصول إلى Hub (وضع عدم الاتصال، خطأ في الاتصال، انتهاء المهلة، توقف Hub، ...) ولم يتم العثور على إدخال مطابق في ذاكرة التخزين المؤقت المحلية.

#### BadRequestError[[huggingface_hub.errors.BadRequestError]]

#### huggingface_hub.errors.BadRequestError[[huggingface_hub.errors.BadRequestError]]

```python
huggingface_hub.errors.BadRequestError(message: str, response: Response, server_message: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L504)

تُستدعى بواسطة `hf_raise_for_status` عندما يعيد الخادم خطأ HTTP 400.

مثال:

```py
>>> resp = httpx2.post("hf.co/api/check", ...)
>>> hf_raise_for_status(resp, endpoint_name="check")
huggingface_hub.errors.BadRequestError: Bad request for check endpoint: {details} (Request ID: XXX)
```

#### EntryNotFoundError[[huggingface_hub.errors.EntryNotFoundError]]

#### huggingface_hub.errors.EntryNotFoundError[[huggingface_hub.errors.EntryNotFoundError]]

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L422)

تُستدعى عند عدم العثور على الإدخال، سواء محلياً أو عن بُعد.

مثال:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.RemoteEntryNotFoundError (...)
>>> hf_hub_download('bert-base-cased', '<non-existent-file>', local_files_only=True)
(...)
huggingface_hub.utils.errors.LocalEntryNotFoundError (...)
```

#### RemoteEntryNotFoundError[[huggingface_hub.errors.RemoteEntryNotFoundError]]

#### huggingface_hub.errors.RemoteEntryNotFoundError[[huggingface_hub.errors.RemoteEntryNotFoundError]]

```python
huggingface_hub.errors.RemoteEntryNotFoundError(message: str, response: Response, server_message: str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L440)

**المعاملات:**

repo_id (`str` أو `None`) : معرّف المستودع، إذا أمكن تحديده من عنوان URL للطلب.

repo_type (`str` أو `None`) : نوع المستودع ("model" أو "dataset" أو "space")، إذا أمكن تحديده من عنوان URL للطلب.

تُستدعى عند محاولة الوصول إلى عنوان URL على hf.co يحتوي على مستودع ورسم صحيحين، لكن اسم ملف غير صالح.

مثال:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.EntryNotFoundError: 404 Client Error. (Request ID: 53pNl6M0MxsnG5Sw8JA6x)

Entry Not Found for url: https://huggingface.co/bert-base-cased/resolve/main/%3Cnon-existent-file%3E.
```

#### LocalEntryNotFoundError[[huggingface_hub.errors.LocalEntryNotFoundError]]

#### huggingface_hub.errors.LocalEntryNotFoundError[[huggingface_hub.errors.LocalEntryNotFoundError]]

```python
huggingface_hub.errors.LocalEntryNotFoundError(message: str)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L467)

تُستدعى عند محاولة الوصول إلى ملف أو لقطة غير موجودة على القرص عند تعطيل الشبكة أو عدم توفرها (مشكلة اتصال). قد يكون العنصر موجودًا على Hub.

مثال:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-cached-file>',  local_files_only=True)
(...)
huggingface_hub.errors.LocalEntryNotFoundError: Cannot find the requested files in the disk cache and outgoing traffic has been disabled. To enable hf.co look-ups and downloads online, set 'local_files_only' to False.
```

#### IncompleteSnapshotError[[huggingface_hub.errors.IncompleteSnapshotError]]

#### huggingface_hub.errors.IncompleteSnapshotError[[huggingface_hub.errors.IncompleteSnapshotError]]

```python
huggingface_hub.errors.IncompleteSnapshotError(message: str, snapshot_path: str)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L486)

تُستدعى بواسطة [snapshot_download()](/docs/huggingface_hub/main/ar/package_reference/file_download#huggingface_hub.snapshot_download) عندما لا يمكن الوصول إلى Hub (سواءً بسبب عدم الاتصال بالإنترنت، أو مشكلة في الاتصال، أو `local_files_only=True`) ويُعرف أن النسخة المؤقتة غير مكتملة: حيث تكون بعض الملفات المدرجة في قائمة الشجرة المؤقتة للمستودع مفقودة من النسخة المحلية.

هذا صنف فرعي من `LocalEntryNotFoundError` من أجل التوافق مع الإصدارات السابقة.

يحتوي السمة `snapshot_path` على المسار إلى اللقطة المحلية غير المكتملة، مما يتيح لمكتبة لاحقة تحديد أحدث الملفات المخزنة مؤقتًا على الرغم من كونها معروفة بأنها غير مكتملة.

#### CachedRepoTreeNotFoundError[[huggingface_hub.errors.CachedRepoTreeNotFoundError]]

#### huggingface_hub.errors.CachedRepoTreeNotFoundError[[huggingface_hub.errors.CachedRepoTreeNotFoundError]]

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L26)

يُستدعى بواسطة [get_cached_repo_tree()](/docs/huggingface_hub/main/ar/package_reference/file_download#huggingface_hub.get_cached_repo_tree) عندما لا يكون هناك فهرس شجرة مخزّن مسبقًا للمراجعة المطلوبة.

يتم ملء قائمة الشجرة كنتيجة ثانوية لاستدعاء [snapshot_download()](/docs/huggingface_hub/main/ar/package_reference/file_download#huggingface_hub.snapshot_download).

#### OfflineModeIsEnabled[[huggingface_hub.errors.OfflineModeIsEnabled]]

#### huggingface_hub.errors.OfflineModeIsEnabled[[huggingface_hub.errors.OfflineModeIsEnabled]]

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L86)

تُستدعى عند إرسال طلب مع تعيين `HF_HUB_OFFLINE=1` كمتغير بيئة.

## التقنيات[[huggingface_hub.utils.send_telemetry]]

يتضمن `huggingface_hub` أداة مساعدة لإرسال بيانات القياس عن بُعد. تساعدنا هذه المعلومات في تصحيح الأخطاء وتحديد أوليات الميزات الجديدة. يمكن للمستخدمين تعطيل جمع بيانات القياس عن بُعد في أي وقت من خلال تعيين متغير البيئة `HF_HUB_DISABLE_TELEMETRY=1`. كما يتم تعطيل القياس عن بُعد في وضع عدم الاتصال (أي عند تعيين HF_HUB_OFFLINE=1).

إذا كنت مسؤولاً عن مكتبة تابعة لطرف ثالث، فإن إرسال بيانات التلميتري بسيط للغاية، إذ يكفي إجراء استدعاء إلى `send_telemetry`. تُرسل البيانات في خيط منفصل لتقليل الأثر على المستخدمين قدر الإمكان.

#### huggingface_hub.utils.send_telemetry[[huggingface_hub.utils.send_telemetry]]

```python
huggingface_hub.utils.send_telemetry(topic: str, library_name: str | None = None, library_version: str | None = None, user_agent: dict | str | None = None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_telemetry.py#L19)

**المعاملات:**

topic (`str`) : اسم الموضوع الذي يتم مراقبته. يُستخدم الموضوع مباشرةً لبناء عنوان URL. إذا كنت ترغب في مراقبة مواضيع فرعية، فاستخدم "/" للفصل. أمثلة: "gradio"، "transformers/examples"،...

library_name (`str`، *اختياري*) : اسم المكتبة التي تُرسل طلب HTTP. سيُضاف إلى ترويسة user-agent.

library_version (`str`، *اختياري*) : إصدار المكتبة التي تُرسل طلب HTTP. سيُضاف إلى ترويسة user-agent.

user_agent (`str`، `dict`، *اختياري*) : معلومات وكيل المستخدم على شكل قاموس أو سلسلة نصية واحدة. سيتم استكمالها بمعلومات حول الحزم المثبتة.

يرسل بيانات التلميتري التي تساعد في تتبع استخدام مكتبات HF المختلفة.

يساعدنا هذا البيانات الاستخدام في تصحيح المشكلات وتحديد أولويات الميزات الجديدة. ومع ذلك، نفهم أن ليس كل شخص يرغب في مشاركة معلومات إضافية، ونحترم خصوصيتك. يمكنك تعطيل جمع بيانات القياس عن بُعد عن طريق تعيين `HF_HUB_DISABLE_TELEMETRY=1` كمتغير بيئة. كما يتم تعطيل القياس عن بُعد في وضع عدم الاتصال (أي عند تعيين `HF_HUB_OFFLINE=1`).

تُنفَّذ عملية جمع بيانات القياس في خيط منفصل لتقليل الأثر على المستخدم.

مثال:
```py
>>> from huggingface_hub.utils import send_telemetry

# Send telemetry without library information
>>> send_telemetry("ping")

# Send telemetry to subtopic with library information
>>> send_telemetry("gradio/local_link", library_name="gradio", library_version="3.22.1")

# Send telemetry with additional data
>>> send_telemetry(
...     topic="examples",
...     library_name="transformers",
...     library_version="4.26.0",
...     user_agent={"pipeline": "text_classification", "framework": "flax"},
... )
```

## المُتحقِّقون

يتضمن `huggingface_hub` مُتحقّقات مخصّصة للتحقّق تلقائيًا من معاملات الدوال. يستلهم التحقّق من العمل المنجز في [Pydantic](https://pydantic-docs.helpmanual.io/) للتحقّق من تلميحات الأنواع، لكن بميزات أكثر محدودية.

### مُزيِّن عام

[validate_hf_hub_args()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.utils.validate_hf_hub_args) هو مُزيِّن عام (generic decorator) يُغلّف الدوال التي تحتوي على معاملات تتبع تسمية `huggingface_hub`. بشكل افتراضي، يتم التحقق من جميع المعاملات التي تم تنفيذ مُتحقق (validator) لها.

إذا لم يكن الإدخال صالحًا، يتم طرح [HFValidationError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.HFValidationError). القيمة غير الصالحة الأولى فقط هي التي تثير خطأً وتوقف عملية التحقق.

طريقة الاستخدام:

```py
>>> from huggingface_hub.utils import validate_hf_hub_args

>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
...     print(repo_id)

>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id

>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.

>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
```

#### validate_hf_hub_args[[huggingface_hub.utils.validate_hf_hub_args]]

#### huggingface_hub.utils.validate_hf_hub_args[[huggingface_hub.utils.validate_hf_hub_args]]

```python
huggingface_hub.utils.validate_hf_hub_args(fn: ~CallableT)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_validators.py#L42)

**يرفع:** [HFValidationError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.HFValidationError)

- [HFValidationError](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.errors.HFValidationError) -- إذا كان الإدخال غير صالح.

تحقق من القيم المستلمة كحجة لأي طريقة عامة في `huggingface_hub`.

يهدف هذا المُزيِّن إلى توحيد التحقق من صحة الحُجج المُستخدَمة في كل مكان. افتراضيًا، يتم اختبار جميع المُتحقِّقات المُعرَّفة.

المُتحقِّقون:
- [validate_repo_id()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.utils.validate_repo_id): يجب أن يكون `repo_id` إما `"repo_name"` أو `"namespace/repo_name"`. يشير Namespace إلى اسم مستخدم أو منظمة.
- `~utils.smoothly_deprecate_legacy_arguments`: تجاهل `proxies` عند تنزيل الملفات (يجب ضبطها على مستوى النظام).

مثال:
```py
>>> from huggingface_hub.utils import validate_hf_hub_args

>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
...     print(repo_id)

>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id

>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.

>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
```

#### HFValidationError[[huggingface_hub.errors.HFValidationError]]

#### huggingface_hub.errors.HFValidationError[[huggingface_hub.errors.HFValidationError]]

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/errors.py#L217)

استثناء عام يُرميه مُتحقّقات `huggingface_hub`.

يرث من [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError).

### مُتحقِّقات الحُجج

يمكن أيضًا استخدام أدوات التحقق بشكل فردي. فيما يلي قائمة بجميع الحجج التي يمكن التحقق منها.

#### repo_id[[huggingface_hub.utils.validate_repo_id]]

#### huggingface_hub.utils.validate_repo_id[[huggingface_hub.utils.validate_repo_id]]

```python
huggingface_hub.utils.validate_repo_id(repo_id: str | None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_validators.py#L94)

تحقق من أن `repo_id` صالح.

لا يُقصد بهذا أن يحل محل التحقق السليم الذي يتم إجراؤه على Hub، بل لتجنب عدم الاتساق المحلي كلما أمكن ذلك (مثال: تمرير `repo_type` في `repo_id` أمر ممنوع).

القواعد:
- بين 1 و96 حرفًا.
- إما "repo_name" أو "namespace/repo_name"
- [a-zA-Z0-9] أو "-"، "_"، "."
- يُمنع استخدام "--" و ".."

صالح: `"foo"`، `"foo/bar"`، `"123"`، `"Foo-BAR_foo.bar123"`

غير صالح: `"datasets/foo/bar"`، `".repo_id"`، `"foo--bar"`، `"foo.git"`

مثال:
```py
>>> from huggingface_hub.utils import validate_repo_id
>>> validate_repo_id(repo_id="valid_repo_id")
>>> validate_repo_id(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
```

تمت مناقشته في https://github.com/huggingface/huggingface_hub/issues/1008. في moon-landing (مستودع داخلي):
- https://github.com/huggingface/moon-landing/blob/main/server/lib/Names.ts#L27
- https://github.com/huggingface/moon-landing/blob/main/server/views/components/NewRepoForm/NewRepoForm.svelte#L138

#### smoothly_deprecate_legacy_arguments[[huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments]]

ليس مُتحقِّقًا بالمعنى الدقيق، لكنه نُفِّذ أيضًا.

#### huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments[[huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments]]

```python
huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments(fn_name: str, kwargs: dict)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_validators.py#L152)

إلغاء استخدام الحجج القديمة بسلاسة في قاعدة أكواد `huggingface_hub`.

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

قائمة بالحجج غير المدعومة:
- `proxies`: لإعداد الوكلاء، يجب على المستخدم إما استخدام متغير البيئة HTTP_PROXY أو تكوين `httpx2.Client` يدويًا باستخدام الدالة [set_client_factory()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.set_client_factory).

  في huggingface_hub 0.x، كان `proxies` قاموسًا يُمرَّر مباشرة إلى `requests.request`. منذ huggingface_hub 1.x، لم تعد `proxies` الخاصة بكل طلب مدعومة. وبشكل خاص، لم يعد من الممكن تكوين الوكلاء على أساس كل طلب على حدة. الحل هو تكوين ذلك على مستوى عام باستخدام دالة [set_client_factory()](/docs/huggingface_hub/main/ar/package_reference/utilities#huggingface_hub.set_client_factory) أو باستخدام متغير البيئة HTTP_PROXY.

  لمزيد من التفاصيل، راجع:
  - https://httpx2.pydantic.dev/advanced/proxies/

- `resume_download`: تم إيقاف استخدامه دون بديل. `huggingface_hub` يستأنف التنزيلات دائمًا كلما كان ذلك ممكنًا.
- `force_filename`: تم إيقاف استخدامه دون بديل. يكون اسم الملف دائمًا مطابقًا لذلك الموجود على Hub.
- `local_dir_use_symlinks`: تم إيقاف استخدامه دون بديل. لم يعد تنزيل الملفات إلى مجلد محلي يستخدم الروابط الرمزية.

